From 959af275d89b4400b247eff40b496f7396920beb Mon Sep 17 00:00:00 2001 From: kunw Date: Mon, 13 Mar 2017 19:34:30 +0800 Subject: [PATCH 1/4] Updates for verfied tags deletion. --- .../app/repository/mock-verfied-signature.ts | 10 ---- .../src/app/repository/repository.service.ts | 36 ++++++-------- .../tag-repository.component.html | 2 +- .../tag-repository.component.ts | 49 +++++++++++++------ src/ui_ng/src/ng/i18n/lang/en-lang.json | 2 + src/ui_ng/src/ng/i18n/lang/zh-lang.json | 2 + 6 files changed, 54 insertions(+), 47 deletions(-) delete mode 100644 src/ui_ng/src/app/repository/mock-verfied-signature.ts diff --git a/src/ui_ng/src/app/repository/mock-verfied-signature.ts b/src/ui_ng/src/app/repository/mock-verfied-signature.ts deleted file mode 100644 index 498eac491..000000000 --- a/src/ui_ng/src/app/repository/mock-verfied-signature.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { VerifiedSignature } from './verified-signature'; - -export const verifiedSignatures: VerifiedSignature[] = [ - { - "tag": "latest", - "hashes": { - "sha256": "E1lggRW5RZnlZBY4usWu8d36p5u5YFfr9B68jTOs+Kc=" - } - } -]; \ No newline at end of file diff --git a/src/ui_ng/src/app/repository/repository.service.ts b/src/ui_ng/src/app/repository/repository.service.ts index ecf7c4cef..028e2e5f1 100644 --- a/src/ui_ng/src/app/repository/repository.service.ts +++ b/src/ui_ng/src/app/repository/repository.service.ts @@ -5,8 +5,6 @@ import { Repository } from './repository'; import { Tag } from './tag'; import { VerifiedSignature } from './verified-signature'; -import { verifiedSignatures } from './mock-verfied-signature'; - import { Observable } from 'rxjs/Observable' import 'rxjs/add/observable/of'; import 'rxjs/add/operator/mergeMap'; @@ -43,25 +41,23 @@ export class RepositoryService { listTagsWithVerifiedSignatures(repoName: string): Observable { return this.http - .get(`/api/repositories/tags?repo_name=${repoName}&detail=1`) - .map(response=>response.json()) - .catch(error=>Observable.throw(error)) - .flatMap((tags: Tag[])=> - this.http - .get(`/api/repositories/signatures?repo_name=${repoName}`) - .map(res=>{ - let signatures = res.json(); - tags.forEach(t=>{ - for(let i = 0; i < signatures.length; i++) { - if(signatures[i].tag === t.tag) { - t.verified = true; - break; - } + .get(`/api/repositories/signatures?repo_name=${repoName}`) + .map(response=>response) + .flatMap(res=> + this.listTags(repoName) + .map((tags: Tag[])=>{ + let signatures = res.json(); + tags.forEach(t=>{ + for(let i = 0; i < signatures.length; i++) { + if(signatures[i].tag === t.tag) { + t.verified = true; + break; } - }); - return tags; - }) - .catch(error=>Observable.throw(error)) + } + }); + return tags; + }) + .catch(error=>Observable.throw(error)) ) .catch(error=>Observable.throw(error)); } diff --git a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html index 0da162479..2488f44d8 100644 --- a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html +++ b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.html @@ -22,7 +22,7 @@ {{t.architecture}} {{t.os}} - {{'REPOSITORY.DELETE' | translate}} + {{'REPOSITORY.DELETE' | translate}} diff --git a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts index d2e9316f4..ea77ac520 100644 --- a/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts +++ b/src/ui_ng/src/app/repository/tag-repository/tag-repository.component.ts @@ -32,16 +32,24 @@ export class TagRepositoryComponent implements OnInit, OnDestroy { private repositoryService: RepositoryService) { this.subscription = this.deletionDialogService.deletionConfirm$.subscribe( message=>{ - let tagName = message.data; - this.repositoryService - .deleteRepoByTag(this.repoName, tagName) - .subscribe( - response=>{ - this.retrieve(); - console.log('Deleted repo:' + this.repoName + ' with tag:' + tagName); - }, - error=>this.messageService.announceMessage(error.status, 'Failed to delete tag:' + tagName + ' under repo:' + this.repoName, AlertType.DANGER) - ); + let tag = message.data; + if(tag) { + if(tag.verified) { + return; + } else { + let tagName = tag.tag; + this.repositoryService + .deleteRepoByTag(this.repoName, tagName) + .subscribe( + response=>{ + this.retrieve(); + console.log('Deleted repo:' + this.repoName + ' with tag:' + tagName); + }, + error=>this.messageService.announceMessage(error.status, 'Failed to delete tag:' + tagName + ' under repo:' + this.repoName, AlertType.DANGER) + ); + } + } + } ) } @@ -58,8 +66,9 @@ export class TagRepositoryComponent implements OnInit, OnDestroy { this.subscription.unsubscribe(); } } - + retrieve() { + this.tags = []; this.repositoryService .listTagsWithVerifiedSignatures(this.repoName) .subscribe( @@ -81,11 +90,19 @@ export class TagRepositoryComponent implements OnInit, OnDestroy { error=>this.messageService.announceMessage(error.status, 'Failed to list tags with repo:' + this.repoName, AlertType.DANGER)); } - deleteTag(tagName: string) { - let message = new DeletionMessage( - 'REPOSITORY.DELETION_TITLE_TAG', 'REPOSITORY.DELETION_SUMMARY_TAG', - tagName, tagName, DeletionTargets.TAG); - this.deletionDialogService.openComfirmDialog(message); + deleteTag(tag: TagView) { + if(tag) { + let titleKey: string, summaryKey: string; + if (tag.verified) { + titleKey = 'REPOSITORY.DELETION_TITLE_TAG_DENIED'; + summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG_DENIED'; + } else { + titleKey = 'REPOSITORY.DELETION_TITLE_TAG'; + summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG'; + } + let message = new DeletionMessage(titleKey, summaryKey, tag.tag, tag, DeletionTargets.TAG); + this.deletionDialogService.openComfirmDialog(message); + } } } \ No newline at end of file diff --git a/src/ui_ng/src/ng/i18n/lang/en-lang.json b/src/ui_ng/src/ng/i18n/lang/en-lang.json index c4ba08b65..10f1020b7 100644 --- a/src/ui_ng/src/ng/i18n/lang/en-lang.json +++ b/src/ui_ng/src/ng/i18n/lang/en-lang.json @@ -256,6 +256,8 @@ "DELETION_SUMMARY_REPO": "Do you want to delete repository {{param}}?", "DELETION_TITLE_TAG": "Confirm Tag Deletion", "DELETION_SUMMARY_TAG": "Do you want to delete tag {{param}}?", + "DELETION_TITLE_TAG_DENIED": "Signed Tag can't be deleted", + "DELETION_SUMMARY_TAG_DENIED": "The tag must be removed from Notary before they can be deleted.", "FILTER_FOR_REPOSITORIES": "Filter for repositories", "TAG": "Tag", "VERIFIED": "Verified", diff --git a/src/ui_ng/src/ng/i18n/lang/zh-lang.json b/src/ui_ng/src/ng/i18n/lang/zh-lang.json index cc96fb19d..7585a4079 100644 --- a/src/ui_ng/src/ng/i18n/lang/zh-lang.json +++ b/src/ui_ng/src/ng/i18n/lang/zh-lang.json @@ -256,6 +256,8 @@ "DELETION_SUMMARY_REPO": "确认删除镜像仓库 {{param}}?", "DELETION_TITLE_TAG": "删除镜像标签确认", "DELETION_SUMMARY_TAG": "确认删除镜像标签 {{param}}?", + "DELETION_TITLE_TAG_DENIED": "已签名的镜像不能被删除", + "DELETION_SUMMARY_TAG_DENIED": "要删除此镜像标签必须首先从Notary中删除。", "FILTER_FOR_REPOSITORIES": "过滤镜像仓库", "TAG": "标签", "VERIFIED": "已验证", From a80008d0f9121caf5595ddaa5ca72f7ac35ef86b Mon Sep 17 00:00:00 2001 From: kunw Date: Wed, 15 Mar 2017 17:27:10 +0800 Subject: [PATCH 2/4] Remove old UI. --- make/dev/ui/Dockerfile | 6 +- make/jsminify.sh | 71 - make/photon/ui/Dockerfile | 7 +- src/ui/controllers/accountsetting.go | 23 - src/ui/controllers/addnew.go | 32 - src/ui/controllers/adminoption.go | 27 - src/ui/controllers/base.go | 311 +- src/ui/controllers/changepassword.go | 23 - src/ui/controllers/controllers_test.go | 105 - src/ui/controllers/dashboard.go | 11 - src/ui/controllers/index.go | 7 +- src/ui/controllers/navigationdetail.go | 36 - src/ui/controllers/navigationheader.go | 39 - src/ui/controllers/optionalmenu.go | 64 - src/ui/controllers/password.go | 169 - src/ui/controllers/project.go | 35 - src/ui/controllers/repository.go | 25 - src/ui/controllers/search.go | 11 - src/ui/controllers/signin.go | 40 - src/ui/controllers/signup.go | 19 - src/ui/router.go | 47 +- src/ui/static/favicon.ico | Bin 0 -> 15086 bytes src/ui/static/i18n/lang/en-lang.json | 370 + src/ui/static/i18n/lang/zh-lang.json | 370 + src/ui/static/i18n/locale_en-US.ini | 15 - src/ui/static/i18n/locale_zh-CN.ini | 15 - src/ui/static/images/harbor-logo.png | Bin 0 -> 43478 bytes src/ui/static/index.html | 16 + src/ui/static/inline.bundle.js | 146 + src/ui/static/inline.bundle.map | 1 + src/ui/static/main.bundle.js | 8877 ++ src/ui/static/main.bundle.map | 1 + .../static/resources/css/account-settings.css | 14 - src/ui/static/resources/css/admin-options.css | 35 - src/ui/static/resources/css/dashboard.css | 28 - src/ui/static/resources/css/destination.css | 17 - src/ui/static/resources/css/footer.css | 41 - src/ui/static/resources/css/header.css | 145 - src/ui/static/resources/css/index.css | 142 - src/ui/static/resources/css/project.css | 95 - src/ui/static/resources/css/replication.css | 97 - src/ui/static/resources/css/repository.css | 159 - src/ui/static/resources/css/search.css | 23 - src/ui/static/resources/css/sign-up.css | 62 - .../static/resources/img/Harbor_Logo_rec.png | Bin 5368 -> 0 bytes src/ui/static/resources/img/Step1.png | Bin 73813 -> 0 bytes src/ui/static/resources/img/Step2.png | Bin 82221 -> 0 bytes src/ui/static/resources/img/Step3.png | Bin 87798 -> 0 bytes src/ui/static/resources/img/loading.gif | Bin 2092 -> 0 bytes .../static/resources/img/magnitude-glass.jpg | Bin 164238 -> 0 bytes .../details/retrieve-projects.directive.html | 35 - .../details/retrieve-projects.directive.js | 214 - .../switch-pane-projects.directive.html | 19 - .../details/switch-pane-projects.directive.js | 64 - .../dismissable-alerts.directive.html | 18 - .../dismissable-alerts.directive.js | 48 - .../dismissable-alerts.module.js | 21 - .../element-height.inspector.js | 60 - .../element-height/element-height.module.js | 22 - .../inline-help/inline-help.directive.html | 3 - .../inline-help/inline-help.directive.js | 48 - .../inline-help/inline-help.module.js | 22 - .../loading-progress.directive.js | 68 - .../loading-progress.module.js | 22 - .../log/advanced-search.directive.html | 68 - .../log/advanced-search.directive.js | 178 - .../js/components/log/list-log.directive.html | 57 - .../js/components/log/list-log.directive.js | 178 - .../resources/js/components/log/log.config.js | 23 - .../resources/js/components/log/log.module.js | 24 - .../modal-dialog/modal-dialog.directive.html | 30 - .../modal-dialog/modal-dialog.directive.js | 90 - .../modal-dialog/modal-dialog.module.js | 22 - .../optional-menu/optional-menu.directive.js | 111 - .../optional-menu/optional-menu.module.js | 25 - .../paginator/paginator.directive.html | 39 - .../paginator/paginator.directive.js | 253 - .../components/paginator/paginator.module.js | 22 - .../add-project-member.directive.html | 44 - .../add-project-member.directive.js | 124 - .../edit-project-member.directive.html | 25 - .../edit-project-member.directive.js | 100 - .../list-project-member.directive.html | 47 - .../list-project-member.directive.js | 132 - .../project-member/project-member.config.js | 47 - .../project-member/project-member.module.js | 25 - .../project-member/switch-role.directive.html | 19 - .../project-member/switch-role.directive.js | 60 - .../project/add-project.directive.html | 44 - .../project/add-project.directive.js | 127 - .../js/components/project/project.module.js | 23 - .../project/publicity-button.directive.html | 16 - .../project/publicity-button.directive.js | 82 - .../replication/create-policy.directive.html | 121 - .../replication/create-policy.directive.js | 439 - .../list-replication.directive.html | 155 - .../replication/list-replication.directive.js | 440 - .../replication/replication.module.js | 25 - .../repository/list-repository.directive.html | 44 - .../repository/list-repository.directive.js | 290 - .../repository/list-tag.directive.html | 26 - .../repository/list-tag.directive.js | 168 - .../repository/popup-details.directive.html | 3 - .../repository/popup-details.directive.js | 109 - .../repository/pull-command.directive.html | 5 - .../repository/pull-command.directive.js | 60 - .../repository/repository.module.js | 21 - .../search/search-input.directive.html | 19 - .../search/search-input.directive.js | 68 - .../components/search/search.directive.html | 26 - .../js/components/search/search.directive.js | 66 - .../js/components/search/search.module.js | 21 - .../components/sign-in/sign-in.directive.js | 124 - .../js/components/sign-in/sign-in.module.js | 24 - .../components/summary/summary.directive.html | 19 - .../components/summary/summary.directive.js | 56 - .../js/components/summary/summary.module.js | 24 - .../configuration.directive.html | 235 - .../configuration.directive.js | 383 - .../create-destination.directive.html | 85 - .../create-destination.directive.js | 251 - .../destination.directive.html | 63 - .../destination.directive.js | 135 - .../replication.directive.html | 77 - .../replication.directive.js | 138 - .../system-management.directive.html | 24 - .../system-management.directive.js | 55 - .../system-management.module.js | 22 - .../top-repository.directive.html | 38 - .../top-repository.directive.js | 59 - .../top-repository/top-repository.module.js | 24 - .../user-log/user-log.directive.html | 43 - .../components/user-log/user-log.directive.js | 64 - .../js/components/user-log/user-log.module.js | 24 - .../components/user/list-user.directive.html | 64 - .../js/components/user/list-user.directive.js | 126 - .../user/toggle-admin.directive.html | 16 - .../components/user/toggle-admin.directive.js | 73 - .../js/components/user/user.module.js | 22 - .../validator/chars-length.validator.js | 71 - .../validator/confirm-password.validator.js | 47 - .../components/validator/email.validator.js | 44 - .../validator/invalid-chars.validator.js | 55 - .../validator/password.validator.js | 44 - .../validator/project-name.validator.js | 41 - .../validator/user-exist.validator.js | 67 - .../components/validator/validator.config.js | 27 - .../components/validator/validator.module.js | 24 - src/ui/static/resources/js/harbor.config.js | 122 - .../static/resources/js/harbor.constants.js | 21 - src/ui/static/resources/js/harbor.data.js | 39 - .../static/resources/js/harbor.initialize.js | 21 - src/ui/static/resources/js/harbor.module.js | 66 - .../account-setting.controller.js | 111 - .../account-setting/account-setting.module.js | 23 - .../js/layout/add-new/add-new.controller.js | 29 - .../js/layout/add-new/add-new.module.js | 22 - .../admin-option/admin-option.config.js | 22 - .../admin-option/admin-option.controller.js | 94 - .../admin-option/admin-option.module.js | 22 - .../change-password.controller.js | 113 - .../change-password/change-password.module.js | 23 - .../layout/dashboard/dashboard.controller.js | 50 - .../js/layout/dashboard/dashboard.module.js | 24 - .../js/layout/details/details.config.js | 46 - .../js/layout/details/details.controller.js | 84 - .../js/layout/details/details.module.js | 25 - .../js/layout/footer/footer.controller.js | 27 - .../js/layout/footer/footer.module.js | 22 - .../forgot-password.controller.js | 102 - .../forgot-password/forgot-password.module.js | 24 - .../js/layout/header/header.controller.js | 81 - .../js/layout/header/header.module.js | 24 - .../js/layout/index/index.controller.js | 105 - .../resources/js/layout/index/index.module.js | 22 - .../navigation-admin-options.directive.html | 19 - .../navigation-admin-options.directive.js | 74 - .../navigation-details.directive.js | 94 - .../navigation/navigation-header.directive.js | 58 - .../js/layout/navigation/navigation.module.js | 22 - .../js/layout/project/project.controller.js | 196 - .../js/layout/project/project.module.js | 26 - .../reset-password.controller.js | 100 - .../reset-password/reset-password.module.js | 24 - .../js/layout/search/search.controller.js | 69 - .../js/layout/search/search.module.js | 23 - .../js/layout/sign-up/sign-up.controller.js | 108 - .../js/layout/sign-up/sign-up.module.js | 23 - .../services.create-destination.js | 38 - .../services.delete-destination.js | 33 - .../services.destination.module.js | 22 - .../services.list-destination-policy.js | 33 - .../destination/services.list-destination.js | 37 - .../destination/services.ping-destination.js | 57 - .../services.update-destination.js | 38 - .../js/services/i18n/locale_messages_en-US.js | 345 - .../js/services/i18n/locale_messages_zh-CN.js | 345 - .../js/services/i18n/services.i18n.js | 73 - .../js/services/i18n/services.i18n.module.js | 22 - .../log/services.list-integrated-log.js | 40 - .../js/services/log/services.list-log.js | 46 - .../js/services/log/services.log.module.js | 22 - .../services.add-project-member.js | 39 - .../services.current-project-member.js | 34 - .../services.delete-project-member.js | 36 - .../services.edit-project-member.js | 38 - .../services.list-project-member.js | 41 - .../services.project-member.module.js | 22 - .../services/project/services.add-project.js | 37 - .../project/services.delete-project.js | 34 - .../services/project/services.edit-project.js | 36 - .../project/services.get-project-by-id.js | 36 - .../services/project/services.list-project.js | 42 - .../project/services.project.module.js | 21 - .../services/project/services.stat-project.js | 37 - .../services.toggle-project-publicity.js | 36 - .../services.list-replication-job.js | 42 - .../services.replication-job.module.js | 22 - .../services.create-replication-policy.js | 42 - .../services.delete-replication-policy.js | 34 - .../services.list-replication-policy.js | 41 - .../services.replication-policy.module.js | 22 - .../services.toggle-replication-policy.js | 35 - .../services.update-replication-policy.js | 38 - .../repository/services.delete-repository.js | 36 - .../repository/services.list-manifest.js | 42 - .../repository/services.list-repository.js | 40 - .../services/repository/services.list-tag.js | 39 - .../services.list-top-repository.js | 40 - .../repository/services.repository.module.js | 21 - .../js/services/search/services.search.js | 40 - .../services/search/services.search.module.js | 22 - .../services.system-configuration.js | 43 - .../services.system-info.module.js | 20 - .../system-info/services.volume-info.js | 33 - .../services/user/services.change-password.js | 39 - .../js/services/user/services.current-user.js | 34 - .../js/services/user/services.delete-user.js | 36 - .../js/services/user/services.list-user.js | 38 - .../js/services/user/services.log-out.js | 33 - .../services/user/services.reset-password.js | 44 - .../js/services/user/services.send-mail.js | 40 - .../js/services/user/services.sign-in.js | 45 - .../js/services/user/services.sign-up.js | 40 - .../js/services/user/services.toggle-admin.js | 38 - .../js/services/user/services.update-user.js | 38 - .../js/services/user/services.user-exist.js | 37 - .../js/services/user/services.user.module.js | 22 - .../js/session/session.current-user.js | 58 - .../resources/js/session/session.module.js | 24 - src/ui/static/scripts.bundle.js | 103 + src/ui/static/scripts.bundle.map | 1 + src/ui/static/styles.bundle.js | 450 + src/ui/static/styles.bundle.map | 1 + src/ui/static/vendor.bundle.js | 96338 ++++++++++++++++ src/ui/static/vendor.bundle.map | 1 + .../vendors/angularjs/angular-messages.min.js | 12 - .../static/vendors/angularjs/angular.min.js | 311 - .../bootstrap-3.3.6/css/bootstrap.min.css | 6 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../bootstrap-3.3.6/js/bootstrap.min.js | 7 - .../css/bootstrap-datetimepicker.min.css | 5 - .../build/js/bootstrap-datetimepicker.min.js | 9 - .../vendors/jquery/jquery-1.11.2.min.js | 4 - .../moment/min/moment-with-locales.min.js | 74 - src/ui/views/account-settings.htm | 83 - src/ui/views/admin-options.htm | 32 - src/ui/views/change-password.htm | 77 - src/ui/views/dashboard.htm | 43 - src/ui/views/forgot-password.htm | 52 - src/ui/views/index.htm | 74 - src/ui/views/index.html | 17 + src/ui/views/layout.htm | 28 - src/ui/views/mail.tpl | 7 - src/ui/views/navigation-detail.htm | 22 - src/ui/views/navigation-header.htm | 23 - src/ui/views/optional-menu.htm | 47 - src/ui/views/project.htm | 95 - src/ui/views/repository.htm | 46 - src/ui/views/reset-password-mail.tpl | 21 - src/ui/views/reset-password.htm | 64 - src/ui/views/search.htm | 40 - src/ui/views/sections/footer-content.htm | 18 - src/ui/views/sections/footer-include.htm | 14 - src/ui/views/sections/header-content.htm | 39 - src/ui/views/sections/header-include.htm | 54 - src/ui/views/sections/script-include.htm | 205 - src/ui/views/sections/script-min-include.htm | 1 - src/ui/views/sign-in.htm | 57 - src/ui/views/sign-up.htm | 125 - 294 files changed, 106840 insertions(+), 16382 deletions(-) delete mode 100755 make/jsminify.sh delete mode 100644 src/ui/controllers/accountsetting.go delete mode 100644 src/ui/controllers/addnew.go delete mode 100644 src/ui/controllers/adminoption.go delete mode 100644 src/ui/controllers/changepassword.go delete mode 100644 src/ui/controllers/dashboard.go delete mode 100644 src/ui/controllers/navigationdetail.go delete mode 100644 src/ui/controllers/navigationheader.go delete mode 100644 src/ui/controllers/optionalmenu.go delete mode 100644 src/ui/controllers/password.go delete mode 100644 src/ui/controllers/project.go delete mode 100644 src/ui/controllers/repository.go delete mode 100644 src/ui/controllers/search.go delete mode 100644 src/ui/controllers/signin.go delete mode 100644 src/ui/controllers/signup.go create mode 100644 src/ui/static/favicon.ico create mode 100644 src/ui/static/i18n/lang/en-lang.json create mode 100644 src/ui/static/i18n/lang/zh-lang.json delete mode 100644 src/ui/static/i18n/locale_en-US.ini delete mode 100644 src/ui/static/i18n/locale_zh-CN.ini create mode 100644 src/ui/static/images/harbor-logo.png create mode 100644 src/ui/static/index.html create mode 100644 src/ui/static/inline.bundle.js create mode 100644 src/ui/static/inline.bundle.map create mode 100644 src/ui/static/main.bundle.js create mode 100644 src/ui/static/main.bundle.map delete mode 100644 src/ui/static/resources/css/account-settings.css delete mode 100644 src/ui/static/resources/css/admin-options.css delete mode 100644 src/ui/static/resources/css/dashboard.css delete mode 100644 src/ui/static/resources/css/destination.css delete mode 100644 src/ui/static/resources/css/footer.css delete mode 100644 src/ui/static/resources/css/header.css delete mode 100644 src/ui/static/resources/css/index.css delete mode 100644 src/ui/static/resources/css/project.css delete mode 100644 src/ui/static/resources/css/replication.css delete mode 100644 src/ui/static/resources/css/repository.css delete mode 100644 src/ui/static/resources/css/search.css delete mode 100644 src/ui/static/resources/css/sign-up.css delete mode 100644 src/ui/static/resources/img/Harbor_Logo_rec.png delete mode 100644 src/ui/static/resources/img/Step1.png delete mode 100644 src/ui/static/resources/img/Step2.png delete mode 100644 src/ui/static/resources/img/Step3.png delete mode 100644 src/ui/static/resources/img/loading.gif delete mode 100644 src/ui/static/resources/img/magnitude-glass.jpg delete mode 100644 src/ui/static/resources/js/components/details/retrieve-projects.directive.html delete mode 100644 src/ui/static/resources/js/components/details/retrieve-projects.directive.js delete mode 100644 src/ui/static/resources/js/components/details/switch-pane-projects.directive.html delete mode 100644 src/ui/static/resources/js/components/details/switch-pane-projects.directive.js delete mode 100644 src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html delete mode 100644 src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js delete mode 100644 src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js delete mode 100644 src/ui/static/resources/js/components/element-height/element-height.inspector.js delete mode 100644 src/ui/static/resources/js/components/element-height/element-height.module.js delete mode 100644 src/ui/static/resources/js/components/inline-help/inline-help.directive.html delete mode 100644 src/ui/static/resources/js/components/inline-help/inline-help.directive.js delete mode 100644 src/ui/static/resources/js/components/inline-help/inline-help.module.js delete mode 100644 src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js delete mode 100644 src/ui/static/resources/js/components/loading-progress/loading-progress.module.js delete mode 100644 src/ui/static/resources/js/components/log/advanced-search.directive.html delete mode 100644 src/ui/static/resources/js/components/log/advanced-search.directive.js delete mode 100644 src/ui/static/resources/js/components/log/list-log.directive.html delete mode 100644 src/ui/static/resources/js/components/log/list-log.directive.js delete mode 100644 src/ui/static/resources/js/components/log/log.config.js delete mode 100644 src/ui/static/resources/js/components/log/log.module.js delete mode 100644 src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html delete mode 100644 src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js delete mode 100644 src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js delete mode 100644 src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js delete mode 100644 src/ui/static/resources/js/components/optional-menu/optional-menu.module.js delete mode 100644 src/ui/static/resources/js/components/paginator/paginator.directive.html delete mode 100644 src/ui/static/resources/js/components/paginator/paginator.directive.js delete mode 100644 src/ui/static/resources/js/components/paginator/paginator.module.js delete mode 100644 src/ui/static/resources/js/components/project-member/add-project-member.directive.html delete mode 100644 src/ui/static/resources/js/components/project-member/add-project-member.directive.js delete mode 100644 src/ui/static/resources/js/components/project-member/edit-project-member.directive.html delete mode 100644 src/ui/static/resources/js/components/project-member/edit-project-member.directive.js delete mode 100644 src/ui/static/resources/js/components/project-member/list-project-member.directive.html delete mode 100644 src/ui/static/resources/js/components/project-member/list-project-member.directive.js delete mode 100644 src/ui/static/resources/js/components/project-member/project-member.config.js delete mode 100644 src/ui/static/resources/js/components/project-member/project-member.module.js delete mode 100644 src/ui/static/resources/js/components/project-member/switch-role.directive.html delete mode 100644 src/ui/static/resources/js/components/project-member/switch-role.directive.js delete mode 100644 src/ui/static/resources/js/components/project/add-project.directive.html delete mode 100644 src/ui/static/resources/js/components/project/add-project.directive.js delete mode 100644 src/ui/static/resources/js/components/project/project.module.js delete mode 100644 src/ui/static/resources/js/components/project/publicity-button.directive.html delete mode 100644 src/ui/static/resources/js/components/project/publicity-button.directive.js delete mode 100644 src/ui/static/resources/js/components/replication/create-policy.directive.html delete mode 100644 src/ui/static/resources/js/components/replication/create-policy.directive.js delete mode 100644 src/ui/static/resources/js/components/replication/list-replication.directive.html delete mode 100644 src/ui/static/resources/js/components/replication/list-replication.directive.js delete mode 100644 src/ui/static/resources/js/components/replication/replication.module.js delete mode 100644 src/ui/static/resources/js/components/repository/list-repository.directive.html delete mode 100644 src/ui/static/resources/js/components/repository/list-repository.directive.js delete mode 100644 src/ui/static/resources/js/components/repository/list-tag.directive.html delete mode 100644 src/ui/static/resources/js/components/repository/list-tag.directive.js delete mode 100644 src/ui/static/resources/js/components/repository/popup-details.directive.html delete mode 100644 src/ui/static/resources/js/components/repository/popup-details.directive.js delete mode 100644 src/ui/static/resources/js/components/repository/pull-command.directive.html delete mode 100644 src/ui/static/resources/js/components/repository/pull-command.directive.js delete mode 100644 src/ui/static/resources/js/components/repository/repository.module.js delete mode 100644 src/ui/static/resources/js/components/search/search-input.directive.html delete mode 100644 src/ui/static/resources/js/components/search/search-input.directive.js delete mode 100644 src/ui/static/resources/js/components/search/search.directive.html delete mode 100644 src/ui/static/resources/js/components/search/search.directive.js delete mode 100644 src/ui/static/resources/js/components/search/search.module.js delete mode 100644 src/ui/static/resources/js/components/sign-in/sign-in.directive.js delete mode 100644 src/ui/static/resources/js/components/sign-in/sign-in.module.js delete mode 100644 src/ui/static/resources/js/components/summary/summary.directive.html delete mode 100644 src/ui/static/resources/js/components/summary/summary.directive.js delete mode 100644 src/ui/static/resources/js/components/summary/summary.module.js delete mode 100644 src/ui/static/resources/js/components/system-management/configuration.directive.html delete mode 100644 src/ui/static/resources/js/components/system-management/configuration.directive.js delete mode 100644 src/ui/static/resources/js/components/system-management/create-destination.directive.html delete mode 100644 src/ui/static/resources/js/components/system-management/create-destination.directive.js delete mode 100644 src/ui/static/resources/js/components/system-management/destination.directive.html delete mode 100644 src/ui/static/resources/js/components/system-management/destination.directive.js delete mode 100644 src/ui/static/resources/js/components/system-management/replication.directive.html delete mode 100644 src/ui/static/resources/js/components/system-management/replication.directive.js delete mode 100644 src/ui/static/resources/js/components/system-management/system-management.directive.html delete mode 100644 src/ui/static/resources/js/components/system-management/system-management.directive.js delete mode 100644 src/ui/static/resources/js/components/system-management/system-management.module.js delete mode 100644 src/ui/static/resources/js/components/top-repository/top-repository.directive.html delete mode 100644 src/ui/static/resources/js/components/top-repository/top-repository.directive.js delete mode 100644 src/ui/static/resources/js/components/top-repository/top-repository.module.js delete mode 100644 src/ui/static/resources/js/components/user-log/user-log.directive.html delete mode 100644 src/ui/static/resources/js/components/user-log/user-log.directive.js delete mode 100644 src/ui/static/resources/js/components/user-log/user-log.module.js delete mode 100644 src/ui/static/resources/js/components/user/list-user.directive.html delete mode 100644 src/ui/static/resources/js/components/user/list-user.directive.js delete mode 100644 src/ui/static/resources/js/components/user/toggle-admin.directive.html delete mode 100644 src/ui/static/resources/js/components/user/toggle-admin.directive.js delete mode 100644 src/ui/static/resources/js/components/user/user.module.js delete mode 100644 src/ui/static/resources/js/components/validator/chars-length.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/confirm-password.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/email.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/invalid-chars.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/password.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/project-name.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/user-exist.validator.js delete mode 100644 src/ui/static/resources/js/components/validator/validator.config.js delete mode 100644 src/ui/static/resources/js/components/validator/validator.module.js delete mode 100644 src/ui/static/resources/js/harbor.config.js delete mode 100644 src/ui/static/resources/js/harbor.constants.js delete mode 100644 src/ui/static/resources/js/harbor.data.js delete mode 100644 src/ui/static/resources/js/harbor.initialize.js delete mode 100644 src/ui/static/resources/js/harbor.module.js delete mode 100644 src/ui/static/resources/js/layout/account-setting/account-setting.controller.js delete mode 100644 src/ui/static/resources/js/layout/account-setting/account-setting.module.js delete mode 100644 src/ui/static/resources/js/layout/add-new/add-new.controller.js delete mode 100644 src/ui/static/resources/js/layout/add-new/add-new.module.js delete mode 100644 src/ui/static/resources/js/layout/admin-option/admin-option.config.js delete mode 100644 src/ui/static/resources/js/layout/admin-option/admin-option.controller.js delete mode 100644 src/ui/static/resources/js/layout/admin-option/admin-option.module.js delete mode 100644 src/ui/static/resources/js/layout/change-password/change-password.controller.js delete mode 100644 src/ui/static/resources/js/layout/change-password/change-password.module.js delete mode 100644 src/ui/static/resources/js/layout/dashboard/dashboard.controller.js delete mode 100644 src/ui/static/resources/js/layout/dashboard/dashboard.module.js delete mode 100644 src/ui/static/resources/js/layout/details/details.config.js delete mode 100644 src/ui/static/resources/js/layout/details/details.controller.js delete mode 100644 src/ui/static/resources/js/layout/details/details.module.js delete mode 100644 src/ui/static/resources/js/layout/footer/footer.controller.js delete mode 100644 src/ui/static/resources/js/layout/footer/footer.module.js delete mode 100644 src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js delete mode 100644 src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js delete mode 100644 src/ui/static/resources/js/layout/header/header.controller.js delete mode 100644 src/ui/static/resources/js/layout/header/header.module.js delete mode 100644 src/ui/static/resources/js/layout/index/index.controller.js delete mode 100644 src/ui/static/resources/js/layout/index/index.module.js delete mode 100644 src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html delete mode 100644 src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js delete mode 100644 src/ui/static/resources/js/layout/navigation/navigation-details.directive.js delete mode 100644 src/ui/static/resources/js/layout/navigation/navigation-header.directive.js delete mode 100644 src/ui/static/resources/js/layout/navigation/navigation.module.js delete mode 100644 src/ui/static/resources/js/layout/project/project.controller.js delete mode 100644 src/ui/static/resources/js/layout/project/project.module.js delete mode 100644 src/ui/static/resources/js/layout/reset-password/reset-password.controller.js delete mode 100644 src/ui/static/resources/js/layout/reset-password/reset-password.module.js delete mode 100644 src/ui/static/resources/js/layout/search/search.controller.js delete mode 100644 src/ui/static/resources/js/layout/search/search.module.js delete mode 100644 src/ui/static/resources/js/layout/sign-up/sign-up.controller.js delete mode 100644 src/ui/static/resources/js/layout/sign-up/sign-up.module.js delete mode 100644 src/ui/static/resources/js/services/destination/services.create-destination.js delete mode 100644 src/ui/static/resources/js/services/destination/services.delete-destination.js delete mode 100644 src/ui/static/resources/js/services/destination/services.destination.module.js delete mode 100644 src/ui/static/resources/js/services/destination/services.list-destination-policy.js delete mode 100644 src/ui/static/resources/js/services/destination/services.list-destination.js delete mode 100644 src/ui/static/resources/js/services/destination/services.ping-destination.js delete mode 100644 src/ui/static/resources/js/services/destination/services.update-destination.js delete mode 100644 src/ui/static/resources/js/services/i18n/locale_messages_en-US.js delete mode 100644 src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js delete mode 100644 src/ui/static/resources/js/services/i18n/services.i18n.js delete mode 100644 src/ui/static/resources/js/services/i18n/services.i18n.module.js delete mode 100644 src/ui/static/resources/js/services/log/services.list-integrated-log.js delete mode 100644 src/ui/static/resources/js/services/log/services.list-log.js delete mode 100644 src/ui/static/resources/js/services/log/services.log.module.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.add-project-member.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.current-project-member.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.delete-project-member.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.edit-project-member.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.list-project-member.js delete mode 100644 src/ui/static/resources/js/services/project-member/services.project-member.module.js delete mode 100644 src/ui/static/resources/js/services/project/services.add-project.js delete mode 100644 src/ui/static/resources/js/services/project/services.delete-project.js delete mode 100644 src/ui/static/resources/js/services/project/services.edit-project.js delete mode 100644 src/ui/static/resources/js/services/project/services.get-project-by-id.js delete mode 100644 src/ui/static/resources/js/services/project/services.list-project.js delete mode 100644 src/ui/static/resources/js/services/project/services.project.module.js delete mode 100644 src/ui/static/resources/js/services/project/services.stat-project.js delete mode 100644 src/ui/static/resources/js/services/project/services.toggle-project-publicity.js delete mode 100644 src/ui/static/resources/js/services/replication-job/services.list-replication-job.js delete mode 100644 src/ui/static/resources/js/services/replication-job/services.replication-job.module.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js delete mode 100644 src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js delete mode 100644 src/ui/static/resources/js/services/repository/services.delete-repository.js delete mode 100644 src/ui/static/resources/js/services/repository/services.list-manifest.js delete mode 100644 src/ui/static/resources/js/services/repository/services.list-repository.js delete mode 100644 src/ui/static/resources/js/services/repository/services.list-tag.js delete mode 100644 src/ui/static/resources/js/services/repository/services.list-top-repository.js delete mode 100644 src/ui/static/resources/js/services/repository/services.repository.module.js delete mode 100644 src/ui/static/resources/js/services/search/services.search.js delete mode 100644 src/ui/static/resources/js/services/search/services.search.module.js delete mode 100644 src/ui/static/resources/js/services/system-info/services.system-configuration.js delete mode 100644 src/ui/static/resources/js/services/system-info/services.system-info.module.js delete mode 100644 src/ui/static/resources/js/services/system-info/services.volume-info.js delete mode 100644 src/ui/static/resources/js/services/user/services.change-password.js delete mode 100644 src/ui/static/resources/js/services/user/services.current-user.js delete mode 100644 src/ui/static/resources/js/services/user/services.delete-user.js delete mode 100644 src/ui/static/resources/js/services/user/services.list-user.js delete mode 100644 src/ui/static/resources/js/services/user/services.log-out.js delete mode 100644 src/ui/static/resources/js/services/user/services.reset-password.js delete mode 100644 src/ui/static/resources/js/services/user/services.send-mail.js delete mode 100644 src/ui/static/resources/js/services/user/services.sign-in.js delete mode 100644 src/ui/static/resources/js/services/user/services.sign-up.js delete mode 100644 src/ui/static/resources/js/services/user/services.toggle-admin.js delete mode 100644 src/ui/static/resources/js/services/user/services.update-user.js delete mode 100644 src/ui/static/resources/js/services/user/services.user-exist.js delete mode 100644 src/ui/static/resources/js/services/user/services.user.module.js delete mode 100644 src/ui/static/resources/js/session/session.current-user.js delete mode 100644 src/ui/static/resources/js/session/session.module.js create mode 100644 src/ui/static/scripts.bundle.js create mode 100644 src/ui/static/scripts.bundle.map create mode 100644 src/ui/static/styles.bundle.js create mode 100644 src/ui/static/styles.bundle.map create mode 100644 src/ui/static/vendor.bundle.js create mode 100644 src/ui/static/vendor.bundle.map delete mode 100644 src/ui/static/vendors/angularjs/angular-messages.min.js delete mode 100644 src/ui/static/vendors/angularjs/angular.min.js delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/css/bootstrap.min.css delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.eot delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.svg delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.ttf delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 src/ui/static/vendors/bootstrap-3.3.6/js/bootstrap.min.js delete mode 100644 src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css delete mode 100644 src/ui/static/vendors/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js delete mode 100644 src/ui/static/vendors/jquery/jquery-1.11.2.min.js delete mode 100644 src/ui/static/vendors/moment/min/moment-with-locales.min.js delete mode 100644 src/ui/views/account-settings.htm delete mode 100644 src/ui/views/admin-options.htm delete mode 100644 src/ui/views/change-password.htm delete mode 100644 src/ui/views/dashboard.htm delete mode 100644 src/ui/views/forgot-password.htm delete mode 100644 src/ui/views/index.htm create mode 100644 src/ui/views/index.html delete mode 100644 src/ui/views/layout.htm delete mode 100644 src/ui/views/mail.tpl delete mode 100644 src/ui/views/navigation-detail.htm delete mode 100644 src/ui/views/navigation-header.htm delete mode 100644 src/ui/views/optional-menu.htm delete mode 100644 src/ui/views/project.htm delete mode 100644 src/ui/views/repository.htm delete mode 100644 src/ui/views/reset-password-mail.tpl delete mode 100644 src/ui/views/reset-password.htm delete mode 100644 src/ui/views/search.htm delete mode 100644 src/ui/views/sections/footer-content.htm delete mode 100644 src/ui/views/sections/footer-include.htm delete mode 100644 src/ui/views/sections/header-content.htm delete mode 100644 src/ui/views/sections/header-include.htm delete mode 100644 src/ui/views/sections/script-include.htm delete mode 100644 src/ui/views/sections/script-min-include.htm delete mode 100644 src/ui/views/sign-in.htm delete mode 100644 src/ui/views/sign-up.htm diff --git a/make/dev/ui/Dockerfile b/make/dev/ui/Dockerfile index db2f0aa04..f2d965b4e 100644 --- a/make/dev/ui/Dockerfile +++ b/make/dev/ui/Dockerfile @@ -14,12 +14,8 @@ ENV MYSQL_USR root \ COPY src/ui/views /go/bin/views COPY src/ui/static /go/bin/static COPY src/favicon.ico /go/bin/favicon.ico -COPY make/jsminify.sh /tmp/jsminify.sh -RUN chmod u+x /go/bin/harbor_ui \ - && timestamp=`date '+%s'` \ - && /tmp/jsminify.sh /go/bin/views/sections/script-include.htm /go/bin/static/resources/js/harbor.app.min.$timestamp.js /go/bin/ \ - && sed -i "s/harbor\.app\.min\.js/harbor\.app\.min\.$timestamp\.js/g" /go/bin/views/sections/script-min-include.htm +RUN chmod u+x /go/bin/harbor_ui WORKDIR /go/bin/ ENTRYPOINT ["/go/bin/harbor_ui"] diff --git a/make/jsminify.sh b/make/jsminify.sh deleted file mode 100755 index 37808d98c..000000000 --- a/make/jsminify.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -set -e -echo "This shell will minify the Javascript in Harbor project." -echo "Usage: #jsminify [src] [dest] [basedir]" - -#prepare workspace -rm -rf $2 /tmp/harbor.app.temp.js - -if [ -z $3 ] -then - BASEPATH=/go/bin -else - BASEPATH=$3 -fi - -#concat the js files from js include file -echo "Concat js files..." - -cat $1 | while read LINE || [[ -n $LINE ]] -do - if [ -n "$LINE" ] - then - TEMP="$BASEPATH""$LINE" - cat `echo "$TEMP" | sed 's/ + + \ No newline at end of file diff --git a/src/ui/static/inline.bundle.js b/src/ui/static/inline.bundle.js new file mode 100644 index 000000000..b34d45eaa --- /dev/null +++ b/src/ui/static/inline.bundle.js @@ -0,0 +1,146 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ var parentJsonpFunction = window["webpackJsonp"]; +/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) { +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = [], result; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(installedChunks[chunkId]) +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules); +/******/ while(resolves.length) +/******/ resolves.shift()(); +/******/ if(executeModules) { +/******/ for(i=0; i < executeModules.length; i++) { +/******/ result = __webpack_require__(__webpack_require__.s = executeModules[i]); +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // objects to store loaded and loading chunks +/******/ var installedChunks = { +/******/ 4: 0 +/******/ }; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = function requireEnsure(chunkId) { +/******/ if(installedChunks[chunkId] === 0) +/******/ return Promise.resolve(); +/******/ +/******/ // an Promise means "currently loading". +/******/ if(installedChunks[chunkId]) { +/******/ return installedChunks[chunkId][2]; +/******/ } +/******/ // start chunk loading +/******/ var head = document.getElementsByTagName('head')[0]; +/******/ var script = document.createElement('script'); +/******/ script.type = 'text/javascript'; +/******/ script.charset = 'utf-8'; +/******/ script.async = true; +/******/ script.timeout = 120000; +/******/ +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.src = __webpack_require__.p + "" + chunkId + ".chunk.js"; +/******/ var timeout = setTimeout(onScriptComplete, 120000); +/******/ script.onerror = script.onload = onScriptComplete; +/******/ function onScriptComplete() { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var chunk = installedChunks[chunkId]; +/******/ if(chunk !== 0) { +/******/ if(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.')); +/******/ installedChunks[chunkId] = undefined; +/******/ } +/******/ }; +/******/ +/******/ var promise = new Promise(function(resolve, reject) { +/******/ installedChunks[chunkId] = [resolve, reject]; +/******/ }); +/******/ installedChunks[chunkId][2] = promise; +/******/ +/******/ head.appendChild(script); +/******/ return promise; +/******/ }; +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // on error function for async loading +/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; +/******/ }) +/************************************************************************/ +/******/ ([]); +//# sourceMappingURL=inline.bundle.map \ No newline at end of file diff --git a/src/ui/static/inline.bundle.map b/src/ui/static/inline.bundle.map new file mode 100644 index 000000000..e31123158 --- /dev/null +++ b/src/ui/static/inline.bundle.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap 68bfbe39e91bf2da4fa3"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t4: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 68bfbe39e91bf2da4fa3"],"sourceRoot":""} \ No newline at end of file diff --git a/src/ui/static/main.bundle.js b/src/ui/static/main.bundle.js new file mode 100644 index 000000000..5c245aebc --- /dev/null +++ b/src/ui/static/main.bundle.js @@ -0,0 +1,8877 @@ +webpackJsonp([0,4],{ + +/***/ 10: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var Subject_1 = __webpack_require__(25); +var message_1 = __webpack_require__(389); +var MessageService = (function () { + function MessageService() { + this.messageAnnouncedSource = new Subject_1.Subject(); + this.appLevelAnnouncedSource = new Subject_1.Subject(); + this.messageAnnounced$ = this.messageAnnouncedSource.asObservable(); + this.appLevelAnnounced$ = this.appLevelAnnouncedSource.asObservable(); + } + MessageService.prototype.announceMessage = function (statusCode, message, alertType) { + this.messageAnnouncedSource.next(message_1.Message.newMessage(statusCode, message, alertType)); + }; + MessageService.prototype.announceAppLevelMessage = function (statusCode, message, alertType) { + this.appLevelAnnouncedSource.next(message_1.Message.newMessage(statusCode, message, alertType)); + }; + MessageService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', []) + ], MessageService); + return MessageService; +}()); +exports.MessageService = MessageService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.service.js.map + +/***/ }), + +/***/ 14: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var shared_const_1 = __webpack_require__(2); +var signInUrl = '/login'; +var currentUserEndpint = "/api/users/current"; +var signOffEndpoint = "/log_out"; +var accountEndpoint = "/api/users/:id"; +var langEndpoint = "/language"; +var langMap = { + "zh": "zh-CN", + "en": "en-US" +}; +/** + * Define related methods to handle account and session corresponding things + * + * @export + * @class SessionService + */ +var SessionService = (function () { + function SessionService(http) { + this.http = http; + this.currentUser = null; + this.headers = new http_1.Headers({ + "Content-Type": 'application/json' + }); + this.formHeaders = new http_1.Headers({ + "Content-Type": 'application/x-www-form-urlencoded' + }); + } + //Handle the related exceptions + SessionService.prototype.handleError = function (error) { + return Promise.reject(error.message || error); + }; + //Submit signin form to backend (NOT restful service) + SessionService.prototype.signIn = function (signInCredential) { + var _this = this; + //Build the form package + var body = new http_1.URLSearchParams(); + body.set('principal', signInCredential.principal); + body.set('password', signInCredential.password); + //Trigger Http + return this.http.post(signInUrl, body.toString(), { headers: this.formHeaders }) + .toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + /** + * Get the related information of current signed in user from backend + * + * @returns {Promise} + * + * @memberOf SessionService + */ + SessionService.prototype.retrieveUser = function () { + var _this = this; + return this.http.get(currentUserEndpint, { headers: this.headers }).toPromise() + .then(function (response) { return _this.currentUser = response.json(); }) + .catch(function (error) { return _this.handleError(error); }); + }; + /** + * For getting info + */ + SessionService.prototype.getCurrentUser = function () { + return this.currentUser; + }; + /** + * Log out the system + */ + SessionService.prototype.signOff = function () { + var _this = this; + return this.http.get(signOffEndpoint, { headers: this.headers }).toPromise() + .then(function () { + //Destroy current session cache + _this.currentUser = null; + }) //Nothing returned + .catch(function (error) { return _this.handleError(error); }); + }; + /** + * + * Update accpunt settings + * + * @param {SessionUser} account + * @returns {Promise} + * + * @memberOf SessionService + */ + SessionService.prototype.updateAccountSettings = function (account) { + var _this = this; + if (!account) { + return Promise.reject("Invalid account settings"); + } + var putUrl = accountEndpoint.replace(":id", account.user_id + ""); + return this.http.put(putUrl, JSON.stringify(account), { headers: this.headers }).toPromise() + .then(function () { + //Retrieve current session user + return _this.retrieveUser(); + }) + .catch(function (error) { return _this.handleError(error); }); + }; + /** + * Switch the backend language profile + */ + SessionService.prototype.switchLanguage = function (lang) { + var _this = this; + if (!lang) { + return Promise.reject("Invalid language"); + } + var backendLang = langMap[lang]; + if (!backendLang) { + backendLang = langMap[shared_const_1.enLang]; + } + var getUrl = langEndpoint + "?lang=" + backendLang; + return this.http.get(getUrl).toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + SessionService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], SessionService); + return SessionService; + var _a; +}()); +exports.SessionService = SessionService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/session.service.js.map + +/***/ }), + +/***/ 171: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var passwordChangeEndpoint = "/api/users/:user_id/password"; +var sendEmailEndpoint = "/sendEmail"; +var resetPasswordEndpoint = "/reset"; +var PasswordSettingService = (function () { + function PasswordSettingService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Accept": 'application/json', + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + 'headers': this.headers + }); + } + PasswordSettingService.prototype.changePassword = function (userId, setting) { + if (!setting || setting.new_password.trim() === "" || setting.old_password.trim() === "") { + return Promise.reject("Invalid data"); + } + var putUrl = passwordChangeEndpoint.replace(":user_id", userId + ""); + return this.http.put(putUrl, JSON.stringify(setting), this.options) + .toPromise() + .then(function () { return null; }) + .catch(function (error) { + return Promise.reject(error); + }); + }; + PasswordSettingService.prototype.sendResetPasswordMail = function (email) { + if (!email) { + return Promise.reject("Invalid email"); + } + var getUrl = sendEmailEndpoint + "?email=" + email; + return this.http.get(getUrl, this.options).toPromise() + .then(function (response) { return response; }) + .catch(function (error) { + return Promise.reject(error); + }); + }; + PasswordSettingService.prototype.resetPassword = function (uuid, newPassword) { + if (!uuid || !newPassword) { + return Promise.reject("Invalid reset uuid or password"); + } + var formHeaders = new http_1.Headers({ + "Content-Type": 'application/x-www-form-urlencoded' + }); + var formOptions = new http_1.RequestOptions({ + headers: formHeaders + }); + var body = new http_1.URLSearchParams(); + body.set("reset_uuid", uuid); + body.set("password", newPassword); + return this.http.post(resetPasswordEndpoint, body.toString(), formOptions) + .toPromise() + .then(function (response) { return response; }) + .catch(function (error) { + return Promise.reject(error); + }); + }; + PasswordSettingService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], PasswordSettingService); + return PasswordSettingService; + var _a; +}()); +exports.PasswordSettingService = PasswordSettingService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/password-setting.service.js.map + +/***/ }), + +/***/ 172: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var app_config_1 = __webpack_require__(244); +exports.systemInfoEndpoint = "/api/systeminfo"; +/** + * Declare service to handle the bootstrap options + * + * + * @export + * @class GlobalSearchService + */ +var AppConfigService = (function () { + function AppConfigService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + headers: this.headers + }); + //Store the application configuration + this.configurations = new app_config_1.AppConfig(); + } + AppConfigService.prototype.load = function () { + var _this = this; + return this.http.get(exports.systemInfoEndpoint, this.options).toPromise() + .then(function (response) { return _this.configurations = response.json(); }) + .catch(function (error) { + //Catch the error + console.error("Failed to load bootstrap options with error: ", error); + }); + }; + AppConfigService.prototype.getConfig = function () { + return this.configurations; + }; + AppConfigService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], AppConfigService); + return AppConfigService; + var _a; +}()); +exports.AppConfigService = AppConfigService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app-config.service.js.map + +/***/ }), + +/***/ 173: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var StringValueItem = (function () { + function StringValueItem(v, e) { + this.value = v; + this.editable = e; + } + return StringValueItem; +}()); +exports.StringValueItem = StringValueItem; +var NumberValueItem = (function () { + function NumberValueItem(v, e) { + this.value = v; + this.editable = e; + } + return NumberValueItem; +}()); +exports.NumberValueItem = NumberValueItem; +var BoolValueItem = (function () { + function BoolValueItem(v, e) { + this.value = v; + this.editable = e; + } + return BoolValueItem; +}()); +exports.BoolValueItem = BoolValueItem; +var Configuration = (function () { + function Configuration() { + this.auth_mode = new StringValueItem("db_auth", true); + this.project_creation_restriction = new StringValueItem("everyone", true); + this.self_registration = new BoolValueItem(false, true); + this.ldap_base_dn = new StringValueItem("", true); + this.ldap_filter = new StringValueItem("", true); + this.ldap_scope = new NumberValueItem(0, true); + this.ldap_search_dn = new StringValueItem("", true); + this.ldap_search_password = new StringValueItem("", true); + this.ldap_timeout = new NumberValueItem(5, true); + this.ldap_uid = new StringValueItem("", true); + this.ldap_url = new StringValueItem("", true); + this.email_host = new StringValueItem("", true); + this.email_identity = new StringValueItem("", true); + this.email_from = new StringValueItem("", true); + this.email_port = new NumberValueItem(25, true); + this.email_ssl = new BoolValueItem(false, true); + this.email_username = new StringValueItem("", true); + this.email_password = new StringValueItem("", true); + this.token_expiration = new NumberValueItem(5, true); + this.cfg_expiration = new NumberValueItem(30, true); + this.verify_remote_cert = new BoolValueItem(false, true); + } + return Configuration; +}()); +exports.Configuration = Configuration; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.js.map + +/***/ }), + +/***/ 174: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var Observable_1 = __webpack_require__(3); +__webpack_require__(133); +__webpack_require__(85); +__webpack_require__(132); +var ProjectService = (function () { + function ProjectService(http) { + this.http = http; + this.headers = new http_1.Headers({ 'Content-type': 'application/json' }); + this.options = new http_1.RequestOptions({ 'headers': this.headers }); + } + ProjectService.prototype.getProject = function (projectId) { + return this.http + .get("/api/projects/" + projectId) + .toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ProjectService.prototype.listProjects = function (name, isPublic, page, pageSize) { + var params = new http_1.URLSearchParams(); + params.set('page', page + ''); + params.set('page_size', pageSize + ''); + return this.http + .get("/api/projects?project_name=" + name + "&is_public=" + isPublic, { search: params }) + .map(function (response) { return response; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ProjectService.prototype.createProject = function (name, isPublic) { + return this.http + .post("/api/projects", JSON.stringify({ 'project_name': name, 'public': isPublic }), this.options) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ProjectService.prototype.toggleProjectPublic = function (projectId, isPublic) { + return this.http + .put("/api/projects/" + projectId + "/publicity", { 'public': isPublic }, this.options) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ProjectService.prototype.deleteProject = function (projectId) { + return this.http + .delete("/api/projects/" + projectId) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ProjectService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], ProjectService); + return ProjectService; + var _a; +}()); +exports.ProjectService = ProjectService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.service.js.map + +/***/ }), + +/***/ 175: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var userMgmtEndpoint = '/api/users'; +/** + * Define related methods to handle account and session corresponding things + * + * @export + * @class SessionService + */ +var UserService = (function () { + function UserService(http) { + this.http = http; + this.httpOptions = new http_1.RequestOptions({ + headers: new http_1.Headers({ + "Content-Type": 'application/json' + }) + }); + } + //Handle the related exceptions + UserService.prototype.handleError = function (error) { + return Promise.reject(error.message || error); + }; + //Get the user list + UserService.prototype.getUsers = function () { + var _this = this; + return this.http.get(userMgmtEndpoint, this.httpOptions).toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return _this.handleError(error); }); + }; + //Add new user + UserService.prototype.addUser = function (user) { + var _this = this; + return this.http.post(userMgmtEndpoint, JSON.stringify(user), this.httpOptions).toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + //Delete the specified user + UserService.prototype.deleteUser = function (userId) { + var _this = this; + return this.http.delete(userMgmtEndpoint + "/" + userId, this.httpOptions) + .toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + //Update user to enable/disable the admin role + UserService.prototype.updateUser = function (user) { + var _this = this; + return this.http.put(userMgmtEndpoint + "/" + user.user_id, JSON.stringify(user), this.httpOptions) + .toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + //Set user admin role + UserService.prototype.updateUserRole = function (user) { + var _this = this; + return this.http.put(userMgmtEndpoint + "/" + user.user_id + "/sysadmin", JSON.stringify(user), this.httpOptions) + .toPromise() + .then(function () { return null; }) + .catch(function (error) { return _this.handleError(error); }); + }; + UserService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], UserService); + return UserService; + var _a; +}()); +exports.UserService = UserService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.service.js.map + +/***/ }), + +/***/ 2: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +exports.supportedLangs = ['en', 'zh']; +exports.enLang = "en"; +exports.languageNames = { + "en": "English", + "zh": "中文简体" +}; +(function (AlertType) { + AlertType[AlertType["DANGER"] = 0] = "DANGER"; + AlertType[AlertType["WARNING"] = 1] = "WARNING"; + AlertType[AlertType["INFO"] = 2] = "INFO"; + AlertType[AlertType["SUCCESS"] = 3] = "SUCCESS"; +})(exports.AlertType || (exports.AlertType = {})); +var AlertType = exports.AlertType; +; +exports.dismissInterval = 15 * 1000; +exports.httpStatusCode = { + "Unauthorized": 401, + "Forbidden": 403 +}; +(function (DeletionTargets) { + DeletionTargets[DeletionTargets["EMPTY"] = 0] = "EMPTY"; + DeletionTargets[DeletionTargets["PROJECT"] = 1] = "PROJECT"; + DeletionTargets[DeletionTargets["PROJECT_MEMBER"] = 2] = "PROJECT_MEMBER"; + DeletionTargets[DeletionTargets["USER"] = 3] = "USER"; + DeletionTargets[DeletionTargets["POLICY"] = 4] = "POLICY"; + DeletionTargets[DeletionTargets["TARGET"] = 5] = "TARGET"; + DeletionTargets[DeletionTargets["REPOSITORY"] = 6] = "REPOSITORY"; + DeletionTargets[DeletionTargets["TAG"] = 7] = "TAG"; +})(exports.DeletionTargets || (exports.DeletionTargets = {})); +var DeletionTargets = exports.DeletionTargets; +; +exports.harborRootRoute = "/harbor/dashboard"; +exports.signInRoute = "/sign-in"; +(function (ActionType) { + ActionType[ActionType["ADD_NEW"] = 0] = "ADD_NEW"; + ActionType[ActionType["EDIT"] = 1] = "EDIT"; +})(exports.ActionType || (exports.ActionType = {})); +var ActionType = exports.ActionType; +; +exports.ListMode = { + READONLY: "readonly", + FULL: "full" +}; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.const.js.map + +/***/ }), + +/***/ 243: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var new_user_form_component_1 = __webpack_require__(253); +var session_service_1 = __webpack_require__(14); +var user_service_1 = __webpack_require__(175); +var inline_alert_component_1 = __webpack_require__(80); +var clarity_angular_1 = __webpack_require__(419); +var SignUpComponent = (function () { + function SignUpComponent(session, userService) { + this.session = session; + this.userService = userService; + this.opened = false; + this.staticBackdrop = true; + this.onGoing = false; + this.formValueChanged = false; + } + SignUpComponent.prototype.getNewUser = function () { + return this.newUserForm.getData(); + }; + Object.defineProperty(SignUpComponent.prototype, "inProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SignUpComponent.prototype, "isValid", { + get: function () { + return this.newUserForm.isValid && this.error == null; + }, + enumerable: true, + configurable: true + }); + SignUpComponent.prototype.formValueChange = function (flag) { + if (flag) { + this.formValueChanged = true; + } + if (this.error != null) { + this.error = null; //clear error + } + this.inlienAlert.close(); //Close alert if being shown + }; + SignUpComponent.prototype.open = function () { + this.newUserForm.reset(); //Reset form + this.formValueChanged = false; + this.modal.open(); + }; + SignUpComponent.prototype.close = function () { + if (this.formValueChanged) { + if (this.newUserForm.isEmpty()) { + this.opened = false; + } + else { + //Need user confirmation + this.inlienAlert.showInlineConfirmation({ + message: "ALERT.FORM_CHANGE_CONFIRMATION" + }); + } + } + else { + this.opened = false; + } + }; + SignUpComponent.prototype.confirmCancel = function () { + this.modal.close(); + }; + //Create new user + SignUpComponent.prototype.create = function () { + var _this = this; + //Double confirm everything is ok + //Form is valid + if (!this.isValid) { + return; + } + //We have new user data + var u = this.getNewUser(); + if (!u) { + return; + } + //Start process + this.onGoing = true; + this.userService.addUser(u) + .then(function () { + _this.onGoing = false; + _this.modal.close(); + }) + .catch(function (error) { + _this.onGoing = false; + _this.error = error; + _this.inlienAlert.showInlineError(error); + }); + }; + __decorate([ + core_1.ViewChild(new_user_form_component_1.NewUserFormComponent), + __metadata('design:type', (typeof (_a = typeof new_user_form_component_1.NewUserFormComponent !== 'undefined' && new_user_form_component_1.NewUserFormComponent) === 'function' && _a) || Object) + ], SignUpComponent.prototype, "newUserForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], SignUpComponent.prototype, "inlienAlert", void 0); + __decorate([ + core_1.ViewChild(clarity_angular_1.Modal), + __metadata('design:type', (typeof (_c = typeof clarity_angular_1.Modal !== 'undefined' && clarity_angular_1.Modal) === 'function' && _c) || Object) + ], SignUpComponent.prototype, "modal", void 0); + SignUpComponent = __decorate([ + core_1.Component({ + selector: 'sign-up', + template: __webpack_require__(825) + }), + __metadata('design:paramtypes', [(typeof (_d = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _d) || Object, (typeof (_e = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _e) || Object]) + ], SignUpComponent); + return SignUpComponent; + var _a, _b, _c, _d, _e; +}()); +exports.SignUpComponent = SignUpComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-up.component.js.map + +/***/ }), + +/***/ 244: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var AppConfig = (function () { + function AppConfig() { + //Set default value + this.with_notary = false; + this.with_admiral = false; + this.admiral_endpoint = ""; + this.auth_mode = "db_auth"; + this.registry_url = ""; + this.project_creation_restriction = "everyone"; + this.self_registration = true; + } + return AppConfig; +}()); +exports.AppConfig = AppConfig; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app-config.js.map + +/***/ }), + +/***/ 245: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var session_service_1 = __webpack_require__(14); +var StartPageComponent = (function () { + function StartPageComponent(session) { + this.session = session; + this.isSessionValid = false; + } + StartPageComponent.prototype.ngOnInit = function () { + this.isSessionValid = this.session.getCurrentUser() != null; + }; + StartPageComponent = __decorate([ + core_1.Component({ + selector: 'start-page', + template: __webpack_require__(832), + styles: [__webpack_require__(806)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object]) + ], StartPageComponent); + return StartPageComponent; + var _a; +}()); +exports.StartPageComponent = StartPageComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/start.component.js.map + +/***/ }), + +/***/ 246: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var platform_browser_1 = __webpack_require__(121); +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var http_1 = __webpack_require__(20); +var clarity_angular_1 = __webpack_require__(419); +var CoreModule = (function () { + function CoreModule() { + } + CoreModule = __decorate([ + core_1.NgModule({ + imports: [ + platform_browser_1.BrowserModule, + forms_1.FormsModule, + http_1.HttpModule, + clarity_angular_1.ClarityModule.forRoot() + ], + exports: [ + platform_browser_1.BrowserModule, + forms_1.FormsModule, + http_1.HttpModule, + clarity_angular_1.ClarityModule + ] + }), + __metadata('design:paramtypes', []) + ], CoreModule); + return CoreModule; +}()); +exports.CoreModule = CoreModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/core.module.js.map + +/***/ }), + +/***/ 247: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var base_service_1 = __webpack_require__(251); +__webpack_require__(133); +__webpack_require__(85); +__webpack_require__(132); +exports.logEndpoint = "/api/logs"; +var AuditLogService = (function (_super) { + __extends(AuditLogService, _super); + function AuditLogService(http) { + _super.call(this); + this.http = http; + this.httpOptions = new http_1.RequestOptions({ + headers: new http_1.Headers({ + "Content-Type": 'application/json', + "Accept": 'application/json' + }) + }); + } + AuditLogService.prototype.listAuditLogs = function (queryParam) { + var _this = this; + return this.http + .post("/api/projects/" + queryParam.project_id + "/logs/filter?page=" + queryParam.page + "&page_size=" + queryParam.page_size, { + begin_timestamp: queryParam.begin_timestamp, + end_timestamp: queryParam.end_timestamp, + keywords: queryParam.keywords, + operation: queryParam.operation, + project_id: queryParam.project_id, + username: queryParam.username + }) + .map(function (response) { return response; }) + .catch(function (error) { return _this.handleError(error); }); + }; + AuditLogService.prototype.getRecentLogs = function (lines) { + var _this = this; + return this.http.get(exports.logEndpoint + "?lines=" + lines, this.httpOptions) + .map(function (response) { return response.json(); }) + .catch(function (error) { return _this.handleError(error); }); + }; + AuditLogService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], AuditLogService); + return AuditLogService; + var _a; +}(base_service_1.BaseService)); +exports.AuditLogService = AuditLogService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.service.js.map + +/***/ }), + +/***/ 248: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var Observable_1 = __webpack_require__(3); +__webpack_require__(133); +__webpack_require__(85); +__webpack_require__(132); +var base_service_1 = __webpack_require__(251); +var MemberService = (function (_super) { + __extends(MemberService, _super); + function MemberService(http) { + _super.call(this); + this.http = http; + } + MemberService.prototype.listMembers = function (projectId, username) { + var _this = this; + console.log('Get member from project_id:' + projectId + ', username:' + username); + return this.http + .get("/api/projects/" + projectId + "/members?username=" + username) + .map(function (response) { return response.json(); }) + .catch(function (error) { return _this.handleError(error); }); + }; + MemberService.prototype.addMember = function (projectId, username, roleId) { + console.log('Adding member with username:' + username + ', roleId:' + roleId + ' under projectId:' + projectId); + return this.http + .post("/api/projects/" + projectId + "/members", { username: username, roles: [roleId] }) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + MemberService.prototype.changeMemberRole = function (projectId, userId, roleId) { + console.log('Changing member role with userId:' + ' to roleId:' + roleId + ' under projectId:' + projectId); + return this.http + .put("/api/projects/" + projectId + "/members/" + userId, { roles: [roleId] }) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + MemberService.prototype.deleteMember = function (projectId, userId) { + console.log('Deleting member role with userId:' + userId + ' under projectId:' + projectId); + return this.http + .delete("/api/projects/" + projectId + "/members/" + userId) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + MemberService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], MemberService); + return MemberService; + var _a; +}(base_service_1.BaseService)); +exports.MemberService = MemberService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.service.js.map + +/***/ }), + +/***/ 249: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* + { + "id": 1, + "endpoint": "http://10.117.4.151", + "name": "target_01", + "username": "admin", + "password": "Harbor12345", + "type": 0, + "creation_time": "2017-02-24T06:41:52Z", + "update_time": "2017-02-24T06:41:52Z" + } +*/ + +var Target = (function () { + function Target() { + } + return Target; +}()); +exports.Target = Target; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/target.js.map + +/***/ }), + +/***/ 250: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var Observable_1 = __webpack_require__(3); +__webpack_require__(460); +__webpack_require__(463); +var RepositoryService = (function () { + function RepositoryService(http) { + this.http = http; + } + RepositoryService.prototype.listRepositories = function (projectId, repoName, page, pageSize) { + console.log('List repositories with project ID:' + projectId); + var params = new http_1.URLSearchParams(); + params.set('page', page + ''); + params.set('page_size', pageSize + ''); + return this.http + .get("/api/repositories?project_id=" + projectId + "&q=" + repoName + "&detail=1", { search: params }) + .map(function (response) { return response; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService.prototype.listTags = function (repoName) { + return this.http + .get("/api/repositories/tags?repo_name=" + repoName + "&detail=1") + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService.prototype.listNotarySignatures = function (repoName) { + return this.http + .get("/api/repositories/signatures?repo_name=" + repoName) + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService.prototype.listTagsWithVerifiedSignatures = function (repoName) { + var _this = this; + return this.http + .get("/api/repositories/signatures?repo_name=" + repoName) + .map(function (response) { return response; }) + .flatMap(function (res) { + return _this.listTags(repoName) + .map(function (tags) { + var signatures = res.json(); + tags.forEach(function (t) { + for (var i = 0; i < signatures.length; i++) { + if (signatures[i].tag === t.tag) { + t.verified = true; + break; + } + } + }); + return tags; + }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService.prototype.deleteRepository = function (repoName) { + console.log('Delete repository with repo name:' + repoName); + return this.http + .delete("/api/repositories?repo_name=" + repoName) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService.prototype.deleteRepoByTag = function (repoName, tag) { + console.log('Delete repository with repo name:' + repoName + ', tag:' + tag); + return this.http + .delete("/api/repositories?repo_name=" + repoName + "&tag=" + tag) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + RepositoryService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], RepositoryService); + return RepositoryService; + var _a; +}()); +exports.RepositoryService = RepositoryService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.service.js.map + +/***/ }), + +/***/ 251: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var http_1 = __webpack_require__(20); +var BaseService = (function () { + function BaseService() { + } + BaseService.prototype.handleError = function (error) { + // In a real world app, we might use a remote logging infrastructure + var errMsg; + console.log(typeof error); + if (error instanceof http_1.Response) { + var body = error.json() || ''; + var err = body.error || JSON.stringify(body); + errMsg = error.status + " - " + (error.statusText || '') + " " + err; + } + else { + errMsg = error.message ? error.message : error.toString(); + } + return Promise.reject(error); + }; + return BaseService; +}()); +exports.BaseService = BaseService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base.service.js.map + +/***/ }), + +/***/ 252: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var create_edit_policy_1 = __webpack_require__(624); +var replication_service_1 = __webpack_require__(79); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var policy_1 = __webpack_require__(617); +var target_1 = __webpack_require__(249); +var core_2 = __webpack_require__(34); +var CreateEditPolicyComponent = (function () { + function CreateEditPolicyComponent(replicationService, messageService, translateService) { + this.replicationService = replicationService; + this.messageService = messageService; + this.translateService = translateService; + this.createEditPolicy = new create_edit_policy_1.CreateEditPolicy(); + this.reload = new core_1.EventEmitter(); + } + CreateEditPolicyComponent.prototype.prepareTargets = function (targetId) { + var _this = this; + this.replicationService + .listTargets('') + .subscribe(function (targets) { + _this.targets = targets; + if (_this.targets && _this.targets.length > 0) { + var initialTarget = void 0; + (targetId) ? initialTarget = _this.targets.find(function (t) { return t.id == targetId; }) : initialTarget = _this.targets[0]; + _this.createEditPolicy.targetId = initialTarget.id; + _this.createEditPolicy.targetName = initialTarget.name; + _this.createEditPolicy.endpointUrl = initialTarget.endpoint; + _this.createEditPolicy.username = initialTarget.username; + _this.createEditPolicy.password = initialTarget.password; + } + }, function (error) { return _this.messageService.announceMessage(error.status, 'Error occurred while get targets.', shared_const_1.AlertType.DANGER); }); + }; + CreateEditPolicyComponent.prototype.ngOnInit = function () { }; + CreateEditPolicyComponent.prototype.openCreateEditPolicy = function (policyId) { + var _this = this; + this.createEditPolicyOpened = true; + this.createEditPolicy = new create_edit_policy_1.CreateEditPolicy(); + this.isCreateDestination = false; + this.errorMessageOpened = false; + this.errorMessage = ''; + this.pingTestMessage = ''; + this.pingStatus = true; + this.testOngoing = false; + if (policyId) { + this.actionType = shared_const_1.ActionType.EDIT; + this.translateService.get('REPLICATION.EDIT_POLICY').subscribe(function (res) { return _this.modalTitle = res; }); + this.replicationService + .getPolicy(policyId) + .subscribe(function (policy) { + _this.createEditPolicy.policyId = policyId; + _this.createEditPolicy.name = policy.name; + _this.createEditPolicy.description = policy.description; + _this.createEditPolicy.enable = policy.enabled === 1 ? true : false; + _this.prepareTargets(policy.target_id); + }); + } + else { + this.actionType = shared_const_1.ActionType.ADD_NEW; + this.translateService.get('REPLICATION.ADD_POLICY').subscribe(function (res) { return _this.modalTitle = res; }); + this.prepareTargets(); + } + }; + CreateEditPolicyComponent.prototype.newDestination = function (checkedAddNew) { + console.log('CheckedAddNew:' + checkedAddNew); + this.isCreateDestination = checkedAddNew; + if (this.isCreateDestination) { + this.createEditPolicy.targetName = ''; + this.createEditPolicy.endpointUrl = ''; + this.createEditPolicy.username = ''; + this.createEditPolicy.password = ''; + } + else { + this.prepareTargets(); + } + }; + CreateEditPolicyComponent.prototype.selectTarget = function () { + var _this = this; + var result = this.targets.find(function (target) { return target.id == _this.createEditPolicy.targetId; }); + if (result) { + this.createEditPolicy.targetId = result.id; + this.createEditPolicy.endpointUrl = result.endpoint; + this.createEditPolicy.username = result.username; + this.createEditPolicy.password = result.password; + } + }; + CreateEditPolicyComponent.prototype.onErrorMessageClose = function () { + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + CreateEditPolicyComponent.prototype.getPolicyByForm = function () { + var policy = new policy_1.Policy(); + policy.project_id = this.projectId; + policy.id = this.createEditPolicy.policyId; + policy.name = this.createEditPolicy.name; + policy.description = this.createEditPolicy.description; + policy.enabled = this.createEditPolicy.enable ? 1 : 0; + policy.target_id = this.createEditPolicy.targetId; + return policy; + }; + CreateEditPolicyComponent.prototype.getTargetByForm = function () { + var target = new target_1.Target(); + target.id = this.createEditPolicy.targetId; + target.name = this.createEditPolicy.targetName; + target.endpoint = this.createEditPolicy.endpointUrl; + target.username = this.createEditPolicy.username; + target.password = this.createEditPolicy.password; + return target; + }; + CreateEditPolicyComponent.prototype.createPolicy = function () { + var _this = this; + console.log('Create policy with existing target in component.'); + this.replicationService + .createPolicy(this.getPolicyByForm()) + .subscribe(function (response) { + console.log('Successful created policy: ' + response); + _this.createEditPolicyOpened = false; + _this.reload.emit(true); + }, function (error) { + _this.errorMessageOpened = true; + _this.errorMessage = error['_body']; + console.log('Failed to create policy:' + error.status + ', error message:' + JSON.stringify(error['_body'])); + }); + }; + CreateEditPolicyComponent.prototype.createOrUpdatePolicyAndCreateTarget = function () { + var _this = this; + console.log('Creating policy with new created target.'); + this.replicationService + .createOrUpdatePolicyWithNewTarget(this.getPolicyByForm(), this.getTargetByForm()) + .subscribe(function (response) { + console.log('Successful created policy and target:' + response); + _this.createEditPolicyOpened = false; + _this.reload.emit(true); + }, function (error) { + _this.errorMessageOpened = true; + _this.errorMessage = error['_body']; + console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body'])); + }); + }; + CreateEditPolicyComponent.prototype.updatePolicy = function () { + var _this = this; + console.log('Creating policy with existing target.'); + this.replicationService + .updatePolicy(this.getPolicyByForm()) + .subscribe(function (response) { + console.log('Successful created policy and target:' + response); + _this.createEditPolicyOpened = false; + _this.reload.emit(true); + }, function (error) { + _this.errorMessageOpened = true; + _this.errorMessage = error['_body']; + console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body'])); + }); + }; + CreateEditPolicyComponent.prototype.onSubmit = function () { + if (this.isCreateDestination) { + this.createOrUpdatePolicyAndCreateTarget(); + } + else { + if (this.actionType === shared_const_1.ActionType.ADD_NEW) { + this.createPolicy(); + } + else if (this.actionType === shared_const_1.ActionType.EDIT) { + this.updatePolicy(); + } + } + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + CreateEditPolicyComponent.prototype.testConnection = function () { + var _this = this; + this.pingStatus = true; + this.translateService.get('REPLICATION.TESTING_CONNECTION').subscribe(function (res) { return _this.pingTestMessage = res; }); + this.testOngoing = !this.testOngoing; + var pingTarget = new target_1.Target(); + pingTarget.endpoint = this.createEditPolicy.endpointUrl; + pingTarget.username = this.createEditPolicy.username; + pingTarget.password = this.createEditPolicy.password; + this.replicationService + .pingTarget(pingTarget) + .subscribe(function (response) { + _this.testOngoing = !_this.testOngoing; + _this.translateService.get('REPLICATION.TEST_CONNECTION_SUCCESS').subscribe(function (res) { return _this.pingTestMessage = res; }); + _this.pingStatus = true; + }, function (error) { + _this.testOngoing = !_this.testOngoing; + _this.translateService.get('REPLICATION.TEST_CONNECTION_FAILURE').subscribe(function (res) { return _this.pingTestMessage = res; }); + _this.pingStatus = false; + }); + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], CreateEditPolicyComponent.prototype, "projectId", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], CreateEditPolicyComponent.prototype, "reload", void 0); + CreateEditPolicyComponent = __decorate([ + core_1.Component({ + selector: 'create-edit-policy', + template: __webpack_require__(856) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object]) + ], CreateEditPolicyComponent); + return CreateEditPolicyComponent; + var _a, _b, _c; +}()); +exports.CreateEditPolicyComponent = CreateEditPolicyComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-policy.component.js.map + +/***/ }), + +/***/ 253: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var user_1 = __webpack_require__(638); +var shared_utils_1 = __webpack_require__(33); +var NewUserFormComponent = (function () { + function NewUserFormComponent() { + this.newUser = new user_1.User(); + this.confirmedPwd = ""; + this.isSelfRegistration = false; + //Notify the form value changes + this.valueChange = new core_1.EventEmitter(); + } + Object.defineProperty(NewUserFormComponent.prototype, "isValid", { + get: function () { + var pwdEqualStatus = true; + if (this.newUserForm.controls["confirmPassword"] && + this.newUserForm.controls["newPassword"]) { + pwdEqualStatus = this.newUserForm.controls["confirmPassword"].value === this.newUserForm.controls["newPassword"].value; + } + return this.newUserForm && + this.newUserForm.valid && pwdEqualStatus; + }, + enumerable: true, + configurable: true + }); + NewUserFormComponent.prototype.ngAfterViewChecked = function () { + var _this = this; + if (this.newUserFormRef != this.newUserForm) { + this.newUserFormRef = this.newUserForm; + if (this.newUserFormRef) { + this.newUserFormRef.valueChanges.subscribe(function (data) { + _this.valueChange.emit(true); + }); + } + } + }; + //Return the current user data + NewUserFormComponent.prototype.getData = function () { + return this.newUser; + }; + //Reset form + NewUserFormComponent.prototype.reset = function () { + if (this.newUserForm) { + this.newUserForm.reset(); + } + }; + //To check if form is empty + NewUserFormComponent.prototype.isEmpty = function () { + return shared_utils_1.isEmptyForm(this.newUserForm); + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Boolean) + ], NewUserFormComponent.prototype, "isSelfRegistration", void 0); + __decorate([ + core_1.ViewChild("newUserFrom"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], NewUserFormComponent.prototype, "newUserForm", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], NewUserFormComponent.prototype, "valueChange", void 0); + NewUserFormComponent = __decorate([ + core_1.Component({ + selector: 'new-user-form', + template: __webpack_require__(862), + styles: [__webpack_require__(816)] + }), + __metadata('design:paramtypes', []) + ], NewUserFormComponent); + return NewUserFormComponent; + var _a; +}()); +exports.NewUserFormComponent = NewUserFormComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/new-user-form.component.js.map + +/***/ }), + +/***/ 277: +/***/ (function(module, exports) { + +module.exports = "" + +/***/ }), + +/***/ 33: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var shared_const_1 = __webpack_require__(2); +/** + * To handle the error message body + * + * @export + * @returns {string} + */ +exports.errorHandler = function (error) { + if (error) { + if (error.message) { + return error.message; + } + else if (error._body) { + return error._body; + } + else if (error.statusText) { + return error.statusText; + } + else { + return error; + } + } + return "UNKNOWN_ERROR"; +}; +/** + * To check if form is empty + */ +exports.isEmptyForm = function (ngForm) { + if (ngForm && ngForm.form) { + var values = ngForm.form.value; + if (values) { + for (var key in values) { + if (values[key]) { + return false; + } + } + } + } + return true; +}; +/** + * Hanlde the 401 and 403 code + * + * If handled the 401 or 403, then return true otherwise false + */ +exports.accessErrorHandler = function (error, msgService) { + if (error && error.status && msgService) { + if (error.status === shared_const_1.httpStatusCode.Unauthorized) { + msgService.announceAppLevelMessage(error.status, "UNAUTHORIZED_ERROR", shared_const_1.AlertType.DANGER); + return true; + } + else if (error.status === shared_const_1.httpStatusCode.Forbidden) { + msgService.announceAppLevelMessage(error.status, "FORBIDDEN_ERROR", shared_const_1.AlertType.DANGER); + return true; + } + } + return false; +}; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.utils.js.map + +/***/ }), + +/***/ 374: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var session_service_1 = __webpack_require__(14); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var shared_utils_1 = __webpack_require__(33); +var inline_alert_component_1 = __webpack_require__(80); +var AccountSettingsModalComponent = (function () { + function AccountSettingsModalComponent(session, msgService) { + this.session = session; + this.msgService = msgService; + this.opened = false; + this.staticBackdrop = true; + this.error = null; + this.isOnCalling = false; + this.formValueChanged = false; + } + AccountSettingsModalComponent.prototype.ngOnInit = function () { + //Value copy + this.account = Object.assign({}, this.session.getCurrentUser()); + }; + AccountSettingsModalComponent.prototype.isUserDataChange = function () { + if (!this.originalStaticData || !this.account) { + return false; + } + for (var prop in this.originalStaticData) { + if (this.originalStaticData[prop]) { + if (this.account[prop]) { + if (this.originalStaticData[prop] != this.account[prop]) { + return true; + } + } + } + } + return false; + }; + Object.defineProperty(AccountSettingsModalComponent.prototype, "isValid", { + get: function () { + return this.accountForm && this.accountForm.valid && this.error === null; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AccountSettingsModalComponent.prototype, "showProgress", { + get: function () { + return this.isOnCalling; + }, + enumerable: true, + configurable: true + }); + AccountSettingsModalComponent.prototype.ngAfterViewChecked = function () { + var _this = this; + if (this.accountFormRef != this.accountForm) { + this.accountFormRef = this.accountForm; + if (this.accountFormRef) { + this.accountFormRef.valueChanges.subscribe(function (data) { + if (_this.error) { + _this.error = null; + } + _this.formValueChanged = true; + _this.inlineAlert.close(); + }); + } + } + }; + AccountSettingsModalComponent.prototype.open = function () { + //Keep the initial data for future diff + this.originalStaticData = Object.assign({}, this.session.getCurrentUser()); + this.account = Object.assign({}, this.session.getCurrentUser()); + this.formValueChanged = false; + this.opened = true; + }; + AccountSettingsModalComponent.prototype.close = function () { + if (this.formValueChanged) { + if (!this.isUserDataChange()) { + this.opened = false; + } + else { + //Need user confirmation + this.inlineAlert.showInlineConfirmation({ + message: "ALERT.FORM_CHANGE_CONFIRMATION" + }); + } + } + else { + this.opened = false; + } + }; + AccountSettingsModalComponent.prototype.submit = function () { + var _this = this; + if (!this.isValid || this.isOnCalling) { + return; + } + //Double confirm session is valid + var cUser = this.session.getCurrentUser(); + if (!cUser) { + return; + } + this.isOnCalling = true; + this.session.updateAccountSettings(this.account) + .then(function () { + _this.isOnCalling = false; + _this.opened = false; + _this.msgService.announceMessage(200, "PROFILE.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.isOnCalling = false; + _this.error = error; + if (shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.opened = false; + } + else { + _this.inlineAlert.showInlineError(error); + } + }); + }; + AccountSettingsModalComponent.prototype.confirmCancel = function () { + this.inlineAlert.close(); + this.opened = false; + }; + __decorate([ + core_1.ViewChild("accountSettingsFrom"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], AccountSettingsModalComponent.prototype, "accountForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], AccountSettingsModalComponent.prototype, "inlineAlert", void 0); + AccountSettingsModalComponent = __decorate([ + core_1.Component({ + selector: "account-settings-modal", + template: __webpack_require__(820) + }), + __metadata('design:paramtypes', [(typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object]) + ], AccountSettingsModalComponent); + return AccountSettingsModalComponent; + var _a, _b, _c, _d; +}()); +exports.AccountSettingsModalComponent = AccountSettingsModalComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/account-settings-modal.component.js.map + +/***/ }), + +/***/ 375: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var core_module_1 = __webpack_require__(246); +var sign_in_component_1 = __webpack_require__(379); +var password_setting_component_1 = __webpack_require__(377); +var account_settings_modal_component_1 = __webpack_require__(374); +var shared_module_1 = __webpack_require__(52); +var sign_up_component_1 = __webpack_require__(243); +var forgot_password_component_1 = __webpack_require__(376); +var reset_password_component_1 = __webpack_require__(378); +var password_setting_service_1 = __webpack_require__(171); +var AccountModule = (function () { + function AccountModule() { + } + AccountModule = __decorate([ + core_1.NgModule({ + imports: [ + core_module_1.CoreModule, + router_1.RouterModule, + shared_module_1.SharedModule + ], + declarations: [ + sign_in_component_1.SignInComponent, + password_setting_component_1.PasswordSettingComponent, + account_settings_modal_component_1.AccountSettingsModalComponent, + sign_up_component_1.SignUpComponent, + forgot_password_component_1.ForgotPasswordComponent, + reset_password_component_1.ResetPasswordComponent], + exports: [ + sign_in_component_1.SignInComponent, + password_setting_component_1.PasswordSettingComponent, + account_settings_modal_component_1.AccountSettingsModalComponent, + reset_password_component_1.ResetPasswordComponent], + providers: [password_setting_service_1.PasswordSettingService] + }), + __metadata('design:paramtypes', []) + ], AccountModule); + return AccountModule; +}()); +exports.AccountModule = AccountModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/account.module.js.map + +/***/ }), + +/***/ 376: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var password_setting_service_1 = __webpack_require__(171); +var inline_alert_component_1 = __webpack_require__(80); +var ForgotPasswordComponent = (function () { + function ForgotPasswordComponent(pwdService) { + this.pwdService = pwdService; + this.opened = false; + this.onGoing = false; + this.email = ""; + this.validationState = true; + this.forceValid = true; + } + Object.defineProperty(ForgotPasswordComponent.prototype, "showProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ForgotPasswordComponent.prototype, "isValid", { + get: function () { + return this.forgotPwdForm && this.forgotPwdForm.valid && this.forceValid; + }, + enumerable: true, + configurable: true + }); + ForgotPasswordComponent.prototype.open = function () { + this.opened = true; + this.validationState = true; + this.forceValid = true; + this.forgotPwdForm.resetForm(); + }; + ForgotPasswordComponent.prototype.close = function () { + this.opened = false; + }; + ForgotPasswordComponent.prototype.send = function () { + var _this = this; + //Double confirm to avoid improper situations + if (!this.email) { + return; + } + if (!this.isValid) { + return; + } + this.onGoing = true; + this.pwdService.sendResetPasswordMail(this.email) + .then(function (response) { + _this.onGoing = false; + _this.forceValid = false; //diable the send button + _this.inlineAlert.showInlineSuccess({ + message: "RESET_PWD.SUCCESS" + }); + }) + .catch(function (error) { + _this.onGoing = false; + _this.inlineAlert.showInlineError(error); + }); + }; + ForgotPasswordComponent.prototype.handleValidation = function (flag) { + if (flag) { + this.validationState = true; + } + else { + this.validationState = this.isValid; + } + }; + __decorate([ + core_1.ViewChild("forgotPasswordFrom"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], ForgotPasswordComponent.prototype, "forgotPwdForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], ForgotPasswordComponent.prototype, "inlineAlert", void 0); + ForgotPasswordComponent = __decorate([ + core_1.Component({ + selector: 'forgot-password', + template: __webpack_require__(821), + styles: [__webpack_require__(457)] + }), + __metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object]) + ], ForgotPasswordComponent); + return ForgotPasswordComponent; + var _a, _b, _c; +}()); +exports.ForgotPasswordComponent = ForgotPasswordComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/forgot-password.component.js.map + +/***/ }), + +/***/ 377: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var password_setting_service_1 = __webpack_require__(171); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var message_service_1 = __webpack_require__(10); +var shared_utils_1 = __webpack_require__(33); +var inline_alert_component_1 = __webpack_require__(80); +var PasswordSettingComponent = (function () { + function PasswordSettingComponent(passwordService, session, msgService) { + this.passwordService = passwordService; + this.session = session; + this.msgService = msgService; + this.opened = false; + this.oldPwd = ""; + this.newPwd = ""; + this.reNewPwd = ""; + this.error = null; + this.formValueChanged = false; + this.onCalling = false; + } + Object.defineProperty(PasswordSettingComponent.prototype, "isValid", { + //If form is valid + get: function () { + if (this.pwdForm && this.pwdForm.form.get("newPassword")) { + return this.pwdForm.valid && + (this.pwdForm.form.get("newPassword").value === this.pwdForm.form.get("reNewPassword").value) && + this.error === null; + } + return false; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(PasswordSettingComponent.prototype, "valueChanged", { + get: function () { + return this.formValueChanged; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(PasswordSettingComponent.prototype, "showProgress", { + get: function () { + return this.onCalling; + }, + enumerable: true, + configurable: true + }); + PasswordSettingComponent.prototype.ngAfterViewChecked = function () { + var _this = this; + if (this.pwdFormRef != this.pwdForm) { + this.pwdFormRef = this.pwdForm; + if (this.pwdFormRef) { + this.pwdFormRef.valueChanges.subscribe(function (data) { + _this.formValueChanged = true; + _this.error = null; + _this.inlineAlert.close(); + }); + } + } + }; + //Open modal dialog + PasswordSettingComponent.prototype.open = function () { + this.opened = true; + this.pwdForm.reset(); + this.formValueChanged = false; + }; + //Close the moal dialog + PasswordSettingComponent.prototype.close = function () { + if (this.formValueChanged) { + if (shared_utils_1.isEmptyForm(this.pwdForm)) { + this.opened = false; + } + else { + //Need user confirmation + this.inlineAlert.showInlineConfirmation({ + message: "ALERT.FORM_CHANGE_CONFIRMATION" + }); + } + } + else { + this.opened = false; + } + }; + PasswordSettingComponent.prototype.confirmCancel = function () { + this.opened = false; + }; + //handle the ok action + PasswordSettingComponent.prototype.doOk = function () { + var _this = this; + if (this.onCalling) { + return; //To avoid duplicate click events + } + if (!this.isValid) { + return; //Double confirm + } + //Double confirm session is valid + var cUser = this.session.getCurrentUser(); + if (!cUser) { + return; + } + //Call service + this.onCalling = true; + this.passwordService.changePassword(cUser.user_id, { + new_password: this.pwdForm.value.newPassword, + old_password: this.pwdForm.value.oldPassword + }) + .then(function () { + _this.onCalling = false; + _this.opened = false; + _this.msgService.announceMessage(200, "CHANGE_PWD.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.onCalling = false; + _this.error = error; + if (shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.opened = false; + } + else { + _this.inlineAlert.showInlineError(error); + } + }); + }; + __decorate([ + core_1.ViewChild("changepwdForm"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], PasswordSettingComponent.prototype, "pwdForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], PasswordSettingComponent.prototype, "inlineAlert", void 0); + PasswordSettingComponent = __decorate([ + core_1.Component({ + selector: 'password-setting', + template: __webpack_require__(822) + }), + __metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object, (typeof (_d = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object]) + ], PasswordSettingComponent); + return PasswordSettingComponent; + var _a, _b, _c, _d, _e; +}()); +exports.PasswordSettingComponent = PasswordSettingComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/password-setting.component.js.map + +/***/ }), + +/***/ 378: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var forms_1 = __webpack_require__(26); +var password_setting_service_1 = __webpack_require__(171); +var inline_alert_component_1 = __webpack_require__(80); +var shared_utils_1 = __webpack_require__(33); +var message_service_1 = __webpack_require__(10); +var ResetPasswordComponent = (function () { + function ResetPasswordComponent(pwdService, route, msgService, router) { + this.pwdService = pwdService; + this.route = route; + this.msgService = msgService; + this.router = router; + this.opened = true; + this.onGoing = false; + this.password = ""; + this.validationState = {}; + this.resetUuid = ""; + this.resetOk = false; + } + ResetPasswordComponent.prototype.ngOnInit = function () { + var _this = this; + this.route.queryParams.subscribe(function (params) { return _this.resetUuid = params["reset_uuid"] || ""; }); + }; + Object.defineProperty(ResetPasswordComponent.prototype, "showProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ResetPasswordComponent.prototype, "isValid", { + get: function () { + return this.resetPwdForm && this.resetPwdForm.valid && this.samePassword(); + }, + enumerable: true, + configurable: true + }); + ResetPasswordComponent.prototype.getValidationState = function (key) { + return this.validationState && + this.validationState[key] && + key === 'reNewPassword' ? this.samePassword() : true; + }; + ResetPasswordComponent.prototype.open = function () { + this.resetOk = false; + this.opened = true; + this.resetPwdForm.resetForm(); + }; + ResetPasswordComponent.prototype.close = function () { + this.opened = false; + }; + ResetPasswordComponent.prototype.send = function () { + var _this = this; + //If already reset password ok, navigator to sign-in + if (this.resetOk) { + this.router.navigate(['sign-in']); + return; + } + //Double confirm to avoid improper situations + if (!this.password) { + return; + } + if (!this.isValid) { + return; + } + this.onGoing = true; + this.pwdService.resetPassword(this.resetUuid, this.password) + .then(function () { + _this.onGoing = false; + _this.resetOk = true; + _this.inlineAlert.showInlineSuccess({ message: 'RESET_PWD.RESET_OK' }); + }) + .catch(function (error) { + _this.onGoing = false; + if (shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.close(); + } + else { + _this.inlineAlert.showInlineError(shared_utils_1.errorHandler(error)); + } + }); + }; + ResetPasswordComponent.prototype.handleValidation = function (key, flag) { + if (flag) { + if (!this.validationState[key]) { + this.validationState[key] = true; + } + } + else { + this.validationState[key] = this.getControlValidationState(key); + } + }; + ResetPasswordComponent.prototype.getControlValidationState = function (key) { + if (this.resetPwdForm) { + var control = this.resetPwdForm.controls[key]; + if (control) { + return control.valid; + } + } + return false; + }; + ResetPasswordComponent.prototype.samePassword = function () { + if (this.resetPwdForm) { + var control1 = this.resetPwdForm.controls["newPassword"]; + var control2 = this.resetPwdForm.controls["reNewPassword"]; + if (control1 && control2) { + return control1.value == control2.value; + } + } + return false; + }; + __decorate([ + core_1.ViewChild("resetPwdForm"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], ResetPasswordComponent.prototype, "resetPwdForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], ResetPasswordComponent.prototype, "inlineAlert", void 0); + ResetPasswordComponent = __decorate([ + core_1.Component({ + selector: 'reset-password', + template: __webpack_require__(823), + styles: [__webpack_require__(457)] + }), + __metadata('design:paramtypes', [(typeof (_c = typeof password_setting_service_1.PasswordSettingService !== 'undefined' && password_setting_service_1.PasswordSettingService) === 'function' && _c) || Object, (typeof (_d = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _f) || Object]) + ], ResetPasswordComponent); + return ResetPasswordComponent; + var _a, _b, _c, _d, _e, _f; +}()); +exports.ResetPasswordComponent = ResetPasswordComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/reset-password.component.js.map + +/***/ }), + +/***/ 379: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var core_2 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var session_service_1 = __webpack_require__(14); +var sign_in_credential_1 = __webpack_require__(632); +var sign_up_component_1 = __webpack_require__(243); +var shared_const_1 = __webpack_require__(2); +var forgot_password_component_1 = __webpack_require__(376); +var app_config_service_1 = __webpack_require__(172); +var app_config_1 = __webpack_require__(244); +//Define status flags for signing in states +exports.signInStatusNormal = 0; +exports.signInStatusOnGoing = 1; +exports.signInStatusError = -1; +var SignInComponent = (function () { + function SignInComponent(router, session, route, appConfigService) { + this.router = router; + this.session = session; + this.route = route; + this.appConfigService = appConfigService; + this.redirectUrl = ""; + this.appConfig = new app_config_1.AppConfig(); + //Status flag + this.signInStatus = exports.signInStatusNormal; + //Initialize sign in credential + this.signInCredential = { + principal: "", + password: "" + }; + } + SignInComponent.prototype.ngOnInit = function () { + var _this = this; + this.appConfig = this.appConfigService.getConfig(); + this.route.queryParams + .subscribe(function (params) { + _this.redirectUrl = params["redirect_url"] || ""; + var isSignUp = params["sign_up"] || ""; + if (isSignUp != "") { + _this.signUp(); //Open sign up + } + }); + }; + Object.defineProperty(SignInComponent.prototype, "isError", { + //For template accessing + get: function () { + return this.signInStatus === exports.signInStatusError; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SignInComponent.prototype, "isOnGoing", { + get: function () { + return this.signInStatus === exports.signInStatusOnGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SignInComponent.prototype, "isValid", { + //Validate the related fields + get: function () { + return this.currentForm.form.valid; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SignInComponent.prototype, "selfSignUp", { + //Whether show the 'sign up' link + get: function () { + return this.appConfig.auth_mode === 'db_auth' + && this.appConfig.self_registration; + }, + enumerable: true, + configurable: true + }); + //General error handler + SignInComponent.prototype.handleError = function (error) { + //Set error status + this.signInStatus = exports.signInStatusError; + var message = error.status ? error.status + ":" + error.statusText : error; + console.error("An error occurred when signing in:", message); + }; + //Hande form values changes + SignInComponent.prototype.formChanged = function () { + var _this = this; + if (this.currentForm === this.signInForm) { + return; + } + this.signInForm = this.currentForm; + if (this.signInForm) { + this.signInForm.valueChanges + .subscribe(function (data) { + _this.updateState(); + }); + } + }; + //Implement interface + //Watch the view change only when view is in error state + SignInComponent.prototype.ngAfterViewChecked = function () { + if (this.signInStatus === exports.signInStatusError) { + this.formChanged(); + } + }; + //Update the status if we have done some changes + SignInComponent.prototype.updateState = function () { + if (this.signInStatus === exports.signInStatusError) { + this.signInStatus = exports.signInStatusNormal; //reset + } + }; + //Trigger the signin action + SignInComponent.prototype.signIn = function () { + var _this = this; + //Should validate input firstly + if (!this.isValid || this.isOnGoing) { + return; + } + //Start signing in progress + this.signInStatus = exports.signInStatusOnGoing; + //Call the service to send out the http request + this.session.signIn(this.signInCredential) + .then(function () { + //Set status + _this.signInStatus = exports.signInStatusNormal; + //Redirect to the right route + if (_this.redirectUrl === "") { + //Routing to the default location + _this.router.navigateByUrl(shared_const_1.harborRootRoute); + } + else { + _this.router.navigateByUrl(_this.redirectUrl); + } + }) + .catch(function (error) { + _this.handleError(error); + }); + }; + //Open sign up dialog + SignInComponent.prototype.signUp = function () { + this.signUpDialog.open(); + }; + //Open forgot password dialog + SignInComponent.prototype.forgotPassword = function () { + this.forgotPwdDialog.open(); + }; + __decorate([ + core_2.ViewChild('signInForm'), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], SignInComponent.prototype, "currentForm", void 0); + __decorate([ + core_2.ViewChild('signupDialog'), + __metadata('design:type', (typeof (_b = typeof sign_up_component_1.SignUpComponent !== 'undefined' && sign_up_component_1.SignUpComponent) === 'function' && _b) || Object) + ], SignInComponent.prototype, "signUpDialog", void 0); + __decorate([ + core_2.ViewChild('forgotPwdDialog'), + __metadata('design:type', (typeof (_c = typeof forgot_password_component_1.ForgotPasswordComponent !== 'undefined' && forgot_password_component_1.ForgotPasswordComponent) === 'function' && _c) || Object) + ], SignInComponent.prototype, "forgotPwdDialog", void 0); + __decorate([ + core_2.Input(), + __metadata('design:type', (typeof (_d = typeof sign_in_credential_1.SignInCredential !== 'undefined' && sign_in_credential_1.SignInCredential) === 'function' && _d) || Object) + ], SignInComponent.prototype, "signInCredential", void 0); + SignInComponent = __decorate([ + core_1.Component({ + selector: 'sign-in', + template: __webpack_require__(824), + styles: [__webpack_require__(802)] + }), + __metadata('design:paramtypes', [(typeof (_e = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _e) || Object, (typeof (_f = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _f) || Object, (typeof (_g = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _g) || Object, (typeof (_h = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _h) || Object]) + ], SignInComponent); + return SignInComponent; + var _a, _b, _c, _d, _e, _f, _g, _h; +}()); +exports.SignInComponent = SignInComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in.component.js.map + +/***/ }), + +/***/ 380: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var core_2 = __webpack_require__(34); +var core_3 = __webpack_require__(257); +var shared_const_1 = __webpack_require__(2); +var session_service_1 = __webpack_require__(14); +var AppComponent = (function () { + function AppComponent(translate, cookie, session) { + this.translate = translate; + this.cookie = cookie; + this.session = session; + translate.addLangs(shared_const_1.supportedLangs); + translate.setDefaultLang(shared_const_1.enLang); + //If user has selected lang, then directly use it + var langSetting = this.cookie.get("harbor-lang"); + if (!langSetting || langSetting.trim() === "") { + //Use browser lang + langSetting = translate.getBrowserLang(); + } + var selectedLang = this.isLangMatch(langSetting, shared_const_1.supportedLangs) ? langSetting : shared_const_1.enLang; + translate.use(selectedLang); + //this.session.switchLanguage(selectedLang).catch(error => console.error(error)); + } + AppComponent.prototype.isLangMatch = function (browserLang, supportedLangs) { + if (supportedLangs && supportedLangs.length > 0) { + return supportedLangs.find(function (lang) { return lang === browserLang; }); + } + }; + AppComponent = __decorate([ + core_1.Component({ + selector: 'harbor-app', + template: __webpack_require__(826), + styleUrls: [] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _a) || Object, (typeof (_b = typeof core_3.CookieService !== 'undefined' && core_3.CookieService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object]) + ], AppComponent); + return AppComponent; + var _a, _b, _c; +}()); +exports.AppComponent = AppComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app.component.js.map + +/***/ }), + +/***/ 381: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var global_search_service_1 = __webpack_require__(604); +var search_results_1 = __webpack_require__(605); +var shared_utils_1 = __webpack_require__(33); +var shared_const_1 = __webpack_require__(2); +var message_service_1 = __webpack_require__(10); +var search_trigger_service_1 = __webpack_require__(95); +var SearchResultComponent = (function () { + function SearchResultComponent(search, msgService, searchTrigger) { + this.search = search; + this.msgService = msgService; + this.searchTrigger = searchTrigger; + this.searchResults = new search_results_1.SearchResults(); + this.currentTerm = ""; + //Open or close + this.stateIndicator = false; + //Search in progress + this.onGoing = false; + //Whether or not mouse point is onto the close indicator + this.mouseOn = false; + } + SearchResultComponent.prototype.doFilterProjects = function (event) { + this.searchResults.project = this.originalCopy.project.filter(function (pro) { return pro.name.indexOf(event) != -1; }); + }; + SearchResultComponent.prototype.clone = function (src) { + var res = new search_results_1.SearchResults(); + if (src) { + src.project.forEach(function (pro) { return res.project.push(Object.assign({}, pro)); }); + src.repository.forEach(function (repo) { return res.repository.push(Object.assign({}, repo)); }); + return res; + } + return res; //Empty object + }; + Object.defineProperty(SearchResultComponent.prototype, "listMode", { + get: function () { + return shared_const_1.ListMode.READONLY; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SearchResultComponent.prototype, "state", { + get: function () { + return this.stateIndicator; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SearchResultComponent.prototype, "done", { + get: function () { + return !this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SearchResultComponent.prototype, "hover", { + get: function () { + return this.mouseOn; + }, + enumerable: true, + configurable: true + }); + //Handle mouse event of close indicator + SearchResultComponent.prototype.mouseAction = function (over) { + this.mouseOn = over; + }; + //Show the results + SearchResultComponent.prototype.show = function () { + this.stateIndicator = true; + this.searchTrigger.searchInputStat(true); + }; + //Close the result page + SearchResultComponent.prototype.close = function () { + //Tell shell close + this.searchTrigger.closeSearch(true); + this.searchTrigger.searchInputStat(false); + this.stateIndicator = false; + }; + //Call search service to complete the search request + SearchResultComponent.prototype.doSearch = function (term) { + var _this = this; + //Do nothing if search is ongoing + if (this.onGoing) { + return; + } + //Confirm page is displayed + if (!this.stateIndicator) { + this.show(); + } + this.currentTerm = term; + //If term is empty, then clear the results + if (term === "") { + this.searchResults.project = []; + this.searchResults.repository = []; + return; + } + //Show spinner + this.onGoing = true; + this.search.doSearch(term) + .then(function (searchResults) { + _this.onGoing = false; + _this.originalCopy = searchResults; //Keeo the original data + _this.searchResults = _this.clone(searchResults); + }) + .catch(function (error) { + _this.onGoing = false; + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + SearchResultComponent = __decorate([ + core_1.Component({ + selector: "search-result", + template: __webpack_require__(829), + styles: [__webpack_require__(803)], + providers: [global_search_service_1.GlobalSearchService] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof global_search_service_1.GlobalSearchService !== 'undefined' && global_search_service_1.GlobalSearchService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _c) || Object]) + ], SearchResultComponent); + return SearchResultComponent; + var _a, _b, _c; +}()); +exports.SearchResultComponent = SearchResultComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-result.component.js.map + +/***/ }), + +/***/ 382: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var modal_events_const_1 = __webpack_require__(383); +var account_settings_modal_component_1 = __webpack_require__(374); +var search_result_component_1 = __webpack_require__(381); +var password_setting_component_1 = __webpack_require__(377); +var navigator_component_1 = __webpack_require__(384); +var session_service_1 = __webpack_require__(14); +var about_dialog_component_1 = __webpack_require__(407); +var start_component_1 = __webpack_require__(245); +var search_trigger_service_1 = __webpack_require__(95); +var shared_const_1 = __webpack_require__(2); +var HarborShellComponent = (function () { + function HarborShellComponent(route, router, session, searchTrigger) { + this.route = route; + this.router = router; + this.session = session; + this.searchTrigger = searchTrigger; + //To indicator whwther or not the search results page is displayed + //We need to use this property to do some overriding work + this.isSearchResultsOpened = false; + } + HarborShellComponent.prototype.ngOnInit = function () { + var _this = this; + this.searchSub = this.searchTrigger.searchTriggerChan$.subscribe(function (searchEvt) { + _this.doSearch(searchEvt); + }); + this.searchCloseSub = this.searchTrigger.searchCloseChan$.subscribe(function (close) { + if (close) { + _this.searchClose(); + } + else { + _this.watchClickEvt(); //reuse + } + }); + }; + HarborShellComponent.prototype.ngOnDestroy = function () { + if (this.searchSub) { + this.searchSub.unsubscribe(); + } + if (this.searchCloseSub) { + this.searchCloseSub.unsubscribe(); + } + }; + Object.defineProperty(HarborShellComponent.prototype, "isStartPage", { + get: function () { + return this.router.routerState.snapshot.url.toString() === shared_const_1.harborRootRoute; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(HarborShellComponent.prototype, "showSearch", { + get: function () { + return this.isSearchResultsOpened; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(HarborShellComponent.prototype, "isSystemAdmin", { + get: function () { + var account = this.session.getCurrentUser(); + return account != null && account.has_admin_role > 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(HarborShellComponent.prototype, "isUserExisting", { + get: function () { + var account = this.session.getCurrentUser(); + return account != null; + }, + enumerable: true, + configurable: true + }); + //Open modal dialog + HarborShellComponent.prototype.openModal = function (event) { + switch (event.modalName) { + case modal_events_const_1.modalEvents.USER_PROFILE: + this.accountSettingsModal.open(); + break; + case modal_events_const_1.modalEvents.CHANGE_PWD: + this.pwdSetting.open(); + break; + case modal_events_const_1.modalEvents.ABOUT: + this.aboutDialog.open(); + break; + default: + break; + } + }; + //Handle the global search event and then let the result page to trigger api + HarborShellComponent.prototype.doSearch = function (event) { + if (event === "") { + if (!this.isSearchResultsOpened) { + //Will not open search result panel if term is empty + return; + } + else { + //If opened, then close the search result panel + this.isSearchResultsOpened = false; + this.searchResultComponet.close(); + return; + } + } + //Once this method is called + //the search results page must be opened + this.isSearchResultsOpened = true; + //Call the child component to do the real work + this.searchResultComponet.doSearch(event); + }; + //Search results page closed + //remove the related ovevriding things + HarborShellComponent.prototype.searchClose = function () { + this.isSearchResultsOpened = false; + }; + //Close serch result panel if existing + HarborShellComponent.prototype.watchClickEvt = function () { + this.searchResultComponet.close(); + this.isSearchResultsOpened = false; + }; + __decorate([ + core_1.ViewChild(account_settings_modal_component_1.AccountSettingsModalComponent), + __metadata('design:type', (typeof (_a = typeof account_settings_modal_component_1.AccountSettingsModalComponent !== 'undefined' && account_settings_modal_component_1.AccountSettingsModalComponent) === 'function' && _a) || Object) + ], HarborShellComponent.prototype, "accountSettingsModal", void 0); + __decorate([ + core_1.ViewChild(search_result_component_1.SearchResultComponent), + __metadata('design:type', (typeof (_b = typeof search_result_component_1.SearchResultComponent !== 'undefined' && search_result_component_1.SearchResultComponent) === 'function' && _b) || Object) + ], HarborShellComponent.prototype, "searchResultComponet", void 0); + __decorate([ + core_1.ViewChild(password_setting_component_1.PasswordSettingComponent), + __metadata('design:type', (typeof (_c = typeof password_setting_component_1.PasswordSettingComponent !== 'undefined' && password_setting_component_1.PasswordSettingComponent) === 'function' && _c) || Object) + ], HarborShellComponent.prototype, "pwdSetting", void 0); + __decorate([ + core_1.ViewChild(navigator_component_1.NavigatorComponent), + __metadata('design:type', (typeof (_d = typeof navigator_component_1.NavigatorComponent !== 'undefined' && navigator_component_1.NavigatorComponent) === 'function' && _d) || Object) + ], HarborShellComponent.prototype, "navigator", void 0); + __decorate([ + core_1.ViewChild(about_dialog_component_1.AboutDialogComponent), + __metadata('design:type', (typeof (_e = typeof about_dialog_component_1.AboutDialogComponent !== 'undefined' && about_dialog_component_1.AboutDialogComponent) === 'function' && _e) || Object) + ], HarborShellComponent.prototype, "aboutDialog", void 0); + __decorate([ + core_1.ViewChild(start_component_1.StartPageComponent), + __metadata('design:type', (typeof (_f = typeof start_component_1.StartPageComponent !== 'undefined' && start_component_1.StartPageComponent) === 'function' && _f) || Object) + ], HarborShellComponent.prototype, "searchSatrt", void 0); + HarborShellComponent = __decorate([ + core_1.Component({ + selector: 'harbor-shell', + template: __webpack_require__(830), + styles: [__webpack_require__(804)] + }), + __metadata('design:paramtypes', [(typeof (_g = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _g) || Object, (typeof (_h = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _h) || Object, (typeof (_j = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _j) || Object, (typeof (_k = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _k) || Object]) + ], HarborShellComponent); + return HarborShellComponent; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; +}()); +exports.HarborShellComponent = HarborShellComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-shell.component.js.map + +/***/ }), + +/***/ 383: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +exports.modalEvents = { + USER_PROFILE: "USER_PROFILE", + CHANGE_PWD: "CHANGE_PWD", + ABOUT: "ABOUT" +}; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/modal-events.const.js.map + +/***/ }), + +/***/ 384: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var core_2 = __webpack_require__(34); +var modal_events_const_1 = __webpack_require__(383); +var session_service_1 = __webpack_require__(14); +var core_3 = __webpack_require__(257); +var shared_const_1 = __webpack_require__(2); +var app_config_service_1 = __webpack_require__(172); +var app_config_1 = __webpack_require__(244); +var NavigatorComponent = (function () { + function NavigatorComponent(session, router, translate, cookie, appConfigService) { + this.session = session; + this.router = router; + this.translate = translate; + this.cookie = cookie; + this.appConfigService = appConfigService; + // constructor(private router: Router){} + this.showAccountSettingsModal = new core_1.EventEmitter(); + this.showPwdChangeModal = new core_1.EventEmitter(); + this.sessionUser = null; + this.selectedLang = shared_const_1.enLang; + this.appConfig = new app_config_1.AppConfig(); + } + NavigatorComponent.prototype.ngOnInit = function () { + var _this = this; + this.sessionUser = this.session.getCurrentUser(); + this.selectedLang = this.translate.currentLang; + this.translate.onLangChange.subscribe(function (langChange) { + _this.selectedLang = langChange.lang; + //Keep in cookie for next use + _this.cookie.put("harbor-lang", langChange.lang); + }); + this.appConfig = this.appConfigService.getConfig(); + }; + Object.defineProperty(NavigatorComponent.prototype, "isSessionValid", { + get: function () { + return this.sessionUser != null; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigatorComponent.prototype, "accountName", { + get: function () { + return this.sessionUser ? this.sessionUser.username : ""; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigatorComponent.prototype, "currentLang", { + get: function () { + return shared_const_1.languageNames[this.selectedLang]; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigatorComponent.prototype, "isIntegrationMode", { + get: function () { + return this.appConfig.with_admiral && this.appConfig.admiral_endpoint.trim() != ""; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NavigatorComponent.prototype, "admiralLink", { + get: function () { + var routeSegments = [this.appConfig.admiral_endpoint, + "?registry_url=", + encodeURIComponent(window.location.href) + ]; + return routeSegments.join(""); + }, + enumerable: true, + configurable: true + }); + NavigatorComponent.prototype.matchLang = function (lang) { + return lang.trim() === this.selectedLang; + }; + //Open the account setting dialog + NavigatorComponent.prototype.openAccountSettingsModal = function () { + this.showAccountSettingsModal.emit({ + modalName: modal_events_const_1.modalEvents.USER_PROFILE, + modalFlag: true + }); + }; + //Open change password dialog + NavigatorComponent.prototype.openChangePwdModal = function () { + this.showPwdChangeModal.emit({ + modalName: modal_events_const_1.modalEvents.CHANGE_PWD, + modalFlag: true + }); + }; + //Open about dialog + NavigatorComponent.prototype.openAboutDialog = function () { + this.showPwdChangeModal.emit({ + modalName: modal_events_const_1.modalEvents.ABOUT, + modalFlag: true + }); + }; + //Log out system + NavigatorComponent.prototype.logOut = function () { + var _this = this; + this.session.signOff() + .then(function () { + _this.sessionUser = null; + //Naviagte to the sign in route + _this.router.navigate(["/sign-in"]); + }) + .catch(); //TODO: + }; + //Switch languages + NavigatorComponent.prototype.switchLanguage = function (lang) { + if (shared_const_1.supportedLangs.find(function (supportedLang) { return supportedLang === lang.trim(); })) { + this.translate.use(lang); + } + else { + this.translate.use(shared_const_1.enLang); //Use default + //TODO: + console.error('Language ' + lang.trim() + ' is not suppoted'); + } + //Try to switch backend lang + //this.session.switchLanguage(lang).catch(error => console.error(error)); + }; + //Handle the home action + NavigatorComponent.prototype.homeAction = function () { + if (this.sessionUser != null) { + //Navigate to default page + this.router.navigate(['harbor']); + } + else { + //Naviagte to signin page + this.router.navigate(['sign-in']); + } + }; + NavigatorComponent.prototype.openSignUp = function () { + var navigatorExtra = { + queryParams: { "sign_up": true } + }; + this.router.navigate([shared_const_1.signInRoute], navigatorExtra); + }; + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], NavigatorComponent.prototype, "showAccountSettingsModal", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], NavigatorComponent.prototype, "showPwdChangeModal", void 0); + NavigatorComponent = __decorate([ + core_1.Component({ + selector: 'navigator', + template: __webpack_require__(831), + styles: [__webpack_require__(805)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object, (typeof (_d = typeof core_3.CookieService !== 'undefined' && core_3.CookieService) === 'function' && _d) || Object, (typeof (_e = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _e) || Object]) + ], NavigatorComponent); + return NavigatorComponent; + var _a, _b, _c, _d, _e; +}()); +exports.NavigatorComponent = NavigatorComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/navigator.component.js.map + +/***/ }), + +/***/ 385: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var config_1 = __webpack_require__(173); +var ConfigurationAuthComponent = (function () { + function ConfigurationAuthComponent() { + this.currentConfig = new config_1.Configuration(); + } + Object.defineProperty(ConfigurationAuthComponent.prototype, "showLdap", { + get: function () { + return this.currentConfig && + this.currentConfig.auth_mode && + this.currentConfig.auth_mode.value === 'ldap_auth'; + }, + enumerable: true, + configurable: true + }); + ConfigurationAuthComponent.prototype.disabled = function (prop) { + return !(prop && prop.editable); + }; + ConfigurationAuthComponent.prototype.isValid = function () { + return this.authForm && this.authForm.valid; + }; + __decorate([ + core_1.Input("ldapConfig"), + __metadata('design:type', (typeof (_a = typeof config_1.Configuration !== 'undefined' && config_1.Configuration) === 'function' && _a) || Object) + ], ConfigurationAuthComponent.prototype, "currentConfig", void 0); + __decorate([ + core_1.ViewChild("authConfigFrom"), + __metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object) + ], ConfigurationAuthComponent.prototype, "authForm", void 0); + ConfigurationAuthComponent = __decorate([ + core_1.Component({ + selector: 'config-auth', + template: __webpack_require__(833), + styles: [__webpack_require__(277)] + }), + __metadata('design:paramtypes', []) + ], ConfigurationAuthComponent); + return ConfigurationAuthComponent; + var _a, _b; +}()); +exports.ConfigurationAuthComponent = ConfigurationAuthComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config-auth.component.js.map + +/***/ }), + +/***/ 386: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var config_service_1 = __webpack_require__(387); +var config_1 = __webpack_require__(173); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var shared_utils_1 = __webpack_require__(33); +var config_2 = __webpack_require__(173); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var config_auth_component_1 = __webpack_require__(385); +var config_email_component_1 = __webpack_require__(388); +var app_config_service_1 = __webpack_require__(172); +var fakePass = "fakepassword"; +var ConfigurationComponent = (function () { + function ConfigurationComponent(msgService, configService, confirmService, appConfigService) { + this.msgService = msgService; + this.configService = configService; + this.confirmService = confirmService; + this.appConfigService = appConfigService; + this.onGoing = false; + this.allConfig = new config_1.Configuration(); + this.currentTabId = ""; + this.testingOnGoing = false; + } + ConfigurationComponent.prototype.ngOnInit = function () { + var _this = this; + //First load + this.retrieveConfig(); + this.confirmSub = this.confirmService.deletionConfirm$.subscribe(function (confirmation) { + _this.reset(confirmation.data); + }); + }; + ConfigurationComponent.prototype.ngOnDestroy = function () { + if (this.confirmSub) { + this.confirmSub.unsubscribe(); + } + }; + Object.defineProperty(ConfigurationComponent.prototype, "inProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ConfigurationComponent.prototype, "testingInProgress", { + get: function () { + return this.testingOnGoing; + }, + enumerable: true, + configurable: true + }); + ConfigurationComponent.prototype.isValid = function () { + return this.repoConfigForm && + this.repoConfigForm.valid && + this.systemConfigForm && + this.systemConfigForm.valid && + this.mailConfig && + this.mailConfig.isValid() && + this.authConfig && + this.authConfig.isValid(); + }; + ConfigurationComponent.prototype.hasChanges = function () { + return !this.isEmpty(this.getChanges()); + }; + ConfigurationComponent.prototype.isMailConfigValid = function () { + return this.mailConfig && + this.mailConfig.isValid(); + }; + Object.defineProperty(ConfigurationComponent.prototype, "showTestServerBtn", { + get: function () { + return this.currentTabId === 'config-email'; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ConfigurationComponent.prototype, "showLdapServerBtn", { + get: function () { + return this.currentTabId === 'config-auth' && + this.allConfig.auth_mode && + this.allConfig.auth_mode.value === "ldap_auth"; + }, + enumerable: true, + configurable: true + }); + ConfigurationComponent.prototype.isLDAPConfigValid = function () { + return this.authConfig && this.authConfig.isValid(); + }; + ConfigurationComponent.prototype.tabLinkChanged = function (tabLink) { + this.currentTabId = tabLink.id; + }; + /** + * + * Save the changed values + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.save = function () { + var _this = this; + var changes = this.getChanges(); + if (!this.isEmpty(changes)) { + this.onGoing = true; + this.configService.saveConfiguration(changes) + .then(function (response) { + _this.onGoing = false; + //API should return the updated configurations here + //Unfortunately API does not do that + //To refresh the view, we can clone the original data copy + //or force refresh by calling service. + //HERE we choose force way + _this.retrieveConfig(); + //Reload bootstrap option + _this.appConfigService.load().catch(function (error) { return console.error("Failed to reload bootstrap option with error: ", error); }); + _this.msgService.announceMessage(response.status, "CONFIG.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.onGoing = false; + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + } + else { + //Inprop situation, should not come here + console.error("Save obort becasue nothing changed"); + } + }; + /** + * + * Discard current changes if have and reset + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.cancel = function () { + var changes = this.getChanges(); + if (!this.isEmpty(changes)) { + var msg = new deletion_message_1.DeletionMessage("CONFIG.CONFIRM_TITLE", "CONFIG.CONFIRM_SUMMARY", "", changes, shared_const_1.DeletionTargets.EMPTY); + this.confirmService.openComfirmDialog(msg); + } + else { + //Inprop situation, should not come here + console.error("Nothing changed"); + } + }; + /** + * + * Test the connection of specified mail server + * + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.testMailServer = function () { + var _this = this; + var mailSettings = {}; + var allChanges = this.getChanges(); + for (var prop in allChanges) { + if (prop.startsWith("email_")) { + mailSettings[prop] = allChanges[prop]; + } + } + this.testingOnGoing = true; + this.configService.testMailServer(mailSettings) + .then(function (response) { + _this.testingOnGoing = false; + _this.msgService.announceMessage(200, "CONFIG.TEST_MAIL_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.testingOnGoing = false; + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING); + }); + }; + ConfigurationComponent.prototype.testLDAPServer = function () { + var _this = this; + var ldapSettings = {}; + var allChanges = this.getChanges(); + for (var prop in allChanges) { + if (prop.startsWith("ldap_")) { + ldapSettings[prop] = allChanges[prop]; + } + } + console.info(ldapSettings); + this.testingOnGoing = true; + this.configService.testLDAPServer(ldapSettings) + .then(function (respone) { + _this.testingOnGoing = false; + _this.msgService.announceMessage(200, "CONFIG.TEST_LDAP_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.testingOnGoing = false; + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING); + }); + }; + ConfigurationComponent.prototype.retrieveConfig = function () { + var _this = this; + this.onGoing = true; + this.configService.getConfiguration() + .then(function (configurations) { + _this.onGoing = false; + //Add two password fields + configurations.email_password = new config_2.StringValueItem(fakePass, true); + configurations.ldap_search_password = new config_2.StringValueItem(fakePass, true); + _this.allConfig = configurations; + //Keep the original copy of the data + _this.originalCopy = _this.clone(configurations); + }) + .catch(function (error) { + _this.onGoing = false; + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + /** + * + * Get the changed fields and return a map + * + * @private + * @returns {*} + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.getChanges = function () { + var changes = {}; + if (!this.allConfig || !this.originalCopy) { + return changes; + } + for (var prop in this.allConfig) { + var field = this.originalCopy[prop]; + if (field && field.editable) { + if (field.value != this.allConfig[prop].value) { + changes[prop] = this.allConfig[prop].value; + //Fix boolean issue + if (typeof field.value === "boolean") { + changes[prop] = changes[prop] ? "1" : "0"; + } + } + } + } + return changes; + }; + /** + * + * Deep clone the configuration object + * + * @private + * @param {Configuration} src + * @returns {Configuration} + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.clone = function (src) { + var dest = new config_1.Configuration(); + if (!src) { + return dest; //Empty + } + for (var prop in src) { + if (src[prop]) { + dest[prop] = Object.assign({}, src[prop]); //Deep copy inner object + } + } + return dest; + }; + /** + * + * Reset the configuration form + * + * @private + * @param {*} changes + * + * @memberOf ConfigurationComponent + */ + ConfigurationComponent.prototype.reset = function (changes) { + if (!this.isEmpty(changes)) { + for (var prop in changes) { + if (this.originalCopy[prop]) { + this.allConfig[prop] = Object.assign({}, this.originalCopy[prop]); + } + } + } + else { + //force reset + this.retrieveConfig(); + } + }; + ConfigurationComponent.prototype.isEmpty = function (obj) { + for (var key in obj) { + if (obj.hasOwnProperty(key)) + return false; + } + return true; + }; + ConfigurationComponent.prototype.disabled = function (prop) { + return !(prop && prop.editable); + }; + __decorate([ + core_1.ViewChild("repoConfigFrom"), + __metadata('design:type', (typeof (_a = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _a) || Object) + ], ConfigurationComponent.prototype, "repoConfigForm", void 0); + __decorate([ + core_1.ViewChild("systemConfigFrom"), + __metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object) + ], ConfigurationComponent.prototype, "systemConfigForm", void 0); + __decorate([ + core_1.ViewChild(config_email_component_1.ConfigurationEmailComponent), + __metadata('design:type', (typeof (_c = typeof config_email_component_1.ConfigurationEmailComponent !== 'undefined' && config_email_component_1.ConfigurationEmailComponent) === 'function' && _c) || Object) + ], ConfigurationComponent.prototype, "mailConfig", void 0); + __decorate([ + core_1.ViewChild(config_auth_component_1.ConfigurationAuthComponent), + __metadata('design:type', (typeof (_d = typeof config_auth_component_1.ConfigurationAuthComponent !== 'undefined' && config_auth_component_1.ConfigurationAuthComponent) === 'function' && _d) || Object) + ], ConfigurationComponent.prototype, "authConfig", void 0); + ConfigurationComponent = __decorate([ + core_1.Component({ + selector: 'config', + template: __webpack_require__(834), + styles: [__webpack_require__(277)] + }), + __metadata('design:paramtypes', [(typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof config_service_1.ConfigurationService !== 'undefined' && config_service_1.ConfigurationService) === 'function' && _f) || Object, (typeof (_g = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _g) || Object, (typeof (_h = typeof app_config_service_1.AppConfigService !== 'undefined' && app_config_service_1.AppConfigService) === 'function' && _h) || Object]) + ], ConfigurationComponent); + return ConfigurationComponent; + var _a, _b, _c, _d, _e, _f, _g, _h; +}()); +exports.ConfigurationComponent = ConfigurationComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.component.js.map + +/***/ }), + +/***/ 387: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var configEndpoint = "/api/configurations"; +var emailEndpoint = "/api/email/ping"; +var ldapEndpoint = "/api/ldap/ping"; +var ConfigurationService = (function () { + function ConfigurationService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Accept": 'application/json', + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + 'headers': this.headers + }); + } + ConfigurationService.prototype.getConfiguration = function () { + return this.http.get(configEndpoint, this.options).toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return Promise.reject(error); }); + }; + ConfigurationService.prototype.saveConfiguration = function (values) { + return this.http.put(configEndpoint, JSON.stringify(values), this.options) + .toPromise() + .then(function (response) { return response; }) + .catch(function (error) { return Promise.reject(error); }); + }; + ConfigurationService.prototype.testMailServer = function (mailSettings) { + return this.http.post(emailEndpoint, JSON.stringify(mailSettings), this.options) + .toPromise() + .then(function (response) { return response; }) + .catch(function (error) { return Promise.reject(error); }); + }; + ConfigurationService.prototype.testLDAPServer = function (ldapSettings) { + return this.http.post(ldapEndpoint, JSON.stringify(ldapSettings), this.options) + .toPromise() + .then(function (response) { return response; }) + .catch(function (error) { return Promise.reject(error); }); + }; + ConfigurationService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], ConfigurationService); + return ConfigurationService; + var _a; +}()); +exports.ConfigurationService = ConfigurationService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.service.js.map + +/***/ }), + +/***/ 388: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +var config_1 = __webpack_require__(173); +var ConfigurationEmailComponent = (function () { + function ConfigurationEmailComponent() { + this.currentConfig = new config_1.Configuration(); + } + ConfigurationEmailComponent.prototype.disabled = function (prop) { + return !(prop && prop.editable); + }; + ConfigurationEmailComponent.prototype.isValid = function () { + return this.mailForm && this.mailForm.valid; + }; + __decorate([ + core_1.Input("mailConfig"), + __metadata('design:type', (typeof (_a = typeof config_1.Configuration !== 'undefined' && config_1.Configuration) === 'function' && _a) || Object) + ], ConfigurationEmailComponent.prototype, "currentConfig", void 0); + __decorate([ + core_1.ViewChild("mailConfigFrom"), + __metadata('design:type', (typeof (_b = typeof forms_1.NgForm !== 'undefined' && forms_1.NgForm) === 'function' && _b) || Object) + ], ConfigurationEmailComponent.prototype, "mailForm", void 0); + ConfigurationEmailComponent = __decorate([ + core_1.Component({ + selector: 'config-email', + template: __webpack_require__(835), + styles: [__webpack_require__(277)] + }), + __metadata('design:paramtypes', []) + ], ConfigurationEmailComponent); + return ConfigurationEmailComponent; + var _a, _b; +}()); +exports.ConfigurationEmailComponent = ConfigurationEmailComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config-email.component.js.map + +/***/ }), + +/***/ 389: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var shared_const_1 = __webpack_require__(2); +var Message = (function () { + function Message() { + this.isAppLevel = false; + } + Object.defineProperty(Message.prototype, "type", { + get: function () { + switch (this.alertType) { + case shared_const_1.AlertType.DANGER: + return 'alert-danger'; + case shared_const_1.AlertType.INFO: + return 'alert-info'; + case shared_const_1.AlertType.SUCCESS: + return 'alert-success'; + case shared_const_1.AlertType.WARNING: + return 'alert-warning'; + default: + return 'alert-warning'; + } + }, + enumerable: true, + configurable: true + }); + Message.newMessage = function (statusCode, message, alertType) { + var m = new Message(); + m.statusCode = statusCode; + m.message = message; + m.alertType = alertType; + return m; + }; + Message.prototype.toString = function () { + return 'Message with statusCode:' + this.statusCode + + ', message:' + this.message + + ', alert type:' + this.type; + }; + return Message; +}()); +exports.Message = Message; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.js.map + +/***/ }), + +/***/ 390: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var audit_log_1 = __webpack_require__(611); +var audit_log_service_1 = __webpack_require__(247); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var optionalSearch = { 0: 'AUDIT_LOG.ADVANCED', 1: 'AUDIT_LOG.SIMPLE' }; +var FilterOption = (function () { + function FilterOption(iKey, iDescription, iChecked) { + this.iKey = iKey; + this.iDescription = iDescription; + this.iChecked = iChecked; + this.key = iKey; + this.description = iDescription; + this.checked = iChecked; + } + FilterOption.prototype.toString = function () { + return 'key:' + this.key + ', description:' + this.description + ', checked:' + this.checked + '\n'; + }; + return FilterOption; +}()); +var AuditLogComponent = (function () { + function AuditLogComponent(route, router, auditLogService, messageService) { + var _this = this; + this.route = route; + this.router = router; + this.auditLogService = auditLogService; + this.messageService = messageService; + this.queryParam = new audit_log_1.AuditLog(); + this.toggleName = optionalSearch; + this.currentOption = 0; + this.filterOptions = [ + new FilterOption('all', 'AUDIT_LOG.ALL_OPERATIONS', true), + new FilterOption('pull', 'AUDIT_LOG.PULL', true), + new FilterOption('push', 'AUDIT_LOG.PUSH', true), + new FilterOption('create', 'AUDIT_LOG.CREATE', true), + new FilterOption('delete', 'AUDIT_LOG.DELETE', true), + new FilterOption('others', 'AUDIT_LOG.OTHERS', true) + ]; + this.pageOffset = 1; + this.pageSize = 2; + //Get current user from registered resolver. + this.route.data.subscribe(function (data) { return _this.currentUser = data['auditLogResolver']; }); + } + AuditLogComponent.prototype.ngOnInit = function () { + this.projectId = +this.route.snapshot.parent.params['id']; + console.log('Get projectId from route params snapshot:' + this.projectId); + this.queryParam.project_id = this.projectId; + this.queryParam.page_size = this.pageSize; + }; + AuditLogComponent.prototype.retrieve = function (state) { + var _this = this; + if (state) { + this.queryParam.page = state.page.to + 1; + } + this.auditLogService + .listAuditLogs(this.queryParam) + .subscribe(function (response) { + _this.totalRecordCount = response.headers.get('x-total-count'); + _this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize); + console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage); + _this.auditLogs = response.json(); + }, function (error) { + _this.router.navigate(['/harbor', 'projects']); + _this.messageService.announceMessage(error.status, 'Failed to list audit logs with project ID:' + _this.queryParam.project_id, shared_const_1.AlertType.DANGER); + }); + }; + AuditLogComponent.prototype.doSearchAuditLogs = function (searchUsername) { + this.queryParam.username = searchUsername; + this.retrieve(); + }; + AuditLogComponent.prototype.doSearchByTimeRange = function (strDate, target) { + var oneDayOffset = 3600 * 24; + switch (target) { + case 'begin': + this.queryParam.begin_timestamp = new Date(strDate).getTime() / 1000; + break; + case 'end': + this.queryParam.end_timestamp = new Date(strDate).getTime() / 1000 + oneDayOffset; + break; + } + console.log('Search audit log filtered by time range, begin: ' + this.queryParam.begin_timestamp + ', end:' + this.queryParam.end_timestamp); + this.retrieve(); + }; + AuditLogComponent.prototype.doSearchByOptions = function () { + var selectAll = true; + var operationFilter = []; + for (var i in this.filterOptions) { + var filterOption = this.filterOptions[i]; + if (filterOption.checked) { + operationFilter.push(this.filterOptions[i].key); + } + else { + selectAll = false; + } + } + if (selectAll) { + operationFilter = []; + } + this.queryParam.keywords = operationFilter.join('/'); + this.retrieve(); + console.log('Search option filter:' + operationFilter.join('/')); + }; + AuditLogComponent.prototype.toggleOptionalName = function (option) { + (option === 1) ? this.currentOption = 0 : this.currentOption = 1; + }; + AuditLogComponent.prototype.toggleFilterOption = function (option) { + var selectedOption = this.filterOptions.find(function (value) { return (value.key === option); }); + selectedOption.checked = !selectedOption.checked; + if (selectedOption.key === 'all') { + this.filterOptions.filter(function (value) { return value.key !== selectedOption.key; }).forEach(function (value) { return value.checked = selectedOption.checked; }); + } + else { + if (!selectedOption.checked) { + this.filterOptions.find(function (value) { return value.key === 'all'; }).checked = false; + } + var selectAll_1 = true; + this.filterOptions.filter(function (value) { return value.key !== 'all'; }).forEach(function (value) { + if (!value.checked) { + selectAll_1 = false; + } + }); + this.filterOptions.find(function (value) { return value.key === 'all'; }).checked = selectAll_1; + } + this.doSearchByOptions(); + }; + AuditLogComponent.prototype.refresh = function () { + this.retrieve(); + }; + AuditLogComponent = __decorate([ + core_1.Component({ + selector: 'audit-log', + template: __webpack_require__(837), + styles: [__webpack_require__(807)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof audit_log_service_1.AuditLogService !== 'undefined' && audit_log_service_1.AuditLogService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object]) + ], AuditLogComponent); + return AuditLogComponent; + var _a, _b, _c, _d; +}()); +exports.AuditLogComponent = AuditLogComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.component.js.map + +/***/ }), + +/***/ 391: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var audit_log_service_1 = __webpack_require__(247); +var session_service_1 = __webpack_require__(14); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var shared_utils_1 = __webpack_require__(33); +var RecentLogComponent = (function () { + function RecentLogComponent(session, msgService, logService) { + this.session = session; + this.msgService = msgService; + this.logService = logService; + this.sessionUser = null; + this.onGoing = false; + this.lines = 10; //Support 10, 25 and 50 + this.sessionUser = this.session.getCurrentUser(); //Initialize session + } + RecentLogComponent.prototype.ngOnInit = function () { + this.retrieveLogs(); + }; + Object.defineProperty(RecentLogComponent.prototype, "inProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + RecentLogComponent.prototype.setLines = function (lines) { + this.lines = lines; + if (this.lines < 10) { + this.lines = 10; + } + this.retrieveLogs(); + }; + RecentLogComponent.prototype.doFilter = function (terms) { + var _this = this; + if (terms.trim() === "") { + this.recentLogs = this.logsCache.filter(function (log) { return log.username != ""; }); + return; + } + this.recentLogs = this.logsCache.filter(function (log) { return _this.isMatched(terms, log); }); + }; + RecentLogComponent.prototype.refresh = function () { + this.retrieveLogs(); + }; + RecentLogComponent.prototype.formatDateTime = function (dateTime) { + var dt = new Date(dateTime); + return dt.toLocaleString(); + }; + RecentLogComponent.prototype.retrieveLogs = function () { + var _this = this; + if (this.lines < 10) { + this.lines = 10; + } + this.onGoing = true; + this.logService.getRecentLogs(this.lines) + .subscribe(function (response) { + _this.onGoing = false; + _this.logsCache = response; //Keep the data + _this.recentLogs = _this.logsCache.filter(function (log) { return log.username != ""; }); //To display + }, function (error) { + _this.onGoing = false; + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + RecentLogComponent.prototype.isMatched = function (terms, log) { + var reg = new RegExp('.*' + terms + '.*', 'i'); + return reg.test(log.username) || + reg.test(log.repo_name) || + reg.test(log.operation); + }; + RecentLogComponent = __decorate([ + core_1.Component({ + selector: 'recent-log', + template: __webpack_require__(838), + styles: [__webpack_require__(808)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof audit_log_service_1.AuditLogService !== 'undefined' && audit_log_service_1.AuditLogService) === 'function' && _c) || Object]) + ], RecentLogComponent); + return RecentLogComponent; + var _a, _b, _c; +}()); +exports.RecentLogComponent = RecentLogComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/recent-log.component.js.map + +/***/ }), + +/***/ 392: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var project_1 = __webpack_require__(615); +var project_service_1 = __webpack_require__(174); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var core_2 = __webpack_require__(34); +var CreateProjectComponent = (function () { + function CreateProjectComponent(projectService, messageService, translateService) { + this.projectService = projectService; + this.messageService = messageService; + this.translateService = translateService; + this.project = new project_1.Project(); + this.create = new core_1.EventEmitter(); + } + CreateProjectComponent.prototype.onSubmit = function () { + var _this = this; + this.projectService + .createProject(this.project.name, this.project.public ? 1 : 0) + .subscribe(function (status) { + _this.create.emit(true); + _this.createProjectOpened = false; + }, function (error) { + _this.errorMessageOpened = true; + if (error instanceof http_1.Response) { + switch (error.status) { + case 409: + _this.translateService.get('PROJECT.NAME_ALREADY_EXISTS').subscribe(function (res) { return _this.errorMessage = res; }); + break; + case 400: + _this.translateService.get('PROJECT.NAME_IS_ILLEGAL').subscribe(function (res) { return _this.errorMessage = res; }); + break; + default: + _this.translateService.get('PROJECT.UNKNOWN_ERROR').subscribe(function (res) { + _this.errorMessage = res; + _this.messageService.announceMessage(error.status, _this.errorMessage, shared_const_1.AlertType.DANGER); + }); + } + } + }); + }; + CreateProjectComponent.prototype.newProject = function () { + this.project = new project_1.Project(); + this.createProjectOpened = true; + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + CreateProjectComponent.prototype.onErrorMessageClose = function () { + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], CreateProjectComponent.prototype, "create", void 0); + CreateProjectComponent = __decorate([ + core_1.Component({ + selector: 'create-project', + template: __webpack_require__(839), + styles: [__webpack_require__(809)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object]) + ], CreateProjectComponent); + return CreateProjectComponent; + var _a, _b, _c; +}()); +exports.CreateProjectComponent = CreateProjectComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-project.component.js.map + +/***/ }), + +/***/ 393: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var search_trigger_service_1 = __webpack_require__(95); +var shared_const_1 = __webpack_require__(2); +var ListProjectComponent = (function () { + function ListProjectComponent(session, router, searchTrigger) { + this.session = session; + this.router = router; + this.searchTrigger = searchTrigger; + this.pageOffset = 1; + this.paginate = new core_1.EventEmitter(); + this.toggle = new core_1.EventEmitter(); + this.delete = new core_1.EventEmitter(); + this.mode = shared_const_1.ListMode.FULL; + } + ListProjectComponent.prototype.ngOnInit = function () { + }; + Object.defineProperty(ListProjectComponent.prototype, "listFullMode", { + get: function () { + return this.mode === shared_const_1.ListMode.FULL; + }, + enumerable: true, + configurable: true + }); + ListProjectComponent.prototype.goToLink = function (proId) { + this.searchTrigger.closeSearch(false); + var linkUrl = ['harbor', 'projects', proId, 'repository']; + if (!this.session.getCurrentUser()) { + var navigatorExtra = { + queryParams: { "redirect_url": linkUrl.join("/") } + }; + this.router.navigate([shared_const_1.signInRoute], navigatorExtra); + } + else { + this.router.navigate(linkUrl); + } + }; + ListProjectComponent.prototype.refresh = function (state) { + this.paginate.emit(state); + }; + ListProjectComponent.prototype.toggleProject = function (p) { + this.toggle.emit(p); + }; + ListProjectComponent.prototype.deleteProject = function (p) { + this.delete.emit(p); + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Array) + ], ListProjectComponent.prototype, "projects", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListProjectComponent.prototype, "totalPage", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListProjectComponent.prototype, "totalRecordCount", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListProjectComponent.prototype, "paginate", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListProjectComponent.prototype, "toggle", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListProjectComponent.prototype, "delete", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', String) + ], ListProjectComponent.prototype, "mode", void 0); + ListProjectComponent = __decorate([ + core_1.Component({ + selector: 'list-project', + template: __webpack_require__(840) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _c) || Object]) + ], ListProjectComponent); + return ListProjectComponent; + var _a, _b, _c; +}()); +exports.ListProjectComponent = ListProjectComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-project.component.js.map + +/***/ }), + +/***/ 394: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var member_service_1 = __webpack_require__(248); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var core_2 = __webpack_require__(34); +var member_1 = __webpack_require__(613); +var AddMemberComponent = (function () { + function AddMemberComponent(memberService, messageService, translateService) { + this.memberService = memberService; + this.messageService = messageService; + this.translateService = translateService; + this.member = new member_1.Member(); + this.added = new core_1.EventEmitter(); + } + AddMemberComponent.prototype.onSubmit = function () { + var _this = this; + console.log('Adding member:' + JSON.stringify(this.member)); + this.memberService + .addMember(this.projectId, this.member.username, this.member.role_id) + .subscribe(function (response) { + console.log('Added member successfully.'); + _this.added.emit(true); + _this.addMemberOpened = false; + }, function (error) { + _this.errorMessageOpened = true; + if (error instanceof http_1.Response) { + switch (error.status) { + case 404: + _this.translateService.get('MEMBER.USERNAME_DOES_NOT_EXISTS').subscribe(function (res) { return _this.errorMessage = res; }); + break; + case 409: + _this.translateService.get('MEMBER.USERNAME_ALREADY_EXISTS').subscribe(function (res) { return _this.errorMessage = res; }); + break; + default: + _this.translateService.get('MEMBER.UNKNOWN_ERROR').subscribe(function (res) { + _this.errorMessage = res; + _this.messageService.announceMessage(error.status, _this.errorMessage, shared_const_1.AlertType.DANGER); + }); + } + } + console.log('Failed to add member of project:' + _this.projectId, ' with error:' + error); + }); + }; + AddMemberComponent.prototype.openAddMemberModal = function () { + this.errorMessageOpened = false; + this.errorMessage = ''; + this.member = new member_1.Member(); + this.addMemberOpened = true; + }; + AddMemberComponent.prototype.onErrorMessageClose = function () { + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], AddMemberComponent.prototype, "projectId", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], AddMemberComponent.prototype, "added", void 0); + AddMemberComponent = __decorate([ + core_1.Component({ + selector: 'add-member', + template: __webpack_require__(841) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof member_service_1.MemberService !== 'undefined' && member_service_1.MemberService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object]) + ], AddMemberComponent); + return AddMemberComponent; + var _a, _b, _c; +}()); +exports.AddMemberComponent = AddMemberComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/add-member.component.js.map + +/***/ }), + +/***/ 395: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var member_service_1 = __webpack_require__(248); +var add_member_component_1 = __webpack_require__(394); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var session_service_1 = __webpack_require__(14); +__webpack_require__(874); +__webpack_require__(133); +__webpack_require__(85); +__webpack_require__(132); +exports.roleInfo = { 1: 'MEMBER.PROJECT_ADMIN', 2: 'MEMBER.DEVELOPER', 3: 'MEMBER.GUEST' }; +var MemberComponent = (function () { + function MemberComponent(route, router, memberService, messageService, deletionDialogService, session) { + var _this = this; + this.route = route; + this.router = router; + this.memberService = memberService; + this.messageService = messageService; + this.deletionDialogService = deletionDialogService; + this.roleInfo = exports.roleInfo; + //Get current user from registered resolver. + this.currentUser = session.getCurrentUser(); + deletionDialogService.deletionConfirm$.subscribe(function (message) { + if (message && message.targetId === shared_const_1.DeletionTargets.PROJECT_MEMBER) { + _this.memberService + .deleteMember(_this.projectId, message.data) + .subscribe(function (response) { + console.log('Successful change role with user ' + message.data); + _this.retrieve(_this.projectId, ''); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to change role with user ' + message.data, shared_const_1.AlertType.DANGER); }); + } + }); + } + MemberComponent.prototype.retrieve = function (projectId, username) { + var _this = this; + this.memberService + .listMembers(projectId, username) + .subscribe(function (response) { return _this.members = response; }, function (error) { + _this.router.navigate(['/harbor', 'projects']); + _this.messageService.announceMessage(error.status, 'Failed to get project member with project ID:' + projectId, shared_const_1.AlertType.DANGER); + }); + }; + MemberComponent.prototype.ngOnInit = function () { + //Get projectId from route params snapshot. + this.projectId = +this.route.snapshot.parent.params['id']; + console.log('Get projectId from route params snapshot:' + this.projectId); + this.retrieve(this.projectId, ''); + }; + MemberComponent.prototype.openAddMemberModal = function () { + this.addMemberComponent.openAddMemberModal(); + }; + MemberComponent.prototype.addedMember = function () { + this.retrieve(this.projectId, ''); + }; + MemberComponent.prototype.changeRole = function (userId, roleId) { + var _this = this; + this.memberService + .changeMemberRole(this.projectId, userId, roleId) + .subscribe(function (response) { + console.log('Successful change role with user ' + userId + ' to roleId ' + roleId); + _this.retrieve(_this.projectId, ''); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to change role with user ' + userId + ' to roleId ' + roleId, shared_const_1.AlertType.DANGER); }); + }; + MemberComponent.prototype.deleteMember = function (userId) { + var deletionMessage = new deletion_message_1.DeletionMessage('MEMBER.DELETION_TITLE', 'MEMBER.DELETION_SUMMARY', userId + "", userId, shared_const_1.DeletionTargets.PROJECT_MEMBER); + this.deletionDialogService.openComfirmDialog(deletionMessage); + }; + MemberComponent.prototype.doSearch = function (searchMember) { + this.retrieve(this.projectId, searchMember); + }; + MemberComponent.prototype.refresh = function () { + this.retrieve(this.projectId, ''); + }; + __decorate([ + core_1.ViewChild(add_member_component_1.AddMemberComponent), + __metadata('design:type', (typeof (_a = typeof add_member_component_1.AddMemberComponent !== 'undefined' && add_member_component_1.AddMemberComponent) === 'function' && _a) || Object) + ], MemberComponent.prototype, "addMemberComponent", void 0); + MemberComponent = __decorate([ + core_1.Component({ + template: __webpack_require__(842) + }), + __metadata('design:paramtypes', [(typeof (_b = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _b) || Object, (typeof (_c = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _c) || Object, (typeof (_d = typeof member_service_1.MemberService !== 'undefined' && member_service_1.MemberService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object, (typeof (_f = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _f) || Object, (typeof (_g = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _g) || Object]) + ], MemberComponent); + return MemberComponent; + var _a, _b, _c, _d, _e, _f, _g; +}()); +exports.MemberComponent = MemberComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.component.js.map + +/***/ }), + +/***/ 396: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var ProjectDetailComponent = (function () { + function ProjectDetailComponent(route, router, sessionService) { + var _this = this; + this.route = route; + this.router = router; + this.sessionService = sessionService; + this.route.data.subscribe(function (data) { return _this.currentProject = data['projectResolver']; }); + } + Object.defineProperty(ProjectDetailComponent.prototype, "isSystemAdmin", { + get: function () { + var account = this.sessionService.getCurrentUser(); + return account != null && account.has_admin_role > 0; + }, + enumerable: true, + configurable: true + }); + ProjectDetailComponent = __decorate([ + core_1.Component({ + selector: 'project-detail', + template: __webpack_require__(843), + styles: [__webpack_require__(810)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object]) + ], ProjectDetailComponent); + return ProjectDetailComponent; + var _a, _b, _c; +}()); +exports.ProjectDetailComponent = ProjectDetailComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project-detail.component.js.map + +/***/ }), + +/***/ 397: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var project_service_1 = __webpack_require__(174); +var ProjectRoutingResolver = (function () { + function ProjectRoutingResolver(projectService, router) { + this.projectService = projectService; + this.router = router; + } + ProjectRoutingResolver.prototype.resolve = function (route, state) { + var _this = this; + var projectId = route.params['id']; + return this.projectService + .getProject(projectId) + .then(function (project) { + if (project) { + return project; + } + else { + _this.router.navigate(['/harbor', 'projects']); + return null; + } + }); + }; + ProjectRoutingResolver = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], ProjectRoutingResolver); + return ProjectRoutingResolver; + var _a, _b; +}()); +exports.ProjectRoutingResolver = ProjectRoutingResolver; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project-routing-resolver.service.js.map + +/***/ }), + +/***/ 398: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var project_service_1 = __webpack_require__(174); +var create_project_component_1 = __webpack_require__(392); +var list_project_component_1 = __webpack_require__(393); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var shared_const_2 = __webpack_require__(2); +var types = { 0: 'PROJECT.MY_PROJECTS', 1: 'PROJECT.PUBLIC_PROJECTS' }; +var ProjectComponent = (function () { + function ProjectComponent(projectService, messageService, deletionDialogService) { + var _this = this; + this.projectService = projectService; + this.messageService = messageService; + this.deletionDialogService = deletionDialogService; + this.selected = []; + this.projectTypes = types; + this.currentFilteredType = 0; + this.page = 1; + this.pageSize = 3; + this.subscription = deletionDialogService.deletionConfirm$.subscribe(function (message) { + if (message && message.targetId === shared_const_2.DeletionTargets.PROJECT) { + var projectId_1 = message.data; + _this.projectService + .deleteProject(projectId_1) + .subscribe(function (response) { + console.log('Successful delete project with ID:' + projectId_1); + _this.retrieve(); + }, function (error) { return _this.messageService.announceMessage(error.status, error, shared_const_1.AlertType.WARNING); }); + } + }); + } + ProjectComponent.prototype.ngOnInit = function () { + this.projectName = ''; + this.isPublic = 0; + }; + ProjectComponent.prototype.retrieve = function (state) { + var _this = this; + if (state) { + this.page = state.page.to + 1; + } + this.projectService + .listProjects(this.projectName, this.isPublic, this.page, this.pageSize) + .subscribe(function (response) { + _this.totalRecordCount = response.headers.get('x-total-count'); + _this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize); + console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage); + _this.changedProjects = response.json(); + }, function (error) { return _this.messageService.announceAppLevelMessage(error.status, error, shared_const_1.AlertType.WARNING); }); + }; + ProjectComponent.prototype.openModal = function () { + this.creationProject.newProject(); + }; + ProjectComponent.prototype.createProject = function (created) { + if (created) { + this.retrieve(); + } + }; + ProjectComponent.prototype.doSearchProjects = function (projectName) { + console.log('Search for project name:' + projectName); + this.projectName = projectName; + this.retrieve(); + }; + ProjectComponent.prototype.doFilterProjects = function (filteredType) { + console.log('Filter projects with type:' + types[filteredType]); + this.isPublic = filteredType; + this.retrieve(); + }; + ProjectComponent.prototype.toggleProject = function (p) { + var _this = this; + if (p) { + p.public === 0 ? p.public = 1 : p.public = 0; + this.projectService + .toggleProjectPublic(p.project_id, p.public) + .subscribe(function (response) { return console.log('Successful toggled project_id:' + p.project_id); }, function (error) { return _this.messageService.announceMessage(error.status, error, shared_const_1.AlertType.WARNING); }); + } + }; + ProjectComponent.prototype.deleteProject = function (p) { + var deletionMessage = new deletion_message_1.DeletionMessage('PROJECT.DELETION_TITLE', 'PROJECT.DELETION_SUMMARY', p.name, p.project_id, shared_const_2.DeletionTargets.PROJECT); + this.deletionDialogService.openComfirmDialog(deletionMessage); + }; + ProjectComponent.prototype.refresh = function () { + this.retrieve(); + }; + __decorate([ + core_1.ViewChild(create_project_component_1.CreateProjectComponent), + __metadata('design:type', (typeof (_a = typeof create_project_component_1.CreateProjectComponent !== 'undefined' && create_project_component_1.CreateProjectComponent) === 'function' && _a) || Object) + ], ProjectComponent.prototype, "creationProject", void 0); + __decorate([ + core_1.ViewChild(list_project_component_1.ListProjectComponent), + __metadata('design:type', (typeof (_b = typeof list_project_component_1.ListProjectComponent !== 'undefined' && list_project_component_1.ListProjectComponent) === 'function' && _b) || Object) + ], ProjectComponent.prototype, "listProject", void 0); + ProjectComponent = __decorate([ + core_1.Component({ + selector: 'project', + template: __webpack_require__(844), + styles: [__webpack_require__(811)] + }), + __metadata('design:paramtypes', [(typeof (_c = typeof project_service_1.ProjectService !== 'undefined' && project_service_1.ProjectService) === 'function' && _c) || Object, (typeof (_d = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _d) || Object, (typeof (_e = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _e) || Object]) + ], ProjectComponent); + return ProjectComponent; + var _a, _b, _c, _d, _e; +}()); +exports.ProjectComponent = ProjectComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.component.js.map + +/***/ }), + +/***/ 399: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var replication_service_1 = __webpack_require__(79); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var target_1 = __webpack_require__(249); +var core_2 = __webpack_require__(34); +var CreateEditDestinationComponent = (function () { + function CreateEditDestinationComponent(replicationService, messageService, translateService) { + this.replicationService = replicationService; + this.messageService = messageService; + this.translateService = translateService; + this.target = new target_1.Target(); + this.reload = new core_1.EventEmitter(); + } + CreateEditDestinationComponent.prototype.openCreateEditTarget = function (targetId) { + var _this = this; + this.target = new target_1.Target(); + this.createEditDestinationOpened = true; + this.errorMessageOpened = false; + this.errorMessage = ''; + this.pingTestMessage = ''; + this.pingStatus = true; + this.testOngoing = false; + if (targetId) { + this.actionType = shared_const_1.ActionType.EDIT; + this.translateService.get('DESTINATION.TITLE_EDIT').subscribe(function (res) { return _this.modalTitle = res; }); + this.replicationService + .getTarget(targetId) + .subscribe(function (target) { return _this.target = target; }, function (error) { return _this.messageService + .announceMessage(error.status, 'DESTINATION.FAILED_TO_GET_TARGET', shared_const_1.AlertType.DANGER); }); + } + else { + this.actionType = shared_const_1.ActionType.ADD_NEW; + this.translateService.get('DESTINATION.TITLE_ADD').subscribe(function (res) { return _this.modalTitle = res; }); + } + }; + CreateEditDestinationComponent.prototype.testConnection = function () { + var _this = this; + this.translateService.get('DESTINATION.TESTING_CONNECTION').subscribe(function (res) { return _this.pingTestMessage = res; }); + this.pingStatus = true; + this.testOngoing = !this.testOngoing; + this.replicationService + .pingTarget(this.target) + .subscribe(function (response) { + _this.pingStatus = true; + _this.translateService.get('DESTINATION.TEST_CONNECTION_SUCCESS').subscribe(function (res) { return _this.pingTestMessage = res; }); + _this.testOngoing = !_this.testOngoing; + }, function (error) { + _this.pingStatus = false; + _this.translateService.get('DESTINATION.TEST_CONNECTION_FAILURE').subscribe(function (res) { return _this.pingTestMessage = res; }); + _this.testOngoing = !_this.testOngoing; + }); + }; + CreateEditDestinationComponent.prototype.onSubmit = function () { + var _this = this; + this.errorMessage = ''; + this.errorMessageOpened = false; + switch (this.actionType) { + case shared_const_1.ActionType.ADD_NEW: + this.replicationService + .createTarget(this.target) + .subscribe(function (response) { + console.log('Successful added target.'); + _this.createEditDestinationOpened = false; + _this.reload.emit(true); + }, function (error) { + _this.errorMessageOpened = true; + var errorMessageKey = ''; + switch (error.status) { + case 409: + errorMessageKey = 'DESTINATION.CONFLICT_NAME'; + break; + case 400: + errorMessageKey = 'DESTINATION.INVALID_NAME'; + break; + default: + errorMessageKey = 'UNKNOWN_ERROR'; + } + _this.translateService + .get(errorMessageKey) + .subscribe(function (res) { + _this.errorMessage = res; + _this.messageService.announceMessage(error.status, errorMessageKey, shared_const_1.AlertType.DANGER); + }); + }); + break; + case shared_const_1.ActionType.EDIT: + this.replicationService + .updateTarget(this.target) + .subscribe(function (response) { + console.log('Successful updated target.'); + _this.createEditDestinationOpened = false; + _this.reload.emit(true); + }, function (error) { + _this.errorMessageOpened = true; + _this.errorMessage = 'Failed to update target:' + error; + var errorMessageKey = ''; + switch (error.status) { + case 409: + errorMessageKey = 'DESTINATION.CONFLICT_NAME'; + break; + case 400: + errorMessageKey = 'DESTINATION.INVALID_NAME'; + break; + default: + errorMessageKey = 'UNKNOWN_ERROR'; + } + _this.translateService + .get(errorMessageKey) + .subscribe(function (res) { + _this.errorMessage = res; + _this.messageService.announceMessage(error.status, errorMessageKey, shared_const_1.AlertType.DANGER); + }); + }); + break; + } + }; + CreateEditDestinationComponent.prototype.onErrorMessageClose = function () { + this.errorMessageOpened = false; + this.errorMessage = ''; + }; + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], CreateEditDestinationComponent.prototype, "reload", void 0); + CreateEditDestinationComponent = __decorate([ + core_1.Component({ + selector: 'create-edit-destination', + template: __webpack_require__(845) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object]) + ], CreateEditDestinationComponent); + return CreateEditDestinationComponent; + var _a, _b, _c; +}()); +exports.CreateEditDestinationComponent = CreateEditDestinationComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-destination.component.js.map + +/***/ }), + +/***/ 400: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var target_1 = __webpack_require__(249); +var replication_service_1 = __webpack_require__(79); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var shared_const_2 = __webpack_require__(2); +var create_edit_destination_component_1 = __webpack_require__(399); +var DestinationComponent = (function () { + function DestinationComponent(replicationService, messageService, deletionDialogService) { + var _this = this; + this.replicationService = replicationService; + this.messageService = messageService; + this.deletionDialogService = deletionDialogService; + this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(function (message) { + var targetId = message.data; + _this.replicationService + .deleteTarget(targetId) + .subscribe(function (response) { + console.log('Successful deleted target with ID:' + targetId); + _this.reload(); + }, function (error) { return _this.messageService + .announceMessage(error.status, 'Failed to delete target with ID:' + targetId + ', error:' + error, shared_const_1.AlertType.DANGER); }); + }); + } + DestinationComponent.prototype.ngOnInit = function () { + this.targetName = ''; + this.retrieve(''); + }; + DestinationComponent.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; + DestinationComponent.prototype.retrieve = function (targetName) { + var _this = this; + this.replicationService + .listTargets(targetName) + .subscribe(function (targets) { return _this.targets = targets; }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get targets:' + error, shared_const_1.AlertType.DANGER); }); + }; + DestinationComponent.prototype.doSearchTargets = function (targetName) { + this.targetName = targetName; + this.retrieve(targetName); + }; + DestinationComponent.prototype.refreshTargets = function () { + this.retrieve(''); + }; + DestinationComponent.prototype.reload = function () { + this.retrieve(this.targetName); + }; + DestinationComponent.prototype.openModal = function () { + this.createEditDestinationComponent.openCreateEditTarget(); + this.target = new target_1.Target(); + }; + DestinationComponent.prototype.editTarget = function (target) { + if (target) { + this.createEditDestinationComponent.openCreateEditTarget(target.id); + } + }; + DestinationComponent.prototype.deleteTarget = function (target) { + if (target) { + var targetId = target.id; + var deletionMessage = new deletion_message_1.DeletionMessage('REPLICATION.DELETION_TITLE_TARGET', 'REPLICATION.DELETION_SUMMARY_TARGET', target.name, target.id, shared_const_2.DeletionTargets.TARGET); + this.deletionDialogService.openComfirmDialog(deletionMessage); + } + }; + __decorate([ + core_1.ViewChild(create_edit_destination_component_1.CreateEditDestinationComponent), + __metadata('design:type', (typeof (_a = typeof create_edit_destination_component_1.CreateEditDestinationComponent !== 'undefined' && create_edit_destination_component_1.CreateEditDestinationComponent) === 'function' && _a) || Object) + ], DestinationComponent.prototype, "createEditDestinationComponent", void 0); + DestinationComponent = __decorate([ + core_1.Component({ + selector: 'destination', + template: __webpack_require__(846) + }), + __metadata('design:paramtypes', [(typeof (_b = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object]) + ], DestinationComponent); + return DestinationComponent; + var _a, _b, _c, _d; +}()); +exports.DestinationComponent = DestinationComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/destination.component.js.map + +/***/ }), + +/***/ 401: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var ReplicationManagementComponent = (function () { + function ReplicationManagementComponent() { + } + ReplicationManagementComponent = __decorate([ + core_1.Component({ + selector: 'replication-management', + template: __webpack_require__(848), + styles: [__webpack_require__(812)] + }), + __metadata('design:paramtypes', []) + ], ReplicationManagementComponent); + return ReplicationManagementComponent; +}()); +exports.ReplicationManagementComponent = ReplicationManagementComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication-management.component.js.map + +/***/ }), + +/***/ 402: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var create_edit_policy_component_1 = __webpack_require__(252); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var session_service_1 = __webpack_require__(14); +var replication_service_1 = __webpack_require__(79); +var ruleStatus = [ + { 'key': '', 'description': 'REPLICATION.ALL_STATUS' }, + { 'key': '1', 'description': 'REPLICATION.ENABLED' }, + { 'key': '0', 'description': 'REPLICATION.DISABLED' } +]; +var jobStatus = [ + { 'key': '', 'description': 'REPLICATION.ALL' }, + { 'key': 'pending', 'description': 'REPLICATION.PENDING' }, + { 'key': 'running', 'description': 'REPLICATION.RUNNING' }, + { 'key': 'error', 'description': 'REPLICATION.ERROR' }, + { 'key': 'retrying', 'description': 'REPLICATION.RETRYING' }, + { 'key': 'stopped', 'description': 'REPLICATION.STOPPED' }, + { 'key': 'finished', 'description': 'REPLICATION.FINISHED' }, + { 'key': 'canceled', 'description': 'REPLICATION.CANCELED' } +]; +var optionalSearch = { 0: 'REPLICATION.ADVANCED', 1: 'REPLICATION.SIMPLE' }; +var SearchOption = (function () { + function SearchOption() { + this.policyName = ''; + this.repoName = ''; + this.status = ''; + this.startTime = ''; + this.endTime = ''; + this.page = 1; + this.pageSize = 5; + } + return SearchOption; +}()); +var ReplicationComponent = (function () { + function ReplicationComponent(sessionService, messageService, replicationService, route) { + this.sessionService = sessionService; + this.messageService = messageService; + this.replicationService = replicationService; + this.route = route; + this.ruleStatus = ruleStatus; + this.jobStatus = jobStatus; + this.toggleJobSearchOption = optionalSearch; + this.currentUser = this.sessionService.getCurrentUser(); + } + ReplicationComponent.prototype.ngOnInit = function () { + this.projectId = +this.route.snapshot.parent.params['id']; + console.log('Get projectId from route params snapshot:' + this.projectId); + this.search = new SearchOption(); + this.currentRuleStatus = this.ruleStatus[0]; + this.currentJobStatus = this.jobStatus[0]; + this.currentJobSearchOption = 0; + this.retrievePolicies(); + }; + ReplicationComponent.prototype.retrievePolicies = function () { + var _this = this; + this.replicationService + .listPolicies(this.search.policyName, this.projectId) + .subscribe(function (response) { + _this.changedPolicies = response; + if (_this.changedPolicies && _this.changedPolicies.length > 0) { + _this.initSelectedId = _this.changedPolicies[0].id; + } + _this.policies = _this.changedPolicies; + if (_this.changedPolicies && _this.changedPolicies.length > 0) { + _this.search.policyId = _this.changedPolicies[0].id; + _this.fetchPolicyJobs(); + } + else { + _this.changedJobs = []; + } + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get policies with project ID:' + _this.projectId, shared_const_1.AlertType.DANGER); }); + }; + ReplicationComponent.prototype.openModal = function () { + console.log('Open modal to create policy.'); + this.createEditPolicyComponent.openCreateEditPolicy(); + }; + ReplicationComponent.prototype.openEditPolicy = function (policyId) { + console.log('Open modal to edit policy ID:' + policyId); + this.createEditPolicyComponent.openCreateEditPolicy(policyId); + }; + ReplicationComponent.prototype.fetchPolicyJobs = function (state) { + var _this = this; + if (state) { + this.search.page = state.page.to + 1; + } + console.log('Received policy ID ' + this.search.policyId + ' by clicked row.'); + this.replicationService + .listJobs(this.search.policyId, this.search.status, this.search.repoName, this.search.startTime, this.search.endTime, this.search.page, this.search.pageSize) + .subscribe(function (response) { + _this.jobsTotalRecordCount = response.headers.get('x-total-count'); + _this.jobsTotalPage = Math.ceil(_this.jobsTotalRecordCount / _this.search.pageSize); + _this.changedJobs = response.json(); + _this.jobs = _this.changedJobs; + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to fetch jobs with policy ID:' + _this.search.policyId, shared_const_1.AlertType.DANGER); }); + }; + ReplicationComponent.prototype.selectOne = function (policy) { + if (policy) { + this.search.policyId = policy.id; + this.fetchPolicyJobs(); + } + }; + ReplicationComponent.prototype.doSearchPolicies = function (policyName) { + this.search.policyName = policyName; + this.retrievePolicies(); + }; + ReplicationComponent.prototype.doFilterPolicyStatus = function (status) { + var _this = this; + console.log('Do filter policies with status:' + status); + this.currentRuleStatus = this.ruleStatus.find(function (r) { return r.key === status; }); + if (status.trim() === '') { + this.changedPolicies = this.policies; + } + else { + this.changedPolicies = this.policies.filter(function (policy) { return policy.enabled === +_this.currentRuleStatus.key; }); + } + }; + ReplicationComponent.prototype.doFilterJobStatus = function (status) { + console.log('Do filter jobs with status:' + status); + this.currentJobStatus = this.jobStatus.find(function (r) { return r.key === status; }); + if (status.trim() === '') { + this.changedJobs = this.jobs; + } + else { + this.changedJobs = this.jobs.filter(function (job) { return job.status === status; }); + } + }; + ReplicationComponent.prototype.doSearchJobs = function (repoName) { + this.search.repoName = repoName; + this.fetchPolicyJobs(); + }; + ReplicationComponent.prototype.reloadPolicies = function (isReady) { + if (isReady) { + this.retrievePolicies(); + } + }; + ReplicationComponent.prototype.refreshPolicies = function () { + this.retrievePolicies(); + }; + ReplicationComponent.prototype.refreshJobs = function () { + this.fetchPolicyJobs(); + }; + ReplicationComponent.prototype.toggleSearchJobOptionalName = function (option) { + (option === 1) ? this.currentJobSearchOption = 0 : this.currentJobSearchOption = 1; + }; + ReplicationComponent.prototype.doJobSearchByTimeRange = function (strDate, target) { + if (!strDate || strDate.trim() === '') { + strDate = 0 + ''; + } + var oneDayOffset = 3600 * 24; + switch (target) { + case 'begin': + this.search.startTime = (new Date(strDate).getTime() / 1000) + ''; + break; + case 'end': + this.search.endTime = (new Date(strDate).getTime() / 1000 + oneDayOffset) + ''; + break; + } + console.log('Search jobs filtered by time range, begin: ' + this.search.startTime + ', end:' + this.search.endTime); + this.fetchPolicyJobs(); + }; + __decorate([ + core_1.ViewChild(create_edit_policy_component_1.CreateEditPolicyComponent), + __metadata('design:type', (typeof (_a = typeof create_edit_policy_component_1.CreateEditPolicyComponent !== 'undefined' && create_edit_policy_component_1.CreateEditPolicyComponent) === 'function' && _a) || Object) + ], ReplicationComponent.prototype, "createEditPolicyComponent", void 0); + ReplicationComponent = __decorate([ + core_1.Component({ + selector: 'replicaton', + template: __webpack_require__(849) + }), + __metadata('design:paramtypes', [(typeof (_b = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _d) || Object, (typeof (_e = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _e) || Object]) + ], ReplicationComponent); + return ReplicationComponent; + var _a, _b, _c, _d, _e; +}()); +exports.ReplicationComponent = ReplicationComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.component.js.map + +/***/ }), + +/***/ 403: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var replication_service_1 = __webpack_require__(79); +var create_edit_policy_component_1 = __webpack_require__(252); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var TotalReplicationComponent = (function () { + function TotalReplicationComponent(replicationService, messageService) { + this.replicationService = replicationService; + this.messageService = messageService; + this.policyName = ''; + } + TotalReplicationComponent.prototype.ngOnInit = function () { + this.retrievePolicies(); + }; + TotalReplicationComponent.prototype.retrievePolicies = function () { + var _this = this; + this.replicationService + .listPolicies(this.policyName) + .subscribe(function (response) { + _this.changedPolicies = response; + _this.policies = _this.changedPolicies; + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to get policies.', shared_const_1.AlertType.DANGER); }); + }; + TotalReplicationComponent.prototype.doSearchPolicies = function (policyName) { + this.policyName = policyName; + this.retrievePolicies(); + }; + TotalReplicationComponent.prototype.openEditPolicy = function (policyId) { + console.log('Open modal to edit policy ID:' + policyId); + this.createEditPolicyComponent.openCreateEditPolicy(policyId); + }; + TotalReplicationComponent.prototype.selectPolicy = function (policy) { + if (policy) { + this.projectId = policy.project_id; + } + }; + TotalReplicationComponent.prototype.refreshPolicies = function () { + this.retrievePolicies(); + }; + TotalReplicationComponent.prototype.reloadPolicies = function (isReady) { + if (isReady) { + this.retrievePolicies(); + } + }; + __decorate([ + core_1.ViewChild(create_edit_policy_component_1.CreateEditPolicyComponent), + __metadata('design:type', (typeof (_a = typeof create_edit_policy_component_1.CreateEditPolicyComponent !== 'undefined' && create_edit_policy_component_1.CreateEditPolicyComponent) === 'function' && _a) || Object) + ], TotalReplicationComponent.prototype, "createEditPolicyComponent", void 0); + TotalReplicationComponent = __decorate([ + core_1.Component({ + selector: 'total-replication', + template: __webpack_require__(850), + providers: [replication_service_1.ReplicationService] + }), + __metadata('design:paramtypes', [(typeof (_b = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object]) + ], TotalReplicationComponent); + return TotalReplicationComponent; + var _a, _b, _c; +}()); +exports.TotalReplicationComponent = TotalReplicationComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/total-replication.component.js.map + +/***/ }), + +/***/ 404: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var repository_service_1 = __webpack_require__(250); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var repositoryTypes = [ + { key: '0', description: 'REPOSITORY.MY_REPOSITORY' }, + { key: '1', description: 'REPOSITORY.PUBLIC_REPOSITORY' } +]; +var RepositoryComponent = (function () { + function RepositoryComponent(route, repositoryService, messageService, deletionDialogService) { + var _this = this; + this.route = route; + this.repositoryService = repositoryService; + this.messageService = messageService; + this.deletionDialogService = deletionDialogService; + this.repositoryTypes = repositoryTypes; + this.page = 1; + this.pageSize = 15; + this.subscription = this.deletionDialogService + .deletionConfirm$ + .subscribe(function (message) { + var repoName = message.data; + _this.repositoryService + .deleteRepository(repoName) + .subscribe(function (response) { + _this.refresh(); + console.log('Successful deleted repo:' + repoName); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete repo:' + repoName, shared_const_1.AlertType.DANGER); }); + }); + } + RepositoryComponent.prototype.ngOnInit = function () { + this.projectId = this.route.snapshot.parent.params['id']; + this.currentRepositoryType = this.repositoryTypes[0]; + this.lastFilteredRepoName = ''; + this.retrieve(); + }; + RepositoryComponent.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; + RepositoryComponent.prototype.retrieve = function (state) { + var _this = this; + if (state) { + this.page = state.page.to + 1; + } + this.repositoryService + .listRepositories(this.projectId, this.lastFilteredRepoName, this.page, this.pageSize) + .subscribe(function (response) { + _this.totalRecordCount = response.headers.get('x-total-count'); + _this.totalPage = Math.ceil(_this.totalRecordCount / _this.pageSize); + console.log('TotalRecordCount:' + _this.totalRecordCount + ', totalPage:' + _this.totalPage); + _this.changedRepositories = response.json(); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to list repositories.', shared_const_1.AlertType.DANGER); }); + }; + RepositoryComponent.prototype.doFilterRepositoryByType = function (type) { + this.currentRepositoryType = this.repositoryTypes.find(function (r) { return r.key == type; }); + }; + RepositoryComponent.prototype.doSearchRepoNames = function (repoName) { + this.lastFilteredRepoName = repoName; + this.retrieve(); + }; + RepositoryComponent.prototype.deleteRepo = function (repoName) { + var message = new deletion_message_1.DeletionMessage('REPOSITORY.DELETION_TITLE_REPO', 'REPOSITORY.DELETION_SUMMARY_REPO', repoName, repoName, shared_const_1.DeletionTargets.REPOSITORY); + this.deletionDialogService.openComfirmDialog(message); + }; + RepositoryComponent.prototype.refresh = function () { + this.retrieve(); + }; + RepositoryComponent = __decorate([ + core_1.Component({ + selector: 'repository', + template: __webpack_require__(852) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof repository_service_1.RepositoryService !== 'undefined' && repository_service_1.RepositoryService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object]) + ], RepositoryComponent); + return RepositoryComponent; + var _a, _b, _c, _d; +}()); +exports.RepositoryComponent = RepositoryComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.component.js.map + +/***/ }), + +/***/ 405: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var shared_module_1 = __webpack_require__(52); +var repository_component_1 = __webpack_require__(404); +var list_repository_component_1 = __webpack_require__(619); +var tag_repository_component_1 = __webpack_require__(406); +var top_repo_component_1 = __webpack_require__(622); +var repository_service_1 = __webpack_require__(250); +var RepositoryModule = (function () { + function RepositoryModule() { + } + RepositoryModule = __decorate([ + core_1.NgModule({ + imports: [ + shared_module_1.SharedModule, + router_1.RouterModule + ], + declarations: [ + repository_component_1.RepositoryComponent, + list_repository_component_1.ListRepositoryComponent, + tag_repository_component_1.TagRepositoryComponent, + top_repo_component_1.TopRepoComponent + ], + exports: [repository_component_1.RepositoryComponent, list_repository_component_1.ListRepositoryComponent, top_repo_component_1.TopRepoComponent], + providers: [repository_service_1.RepositoryService] + }), + __metadata('design:paramtypes', []) + ], RepositoryModule); + return RepositoryModule; +}()); +exports.RepositoryModule = RepositoryModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.module.js.map + +/***/ }), + +/***/ 406: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var repository_service_1 = __webpack_require__(250); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var tag_view_1 = __webpack_require__(621); +var TagRepositoryComponent = (function () { + function TagRepositoryComponent(route, messageService, deletionDialogService, repositoryService) { + var _this = this; + this.route = route; + this.messageService = messageService; + this.deletionDialogService = deletionDialogService; + this.repositoryService = repositoryService; + this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(function (message) { + var tag = message.data; + if (tag) { + if (tag.verified) { + return; + } + else { + var tagName_1 = tag.tag; + _this.repositoryService + .deleteRepoByTag(_this.repoName, tagName_1) + .subscribe(function (response) { + _this.retrieve(); + console.log('Deleted repo:' + _this.repoName + ' with tag:' + tagName_1); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete tag:' + tagName_1 + ' under repo:' + _this.repoName, shared_const_1.AlertType.DANGER); }); + } + } + }); + } + TagRepositoryComponent.prototype.ngOnInit = function () { + this.projectId = this.route.snapshot.params['id']; + this.repoName = this.route.snapshot.params['repo']; + this.tags = []; + this.retrieve(); + }; + TagRepositoryComponent.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; + TagRepositoryComponent.prototype.retrieve = function () { + var _this = this; + this.tags = []; + this.repositoryService + .listTagsWithVerifiedSignatures(this.repoName) + .subscribe(function (items) { + items.forEach(function (t) { + var tag = new tag_view_1.TagView(); + tag.tag = t.tag; + var data = JSON.parse(t.manifest.history[0].v1Compatibility); + tag.architecture = data['architecture']; + tag.author = data['author']; + tag.verified = t.verified || false; + tag.created = data['created']; + tag.dockerVersion = data['docker_version']; + tag.pullCommand = 'docker pull ' + t.manifest.name + ':' + t.tag; + tag.os = data['os']; + _this.tags.push(tag); + }); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to list tags with repo:' + _this.repoName, shared_const_1.AlertType.DANGER); }); + }; + TagRepositoryComponent.prototype.deleteTag = function (tag) { + if (tag) { + var titleKey = void 0, summaryKey = void 0; + if (tag.verified) { + titleKey = 'REPOSITORY.DELETION_TITLE_TAG_DENIED'; + summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG_DENIED'; + } + else { + titleKey = 'REPOSITORY.DELETION_TITLE_TAG'; + summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG'; + } + var message = new deletion_message_1.DeletionMessage(titleKey, summaryKey, tag.tag, tag, shared_const_1.DeletionTargets.TAG); + this.deletionDialogService.openComfirmDialog(message); + } + }; + TagRepositoryComponent = __decorate([ + core_1.Component({ + selector: 'tag-repository', + template: __webpack_require__(853) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.ActivatedRoute !== 'undefined' && router_1.ActivatedRoute) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _c) || Object, (typeof (_d = typeof repository_service_1.RepositoryService !== 'undefined' && repository_service_1.RepositoryService) === 'function' && _d) || Object]) + ], TagRepositoryComponent); + return TagRepositoryComponent; + var _a, _b, _c, _d; +}()); +exports.TagRepositoryComponent = TagRepositoryComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/tag-repository.component.js.map + +/***/ }), + +/***/ 407: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var AboutDialogComponent = (function () { + function AboutDialogComponent() { + this.opened = false; + this.version = "0.4.1"; + this.build = "4276418"; + } + AboutDialogComponent.prototype.open = function () { + this.opened = true; + }; + AboutDialogComponent.prototype.close = function () { + this.opened = false; + }; + AboutDialogComponent = __decorate([ + core_1.Component({ + selector: 'about-dialog', + template: __webpack_require__(855), + styles: [__webpack_require__(813)] + }), + __metadata('design:paramtypes', []) + ], AboutDialogComponent); + return AboutDialogComponent; +}()); +exports.AboutDialogComponent = AboutDialogComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/about-dialog.component.js.map + +/***/ }), + +/***/ 408: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var defaultInterval = 1000; +var defaultLeftTime = 5; +var PageNotFoundComponent = (function () { + function PageNotFoundComponent(router) { + this.router = router; + this.leftSeconds = defaultLeftTime; + this.timeInterval = null; + } + PageNotFoundComponent.prototype.ngOnInit = function () { + var _this = this; + if (!this.timeInterval) { + this.timeInterval = setInterval(function (interval) { + _this.leftSeconds--; + if (_this.leftSeconds <= 0) { + _this.router.navigate(['harbor']); + clearInterval(_this.timeInterval); + } + }, defaultInterval); + } + }; + PageNotFoundComponent.prototype.ngOnDestroy = function () { + if (this.timeInterval) { + clearInterval(this.timeInterval); + } + }; + PageNotFoundComponent = __decorate([ + core_1.Component({ + selector: 'page-not-found', + template: __webpack_require__(863), + styles: [__webpack_require__(817)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _a) || Object]) + ], PageNotFoundComponent); + return PageNotFoundComponent; + var _a; +}()); +exports.PageNotFoundComponent = PageNotFoundComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/not-found.component.js.map + +/***/ }), + +/***/ 409: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var AuthCheckGuard = (function () { + function AuthCheckGuard(authService, router) { + this.authService = authService; + this.router = router; + } + AuthCheckGuard.prototype.canActivate = function (route, state) { + var _this = this; + return new Promise(function (resolve, reject) { + var user = _this.authService.getCurrentUser(); + if (!user) { + _this.authService.retrieveUser() + .then(function () { return resolve(true); }) + .catch(function (error) { + //Session retrieving failed then redirect to sign-in + //no matter what status code is. + //Please pay attention that route 'harborRootRoute' support anonymous user + if (state.url != shared_const_1.harborRootRoute) { + var navigatorExtra = { + queryParams: { "redirect_url": state.url } + }; + _this.router.navigate([shared_const_1.signInRoute], navigatorExtra); + return resolve(false); + } + else { + return resolve(true); + } + }); + } + else { + return resolve(true); + } + }); + }; + AuthCheckGuard.prototype.canActivateChild = function (route, state) { + return this.canActivate(route, state); + }; + AuthCheckGuard = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], AuthCheckGuard); + return AuthCheckGuard; + var _a, _b; +}()); +exports.AuthCheckGuard = AuthCheckGuard; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/auth-user-activate.service.js.map + +/***/ }), + +/***/ 410: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var SignInGuard = (function () { + function SignInGuard(authService, router) { + this.authService = authService; + this.router = router; + } + SignInGuard.prototype.canActivate = function (route, state) { + var _this = this; + //If user has logged in, should not login again + return new Promise(function (resolve, reject) { + var user = _this.authService.getCurrentUser(); + if (!user) { + _this.authService.retrieveUser() + .then(function () { + _this.router.navigate([shared_const_1.harborRootRoute]); + return resolve(false); + }) + .catch(function (error) { + return resolve(true); + }); + } + else { + _this.router.navigate([shared_const_1.harborRootRoute]); + return resolve(false); + } + }); + }; + SignInGuard.prototype.canActivateChild = function (route, state) { + return this.canActivate(route, state); + }; + SignInGuard = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], SignInGuard); + return SignInGuard; + var _a, _b; +}()); +exports.SignInGuard = SignInGuard; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in-guard-activate.service.js.map + +/***/ }), + +/***/ 411: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var SystemAdminGuard = (function () { + function SystemAdminGuard(authService, router) { + this.authService = authService; + this.router = router; + } + SystemAdminGuard.prototype.canActivate = function (route, state) { + var _this = this; + return new Promise(function (resolve, reject) { + var user = _this.authService.getCurrentUser(); + if (!user) { + _this.authService.retrieveUser() + .then(function () { + //updated user + user = _this.authService.getCurrentUser(); + if (user.has_admin_role > 0) { + return resolve(true); + } + else { + _this.router.navigate([shared_const_1.harborRootRoute]); + return resolve(false); + } + }) + .catch(function (error) { + //Session retrieving failed then redirect to sign-in + //no matter what status code is. + //Please pay attention that route 'harborRootRoute' support anonymous user + if (state.url != shared_const_1.harborRootRoute) { + var navigatorExtra = { + queryParams: { "redirect_url": state.url } + }; + _this.router.navigate([shared_const_1.signInRoute], navigatorExtra); + return resolve(false); + } + else { + return resolve(true); + } + }); + } + else { + if (user.has_admin_role > 0) { + return resolve(true); + } + else { + _this.router.navigate([shared_const_1.harborRootRoute]); + return resolve(false); + } + } + }); + }; + SystemAdminGuard.prototype.canActivateChild = function (route, state) { + return this.canActivate(route, state); + }; + SystemAdminGuard = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], SystemAdminGuard); + return SystemAdminGuard; + var _a, _b; +}()); +exports.SystemAdminGuard = SystemAdminGuard; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/system-admin-activate.service.js.map + +/***/ }), + +/***/ 412: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var new_user_form_component_1 = __webpack_require__(253); +var session_service_1 = __webpack_require__(14); +var user_service_1 = __webpack_require__(175); +var shared_utils_1 = __webpack_require__(33); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var inline_alert_component_1 = __webpack_require__(80); +var NewUserModalComponent = (function () { + function NewUserModalComponent(session, userService, msgService) { + this.session = session; + this.userService = userService; + this.msgService = msgService; + this.opened = false; + this.onGoing = false; + this.formValueChanged = false; + this.addNew = new core_1.EventEmitter(); + } + NewUserModalComponent.prototype.getNewUser = function () { + return this.newUserForm.getData(); + }; + Object.defineProperty(NewUserModalComponent.prototype, "inProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NewUserModalComponent.prototype, "isValid", { + get: function () { + return this.newUserForm.isValid && this.error == null; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(NewUserModalComponent.prototype, "errorMessage", { + get: function () { + return shared_utils_1.errorHandler(this.error); + }, + enumerable: true, + configurable: true + }); + NewUserModalComponent.prototype.formValueChange = function (flag) { + if (this.error != null) { + this.error = null; //clear error + } + this.formValueChanged = true; + this.inlineAlert.close(); + }; + NewUserModalComponent.prototype.open = function () { + this.newUserForm.reset(); //Reset form + this.formValueChanged = false; + this.opened = true; + }; + NewUserModalComponent.prototype.close = function () { + if (this.formValueChanged) { + if (this.newUserForm.isEmpty()) { + this.opened = false; + } + else { + //Need user confirmation + this.inlineAlert.showInlineConfirmation({ + message: "ALERT.FORM_CHANGE_CONFIRMATION" + }); + } + } + else { + this.opened = false; + } + }; + NewUserModalComponent.prototype.confirmCancel = function (event) { + this.opened = false; + }; + //Create new user + NewUserModalComponent.prototype.create = function () { + var _this = this; + //Double confirm everything is ok + //Form is valid + if (!this.isValid) { + return; + } + //We have new user data + var u = this.getNewUser(); + if (!u) { + return; + } + //Session is ok and role is matched + var account = this.session.getCurrentUser(); + if (!account || account.has_admin_role === 0) { + return; + } + //Start process + this.onGoing = true; + this.userService.addUser(u) + .then(function () { + _this.onGoing = false; + //TODO: + //As no response data returned, can not add it to list directly + _this.addNew.emit(u); + _this.opened = false; + _this.msgService.announceMessage(200, "USER.SAVE_SUCCESS", shared_const_1.AlertType.SUCCESS); + }) + .catch(function (error) { + _this.onGoing = false; + _this.error = error; + if (shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.opened = false; + } + else { + _this.inlineAlert.showInlineError(error); + } + }); + }; + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], NewUserModalComponent.prototype, "addNew", void 0); + __decorate([ + core_1.ViewChild(new_user_form_component_1.NewUserFormComponent), + __metadata('design:type', (typeof (_a = typeof new_user_form_component_1.NewUserFormComponent !== 'undefined' && new_user_form_component_1.NewUserFormComponent) === 'function' && _a) || Object) + ], NewUserModalComponent.prototype, "newUserForm", void 0); + __decorate([ + core_1.ViewChild(inline_alert_component_1.InlineAlertComponent), + __metadata('design:type', (typeof (_b = typeof inline_alert_component_1.InlineAlertComponent !== 'undefined' && inline_alert_component_1.InlineAlertComponent) === 'function' && _b) || Object) + ], NewUserModalComponent.prototype, "inlineAlert", void 0); + NewUserModalComponent = __decorate([ + core_1.Component({ + selector: "new-user-modal", + template: __webpack_require__(866) + }), + __metadata('design:paramtypes', [(typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object, (typeof (_d = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object]) + ], NewUserModalComponent); + return NewUserModalComponent; + var _a, _b, _c, _d, _e; +}()); +exports.NewUserModalComponent = NewUserModalComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/new-user-modal.component.js.map + +/***/ }), + +/***/ 413: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +__webpack_require__(58); +var user_service_1 = __webpack_require__(175); +var new_user_modal_component_1 = __webpack_require__(412); +var core_2 = __webpack_require__(34); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var shared_const_1 = __webpack_require__(2); +var shared_utils_1 = __webpack_require__(33); +var message_service_1 = __webpack_require__(10); +var UserComponent = (function () { + function UserComponent(userService, translate, deletionDialogService, msgService) { + var _this = this; + this.userService = userService; + this.translate = translate; + this.deletionDialogService = deletionDialogService; + this.msgService = msgService; + this.users = []; + this.onGoing = false; + this.adminMenuText = ""; + this.adminColumn = ""; + this.deletionSubscription = deletionDialogService.deletionConfirm$.subscribe(function (confirmed) { + if (confirmed && confirmed.targetId === shared_const_1.DeletionTargets.USER) { + _this.delUser(confirmed.data); + } + }); + } + UserComponent.prototype.isMatchFilterTerm = function (terms, testedItem) { + return testedItem.indexOf(terms) != -1; + }; + UserComponent.prototype.isSystemAdmin = function (u) { + var _this = this; + if (!u) { + return "{{MISS}}"; + } + var key = u.has_admin_role ? "USER.IS_ADMIN" : "USER.IS_NOT_ADMIN"; + this.translate.get(key).subscribe(function (res) { return _this.adminColumn = res; }); + return this.adminColumn; + }; + UserComponent.prototype.adminActions = function (u) { + var _this = this; + if (!u) { + return "{{MISS}}"; + } + var key = u.has_admin_role ? "USER.DISABLE_ADMIN_ACTION" : "USER.ENABLE_ADMIN_ACTION"; + this.translate.get(key).subscribe(function (res) { return _this.adminMenuText = res; }); + return this.adminMenuText; + }; + Object.defineProperty(UserComponent.prototype, "inProgress", { + get: function () { + return this.onGoing; + }, + enumerable: true, + configurable: true + }); + UserComponent.prototype.ngOnInit = function () { + this.refreshUser(); + }; + UserComponent.prototype.ngOnDestroy = function () { + if (this.deletionSubscription) { + this.deletionSubscription.unsubscribe(); + } + }; + //Filter items by keywords + UserComponent.prototype.doFilter = function (terms) { + var _this = this; + this.originalUsers.then(function (users) { + if (terms.trim() === "") { + _this.users = users; + } + else { + _this.users = users.filter(function (user) { + return _this.isMatchFilterTerm(terms, user.username); + }); + } + }); + }; + //Disable the admin role for the specified user + UserComponent.prototype.changeAdminRole = function (user) { + var _this = this; + //Double confirm user is existing + if (!user || user.user_id === 0) { + return; + } + //Value copy + var updatedUser = { + user_id: user.user_id + }; + if (user.has_admin_role === 0) { + updatedUser.has_admin_role = 1; //Set as admin + } + else { + updatedUser.has_admin_role = 0; //Set as none admin + } + this.userService.updateUserRole(updatedUser) + .then(function () { + //Change view now + user.has_admin_role = updatedUser.has_admin_role; + }) + .catch(function (error) { + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + //Delete the specified user + UserComponent.prototype.deleteUser = function (user) { + if (!user) { + return; + } + //Confirm deletion + var msg = new deletion_message_1.DeletionMessage("USER.DELETION_TITLE", "USER.DELETION_SUMMARY", user.username, user, shared_const_1.DeletionTargets.USER); + this.deletionDialogService.openComfirmDialog(msg); + }; + UserComponent.prototype.delUser = function (user) { + var _this = this; + this.userService.deleteUser(user.user_id) + .then(function () { + //Remove it from current user list + //and then view refreshed + _this.originalUsers.then(function (users) { + _this.users = users.filter(function (u) { return u.user_id != user.user_id; }); + _this.msgService.announceMessage(500, "USER.DELETE_SUCCESS", shared_const_1.AlertType.SUCCESS); + }); + }) + .catch(function (error) { + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + //Refresh the user list + UserComponent.prototype.refreshUser = function () { + var _this = this; + //Start to get + this.onGoing = true; + this.originalUsers = this.userService.getUsers() + .then(function (users) { + _this.onGoing = false; + _this.users = users; + return users; + }) + .catch(function (error) { + _this.onGoing = false; + if (!shared_utils_1.accessErrorHandler(error, _this.msgService)) { + _this.msgService.announceMessage(500, shared_utils_1.errorHandler(error), shared_const_1.AlertType.DANGER); + } + }); + }; + //Add new user + UserComponent.prototype.addNewUser = function () { + this.newUserDialog.open(); + }; + //Add user to the user list + UserComponent.prototype.addUserToList = function (user) { + //Currently we can only add it by reloading all + this.refreshUser(); + }; + __decorate([ + core_1.ViewChild(new_user_modal_component_1.NewUserModalComponent), + __metadata('design:type', (typeof (_a = typeof new_user_modal_component_1.NewUserModalComponent !== 'undefined' && new_user_modal_component_1.NewUserModalComponent) === 'function' && _a) || Object) + ], UserComponent.prototype, "newUserDialog", void 0); + UserComponent = __decorate([ + core_1.Component({ + selector: 'harbor-user', + template: __webpack_require__(867), + styles: [__webpack_require__(818)], + providers: [user_service_1.UserService] + }), + __metadata('design:paramtypes', [(typeof (_b = typeof user_service_1.UserService !== 'undefined' && user_service_1.UserService) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object, (typeof (_d = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _d) || Object, (typeof (_e = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _e) || Object]) + ], UserComponent); + return UserComponent; + var _a, _b, _c, _d, _e; +}()); +exports.UserComponent = UserComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.component.js.map + +/***/ }), + +/***/ 457: +/***/ (function(module, exports) { + +module.exports = ".reset-modal-title-override {\n font-size: 14px !important;\n}" + +/***/ }), + +/***/ 458: +/***/ (function(module, exports) { + +module.exports = ".statistic-wrapper {\n padding: 12px;\n margin: 12px;\n text-align: center;\n vertical-align: middle;\n height: 72px;\n min-width: 108px;\n max-width: 216px;\n display: inline-block;\n}\n\n.statistic-data {\n font-size: 48px;\n font-weight: bolder;\n font-family: \"Metropolis\";\n line-height: 48px;\n}\n\n.statistic-text {\n font-size: 24px;\n font-weight: 400;\n line-height: 24px;\n text-transform: uppercase;\n font-family: \"Metropolis\";\n}\n\n.statistic-column-title {\n position: relative;\n top: 40%;\n}" + +/***/ }), + +/***/ 477: +/***/ (function(module, exports) { + +function webpackEmptyContext(req) { + throw new Error("Cannot find module '" + req + "'."); +} +webpackEmptyContext.keys = function() { return []; }; +webpackEmptyContext.resolve = webpackEmptyContext; +module.exports = webpackEmptyContext; +webpackEmptyContext.id = 477; + + +/***/ }), + +/***/ 478: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +__webpack_require__(640); +var platform_browser_dynamic_1 = __webpack_require__(571); +var core_1 = __webpack_require__(0); +var environment_1 = __webpack_require__(639); +var _1 = __webpack_require__(610); +if (environment_1.environment.production) { + core_1.enableProdMode(); +} +platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(_1.AppModule); +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/main.js.map + +/***/ }), + +/***/ 48: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var Subject_1 = __webpack_require__(25); +var DeletionDialogService = (function () { + function DeletionDialogService() { + this.deletionAnnoucedSource = new Subject_1.Subject(); + this.deletionConfirmSource = new Subject_1.Subject(); + this.deletionAnnouced$ = this.deletionAnnoucedSource.asObservable(); + this.deletionConfirm$ = this.deletionConfirmSource.asObservable(); + } + DeletionDialogService.prototype.confirmDeletion = function (message) { + this.deletionConfirmSource.next(message); + }; + DeletionDialogService.prototype.openComfirmDialog = function (message) { + this.deletionAnnoucedSource.next(message); + }; + DeletionDialogService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', []) + ], DeletionDialogService); + return DeletionDialogService; +}()); +exports.DeletionDialogService = DeletionDialogService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-dialog.service.js.map + +/***/ }), + +/***/ 52: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var core_module_1 = __webpack_require__(246); +var core_2 = __webpack_require__(257); +var session_service_1 = __webpack_require__(14); +var message_component_1 = __webpack_require__(607); +var message_service_1 = __webpack_require__(10); +var max_length_ext_directive_1 = __webpack_require__(629); +var filter_component_1 = __webpack_require__(626); +var harbor_action_overflow_1 = __webpack_require__(627); +var core_3 = __webpack_require__(34); +var router_1 = __webpack_require__(8); +var deletion_dialog_component_1 = __webpack_require__(625); +var deletion_dialog_service_1 = __webpack_require__(48); +var base_routing_resolver_service_1 = __webpack_require__(631); +var system_admin_activate_service_1 = __webpack_require__(411); +var new_user_form_component_1 = __webpack_require__(253); +var inline_alert_component_1 = __webpack_require__(80); +var list_policy_component_1 = __webpack_require__(628); +var create_edit_policy_component_1 = __webpack_require__(252); +var port_directive_1 = __webpack_require__(630); +var not_found_component_1 = __webpack_require__(408); +var about_dialog_component_1 = __webpack_require__(407); +var auth_user_activate_service_1 = __webpack_require__(409); +var statistics_component_1 = __webpack_require__(634); +var statistics_panel_component_1 = __webpack_require__(633); +var sign_in_guard_activate_service_1 = __webpack_require__(410); +var SharedModule = (function () { + function SharedModule() { + } + SharedModule = __decorate([ + core_1.NgModule({ + imports: [ + core_module_1.CoreModule, + core_3.TranslateModule, + router_1.RouterModule + ], + declarations: [ + message_component_1.MessageComponent, + max_length_ext_directive_1.MaxLengthExtValidatorDirective, + filter_component_1.FilterComponent, + harbor_action_overflow_1.HarborActionOverflow, + deletion_dialog_component_1.DeletionDialogComponent, + new_user_form_component_1.NewUserFormComponent, + inline_alert_component_1.InlineAlertComponent, + list_policy_component_1.ListPolicyComponent, + create_edit_policy_component_1.CreateEditPolicyComponent, + port_directive_1.PortValidatorDirective, + not_found_component_1.PageNotFoundComponent, + about_dialog_component_1.AboutDialogComponent, + statistics_component_1.StatisticsComponent, + statistics_panel_component_1.StatisticsPanelComponent + ], + exports: [ + core_module_1.CoreModule, + message_component_1.MessageComponent, + max_length_ext_directive_1.MaxLengthExtValidatorDirective, + filter_component_1.FilterComponent, + harbor_action_overflow_1.HarborActionOverflow, + core_3.TranslateModule, + deletion_dialog_component_1.DeletionDialogComponent, + new_user_form_component_1.NewUserFormComponent, + inline_alert_component_1.InlineAlertComponent, + list_policy_component_1.ListPolicyComponent, + create_edit_policy_component_1.CreateEditPolicyComponent, + port_directive_1.PortValidatorDirective, + not_found_component_1.PageNotFoundComponent, + about_dialog_component_1.AboutDialogComponent, + statistics_component_1.StatisticsComponent, + statistics_panel_component_1.StatisticsPanelComponent + ], + providers: [ + session_service_1.SessionService, + message_service_1.MessageService, + core_2.CookieService, + deletion_dialog_service_1.DeletionDialogService, + base_routing_resolver_service_1.BaseRoutingResolver, + system_admin_activate_service_1.SystemAdminGuard, + auth_user_activate_service_1.AuthCheckGuard, + sign_in_guard_activate_service_1.SignInGuard] + }), + __metadata('design:paramtypes', []) + ], SharedModule); + return SharedModule; +}()); +exports.SharedModule = SharedModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/shared.module.js.map + +/***/ }), + +/***/ 600: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var app_component_1 = __webpack_require__(380); +var base_module_1 = __webpack_require__(601); +var harbor_routing_module_1 = __webpack_require__(608); +var shared_module_1 = __webpack_require__(52); +var account_module_1 = __webpack_require__(375); +var config_module_1 = __webpack_require__(606); +var core_2 = __webpack_require__(34); +var missing_trans_handler_1 = __webpack_require__(609); +var http_loader_1 = __webpack_require__(641); +var http_1 = __webpack_require__(20); +var app_config_service_1 = __webpack_require__(172); +function HttpLoaderFactory(http) { + return new http_loader_1.TranslateHttpLoader(http, 'i18n/lang/', '-lang.json'); +} +exports.HttpLoaderFactory = HttpLoaderFactory; +function initConfig(configService) { + return function () { return configService.load(); }; +} +exports.initConfig = initConfig; +var AppModule = (function () { + function AppModule() { + } + AppModule = __decorate([ + core_1.NgModule({ + declarations: [ + app_component_1.AppComponent, + ], + imports: [ + shared_module_1.SharedModule, + base_module_1.BaseModule, + account_module_1.AccountModule, + harbor_routing_module_1.HarborRoutingModule, + config_module_1.ConfigurationModule, + core_2.TranslateModule.forRoot({ + loader: { + provide: core_2.TranslateLoader, + useFactory: (HttpLoaderFactory), + deps: [http_1.Http] + }, + missingTranslationHandler: { + provide: core_2.MissingTranslationHandler, + useClass: missing_trans_handler_1.MyMissingTranslationHandler + } + }) + ], + providers: [ + app_config_service_1.AppConfigService, + { + provide: core_1.APP_INITIALIZER, + useFactory: initConfig, + deps: [app_config_service_1.AppConfigService], + multi: true + }], + bootstrap: [app_component_1.AppComponent] + }), + __metadata('design:paramtypes', []) + ], AppModule); + return AppModule; +}()); +exports.AppModule = AppModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/app.module.js.map + +/***/ }), + +/***/ 601: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var shared_module_1 = __webpack_require__(52); +var router_1 = __webpack_require__(8); +var project_module_1 = __webpack_require__(614); +var user_module_1 = __webpack_require__(637); +var account_module_1 = __webpack_require__(375); +var repository_module_1 = __webpack_require__(405); +var navigator_component_1 = __webpack_require__(384); +var global_search_component_1 = __webpack_require__(603); +var footer_component_1 = __webpack_require__(602); +var harbor_shell_component_1 = __webpack_require__(382); +var search_result_component_1 = __webpack_require__(381); +var start_component_1 = __webpack_require__(245); +var search_trigger_service_1 = __webpack_require__(95); +var BaseModule = (function () { + function BaseModule() { + } + BaseModule = __decorate([ + core_1.NgModule({ + imports: [ + shared_module_1.SharedModule, + project_module_1.ProjectModule, + user_module_1.UserModule, + account_module_1.AccountModule, + router_1.RouterModule, + repository_module_1.RepositoryModule + ], + declarations: [ + navigator_component_1.NavigatorComponent, + global_search_component_1.GlobalSearchComponent, + footer_component_1.FooterComponent, + harbor_shell_component_1.HarborShellComponent, + search_result_component_1.SearchResultComponent, + start_component_1.StartPageComponent + ], + exports: [harbor_shell_component_1.HarborShellComponent], + providers: [search_trigger_service_1.SearchTriggerService] + }), + __metadata('design:paramtypes', []) + ], BaseModule); + return BaseModule; +}()); +exports.BaseModule = BaseModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base.module.js.map + +/***/ }), + +/***/ 602: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var FooterComponent = (function () { + function FooterComponent() { + } + FooterComponent = __decorate([ + core_1.Component({ + selector: 'footer', + template: __webpack_require__(827) + }), + __metadata('design:paramtypes', []) + ], FooterComponent); + return FooterComponent; +}()); +exports.FooterComponent = FooterComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/footer.component.js.map + +/***/ }), + +/***/ 603: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var Subject_1 = __webpack_require__(25); +var search_trigger_service_1 = __webpack_require__(95); +__webpack_require__(461); +__webpack_require__(462); +var deBounceTime = 500; //ms +var GlobalSearchComponent = (function () { + function GlobalSearchComponent(searchTrigger, router) { + this.searchTrigger = searchTrigger; + this.router = router; + //Keep search term as Subject + this.searchTerms = new Subject_1.Subject(); + //To indicate if the result panel is opened + this.isResPanelOpened = false; + } + //Implement ngOnIni + GlobalSearchComponent.prototype.ngOnInit = function () { + var _this = this; + this.searchSub = this.searchTerms + .debounceTime(deBounceTime) + .distinctUntilChanged() + .subscribe(function (term) { + _this.searchTrigger.triggerSearch(term); + }); + }; + GlobalSearchComponent.prototype.ngOnDestroy = function () { + if (this.searchSub) { + this.searchSub.unsubscribe(); + } + }; + //Handle the term inputting event + GlobalSearchComponent.prototype.search = function (term) { + //Send event even term is empty + this.searchTerms.next(term.trim()); + }; + GlobalSearchComponent = __decorate([ + //ms + core_1.Component({ + selector: 'global-search', + template: __webpack_require__(828) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], GlobalSearchComponent); + return GlobalSearchComponent; + var _a, _b; +}()); +exports.GlobalSearchComponent = GlobalSearchComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/global-search.component.js.map + +/***/ }), + +/***/ 604: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +var searchEndpoint = "/api/search"; +/** + * Declare service to handle the global search + * + * + * @export + * @class GlobalSearchService + */ +var GlobalSearchService = (function () { + function GlobalSearchService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + headers: this.headers + }); + } + /** + * Search related artifacts with the provided keyword + * + * @param {string} keyword + * @returns {Promise} + * + * @memberOf GlobalSearchService + */ + GlobalSearchService.prototype.doSearch = function (term) { + var searchUrl = searchEndpoint + "?q=" + term; + return this.http.get(searchUrl, this.options).toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return Promise.reject(error); }); + }; + GlobalSearchService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], GlobalSearchService); + return GlobalSearchService; + var _a; +}()); +exports.GlobalSearchService = GlobalSearchService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/global-search.service.js.map + +/***/ }), + +/***/ 605: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var SearchResults = (function () { + function SearchResults() { + this.project = []; + this.repository = []; + } + return SearchResults; +}()); +exports.SearchResults = SearchResults; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-results.js.map + +/***/ }), + +/***/ 606: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var core_module_1 = __webpack_require__(246); +var shared_module_1 = __webpack_require__(52); +var config_component_1 = __webpack_require__(386); +var config_service_1 = __webpack_require__(387); +var config_auth_component_1 = __webpack_require__(385); +var config_email_component_1 = __webpack_require__(388); +var ConfigurationModule = (function () { + function ConfigurationModule() { + } + ConfigurationModule = __decorate([ + core_1.NgModule({ + imports: [ + core_module_1.CoreModule, + shared_module_1.SharedModule + ], + declarations: [ + config_component_1.ConfigurationComponent, + config_auth_component_1.ConfigurationAuthComponent, + config_email_component_1.ConfigurationEmailComponent], + exports: [config_component_1.ConfigurationComponent], + providers: [config_service_1.ConfigurationService] + }), + __metadata('design:paramtypes', []) + ], ConfigurationModule); + return ConfigurationModule; +}()); +exports.ConfigurationModule = ConfigurationModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/config.module.js.map + +/***/ }), + +/***/ 607: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var core_2 = __webpack_require__(34); +var message_1 = __webpack_require__(389); +var message_service_1 = __webpack_require__(10); +var shared_const_1 = __webpack_require__(2); +var MessageComponent = (function () { + function MessageComponent(messageService, router, translate) { + this.messageService = messageService; + this.router = router; + this.translate = translate; + this.globalMessage = new message_1.Message(); + this.messageText = ""; + } + MessageComponent.prototype.ngOnInit = function () { + var _this = this; + //Only subscribe application level message + if (this.isAppLevel) { + this.messageService.appLevelAnnounced$.subscribe(function (message) { + _this.globalMessageOpened = true; + _this.globalMessage = message; + _this.messageText = message.message; + _this.translateMessage(message); + }); + } + else { + //Only subscribe general messages + this.messageService.messageAnnounced$.subscribe(function (message) { + _this.globalMessageOpened = true; + _this.globalMessage = message; + _this.messageText = message.message; + _this.translateMessage(message); + // Make the message alert bar dismiss after several intervals. + //Only for this case + setInterval(function () { return _this.onClose(); }, shared_const_1.dismissInterval); + }); + } + }; + //Translate or refactor the message shown to user + MessageComponent.prototype.translateMessage = function (msg) { + var _this = this; + if (!msg) { + return; + } + var key = ""; + if (!msg.message) { + key = "UNKNOWN_ERROR"; + } + else { + key = typeof msg.message === "string" ? msg.message.trim() : msg.message; + if (key === "") { + key = "UNKNOWN_ERROR"; + } + } + //Override key for HTTP 401 and 403 + if (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Unauthorized) { + key = "UNAUTHORIZED_ERROR"; + } + if (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Forbidden) { + key = "FORBIDDEN_ERROR"; + } + this.translate.get(key).subscribe(function (res) { return _this.messageText = res; }); + }; + Object.defineProperty(MessageComponent.prototype, "needAuth", { + get: function () { + return this.globalMessage ? + (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Unauthorized) || + (this.globalMessage.statusCode === shared_const_1.httpStatusCode.Forbidden) : false; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MessageComponent.prototype, "message", { + //Show message text + get: function () { + return this.messageText; + }, + enumerable: true, + configurable: true + }); + MessageComponent.prototype.signIn = function () { + this.router.navigate(['sign-in']); + }; + MessageComponent.prototype.onClose = function () { + this.globalMessageOpened = false; + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Boolean) + ], MessageComponent.prototype, "isAppLevel", void 0); + MessageComponent = __decorate([ + core_1.Component({ + selector: 'global-message', + template: __webpack_require__(836) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object, (typeof (_c = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _c) || Object]) + ], MessageComponent); + return MessageComponent; + var _a, _b, _c; +}()); +exports.MessageComponent = MessageComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/message.component.js.map + +/***/ }), + +/***/ 608: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var sign_in_component_1 = __webpack_require__(379); +var harbor_shell_component_1 = __webpack_require__(382); +var project_component_1 = __webpack_require__(398); +var user_component_1 = __webpack_require__(413); +var replication_management_component_1 = __webpack_require__(401); +var total_replication_component_1 = __webpack_require__(403); +var destination_component_1 = __webpack_require__(400); +var project_detail_component_1 = __webpack_require__(396); +var repository_component_1 = __webpack_require__(404); +var tag_repository_component_1 = __webpack_require__(406); +var replication_component_1 = __webpack_require__(402); +var member_component_1 = __webpack_require__(395); +var audit_log_component_1 = __webpack_require__(390); +var project_routing_resolver_service_1 = __webpack_require__(397); +var system_admin_activate_service_1 = __webpack_require__(411); +var sign_up_component_1 = __webpack_require__(243); +var reset_password_component_1 = __webpack_require__(378); +var recent_log_component_1 = __webpack_require__(391); +var config_component_1 = __webpack_require__(386); +var not_found_component_1 = __webpack_require__(408); +var start_component_1 = __webpack_require__(245); +var auth_user_activate_service_1 = __webpack_require__(409); +var sign_in_guard_activate_service_1 = __webpack_require__(410); +var harborRoutes = [ + { path: '', redirectTo: '/harbor/dashboard', pathMatch: 'full' }, + { path: 'harbor', redirectTo: '/harbor/dashboard', pathMatch: 'full' }, + { path: 'sign-in', component: sign_in_component_1.SignInComponent, canActivate: [sign_in_guard_activate_service_1.SignInGuard] }, + { path: 'sign-up', component: sign_up_component_1.SignUpComponent }, + { path: 'password-reset', component: reset_password_component_1.ResetPasswordComponent }, + { + path: 'harbor', + component: harbor_shell_component_1.HarborShellComponent, + children: [ + { path: 'sign-in', component: sign_in_component_1.SignInComponent, canActivate: [sign_in_guard_activate_service_1.SignInGuard] }, + { path: 'sign-up', component: sign_up_component_1.SignUpComponent }, + { path: 'dashboard', component: start_component_1.StartPageComponent, canActivate: [auth_user_activate_service_1.AuthCheckGuard] }, + { + path: 'projects', + component: project_component_1.ProjectComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard] + }, + { + path: 'logs', + component: recent_log_component_1.RecentLogComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard] + }, + { + path: 'users', + component: user_component_1.UserComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard] + }, + { + path: 'replications', + component: replication_management_component_1.ReplicationManagementComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard], + canActivateChild: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard], + children: [ + { + path: 'rules', + component: total_replication_component_1.TotalReplicationComponent + }, + { + path: 'endpoints', + component: destination_component_1.DestinationComponent + } + ] + }, + { + path: 'tags/:id/:repo', + component: tag_repository_component_1.TagRepositoryComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard] + }, + { + path: 'projects/:id', + component: project_detail_component_1.ProjectDetailComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard], + canActivateChild: [auth_user_activate_service_1.AuthCheckGuard], + resolve: { + projectResolver: project_routing_resolver_service_1.ProjectRoutingResolver + }, + children: [ + { + path: 'repository', + component: repository_component_1.RepositoryComponent + }, + { + path: 'replication', + component: replication_component_1.ReplicationComponent + }, + { + path: 'member', + component: member_component_1.MemberComponent + }, + { + path: 'log', + component: audit_log_component_1.AuditLogComponent + } + ] + }, + { + path: 'configs', + component: config_component_1.ConfigurationComponent, + canActivate: [auth_user_activate_service_1.AuthCheckGuard, system_admin_activate_service_1.SystemAdminGuard], + } + ] + }, + { path: "**", component: not_found_component_1.PageNotFoundComponent } +]; +var HarborRoutingModule = (function () { + function HarborRoutingModule() { + } + HarborRoutingModule = __decorate([ + core_1.NgModule({ + imports: [ + router_1.RouterModule.forRoot(harborRoutes) + ], + exports: [router_1.RouterModule] + }), + __metadata('design:paramtypes', []) + ], HarborRoutingModule); + return HarborRoutingModule; +}()); +exports.HarborRoutingModule = HarborRoutingModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-routing.module.js.map + +/***/ }), + +/***/ 609: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var MyMissingTranslationHandler = (function () { + function MyMissingTranslationHandler() { + } + MyMissingTranslationHandler.prototype.handle = function (params) { + var missingText = "{Miss Harbor Text}"; + return params.key || missingText; + }; + return MyMissingTranslationHandler; +}()); +exports.MyMissingTranslationHandler = MyMissingTranslationHandler; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/missing-trans.handler.js.map + +/***/ }), + +/***/ 610: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +__export(__webpack_require__(380)); +__export(__webpack_require__(600)); +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/index.js.map + +/***/ }), + +/***/ 611: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/* + { + "log_id": 3, + "user_id": 0, + "project_id": 0, + "repo_name": "library/mysql", + "repo_tag": "5.6", + "guid": "", + "operation": "push", + "op_time": "2017-02-14T09:22:58Z", + "username": "admin", + "keywords": "", + "BeginTime": "0001-01-01T00:00:00Z", + "begin_timestamp": 0, + "EndTime": "0001-01-01T00:00:00Z", + "end_timestamp": 0 + } +*/ +var AuditLog = (function () { + function AuditLog() { + this.begin_timestamp = 0; + this.end_timestamp = 0; + } + return AuditLog; +}()); +exports.AuditLog = AuditLog; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/audit-log.js.map + +/***/ }), + +/***/ 612: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var audit_log_component_1 = __webpack_require__(390); +var shared_module_1 = __webpack_require__(52); +var audit_log_service_1 = __webpack_require__(247); +var recent_log_component_1 = __webpack_require__(391); +var LogModule = (function () { + function LogModule() { + } + LogModule = __decorate([ + core_1.NgModule({ + imports: [shared_module_1.SharedModule], + declarations: [ + audit_log_component_1.AuditLogComponent, + recent_log_component_1.RecentLogComponent], + providers: [audit_log_service_1.AuditLogService], + exports: [ + audit_log_component_1.AuditLogComponent, + recent_log_component_1.RecentLogComponent] + }), + __metadata('design:paramtypes', []) + ], LogModule); + return LogModule; +}()); +exports.LogModule = LogModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/log.module.js.map + +/***/ }), + +/***/ 613: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* +{ + "user_id": 1, + "username": "admin", + "email": "", + "password": "", + "realname": "", + "comment": "", + "deleted": 0, + "role_name": "projectAdmin", + "role_id": 1, + "has_admin_role": 0, + "reset_uuid": "", + "creation_time": "0001-01-01T00:00:00Z", + "update_time": "0001-01-01T00:00:00Z" +} +*/ + +var Member = (function () { + function Member() { + } + return Member; +}()); +exports.Member = Member; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/member.js.map + +/***/ }), + +/***/ 614: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var shared_module_1 = __webpack_require__(52); +var repository_module_1 = __webpack_require__(405); +var replication_module_1 = __webpack_require__(618); +var log_module_1 = __webpack_require__(612); +var project_component_1 = __webpack_require__(398); +var create_project_component_1 = __webpack_require__(392); +var list_project_component_1 = __webpack_require__(393); +var project_detail_component_1 = __webpack_require__(396); +var member_component_1 = __webpack_require__(395); +var add_member_component_1 = __webpack_require__(394); +var project_service_1 = __webpack_require__(174); +var member_service_1 = __webpack_require__(248); +var project_routing_resolver_service_1 = __webpack_require__(397); +var ProjectModule = (function () { + function ProjectModule() { + } + ProjectModule = __decorate([ + core_1.NgModule({ + imports: [ + shared_module_1.SharedModule, + repository_module_1.RepositoryModule, + replication_module_1.ReplicationModule, + log_module_1.LogModule, + router_1.RouterModule + ], + declarations: [ + project_component_1.ProjectComponent, + create_project_component_1.CreateProjectComponent, + list_project_component_1.ListProjectComponent, + project_detail_component_1.ProjectDetailComponent, + member_component_1.MemberComponent, + add_member_component_1.AddMemberComponent + ], + exports: [project_component_1.ProjectComponent, list_project_component_1.ListProjectComponent], + providers: [project_routing_resolver_service_1.ProjectRoutingResolver, project_service_1.ProjectService, member_service_1.MemberService] + }), + __metadata('design:paramtypes', []) + ], ProjectModule); + return ProjectModule; +}()); +exports.ProjectModule = ProjectModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.module.js.map + +/***/ }), + +/***/ 615: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/* + [ + { + "project_id": 1, + "owner_id": 1, + "name": "library", + "creation_time": "2017-02-10T07:57:56Z", + "creation_time_str": "", + "deleted": 0, + "owner_name": "", + "public": 1, + "Togglable": true, + "update_time": "2017-02-10T07:57:56Z", + "current_user_role_id": 1, + "repo_count": 0 + } + ] +*/ +var Project = (function () { + function Project() { + } + return Project; +}()); +exports.Project = Project; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/project.js.map + +/***/ }), + +/***/ 616: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var ListJobComponent = (function () { + function ListJobComponent() { + this.paginate = new core_1.EventEmitter(); + this.pageOffset = 1; + } + ListJobComponent.prototype.refresh = function (state) { + if (this.jobs) { + this.paginate.emit(state); + } + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Array) + ], ListJobComponent.prototype, "jobs", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListJobComponent.prototype, "totalRecordCount", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListJobComponent.prototype, "totalPage", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListJobComponent.prototype, "paginate", void 0); + ListJobComponent = __decorate([ + core_1.Component({ + selector: 'list-job', + template: __webpack_require__(847) + }), + __metadata('design:paramtypes', []) + ], ListJobComponent); + return ListJobComponent; +}()); +exports.ListJobComponent = ListJobComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-job.component.js.map + +/***/ }), + +/***/ 617: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* + { + "id": 1, + "project_id": 1, + "project_name": "library", + "target_id": 1, + "target_name": "target_01", + "name": "sync_01", + "enabled": 0, + "description": "sync_01 desc.", + "cron_str": "", + "start_time": "0001-01-01T00:00:00Z", + "creation_time": "2017-02-24T06:41:52Z", + "update_time": "2017-02-24T06:41:52Z", + "error_job_count": 0, + "deleted": 0 + } +*/ + +var Policy = (function () { + function Policy() { + } + return Policy; +}()); +exports.Policy = Policy; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/policy.js.map + +/***/ }), + +/***/ 618: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var replication_management_component_1 = __webpack_require__(401); +var replication_component_1 = __webpack_require__(402); +var list_job_component_1 = __webpack_require__(616); +var total_replication_component_1 = __webpack_require__(403); +var destination_component_1 = __webpack_require__(400); +var create_edit_destination_component_1 = __webpack_require__(399); +var shared_module_1 = __webpack_require__(52); +var replication_service_1 = __webpack_require__(79); +var ReplicationModule = (function () { + function ReplicationModule() { + } + ReplicationModule = __decorate([ + core_1.NgModule({ + imports: [ + shared_module_1.SharedModule, + router_1.RouterModule + ], + declarations: [ + replication_component_1.ReplicationComponent, + replication_management_component_1.ReplicationManagementComponent, + list_job_component_1.ListJobComponent, + total_replication_component_1.TotalReplicationComponent, + destination_component_1.DestinationComponent, + create_edit_destination_component_1.CreateEditDestinationComponent + ], + exports: [replication_component_1.ReplicationComponent], + providers: [replication_service_1.ReplicationService] + }), + __metadata('design:paramtypes', []) + ], ReplicationModule); + return ReplicationModule; +}()); +exports.ReplicationModule = ReplicationModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.module.js.map + +/***/ }), + +/***/ 619: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var search_trigger_service_1 = __webpack_require__(95); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var ListRepositoryComponent = (function () { + function ListRepositoryComponent(router, searchTrigger, session) { + this.router = router; + this.searchTrigger = searchTrigger; + this.session = session; + this.delete = new core_1.EventEmitter(); + this.paginate = new core_1.EventEmitter(); + this.mode = shared_const_1.ListMode.FULL; + this.pageOffset = 1; + } + ListRepositoryComponent.prototype.deleteRepo = function (repoName) { + this.delete.emit(repoName); + }; + ListRepositoryComponent.prototype.refresh = function (state) { + if (this.repositories) { + this.paginate.emit(state); + } + }; + Object.defineProperty(ListRepositoryComponent.prototype, "listFullMode", { + get: function () { + return this.mode === shared_const_1.ListMode.FULL; + }, + enumerable: true, + configurable: true + }); + ListRepositoryComponent.prototype.gotoLink = function (projectId, repoName) { + this.searchTrigger.closeSearch(false); + var linkUrl = ['harbor', 'tags', projectId, repoName]; + if (!this.session.getCurrentUser()) { + var navigatorExtra = { + queryParams: { "redirect_url": linkUrl.join("/") } + }; + this.router.navigate([shared_const_1.signInRoute], navigatorExtra); + } + else { + this.router.navigate(linkUrl); + } + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListRepositoryComponent.prototype, "projectId", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Array) + ], ListRepositoryComponent.prototype, "repositories", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListRepositoryComponent.prototype, "delete", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListRepositoryComponent.prototype, "totalPage", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListRepositoryComponent.prototype, "totalRecordCount", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListRepositoryComponent.prototype, "paginate", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', String) + ], ListRepositoryComponent.prototype, "mode", void 0); + ListRepositoryComponent = __decorate([ + core_1.Component({ + selector: 'list-repository', + template: __webpack_require__(851) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _a) || Object, (typeof (_b = typeof search_trigger_service_1.SearchTriggerService !== 'undefined' && search_trigger_service_1.SearchTriggerService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object]) + ], ListRepositoryComponent); + return ListRepositoryComponent; + var _a, _b, _c; +}()); +exports.ListRepositoryComponent = ListRepositoryComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-repository.component.js.map + +/***/ }), + +/***/ 620: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* + { + "id": "2", + "name": "library/mysql", + "owner_id": 1, + "project_id": 1, + "description": "", + "pull_count": 0, + "star_count": 0, + "tags_count": 1, + "creation_time": "2017-02-14T09:22:58Z", + "update_time": "0001-01-01T00:00:00Z" + } +*/ + +var Repository = (function () { + function Repository(name, tags_count) { + this.name = name; + this.tags_count = tags_count; + } + return Repository; +}()); +exports.Repository = Repository; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/repository.js.map + +/***/ }), + +/***/ 621: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var TagView = (function () { + function TagView() { + } + return TagView; +}()); +exports.TagView = TagView; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/tag-view.js.map + +/***/ }), + +/***/ 622: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var shared_utils_1 = __webpack_require__(33); +var shared_const_1 = __webpack_require__(2); +var message_service_1 = __webpack_require__(10); +var top_repository_service_1 = __webpack_require__(623); +var repository_1 = __webpack_require__(620); +var TopRepoComponent = (function () { + function TopRepoComponent(topRepoService, msgService) { + this.topRepoService = topRepoService; + this.msgService = msgService; + this.topRepos = []; + } + Object.defineProperty(TopRepoComponent.prototype, "listMode", { + get: function () { + return shared_const_1.ListMode.READONLY; + }, + enumerable: true, + configurable: true + }); + //Implement ngOnIni + TopRepoComponent.prototype.ngOnInit = function () { + this.getTopRepos(); + }; + //Get top popular repositories + TopRepoComponent.prototype.getTopRepos = function () { + var _this = this; + this.topRepoService.getTopRepos() + .then(function (repos) { return repos.forEach(function (item) { + var repo = new repository_1.Repository(item.name, item.count); + repo.pull_count = 0; + _this.topRepos.push(repo); + }); }) + .catch(function (error) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING); + }); + }; + TopRepoComponent = __decorate([ + core_1.Component({ + selector: 'top-repo', + template: __webpack_require__(854), + providers: [top_repository_service_1.TopRepoService] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof top_repository_service_1.TopRepoService !== 'undefined' && top_repository_service_1.TopRepoService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object]) + ], TopRepoComponent); + return TopRepoComponent; + var _a, _b; +}()); +exports.TopRepoComponent = TopRepoComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/top-repo.component.js.map + +/***/ }), + +/***/ 623: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +exports.topRepoEndpoint = "/api/repositories/top"; +/** + * Declare service to handle the top repositories + * + * + * @export + * @class GlobalSearchService + */ +var TopRepoService = (function () { + function TopRepoService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + headers: this.headers + }); + } + /** + * Get top popular repositories + * + * @param {string} keyword + * @returns {Promise} + * + * @memberOf GlobalSearchService + */ + TopRepoService.prototype.getTopRepos = function () { + return this.http.get(exports.topRepoEndpoint, this.options).toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return Promise.reject(error); }); + }; + TopRepoService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], TopRepoService); + return TopRepoService; + var _a; +}()); +exports.TopRepoService = TopRepoService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/top-repository.service.js.map + +/***/ }), + +/***/ 624: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var CreateEditPolicy = (function () { + function CreateEditPolicy() { + } + return CreateEditPolicy; +}()); +exports.CreateEditPolicy = CreateEditPolicy; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/create-edit-policy.js.map + +/***/ }), + +/***/ 625: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var core_2 = __webpack_require__(34); +var deletion_dialog_service_1 = __webpack_require__(48); +var DeletionDialogComponent = (function () { + function DeletionDialogComponent(delService, translate) { + var _this = this; + this.delService = delService; + this.translate = translate; + this.opened = false; + this.dialogTitle = ""; + this.dialogContent = ""; + this.annouceSubscription = delService.deletionAnnouced$.subscribe(function (msg) { + _this.dialogTitle = msg.title; + _this.dialogContent = msg.message; + _this.message = msg; + _this.translate.get(_this.dialogTitle).subscribe(function (res) { return _this.dialogTitle = res; }); + _this.translate.get(_this.dialogContent, { 'param': msg.param }).subscribe(function (res) { return _this.dialogContent = res; }); + //Open dialog + _this.open(); + }); + } + DeletionDialogComponent.prototype.ngOnDestroy = function () { + if (this.annouceSubscription) { + this.annouceSubscription.unsubscribe(); + } + }; + DeletionDialogComponent.prototype.open = function () { + this.opened = true; + }; + DeletionDialogComponent.prototype.close = function () { + this.opened = false; + }; + DeletionDialogComponent.prototype.confirm = function () { + this.delService.confirmDeletion(this.message); + this.close(); + }; + DeletionDialogComponent = __decorate([ + core_1.Component({ + selector: 'deletion-dialog', + template: __webpack_require__(857), + styles: [__webpack_require__(814)] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _a) || Object, (typeof (_b = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _b) || Object]) + ], DeletionDialogComponent); + return DeletionDialogComponent; + var _a, _b; +}()); +exports.DeletionDialogComponent = DeletionDialogComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-dialog.component.js.map + +/***/ }), + +/***/ 626: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var Subject_1 = __webpack_require__(25); +__webpack_require__(461); +__webpack_require__(462); +var FilterComponent = (function () { + function FilterComponent() { + this.placeHolder = ""; + this.currentValue = ""; + this.leadingSpacesAdded = false; + this.filterTerms = new Subject_1.Subject(); + this.filterEvt = new core_1.EventEmitter(); + } + Object.defineProperty(FilterComponent.prototype, "flPlaceholder", { + set: function (placeHolder) { + this.placeHolder = placeHolder; + }, + enumerable: true, + configurable: true + }); + FilterComponent.prototype.ngOnInit = function () { + var _this = this; + this.filterTerms + .debounceTime(300) + .distinctUntilChanged() + .subscribe(function (terms) { + _this.filterEvt.emit(terms); + }); + }; + FilterComponent.prototype.valueChange = function () { + //Send out filter terms + this.filterTerms.next(this.currentValue.trim()); + }; + __decorate([ + core_1.Output("filter"), + __metadata('design:type', Object) + ], FilterComponent.prototype, "filterEvt", void 0); + __decorate([ + core_1.Input("filterPlaceholder"), + __metadata('design:type', String), + __metadata('design:paramtypes', [String]) + ], FilterComponent.prototype, "flPlaceholder", null); + FilterComponent = __decorate([ + core_1.Component({ + selector: 'grid-filter', + template: __webpack_require__(858), + styles: [__webpack_require__(815)] + }), + __metadata('design:paramtypes', []) + ], FilterComponent); + return FilterComponent; +}()); +exports.FilterComponent = FilterComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/filter.component.js.map + +/***/ }), + +/***/ 627: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var HarborActionOverflow = (function () { + function HarborActionOverflow() { + } + HarborActionOverflow = __decorate([ + core_1.Component({ + selector: "harbor-action-overflow", + template: __webpack_require__(859) + }), + __metadata('design:paramtypes', []) + ], HarborActionOverflow); + return HarborActionOverflow; +}()); +exports.HarborActionOverflow = HarborActionOverflow; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/harbor-action-overflow.js.map + +/***/ }), + +/***/ 628: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var replication_service_1 = __webpack_require__(79); +var deletion_dialog_service_1 = __webpack_require__(48); +var deletion_message_1 = __webpack_require__(68); +var shared_const_1 = __webpack_require__(2); +var message_service_1 = __webpack_require__(10); +var shared_const_2 = __webpack_require__(2); +var ListPolicyComponent = (function () { + function ListPolicyComponent(replicationService, deletionDialogService, messageService) { + var _this = this; + this.replicationService = replicationService; + this.deletionDialogService = deletionDialogService; + this.messageService = messageService; + this.reload = new core_1.EventEmitter(); + this.selectOne = new core_1.EventEmitter(); + this.editOne = new core_1.EventEmitter(); + this.subscription = this.subscription = this.deletionDialogService + .deletionConfirm$ + .subscribe(function (message) { + if (message && message.targetId === shared_const_1.DeletionTargets.POLICY) { + _this.replicationService + .deletePolicy(message.data) + .subscribe(function (response) { + console.log('Successful delete policy with ID:' + message.data); + _this.reload.emit(true); + }, function (error) { return _this.messageService.announceMessage(error.status, 'Failed to delete policy with ID:' + message.data, shared_const_2.AlertType.DANGER); }); + } + }); + } + ListPolicyComponent.prototype.ngOnDestroy = function () { + if (this.subscription) { + this.subscription.unsubscribe(); + } + }; + ListPolicyComponent.prototype.selectPolicy = function (policy) { + this.selectedId = policy.id; + console.log('Select policy ID:' + policy.id); + this.selectOne.emit(policy); + }; + ListPolicyComponent.prototype.editPolicy = function (policy) { + console.log('Open modal to edit policy.'); + this.editOne.emit(policy.id); + }; + ListPolicyComponent.prototype.enablePolicy = function (policy) { + policy.enabled = policy.enabled === 0 ? 1 : 0; + console.log('Enable policy ID:' + policy.id + ' with activation status ' + policy.enabled); + this.replicationService.enablePolicy(policy.id, policy.enabled); + }; + ListPolicyComponent.prototype.deletePolicy = function (policy) { + var deletionMessage = new deletion_message_1.DeletionMessage('REPLICATION.DELETION_TITLE', 'REPLICATION.DELETION_SUMMARY', policy.name, policy.id, shared_const_1.DeletionTargets.POLICY); + this.deletionDialogService.openComfirmDialog(deletionMessage); + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Array) + ], ListPolicyComponent.prototype, "policies", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Boolean) + ], ListPolicyComponent.prototype, "projectless", void 0); + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], ListPolicyComponent.prototype, "selectedId", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListPolicyComponent.prototype, "reload", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListPolicyComponent.prototype, "selectOne", void 0); + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], ListPolicyComponent.prototype, "editOne", void 0); + ListPolicyComponent = __decorate([ + core_1.Component({ + selector: 'list-policy', + template: __webpack_require__(861), + }), + __metadata('design:paramtypes', [(typeof (_a = typeof replication_service_1.ReplicationService !== 'undefined' && replication_service_1.ReplicationService) === 'function' && _a) || Object, (typeof (_b = typeof deletion_dialog_service_1.DeletionDialogService !== 'undefined' && deletion_dialog_service_1.DeletionDialogService) === 'function' && _b) || Object, (typeof (_c = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _c) || Object]) + ], ListPolicyComponent); + return ListPolicyComponent; + var _a, _b, _c; +}()); +exports.ListPolicyComponent = ListPolicyComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/list-policy.component.js.map + +/***/ }), + +/***/ 629: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +exports.assiiChars = /[\u4e00-\u9fa5]/; +function maxLengthExtValidator(length) { + return function (control) { + var value = control.value; + if (!value || value.trim() === "") { + return null; + } + var regExp = new RegExp(exports.assiiChars, 'i'); + var count = 0; + var len = value.length; + for (var i = 0; i < len; i++) { + if (regExp.test(value[i])) { + count += 3; + } + else { + count++; + } + } + return count > length ? { 'maxLengthExt': count } : null; + }; +} +exports.maxLengthExtValidator = maxLengthExtValidator; +var MaxLengthExtValidatorDirective = (function () { + function MaxLengthExtValidatorDirective() { + this.valFn = forms_1.Validators.nullValidator; + } + MaxLengthExtValidatorDirective.prototype.ngOnChanges = function (changes) { + var change = changes['maxLengthExt']; + if (change) { + var val = change.currentValue; + this.valFn = maxLengthExtValidator(val); + } + else { + this.valFn = forms_1.Validators.nullValidator; + } + }; + MaxLengthExtValidatorDirective.prototype.validate = function (control) { + return this.valFn(control); + }; + __decorate([ + core_1.Input(), + __metadata('design:type', Number) + ], MaxLengthExtValidatorDirective.prototype, "maxLengthExt", void 0); + MaxLengthExtValidatorDirective = __decorate([ + core_1.Directive({ + selector: '[maxLengthExt]', + providers: [{ provide: forms_1.NG_VALIDATORS, useExisting: MaxLengthExtValidatorDirective, multi: true }] + }), + __metadata('design:paramtypes', []) + ], MaxLengthExtValidatorDirective); + return MaxLengthExtValidatorDirective; +}()); +exports.MaxLengthExtValidatorDirective = MaxLengthExtValidatorDirective; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/max-length-ext.directive.js.map + +/***/ }), + +/***/ 630: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var forms_1 = __webpack_require__(26); +exports.portNumbers = /[\d]+/; +function portValidator() { + return function (control) { + var value = control.value; + if (!value) { + return { 'port': 65535 }; + } + var regExp = new RegExp(exports.portNumbers, 'i'); + if (!regExp.test(value)) { + return { 'port': 65535 }; + } + else { + var portV = parseInt(value); + if (portV <= 0 || portV > 65535) { + return { 'port': 65535 }; + } + } + return null; + }; +} +exports.portValidator = portValidator; +var PortValidatorDirective = (function () { + function PortValidatorDirective() { + this.valFn = portValidator(); + } + PortValidatorDirective.prototype.validate = function (control) { + return this.valFn(control); + }; + PortValidatorDirective = __decorate([ + core_1.Directive({ + selector: '[port]', + providers: [{ provide: forms_1.NG_VALIDATORS, useExisting: PortValidatorDirective, multi: true }] + }), + __metadata('design:paramtypes', []) + ], PortValidatorDirective); + return PortValidatorDirective; +}()); +exports.PortValidatorDirective = PortValidatorDirective; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/port.directive.js.map + +/***/ }), + +/***/ 631: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var router_1 = __webpack_require__(8); +var session_service_1 = __webpack_require__(14); +var shared_const_1 = __webpack_require__(2); +var BaseRoutingResolver = (function () { + function BaseRoutingResolver(session, router) { + this.session = session; + this.router = router; + } + BaseRoutingResolver.prototype.resolve = function (route, state) { + var _this = this; + //To refresh seesion + return this.session.retrieveUser() + .then(function (sessionUser) { + return sessionUser; + }) + .catch(function (error) { + //Session retrieving failed then redirect to sign-in + //no matter what status code is. + //Please pay attention that route 'harborRootRoute' support anonymous user + if (state.url != shared_const_1.harborRootRoute) { + var navigatorExtra = { + queryParams: { "redirect_url": state.url } + }; + _this.router.navigate(['sign-in'], navigatorExtra); + } + }); + }; + BaseRoutingResolver = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _a) || Object, (typeof (_b = typeof router_1.Router !== 'undefined' && router_1.Router) === 'function' && _b) || Object]) + ], BaseRoutingResolver); + return BaseRoutingResolver; + var _a, _b; +}()); +exports.BaseRoutingResolver = BaseRoutingResolver; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/base-routing-resolver.service.js.map + +/***/ }), + +/***/ 632: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Declare class for store the sign in data, + * two prperties: + * principal: The username used to sign in + * password: The password used to sign in + * + * @export + * @class SignInCredential + */ + +var SignInCredential = (function () { + function SignInCredential() { + } + return SignInCredential; +}()); +exports.SignInCredential = SignInCredential; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/sign-in-credential.js.map + +/***/ }), + +/***/ 633: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var statistics_service_1 = __webpack_require__(635); +var shared_utils_1 = __webpack_require__(33); +var shared_const_1 = __webpack_require__(2); +var message_service_1 = __webpack_require__(10); +var statistics_1 = __webpack_require__(636); +var session_service_1 = __webpack_require__(14); +var StatisticsPanelComponent = (function () { + function StatisticsPanelComponent(statistics, msgService, session) { + this.statistics = statistics; + this.msgService = msgService; + this.session = session; + this.originalCopy = new statistics_1.Statistics(); + } + StatisticsPanelComponent.prototype.ngOnInit = function () { + if (this.session.getCurrentUser()) { + this.getStatistics(); + } + }; + StatisticsPanelComponent.prototype.getStatistics = function () { + var _this = this; + this.statistics.getStatistics() + .then(function (statistics) { return _this.originalCopy = statistics; }) + .catch(function (error) { + _this.msgService.announceMessage(error.status, shared_utils_1.errorHandler(error), shared_const_1.AlertType.WARNING); + }); + }; + Object.defineProperty(StatisticsPanelComponent.prototype, "isValidSession", { + get: function () { + var user = this.session.getCurrentUser(); + return user && user.has_admin_role > 0; + }, + enumerable: true, + configurable: true + }); + StatisticsPanelComponent = __decorate([ + core_1.Component({ + selector: 'statistics-panel', + template: __webpack_require__(864), + styles: [__webpack_require__(458)], + providers: [statistics_service_1.StatisticsService] + }), + __metadata('design:paramtypes', [(typeof (_a = typeof statistics_service_1.StatisticsService !== 'undefined' && statistics_service_1.StatisticsService) === 'function' && _a) || Object, (typeof (_b = typeof message_service_1.MessageService !== 'undefined' && message_service_1.MessageService) === 'function' && _b) || Object, (typeof (_c = typeof session_service_1.SessionService !== 'undefined' && session_service_1.SessionService) === 'function' && _c) || Object]) + ], StatisticsPanelComponent); + return StatisticsPanelComponent; + var _a, _b, _c; +}()); +exports.StatisticsPanelComponent = StatisticsPanelComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics-panel.component.js.map + +/***/ }), + +/***/ 634: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var StatisticsComponent = (function () { + function StatisticsComponent() { + } + __decorate([ + core_1.Input(), + __metadata('design:type', Object) + ], StatisticsComponent.prototype, "data", void 0); + StatisticsComponent = __decorate([ + core_1.Component({ + selector: 'statistics', + template: __webpack_require__(865), + styles: [__webpack_require__(458)] + }), + __metadata('design:paramtypes', []) + ], StatisticsComponent); + return StatisticsComponent; +}()); +exports.StatisticsComponent = StatisticsComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.component.js.map + +/***/ }), + +/***/ 635: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +__webpack_require__(58); +exports.statisticsEndpoint = "/api/statistics"; +/** + * Declare service to handle the top repositories + * + * + * @export + * @class GlobalSearchService + */ +var StatisticsService = (function () { + function StatisticsService(http) { + this.http = http; + this.headers = new http_1.Headers({ + "Content-Type": 'application/json' + }); + this.options = new http_1.RequestOptions({ + headers: this.headers + }); + } + StatisticsService.prototype.getStatistics = function () { + return this.http.get(exports.statisticsEndpoint, this.options).toPromise() + .then(function (response) { return response.json(); }) + .catch(function (error) { return Promise.reject(error); }); + }; + StatisticsService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], StatisticsService); + return StatisticsService; + var _a; +}()); +exports.StatisticsService = StatisticsService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.service.js.map + +/***/ }), + +/***/ 636: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var Statistics = (function () { + function Statistics() { + } + return Statistics; +}()); +exports.Statistics = Statistics; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/statistics.js.map + +/***/ }), + +/***/ 637: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var shared_module_1 = __webpack_require__(52); +var user_component_1 = __webpack_require__(413); +var new_user_modal_component_1 = __webpack_require__(412); +var user_service_1 = __webpack_require__(175); +var UserModule = (function () { + function UserModule() { + } + UserModule = __decorate([ + core_1.NgModule({ + imports: [ + shared_module_1.SharedModule + ], + declarations: [ + user_component_1.UserComponent, + new_user_modal_component_1.NewUserModalComponent + ], + exports: [ + user_component_1.UserComponent + ], + providers: [user_service_1.UserService] + }), + __metadata('design:paramtypes', []) + ], UserModule); + return UserModule; +}()); +exports.UserModule = UserModule; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.module.js.map + +/***/ }), + +/***/ 638: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/** + * For user management + * + * @export + * @class User + */ +var User = (function () { + function User() { + } + return User; +}()); +exports.User = User; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/user.js.map + +/***/ }), + +/***/ 639: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `angular-cli.json`. + +exports.environment = { + production: false +}; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/environment.js.map + +/***/ }), + +/***/ 640: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// This file includes polyfills needed by Angular 2 and is loaded before +// the app. You can add your own extra polyfills to this file. +__webpack_require__(657); +__webpack_require__(650); +__webpack_require__(646); +__webpack_require__(652); +__webpack_require__(651); +__webpack_require__(649); +__webpack_require__(648); +__webpack_require__(656); +__webpack_require__(645); +__webpack_require__(644); +__webpack_require__(654); +__webpack_require__(647); +__webpack_require__(655); +__webpack_require__(653); +__webpack_require__(658); +__webpack_require__(902); +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/polyfills.js.map + +/***/ }), + +/***/ 68: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var shared_const_1 = __webpack_require__(2); +var DeletionMessage = (function () { + function DeletionMessage(title, message, param, data, targetId) { + this.targetId = shared_const_1.DeletionTargets.EMPTY; + this.title = title; + this.message = message; + this.data = data; + this.targetId = targetId; + this.param = param; + } + return DeletionMessage; +}()); +exports.DeletionMessage = DeletionMessage; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/deletion-message.js.map + +/***/ }), + +/***/ 79: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var http_1 = __webpack_require__(20); +var base_service_1 = __webpack_require__(251); +var Observable_1 = __webpack_require__(3); +__webpack_require__(133); +__webpack_require__(85); +__webpack_require__(132); +__webpack_require__(463); +var ReplicationService = (function (_super) { + __extends(ReplicationService, _super); + function ReplicationService(http) { + _super.call(this); + this.http = http; + } + ReplicationService.prototype.listPolicies = function (policyName, projectId) { + if (!projectId) { + projectId = ''; + } + console.log('Get policies with project ID:' + projectId + ', policy name:' + policyName); + return this.http + .get("/api/policies/replication?project_id=" + projectId + "&name=" + policyName) + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.getPolicy = function (policyId) { + console.log('Get policy with ID:' + policyId); + return this.http + .get("/api/policies/replication/" + policyId) + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.createPolicy = function (policy) { + console.log('Create policy with project ID:' + policy.project_id + ', policy:' + JSON.stringify(policy)); + return this.http + .post("/api/policies/replication", JSON.stringify(policy)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.updatePolicy = function (policy) { + if (policy && policy.id) { + return this.http + .put("/api/policies/replication/" + policy.id, JSON.stringify(policy)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + } + return Observable_1.Observable.throw(new Error("Policy is nil or has no ID set.")); + }; + ReplicationService.prototype.createOrUpdatePolicyWithNewTarget = function (policy, target) { + var _this = this; + return this.http + .post("/api/targets", JSON.stringify(target)) + .map(function (response) { + return response.status; + }) + .catch(function (error) { return Observable_1.Observable.throw(error); }) + .flatMap(function (status) { + if (status === 201) { + return _this.http + .get("/api/targets?name=" + target.name) + .map(function (res) { return res; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + } + }) + .flatMap(function (res) { + if (res.status === 200) { + var lastAddedTarget = res.json()[0]; + if (lastAddedTarget && lastAddedTarget.id) { + policy.target_id = lastAddedTarget.id; + if (policy.id) { + return _this.http + .put("/api/policies/replication/" + policy.id, JSON.stringify(policy)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + } + else { + return _this.http + .post("/api/policies/replication", JSON.stringify(policy)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + } + } + } + }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.enablePolicy = function (policyId, enabled) { + console.log('Enable or disable policy ID:' + policyId + ' with activation status:' + enabled); + return this.http + .put("/api/policies/replication/" + policyId + "/enablement", { enabled: enabled }) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.deletePolicy = function (policyId) { + console.log('Delete policy ID:' + policyId); + return this.http + .delete("/api/policies/replication/" + policyId) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + // /api/jobs/replication/?page=1&page_size=20&end_time=&policy_id=1&start_time=&status=&repository= + ReplicationService.prototype.listJobs = function (policyId, status, repoName, startTime, endTime, page, pageSize) { + if (status === void 0) { status = ''; } + if (repoName === void 0) { repoName = ''; } + if (startTime === void 0) { startTime = ''; } + if (endTime === void 0) { endTime = ''; } + console.log('Get jobs under policy ID:' + policyId); + return this.http + .get("/api/jobs/replication?policy_id=" + policyId + "&status=" + status + "&repository=" + repoName + "&start_time=" + startTime + "&end_time=" + endTime + "&page=" + page + "&page_size=" + pageSize) + .map(function (response) { return response; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.listTargets = function (targetName) { + console.log('Get targets.'); + return this.http + .get("/api/targets?name=" + targetName) + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.getTarget = function (targetId) { + console.log('Get target by ID:' + targetId); + return this.http + .get("/api/targets/" + targetId) + .map(function (response) { return response.json(); }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.createTarget = function (target) { + console.log('Create target:' + JSON.stringify(target)); + return this.http + .post("/api/targets", JSON.stringify(target)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.pingTarget = function (target) { + console.log('Ping target.'); + var body = new http_1.URLSearchParams(); + body.set('endpoint', target.endpoint); + body.set('username', target.username); + body.set('password', target.password); + return this.http + .post("/api/targets/ping", body) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.updateTarget = function (target) { + console.log('Update target with target ID' + target.id); + return this.http + .put("/api/targets/" + target.id, JSON.stringify(target)) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService.prototype.deleteTarget = function (targetId) { + console.log('Deleting target with ID:' + targetId); + return this.http + .delete("/api/targets/" + targetId) + .map(function (response) { return response.status; }) + .catch(function (error) { return Observable_1.Observable.throw(error); }); + }; + ReplicationService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [(typeof (_a = typeof http_1.Http !== 'undefined' && http_1.Http) === 'function' && _a) || Object]) + ], ReplicationService); + return ReplicationService; + var _a; +}(base_service_1.BaseService)); +exports.ReplicationService = ReplicationService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/replication.service.js.map + +/***/ }), + +/***/ 80: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var core_2 = __webpack_require__(34); +var shared_utils_1 = __webpack_require__(33); +var InlineAlertComponent = (function () { + function InlineAlertComponent(translate) { + this.translate = translate; + this.inlineAlertType = 'alert-danger'; + this.inlineAlertClosable = true; + this.alertClose = true; + this.displayedText = ""; + this.showCancelAction = false; + this.useAppLevelStyle = false; + this.confirmEvt = new core_1.EventEmitter(); + } + Object.defineProperty(InlineAlertComponent.prototype, "errorMessage", { + get: function () { + return this.displayedText; + }, + enumerable: true, + configurable: true + }); + //Show error message inline + InlineAlertComponent.prototype.showInlineError = function (error) { + this.displayedText = shared_utils_1.errorHandler(error); + this.inlineAlertType = 'alert-danger'; + this.showCancelAction = false; + this.inlineAlertClosable = true; + this.alertClose = false; + this.useAppLevelStyle = false; + }; + //Show confirmation info with action button + InlineAlertComponent.prototype.showInlineConfirmation = function (warning) { + var _this = this; + this.displayedText = ""; + if (warning && warning.message) { + this.translate.get(warning.message).subscribe(function (res) { return _this.displayedText = res; }); + } + this.inlineAlertType = 'alert-warning'; + this.showCancelAction = true; + this.inlineAlertClosable = true; + this.alertClose = false; + this.useAppLevelStyle = true; + }; + //Show inline sccess info + InlineAlertComponent.prototype.showInlineSuccess = function (info) { + var _this = this; + this.displayedText = ""; + if (info && info.message) { + this.translate.get(info.message).subscribe(function (res) { return _this.displayedText = res; }); + } + this.inlineAlertType = 'alert-success'; + this.showCancelAction = false; + this.inlineAlertClosable = true; + this.alertClose = false; + this.useAppLevelStyle = false; + }; + //Close alert + InlineAlertComponent.prototype.close = function () { + this.alertClose = true; + }; + InlineAlertComponent.prototype.confirmCancel = function () { + this.confirmEvt.emit(true); + }; + __decorate([ + core_1.Output(), + __metadata('design:type', Object) + ], InlineAlertComponent.prototype, "confirmEvt", void 0); + InlineAlertComponent = __decorate([ + core_1.Component({ + selector: 'inline-alert', + template: __webpack_require__(860) + }), + __metadata('design:paramtypes', [(typeof (_a = typeof core_2.TranslateService !== 'undefined' && core_2.TranslateService) === 'function' && _a) || Object]) + ], InlineAlertComponent); + return InlineAlertComponent; + var _a; +}()); +exports.InlineAlertComponent = InlineAlertComponent; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/inline-alert.component.js.map + +/***/ }), + +/***/ 802: +/***/ (function(module, exports) { + +module.exports = ".progress-size-small {\n height: 0.5em !important;\n}\n\n.visibility-hidden {\n visibility: hidden;\n}\n\n.forgot-password-link {\n position: relative;\n line-height: 36px;\n font-size: 14px;\n float: right;\n top: -5px;\n}" + +/***/ }), + +/***/ 803: +/***/ (function(module, exports) { + +module.exports = ".search-overlay {\n display: block;\n position: absolute;\n height: 100%;\n width: 98%;\n /*shoud be lesser than 1000 to aoivd override the popup menu*/\n z-index: 999;\n box-sizing: border-box;\n background: #fafafa;\n top: 0px;\n padding-left: 24px;\n}\n\n.search-header {\n display: inline-block;\n width: 100%;\n position: relative;\n}\n\n.search-title {\n font-size: 28px;\n letter-spacing: normal;\n color: #000;\n}\n\n.search-close {\n position: absolute;\n right: 24px;\n cursor: pointer;\n}\n\n.search-parent-override {\n position: relative !important;\n}\n\n.search-spinner {\n top: 50%;\n left: 50%;\n position: absolute;\n}\n\n.grid-header-wrapper {\n text-align: right;\n}\n\n.grid-filter {\n position: relative;\n top: 8px;\n margin: 0px auto 0px auto;\n}" + +/***/ }), + +/***/ 804: +/***/ (function(module, exports) { + +module.exports = ".side-nav-override {\n box-shadow: 6px 0px 0px 0px #ccc;\n}\n\n.container-override {\n position: relative !important;\n}\n\n.start-content-padding {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n padding-left: 0px !important;\n}" + +/***/ }), + +/***/ 805: +/***/ (function(module, exports) { + +module.exports = ".sign-in-override {\n padding-left: 0px !important;\n padding-right: 5px !important;\n}\n\n.sign-up-override {\n padding-left: 5px !important;\n}\n\n.custom-divider {\n display: inline-block;\n border-right: 2px inset snow;\n padding: 2px 0px 2px 0px;\n vertical-align: middle;\n height: 24px;\n}\n\n.lang-selected {\n font-weight: bold;\n}\n\n.nav-divider {\n display: inline-block;\n width: 1px;\n height: 40px;\n background-color: #fafafa;\n position: relative;\n top: 10px;\n}" + +/***/ }), + +/***/ 806: +/***/ (function(module, exports) { + +module.exports = ".start-card {\n border-right: 1px solid #cccccc;\n padding: 24px;\n background-color: white;\n height: 100%;\n}\n\n.row-fill-height {\n height: 100%;\n}\n\n.row-margin {\n margin-left: 24px;\n}\n\n.column-fill-height {\n height: 100%;\n}\n\n.my-card-img {\n background-image: url('../../../images/harbor-logo.png');\n background-repeat: no-repeat;\n background-size: contain;\n height: 160px;\n}\n\n.my-card-footer {\n float: right;\n margin-top: 100px;\n}" + +/***/ }), + +/***/ 807: +/***/ (function(module, exports) { + +module.exports = ".advance-option {\n font-size: 12px;\n}\n" + +/***/ }), + +/***/ 808: +/***/ (function(module, exports) { + +module.exports = ".h2-log-override {\n margin-top: 0px !important;\n}\n\n.filter-log {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-head-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}\n\n.custom-lines-button {\n padding: 0px !important;\n min-width: 25px !important;\n}\n\n.lines-button-toggole {\n font-size: 16px;\n text-decoration: underline;\n}" + +/***/ }), + +/***/ 809: +/***/ (function(module, exports) { + +module.exports = "" + +/***/ }), + +/***/ 810: +/***/ (function(module, exports) { + +module.exports = ".display-in-line {\n display: inline-block;\n}\n\n.project-title {\n margin-left: 10px; \n}\n\n.pull-right {\n float: right !important;\n}" + +/***/ }), + +/***/ 811: +/***/ (function(module, exports) { + +module.exports = "" + +/***/ }), + +/***/ 812: +/***/ (function(module, exports) { + +module.exports = ".custom-h2 {\n margin-top: 0px !important;\n}\n\n.custom-add-button {\n font-size: medium;\n margin-left: -12px;\n}\n\n.filter-icon {\n position: relative;\n right: -12px;\n}\n\n.filter-pos {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-panel-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}" + +/***/ }), + +/***/ 813: +/***/ (function(module, exports) { + +module.exports = ".margin-left-override {\n margin-left: 24px !important;\n}\n\n.about-text-link {\n font-family: \"Proxima Nova Light\";\n font-size: 14px;\n color: #007CBB;\n line-height: 24px;\n}\n\n.about-copyright-text {\n font-family: \"Proxima Nova Light\";\n font-size: 13px;\n color: #565656;\n line-height: 16px;\n}\n\n.about-product-title {\n font-family: \"Metropolis Light\";\n font-size: 28px;\n color: #000000;\n line-height: 36px;\n}\n\n.about-version {\n font-family: \"Metropolis\";\n font-size: 14px;\n color: #565656;\n font-weight: 500;\n}\n\n.about-build {\n font-family: \"Metropolis\";\n font-size: 14px;\n color: #565656;\n}" + +/***/ }), + +/***/ 814: +/***/ (function(module, exports) { + +module.exports = ".deletion-icon-inline {\n display: inline-block;\n}\n\n.deletion-title {\n line-height: 24px;\n color: #000000;\n font-size: 22px;\n}\n\n.deletion-content {\n font-size: 14px;\n color: #565656;\n line-height: 24px;\n display: inline-block;\n vertical-align: middle;\n width: 80%;\n}" + +/***/ }), + +/***/ 815: +/***/ (function(module, exports) { + +module.exports = ".filter-icon {\n position: relative;\n right: -12px;\n}" + +/***/ }), + +/***/ 816: +/***/ (function(module, exports) { + +module.exports = ".label-info {\n margin: 0px !important;\n padding: 0px !important;\n margin-top: -5px !important;\n}" + +/***/ }), + +/***/ 817: +/***/ (function(module, exports) { + +module.exports = ".wrapper-back {\n position: absolute;\n top: 50%;\n height: 240px;\n margin-top: -120px;\n text-align: center;\n left: 50%;\n margin-left: -300px;\n}\n\n.status-code {\n font-weight: bolder;\n font-size: 4em;\n color: #A32100;\n vertical-align: middle;\n}\n\n.status-text {\n font-weight: bold;\n font-size: 3em;\n margin-left: 10px;\n vertical-align: middle;\n}\n\n.status-subtitle {\n font-size: 18px;\n}\n\n.second-number {\n font-weight: bold;\n font-size: 2em;\n color: #EB8D00;\n}" + +/***/ }), + +/***/ 818: +/***/ (function(module, exports) { + +module.exports = ".custom-h2 {\n margin-top: 0px !important;\n}\n\n.custom-add-button {\n font-size: medium;\n margin-left: -12px;\n}\n\n.filter-icon {\n position: relative;\n right: -12px;\n}\n\n.filter-pos {\n float: right;\n margin-right: 24px;\n position: relative;\n top: 8px;\n}\n\n.action-panel-pos {\n position: relative;\n top: 20px;\n}\n\n.refresh-btn {\n position: absolute;\n right: -4px;\n top: 8px;\n cursor: pointer;\n}" + +/***/ }), + +/***/ 820: +/***/ (function(module, exports) { + +module.exports = "\n

{{'PROFILE.TITLE' | translate}}

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 821: +/***/ (function(module, exports) { + +module.exports = "\n

{{'RESET_PWD.TITLE' | translate}}

\n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 822: +/***/ (function(module, exports) { + +module.exports = "\n

{{'CHANGE_PWD.TITLE' | translate}}

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 823: +/***/ (function(module, exports) { + +module.exports = "\n

{{'RESET_PWD.TITLE' | translate}}

\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 824: +/***/ (function(module, exports) { + +module.exports = "
\n
\n \n
\n \n \n
\n \n \n {{'SIGN_IN.FORGOT_PWD' | translate}}\n
\n
\n {{ 'SIGN_IN.INVALID_MSG' | translate }}\n
\n \n {{ 'BUTTON.SIGN_UP_LINK' | translate }}\n
\n
\n
\n\n" + +/***/ }), + +/***/ 825: +/***/ (function(module, exports) { + +module.exports = "\n

{{'SIGN_UP.TITLE' | translate}}

\n
\n \n \n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 826: +/***/ (function(module, exports) { + +module.exports = "" + +/***/ }), + +/***/ 827: +/***/ (function(module, exports) { + +module.exports = "" + +/***/ }), + +/***/ 828: +/***/ (function(module, exports) { + +module.exports = "
\n \n
" + +/***/ }), + +/***/ 829: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n Search results for '{{currentTerm}}'\n \n \n \n
\n \n
Search...
\n
\n

Projects

\n
\n \n
\n \n

Repositories

\n \n
\n
" + +/***/ }), + +/***/ 830: +/***/ (function(module, exports) { + +module.exports = "\n \n \n \n\n\n\n\n" + +/***/ }), + +/***/ 831: +/***/ (function(module, exports) { + +module.exports = "\n \n \n \n \n" + +/***/ }), + +/***/ 832: +/***/ (function(module, exports) { + +module.exports = "\n
\n
\n \n \n
\n
\n\n\n
\n
\n
\n
\n
\n
\n

Getting Start

\n

\n {{'START_PAGE.GETTING_START' | translate}}\n

\n
\n \n
\n
\n
\n \n
\n
" + +/***/ }), + +/***/ 833: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n \n
\n \n
\n \n \n {{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.LDAP_SEARCH_DN' | translate}}\n \n
\n
\n \n \n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.LDAP_BASE_DN' | translate}}\n \n
\n
\n \n \n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.LDAP_UID' | translate}}\n \n
\n
\n \n
\n \n
\n \n \n {{'CONFIG.TOOLTIP.LDAP_SCOPE' | translate}}\n \n
\n
\n
\n
\n \n
\n \n
\n \n \n {{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}\n \n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.SELF_REGISTRATION' | translate}}\n \n \n
\n
\n
" + +/***/ }), + +/***/ 834: +/***/ (function(module, exports) { + +module.exports = "

{{'CONFIG.TITLE' | translate }}

\n\n\n {{'CONFIG.AUTH' | translate }}\n {{'CONFIG.REPLICATION' | translate }}\n {{'CONFIG.EMAIL' | translate }}\n {{'CONFIG.SYSTEM' | translate }}\n\n \n \n \n \n
\n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.VERIFY_REMOTE_CERT' | translate }}\n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \n \n \n {{'CONFIG.TOOLTIP.TOKEN_EXPIRATION' | translate}}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
" + +/***/ }), + +/***/ 835: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n {{'CONFIG.SSL_TOOLTIP' | translate}}\n \n \n
\n
\n
" + +/***/ }), + +/***/ 836: +/***/ (function(module, exports) { + +module.exports = "\n
\n \n {{message}}\n \n
\n \n
\n
\n
" + +/***/ }), + +/***/ 837: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n \n \n \n \n
\n \n \n
\n
\n \n {{'AUDIT_LOG.USERNAME' | translate}}\n {{'AUDIT_LOG.REPOSITORY_NAME' | translate}}\n {{'AUDIT_LOG.TAGS' | translate}}\n {{'AUDIT_LOG.OPERATION' | translate}}\n {{'AUDIT_LOG.TIMESTAMP' | translate}}\n \n {{l.username}}\n {{l.repo_name}}\n {{l.repo_tag}}\n {{l.operation}}\n {{l.op_time}}\n \n \n {{totalRecordCount}} {{'AUDIT_LOG.ITEMS' | translate}}\n \n \n \n
\n
" + +/***/ }), + +/***/ 838: +/***/ (function(module, exports) { + +module.exports = "
\n

{{'SIDE_NAV.LOGS' | translate}}

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n {{'AUDIT_LOG.USERNAME' | translate}}\n {{'AUDIT_LOG.REPOSITORY_NAME' | translate}}\n {{'AUDIT_LOG.TAGS' | translate}}\n {{'AUDIT_LOG.OPERATION' | translate}}\n {{'AUDIT_LOG.TIMESTAMP' | translate}}\n \n {{l.username}}\n {{l.repo_name}}\n {{l.repo_tag}}\n {{l.operation}}\n {{formatDateTime(l.op_time)}}\n \n {{ (recentLogs ? recentLogs.length : 0) }} {{'AUDIT_LOG.ITEMS' | translate}}\n \n
\n
" + +/***/ }), + +/***/ 839: +/***/ (function(module, exports) { + +module.exports = "\n

{{'PROJECT.NEW_PROJECT' | translate}}

\n
\n
\n
\n \n
\n \n {{errorMessage}}\n \n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n" + +/***/ }), + +/***/ 840: +/***/ (function(module, exports) { + +module.exports = "\n {{'PROJECT.NAME' | translate}}\n {{'PROJECT.PUBLIC_OR_PRIVATE' | translate}}\n {{'PROJECT.REPO_COUNT'| translate}}\n {{'PROJECT.CREATION_TIME' | translate}}\n {{'PROJECT.DESCRIPTION' | translate}}\n \n {{p.name}}\n {{ (p.public === 1 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}}\n {{p.repo_count}}\n {{p.creation_time}}\n \n {{p.description}}\n \n {{'PROJECT.NEW_POLICY' | translate}}\n {{'PROJECT.MAKE' | translate}} {{(p.public === 0 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}} \n
\n {{'PROJECT.DELETE' | translate}}\n
\n
\n
\n \n {{totalRecordCount || (projects ? projects.length : 0)}} {{'PROJECT.ITEMS' | translate}}\n \n \n
" + +/***/ }), + +/***/ 841: +/***/ (function(module, exports) { + +module.exports = "\n

{{'MEMBER.NEW_MEMBER' | translate}}

\n
\n
\n
\n \n
\n \n {{errorMessage}}\n \n
\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n" + +/***/ }), + +/***/ 842: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n \n \n \n
\n
\n \n {{'MEMBER.NAME' | translate}}\n {{'MEMBER.ROLE' | translate}}\n \n {{u.username}}\n \n {{roleInfo[u.role_id] | translate}}\n \n {{'MEMBER.PROJECT_ADMIN' | translate}}\n {{'MEMBER.DEVELOPER' | translate}}\n {{'MEMBER.GUEST' | translate}}\n
\n {{'MEMBER.DELETE' | translate}}\n
\n
\n
\n {{ (members ? members.length : 0) }} {{'MEMBER.ITEMS' | translate}}\n
\n
\n
" + +/***/ }), + +/***/ 843: +/***/ (function(module, exports) { + +module.exports = "< {{'PROJECT_DETAIL.PROJECTS' | translate}}\n

{{currentProject.name}}

\n\n\n" + +/***/ }), + +/***/ 844: +/***/ (function(module, exports) { + +module.exports = "

{{'PROJECT.PROJECTS' | translate}}

\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n
\n
" + +/***/ }), + +/***/ 845: +/***/ (function(module, exports) { + +module.exports = "\n

{{modalTitle}}

\n
\n
\n
\n \n
\n \n {{errorMessage}}\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{ pingTestMessage }}\n
\n
\n
\n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 846: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n {{'DESTINATION.NAME' | translate}}\n {{'DESTINATION.URL' | translate}}\n {{'DESTINATION.CREATION_TIME' | translate}}\n \n {{t.name}}\n {{t.endpoint}}\n {{t.creation_time}}\n \n {{'DESTINATION.TITLE_EDIT' | translate}}\n {{'DESTINATION.DELETE' | translate}}\n \n \n \n {{ (targets ? targets.length : 0) }} {{'DESTINATION.ITEMS' | translate}}\n \n
\n
" + +/***/ }), + +/***/ 847: +/***/ (function(module, exports) { + +module.exports = " \n {{'REPLICATION.NAME' | translate}}\n {{'REPLICATION.STATUS' | translate}}\n {{'REPLICATION.OPERATION' | translate}} \n {{'REPLICATION.CREATION_TIME' | translate}}\n {{'REPLICATION.END_TIME' | translate}}\n {{'REPLICATION.LOGS' | translate}}\n \n {{j.repository}}\n {{j.status}}\n {{j.operation}}\n {{j.creation_time}}\n {{j.update_time}}\n \n \n \n {{ totalRecordCount }} {{'REPLICATION.ITEMS' | translate}} \n \n \n" + +/***/ }), + +/***/ 848: +/***/ (function(module, exports) { + +module.exports = "

{{'SIDE_NAV.SYSTEM_MGMT.REPLICATION' | translate}}

\n\n\n" + +/***/ }), + +/***/ 849: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n
\n
{{'REPLICATION.REPLICATION_JOBS' | translate}}
\n
\n \n \n \n
\n
\n
\n \n \n \n \n
\n \n \n
\n
\n \n
\n
" + +/***/ }), + +/***/ 850: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
" + +/***/ }), + +/***/ 851: +/***/ (function(module, exports) { + +module.exports = "\n {{'REPOSITORY.NAME' | translate}}\n {{'REPOSITORY.TAGS_COUNT' | translate}}\n {{'REPOSITORY.PULL_COUNT' | translate}}\n \n {{r.name || r.repository_name}}\n {{r.tags_count}}\n {{r.pull_count}}\n \n {{'REPOSITORY.COPY_ID' | translate}}\n {{'REPOSITORY.COPY_PARENT_ID' | translate}}\n
\n {{'REPOSITORY.DELETE' | translate}}\n
\n
\n
\n \n {{totalRecordCount || (repositories ? repositories.length : 0)}} {{'REPOSITORY.ITEMS' | translate}}\n \n \n
" + +/***/ }), + +/***/ 852: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n
\n
" + +/***/ }), + +/***/ 853: +/***/ (function(module, exports) { + +module.exports = "< {{'REPOSITORY.REPOSITORIES' | translate}}\n

{{repoName}} {{tags ? tags.length : 0}}

\n\n {{'REPOSITORY.TAG' | translate}}\n {{'REPOSITORY.PULL_COMMAND' | translate}}\n {{'REPOSITORY.VERIFIED' | translate}}\n {{'REPOSITORY.AUTHOR' | translate}}\n {{'REPOSITORY.CREATED' | translate}}\n {{'REPOSITORY.DOCKER_VERSION' | translate}}\n {{'REPOSITORY.ARCHITECTURE' | translate}}\n {{'REPOSITORY.OS' | translate}}\n \n {{t.tag}}\n {{t.pullCommand}}\n \n \n \n \n {{t.author}}\n {{t.created | date: 'yyyy/MM/dd'}}\n {{t.dockerVersion}}\n {{t.architecture}}\n {{t.os}}\n \n {{'REPOSITORY.DELETE' | translate}}\n \n \n \n {{tags ? tags.length : 0}} {{'REPOSITORY.ITEMS' | translate}}\n" + +/***/ }), + +/***/ 854: +/***/ (function(module, exports) { + +module.exports = "
\n

Popular Repositories

\n \n
" + +/***/ }), + +/***/ 855: +/***/ (function(module, exports) { + +module.exports = "\n

vmware

\n
\n
Harbor
\n
\n
\n {{'ABOUT.VERSION' | translate}} {{version}}\n |\n {{'ABOUT.BUILD' | translate}} {{build}}\n
\n
\n
\n \n \n

\n {{'ABOUT.END_USER_LICENSE' | translate}}
\n {{'ABOUT.OPEN_SOURCE_LICENSE' | translate}}\n

\n
\n
\n
\n \n
" + +/***/ }), + +/***/ 856: +/***/ (function(module, exports) { + +module.exports = "\n

{{modalTitle}}

\n
\n
\n
\n \n
\n \n {{errorMessage}}\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n \n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n {{ pingTestMessage }}\n
\n
\n
\n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 857: +/***/ (function(module, exports) { + +module.exports = "\n

{{dialogTitle}}

\n
\n
\n \n
\n
{{dialogContent}}
\n
\n
\n \n \n
\n
" + +/***/ }), + +/***/ 858: +/***/ (function(module, exports) { + +module.exports = "\n \n \n" + +/***/ }), + +/***/ 859: +/***/ (function(module, exports) { + +module.exports = "\n\n \n
\n \n
\n
\n
" + +/***/ }), + +/***/ 860: +/***/ (function(module, exports) { + +module.exports = "\n
\n \n {{errorMessage}}\n \n
\n \n
\n
\n
" + +/***/ }), + +/***/ 861: +/***/ (function(module, exports) { + +module.exports = "\n {{'REPLICATION.NAME' | translate}}\n {{'REPLICATION.PROJECT' | translate}} \n {{'REPLICATION.DESCRIPTION' | translate}}\n {{'REPLICATION.DESTINATION_NAME' | translate}}\n {{'REPLICATION.LAST_START_TIME' | translate}} \n {{'REPLICATION.ACTIVATION' | translate}}\n \n {{p.name}}\n {{p.project_name}}\n {{p.description}}\n {{p.target_name}}\n {{p.start_time}}\n \n {{ (p.enabled === 1 ? 'REPLICATION.ENABLED' : 'REPLICATION.DISABLED') | translate}}\n \n {{'REPLICATION.EDIT_POLICY' | translate}}\n {{ (p.enabled === 0 ? 'REPLICATION.ENABLE' : 'REPLICATION.DISABLE') | translate}}\n {{'REPLICATION.DELETE_POLICY' | translate}}\n \n \n \n {{ (policies ? policies.length : 0) }} {{'REPLICATION.ITEMS' | translate}}\n" + +/***/ }), + +/***/ 862: +/***/ (function(module, exports) { + +module.exports = "
\n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
" + +/***/ }), + +/***/ 863: +/***/ (function(module, exports) { + +module.exports = "
\n
\n \n 404\n {{'PAGE_NOT_FOUND.MAIN_TITLE' | translate}}\n
\n
\n {{'PAGE_NOT_FOUND.SUB_TITLE' | translate}} {{leftSeconds}} {{'PAGE_NOT_FOUND.UNIT' | translate}}\n
\n
" + +/***/ }), + +/***/ 864: +/***/ (function(module, exports) { + +module.exports = "
\n

{{'STATISTICS.TITLE' | translate }}

\n \n
\n
\n{{'STATISTICS.PRO_ITEM' | translate }}\n
\n
\n \n \n \n
\n
\n
\n
\n {{'STATISTICS.REPO_ITEM' | translate }}\n
\n
\n \n \n \n
\n
\n
\n
" + +/***/ }), + +/***/ 865: +/***/ (function(module, exports) { + +module.exports = "
\n {{data.number}}\n {{data.label}}\n
" + +/***/ }), + +/***/ 866: +/***/ (function(module, exports) { + +module.exports = "\n

{{'USER.ADD_USER_TITLE' | translate}}

\n
\n \n \n
\n
\n \n \n \n
\n
" + +/***/ }), + +/***/ 867: +/***/ (function(module, exports) { + +module.exports = "
\n

{{'SIDE_NAV.SYSTEM_MGMT.USER' | translate}}

\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n {{'USER.COLUMN_NAME' | translate}}\n {{'USER.COLUMN_ADMIN' | translate}}\n {{'USER.COLUMN_EMAIL' | translate}}\n {{'USER.COLUMN_REG_NAME' | translate}}\n \n {{user.username}}\n {{isSystemAdmin(user)}}\n {{user.email}}\n \n {{user.creation_time}}\n \n {{adminActions(user)}}\n
\n {{'USER.DEL_ACTION' | translate}}\n
\n
\n
\n {{users.length}} {{'USER.ADD_ACTION' | translate}}\n
\n
\n \n
" + +/***/ }), + +/***/ 904: +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(478); + + +/***/ }), + +/***/ 95: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = __webpack_require__(0); +var Subject_1 = __webpack_require__(25); +var SearchTriggerService = (function () { + function SearchTriggerService() { + this.searchTriggerSource = new Subject_1.Subject(); + this.searchCloseSource = new Subject_1.Subject(); + this.searchInputSource = new Subject_1.Subject(); + this.searchTriggerChan$ = this.searchTriggerSource.asObservable(); + this.searchCloseChan$ = this.searchCloseSource.asObservable(); + this.searchInputChan$ = this.searchInputSource.asObservable(); + } + SearchTriggerService.prototype.triggerSearch = function (event) { + this.searchTriggerSource.next(event); + }; + //Set event to true for shell + //set to false for search panel + SearchTriggerService.prototype.closeSearch = function (event) { + this.searchCloseSource.next(event); + }; + //Notify the state change of search box in home start page + SearchTriggerService.prototype.searchInputStat = function (event) { + this.searchInputSource.next(event); + }; + SearchTriggerService = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', []) + ], SearchTriggerService); + return SearchTriggerService; +}()); +exports.SearchTriggerService = SearchTriggerService; +//# sourceMappingURL=/Users/vmware/harbor-clarity/harbor-app/src/search-trigger.service.js.map + +/***/ }) + +},[904]); +//# sourceMappingURL=main.bundle.map \ No newline at end of file diff --git a/src/ui/static/main.bundle.map b/src/ui/static/main.bundle.map new file mode 100644 index 000000000..c7aae9d8a --- /dev/null +++ b/src/ui/static/main.bundle.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/app/global-message/message.service.ts","webpack:///./src/app/shared/session.service.ts","webpack:///./src/app/account/password/password-setting.service.ts","webpack:///./src/app/app-config.service.ts","webpack:///./src/app/config/config.ts","webpack:///./src/app/project/project.service.ts","webpack:///./src/app/user/user.service.ts","webpack:///./src/app/shared/shared.const.ts","webpack:///./src/app/account/sign-up/sign-up.component.ts","webpack:///./src/app/app-config.ts","webpack:///./src/app/base/start-page/start.component.ts","webpack:///./src/app/core/core.module.ts","webpack:///./src/app/log/audit-log.service.ts","webpack:///./src/app/project/member/member.service.ts","webpack:///./src/app/replication/target.ts","webpack:///./src/app/repository/repository.service.ts","webpack:///./src/app/service/base.service.ts","webpack:///./src/app/shared/create-edit-policy/create-edit-policy.component.ts","webpack:///./src/app/shared/new-user-form/new-user-form.component.ts","webpack:///./src/app/config/config.component.css","webpack:///./src/app/shared/shared.utils.ts","webpack:///./src/app/account/account-settings/account-settings-modal.component.ts","webpack:///./src/app/account/account.module.ts","webpack:///./src/app/account/password/forgot-password.component.ts","webpack:///./src/app/account/password/password-setting.component.ts","webpack:///./src/app/account/password/reset-password.component.ts","webpack:///./src/app/account/sign-in/sign-in.component.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/base/global-search/search-result.component.ts","webpack:///./src/app/base/harbor-shell/harbor-shell.component.ts","webpack:///./src/app/base/modal-events.const.ts","webpack:///./src/app/base/navigator/navigator.component.ts","webpack:///./src/app/config/auth/config-auth.component.ts","webpack:///./src/app/config/config.component.ts","webpack:///./src/app/config/config.service.ts","webpack:///./src/app/config/email/config-email.component.ts","webpack:///./src/app/global-message/message.ts","webpack:///./src/app/log/audit-log.component.ts","webpack:///./src/app/log/recent-log.component.ts","webpack:///./src/app/project/create-project/create-project.component.ts","webpack:///./src/app/project/list-project/list-project.component.ts","webpack:///./src/app/project/member/add-member/add-member.component.ts","webpack:///./src/app/project/member/member.component.ts","webpack:///./src/app/project/project-detail/project-detail.component.ts","webpack:///./src/app/project/project-routing-resolver.service.ts","webpack:///./src/app/project/project.component.ts","webpack:///./src/app/replication/create-edit-destination/create-edit-destination.component.ts","webpack:///./src/app/replication/destination/destination.component.ts","webpack:///./src/app/replication/replication-management/replication-management.component.ts","webpack:///./src/app/replication/replication.component.ts","webpack:///./src/app/replication/total-replication/total-replication.component.ts","webpack:///./src/app/repository/repository.component.ts","webpack:///./src/app/repository/repository.module.ts","webpack:///./src/app/repository/tag-repository/tag-repository.component.ts","webpack:///./src/app/shared/about-dialog/about-dialog.component.ts","webpack:///./src/app/shared/not-found/not-found.component.ts","webpack:///./src/app/shared/route/auth-user-activate.service.ts","webpack:///./src/app/shared/route/sign-in-guard-activate.service.ts","webpack:///./src/app/shared/route/system-admin-activate.service.ts","webpack:///./src/app/user/new-user-modal.component.ts","webpack:///./src/app/user/user.component.ts","webpack:///./src/app/account/password/password.component.css","webpack:///./src/app/shared/statictics/statistics.component.css","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/shared/deletion-dialog/deletion-dialog.service.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/base/base.module.ts","webpack:///./src/app/base/footer/footer.component.ts","webpack:///./src/app/base/global-search/global-search.component.ts","webpack:///./src/app/base/global-search/global-search.service.ts","webpack:///./src/app/base/global-search/search-results.ts","webpack:///./src/app/config/config.module.ts","webpack:///./src/app/global-message/message.component.ts","webpack:///./src/app/harbor-routing.module.ts","webpack:///./src/app/i18n/missing-trans.handler.ts","webpack:///./src/app/index.ts","webpack:///./src/app/log/audit-log.ts","webpack:///./src/app/log/log.module.ts","webpack:///./src/app/project/member/member.ts","webpack:///./src/app/project/project.module.ts","webpack:///./src/app/project/project.ts","webpack:///./src/app/replication/list-job/list-job.component.ts","webpack:///./src/app/replication/policy.ts","webpack:///./src/app/replication/replication.module.ts","webpack:///./src/app/repository/list-repository/list-repository.component.ts","webpack:///./src/app/repository/repository.ts","webpack:///./src/app/repository/tag-view.ts","webpack:///./src/app/repository/top-repo/top-repo.component.ts","webpack:///./src/app/repository/top-repo/top-repository.service.ts","webpack:///./src/app/shared/create-edit-policy/create-edit-policy.ts","webpack:///./src/app/shared/deletion-dialog/deletion-dialog.component.ts","webpack:///./src/app/shared/filter/filter.component.ts","webpack:///./src/app/shared/harbor-action-overflow/harbor-action-overflow.ts","webpack:///./src/app/shared/list-policy/list-policy.component.ts","webpack:///./src/app/shared/max-length-ext.directive.ts","webpack:///./src/app/shared/port.directive.ts","webpack:///./src/app/shared/route/base-routing-resolver.service.ts","webpack:///./src/app/shared/sign-in-credential.ts","webpack:///./src/app/shared/statictics/statistics-panel.component.ts","webpack:///./src/app/shared/statictics/statistics.component.ts","webpack:///./src/app/shared/statictics/statistics.service.ts","webpack:///./src/app/shared/statictics/statistics.ts","webpack:///./src/app/user/user.module.ts","webpack:///./src/app/user/user.ts","webpack:///./src/environments/environment.ts","webpack:///./src/polyfills.ts","webpack:///./src/app/shared/deletion-dialog/deletion-message.ts","webpack:///./src/app/replication/replication.service.ts","webpack:///./src/app/shared/inline-alert/inline-alert.component.ts","webpack:///./src/app/account/sign-in/sign-in.component.css","webpack:///./src/app/base/global-search/search-result.component.css","webpack:///./src/app/base/harbor-shell/harbor-shell.component.css","webpack:///./src/app/base/navigator/navigator.component.css","webpack:///./src/app/base/start-page/start.component.css","webpack:///./src/app/log/audit-log.css","webpack:///./src/app/log/recent-log.component.css","webpack:///./src/app/project/create-project/create-project.css","webpack:///./src/app/project/project-detail/project-detail.css","webpack:///./src/app/project/project.css","webpack:///./src/app/replication/replication-management/replication-management.css","webpack:///./src/app/shared/about-dialog/about-dialog.component.css","webpack:///./src/app/shared/deletion-dialog/deletion-dialog.component.css","webpack:///./src/app/shared/filter/filter.component.css","webpack:///./src/app/shared/new-user-form/new-user-form.component.css","webpack:///./src/app/shared/not-found/not-found.component.css","webpack:///./src/app/user/user.component.css","webpack:///./src/app/account/account-settings/account-settings-modal.component.html","webpack:///./src/app/account/password/forgot-password.component.html","webpack:///./src/app/account/password/password-setting.component.html","webpack:///./src/app/account/password/reset-password.component.html","webpack:///./src/app/account/sign-in/sign-in.component.html","webpack:///./src/app/account/sign-up/sign-up.component.html","webpack:///./src/app/app.component.html","webpack:///./src/app/base/footer/footer.component.html","webpack:///./src/app/base/global-search/global-search.component.html","webpack:///./src/app/base/global-search/search-result.component.html","webpack:///./src/app/base/harbor-shell/harbor-shell.component.html","webpack:///./src/app/base/navigator/navigator.component.html","webpack:///./src/app/base/start-page/start.component.html","webpack:///./src/app/config/auth/config-auth.component.html","webpack:///./src/app/config/config.component.html","webpack:///./src/app/config/email/config-email.component.html","webpack:///./src/app/global-message/message.component.html","webpack:///./src/app/log/audit-log.component.html","webpack:///./src/app/log/recent-log.component.html","webpack:///./src/app/project/create-project/create-project.component.html","webpack:///./src/app/project/list-project/list-project.component.html","webpack:///./src/app/project/member/add-member/add-member.component.html","webpack:///./src/app/project/member/member.component.html","webpack:///./src/app/project/project-detail/project-detail.component.html","webpack:///./src/app/project/project.component.html","webpack:///./src/app/replication/create-edit-destination/create-edit-destination.component.html","webpack:///./src/app/replication/destination/destination.component.html","webpack:///./src/app/replication/list-job/list-job.component.html","webpack:///./src/app/replication/replication-management/replication-management.component.html","webpack:///./src/app/replication/replication.component.html","webpack:///./src/app/replication/total-replication/total-replication.component.html","webpack:///./src/app/repository/list-repository/list-repository.component.html","webpack:///./src/app/repository/repository.component.html","webpack:///./src/app/repository/tag-repository/tag-repository.component.html","webpack:///./src/app/repository/top-repo/top-repo.component.html","webpack:///./src/app/shared/about-dialog/about-dialog.component.html","webpack:///./src/app/shared/create-edit-policy/create-edit-policy.component.html","webpack:///./src/app/shared/deletion-dialog/deletion-dialog.component.html","webpack:///./src/app/shared/filter/filter.component.html","webpack:///./src/app/shared/harbor-action-overflow/harbor-action-overflow.html","webpack:///./src/app/shared/inline-alert/inline-alert.component.html","webpack:///./src/app/shared/list-policy/list-policy.component.html","webpack:///./src/app/shared/new-user-form/new-user-form.component.html","webpack:///./src/app/shared/not-found/not-found.component.html","webpack:///./src/app/shared/statictics/statistics-panel.component.html","webpack:///./src/app/shared/statictics/statistics.component.html","webpack:///./src/app/user/new-user-modal.component.html","webpack:///./src/app/user/user.component.html","webpack:///./src/app/base/global-search/search-trigger.service.ts"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { Message } from './message';\nimport { AlertType } from '../shared/shared.const';\n\n@Injectable()\nexport class MessageService {\n\n private messageAnnouncedSource = new Subject();\n private appLevelAnnouncedSource = new Subject();\n\n messageAnnounced$ = this.messageAnnouncedSource.asObservable();\n appLevelAnnounced$ = this.appLevelAnnouncedSource.asObservable();\n \n announceMessage(statusCode: number, message: string, alertType: AlertType) {\n this.messageAnnouncedSource.next(Message.newMessage(statusCode, message, alertType));\n }\n\n announceAppLevelMessage(statusCode: number, message: string, alertType: AlertType) {\n this.appLevelAnnouncedSource.next(Message.newMessage(statusCode, message, alertType));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/global-message/message.service.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, URLSearchParams } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { SessionUser } from './session-user';\nimport { SignInCredential } from './sign-in-credential';\nimport { enLang } from '../shared/shared.const'\n\nconst signInUrl = '/login';\nconst currentUserEndpint = \"/api/users/current\";\nconst signOffEndpoint = \"/log_out\";\nconst accountEndpoint = \"/api/users/:id\";\nconst langEndpoint = \"/language\";\nconst langMap = {\n \"zh\": \"zh-CN\",\n \"en\": \"en-US\"\n};\n\n/**\n * Define related methods to handle account and session corresponding things\n * \n * @export\n * @class SessionService\n */\n@Injectable()\nexport class SessionService {\n currentUser: SessionUser = null;\n\n private headers = new Headers({\n \"Content-Type\": 'application/json'\n });\n\n private formHeaders = new Headers({\n \"Content-Type\": 'application/x-www-form-urlencoded'\n });\n\n constructor(private http: Http) { }\n\n //Handle the related exceptions\n private handleError(error: any): Promise {\n return Promise.reject(error.message || error);\n }\n\n //Submit signin form to backend (NOT restful service)\n signIn(signInCredential: SignInCredential): Promise {\n //Build the form package\n const body = new URLSearchParams();\n body.set('principal', signInCredential.principal);\n body.set('password', signInCredential.password);\n\n //Trigger Http\n return this.http.post(signInUrl, body.toString(), { headers: this.formHeaders })\n .toPromise()\n .then(() => null)\n .catch(error => this.handleError(error));\n }\n\n /**\n * Get the related information of current signed in user from backend\n * \n * @returns {Promise}\n * \n * @memberOf SessionService\n */\n retrieveUser(): Promise {\n return this.http.get(currentUserEndpint, { headers: this.headers }).toPromise()\n .then(response => this.currentUser = response.json() as SessionUser)\n .catch(error => this.handleError(error))\n }\n\n /**\n * For getting info\n */\n getCurrentUser(): SessionUser {\n return this.currentUser;\n }\n\n /**\n * Log out the system\n */\n signOff(): Promise {\n return this.http.get(signOffEndpoint, { headers: this.headers }).toPromise()\n .then(() => {\n //Destroy current session cache\n this.currentUser = null;\n }) //Nothing returned\n .catch(error => this.handleError(error))\n }\n\n /**\n * \n * Update accpunt settings\n * \n * @param {SessionUser} account\n * @returns {Promise}\n * \n * @memberOf SessionService\n */\n updateAccountSettings(account: SessionUser): Promise {\n if (!account) {\n return Promise.reject(\"Invalid account settings\");\n }\n let putUrl = accountEndpoint.replace(\":id\", account.user_id + \"\");\n return this.http.put(putUrl, JSON.stringify(account), { headers: this.headers }).toPromise()\n .then(() => {\n //Retrieve current session user\n return this.retrieveUser();\n })\n .catch(error => this.handleError(error))\n }\n\n /**\n * Switch the backend language profile\n */\n switchLanguage(lang: string): Promise {\n if (!lang) {\n return Promise.reject(\"Invalid language\");\n }\n\n let backendLang = langMap[lang];\n if(!backendLang){\n backendLang = langMap[enLang];\n }\n\n let getUrl = langEndpoint + \"?lang=\" + backendLang;\n return this.http.get(getUrl).toPromise()\n .then(() => null)\n .catch(error => this.handleError(error))\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/session.service.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions, URLSearchParams } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { PasswordSetting } from './password-setting';\n\nconst passwordChangeEndpoint = \"/api/users/:user_id/password\";\nconst sendEmailEndpoint = \"/sendEmail\";\nconst resetPasswordEndpoint = \"/reset\";\n\n@Injectable()\nexport class PasswordSettingService {\n private headers: Headers = new Headers({\n \"Accept\": 'application/json',\n \"Content-Type\": 'application/json'\n });\n private options: RequestOptions = new RequestOptions({\n 'headers': this.headers\n });\n\n constructor(private http: Http) { }\n\n changePassword(userId: number, setting: PasswordSetting): Promise {\n if (!setting || setting.new_password.trim() === \"\" || setting.old_password.trim() === \"\") {\n return Promise.reject(\"Invalid data\");\n }\n\n let putUrl = passwordChangeEndpoint.replace(\":user_id\", userId + \"\");\n return this.http.put(putUrl, JSON.stringify(setting), this.options)\n .toPromise()\n .then(() => null)\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n sendResetPasswordMail(email: string): Promise {\n if (!email) {\n return Promise.reject(\"Invalid email\");\n }\n\n let getUrl = sendEmailEndpoint + \"?email=\" + email;\n return this.http.get(getUrl, this.options).toPromise()\n .then(response => response)\n .catch(error => {\n return Promise.reject(error);\n })\n }\n\n resetPassword(uuid: string, newPassword: string): Promise {\n if (!uuid || !newPassword) {\n return Promise.reject(\"Invalid reset uuid or password\");\n }\n\n let formHeaders = new Headers({\n \"Content-Type\": 'application/x-www-form-urlencoded'\n });\n let formOptions: RequestOptions = new RequestOptions({\n headers: formHeaders\n });\n \n let body: URLSearchParams = new URLSearchParams();\n body.set(\"reset_uuid\", uuid);\n body.set(\"password\", newPassword);\n\n return this.http.post(resetPasswordEndpoint, body.toString(), formOptions)\n .toPromise()\n .then(response => response)\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/password/password-setting.service.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { AppConfig } from './app-config';\n\nexport const systemInfoEndpoint = \"/api/systeminfo\";\n/**\n * Declare service to handle the bootstrap options\n * \n * \n * @export\n * @class GlobalSearchService\n */\n@Injectable()\nexport class AppConfigService {\n private headers = new Headers({\n \"Content-Type\": 'application/json'\n });\n private options = new RequestOptions({\n headers: this.headers\n });\n\n //Store the application configuration\n private configurations: AppConfig = new AppConfig();\n\n constructor(private http: Http) { }\n\n public load(): Promise {\n return this.http.get(systemInfoEndpoint, this.options).toPromise()\n .then(response => this.configurations = response.json() as AppConfig)\n .catch(error => {\n //Catch the error\n console.error(\"Failed to load bootstrap options with error: \", error);\n });\n }\n\n public getConfig(): AppConfig {\n return this.configurations;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-config.service.ts","export class StringValueItem {\n value: string;\n editable: boolean;\n\n public constructor(v: string, e: boolean) {\n this.value = v;\n this.editable = e;\n }\n}\n\nexport class NumberValueItem {\n value: number;\n editable: boolean;\n\n public constructor(v: number, e: boolean) {\n this.value = v;\n this.editable = e;\n }\n}\n\nexport class BoolValueItem {\n value: boolean;\n editable: boolean;\n\n public constructor(v: boolean, e: boolean) {\n this.value = v;\n this.editable = e;\n }\n}\n\nexport class Configuration {\n auth_mode: StringValueItem;\n project_creation_restriction: StringValueItem;\n self_registration: BoolValueItem;\n ldap_base_dn: StringValueItem;\n ldap_filter?: StringValueItem;\n ldap_scope: NumberValueItem;\n ldap_search_dn?: StringValueItem;\n ldap_search_password?: StringValueItem;\n ldap_timeout: NumberValueItem;\n ldap_uid: StringValueItem;\n ldap_url: StringValueItem;\n email_host: StringValueItem;\n email_identity: StringValueItem;\n email_from: StringValueItem;\n email_port: NumberValueItem;\n email_ssl: BoolValueItem;\n email_username?: StringValueItem;\n email_password?: StringValueItem;\n verify_remote_cert: BoolValueItem;\n token_expiration: NumberValueItem;\n cfg_expiration: NumberValueItem;\n\n public constructor() {\n this.auth_mode = new StringValueItem(\"db_auth\", true);\n this.project_creation_restriction = new StringValueItem(\"everyone\", true);\n this.self_registration = new BoolValueItem(false, true);\n this.ldap_base_dn = new StringValueItem(\"\", true);\n this.ldap_filter = new StringValueItem(\"\", true);\n this.ldap_scope = new NumberValueItem(0, true);\n this.ldap_search_dn = new StringValueItem(\"\", true);\n this.ldap_search_password = new StringValueItem(\"\", true);\n this.ldap_timeout = new NumberValueItem(5, true);\n this.ldap_uid = new StringValueItem(\"\", true);\n this.ldap_url = new StringValueItem(\"\", true);\n this.email_host = new StringValueItem(\"\", true);\n this.email_identity = new StringValueItem(\"\", true);\n this.email_from = new StringValueItem(\"\", true);\n this.email_port = new NumberValueItem(25, true);\n this.email_ssl = new BoolValueItem(false, true);\n this.email_username = new StringValueItem(\"\", true);\n this.email_password = new StringValueItem(\"\", true);\n this.token_expiration = new NumberValueItem(5, true);\n this.cfg_expiration = new NumberValueItem(30, true);\n this.verify_remote_cert = new BoolValueItem(false, true);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/config.ts","import { Injectable } from '@angular/core';\n\nimport { Http, Headers, RequestOptions, Response, URLSearchParams } from '@angular/http';\nimport { Project } from './project';\n\nimport { BaseService } from '../service/base.service';\n\nimport { Message } from '../global-message/message';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/observable/throw';\n\n\n\n@Injectable()\nexport class ProjectService {\n \n headers = new Headers({'Content-type': 'application/json'});\n options = new RequestOptions({'headers': this.headers});\n\n constructor(private http: Http) {}\n\n getProject(projectId: number): Promise {\n return this.http\n .get(`/api/projects/${projectId}`)\n .toPromise()\n .then(response=>response.json() as Project)\n .catch(error=>Observable.throw(error));\n }\n\n listProjects(name: string, isPublic: number, page?: number, pageSize?: number): Observable{ \n let params = new URLSearchParams();\n params.set('page', page + '');\n params.set('page_size', pageSize + '');\n return this.http\n .get(`/api/projects?project_name=${name}&is_public=${isPublic}`, {search: params})\n .map(response=>response)\n .catch(error=>Observable.throw(error));\n }\n\n createProject(name: string, isPublic: number): Observable {\n return this.http\n .post(`/api/projects`,\n JSON.stringify({'project_name': name, 'public': isPublic})\n , this.options)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n toggleProjectPublic(projectId: number, isPublic: number): Observable {\n return this.http \n .put(`/api/projects/${projectId}/publicity`, { 'public': isPublic }, this.options)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n deleteProject(projectId: number): Observable {\n return this.http\n .delete(`/api/projects/${projectId}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project.service.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { User } from './user';\n\nconst userMgmtEndpoint = '/api/users';\n\n/**\n * Define related methods to handle account and session corresponding things\n * \n * @export\n * @class SessionService\n */\n@Injectable()\nexport class UserService {\n private httpOptions = new RequestOptions({\n headers: new Headers({\n \"Content-Type\": 'application/json'\n })\n });\n\n constructor(private http: Http) { }\n\n //Handle the related exceptions\n private handleError(error: any): Promise {\n return Promise.reject(error.message || error);\n }\n\n //Get the user list\n getUsers(): Promise {\n return this.http.get(userMgmtEndpoint, this.httpOptions).toPromise()\n .then(response => response.json() as User[])\n .catch(error => this.handleError(error));\n }\n\n //Add new user\n addUser(user: User): Promise {\n return this.http.post(userMgmtEndpoint, JSON.stringify(user), this.httpOptions).toPromise()\n .then(() => null)\n .catch(error => this.handleError(error));\n }\n\n //Delete the specified user\n deleteUser(userId: number): Promise {\n return this.http.delete(userMgmtEndpoint + \"/\" + userId, this.httpOptions)\n .toPromise()\n .then(() => null)\n .catch(error => this.handleError(error));\n }\n\n //Update user to enable/disable the admin role\n updateUser(user: User): Promise {\n return this.http.put(userMgmtEndpoint + \"/\" + user.user_id, JSON.stringify(user), this.httpOptions)\n .toPromise()\n .then(() => null)\n .catch(error => this.handleError(error));\n }\n\n //Set user admin role\n updateUserRole(user: User): Promise {\n return this.http.put(userMgmtEndpoint + \"/\" + user.user_id + \"/sysadmin\", JSON.stringify(user), this.httpOptions)\n .toPromise()\n .then(() => null)\n .catch(error => this.handleError(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/user/user.service.ts","export const supportedLangs = ['en', 'zh'];\nexport const enLang = \"en\";\nexport const languageNames = {\n \"en\": \"English\",\n \"zh\": \"中文简体\"\n};\nexport const enum AlertType {\n DANGER, WARNING, INFO, SUCCESS\n};\n\nexport const dismissInterval = 15 * 1000;\nexport const httpStatusCode = {\n \"Unauthorized\": 401,\n \"Forbidden\": 403\n};\nexport const enum DeletionTargets {\n EMPTY, PROJECT, PROJECT_MEMBER, USER, POLICY, TARGET, REPOSITORY, TAG\n};\nexport const harborRootRoute = \"/harbor/dashboard\";\nexport const signInRoute = \"/sign-in\";\n\nexport const enum ActionType {\n ADD_NEW, EDIT\n};\n\nexport const ListMode = {\n READONLY: \"readonly\",\n FULL: \"full\"\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/shared.const.ts","import { Component, Output, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { NewUserFormComponent } from '../../shared/new-user-form/new-user-form.component';\nimport { User } from '../../user/user';\n\nimport { SessionService } from '../../shared/session.service';\nimport { UserService } from '../../user/user.service';\nimport { errorHandler } from '../../shared/shared.utils';\nimport { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';\n\nimport { Modal } from 'clarity-angular';\n\n@Component({\n selector: 'sign-up',\n templateUrl: \"sign-up.component.html\"\n})\nexport class SignUpComponent {\n opened: boolean = false;\n staticBackdrop: boolean = true;\n private error: any;\n private onGoing: boolean = false;\n private formValueChanged: boolean = false;\n\n constructor(\n private session: SessionService,\n private userService: UserService) { }\n\n @ViewChild(NewUserFormComponent)\n private newUserForm: NewUserFormComponent;\n\n @ViewChild(InlineAlertComponent)\n private inlienAlert: InlineAlertComponent;\n\n @ViewChild(Modal)\n private modal: Modal;\n\n private getNewUser(): User {\n return this.newUserForm.getData();\n }\n\n public get inProgress(): boolean {\n return this.onGoing;\n }\n\n public get isValid(): boolean {\n return this.newUserForm.isValid && this.error == null;\n }\n\n formValueChange(flag: boolean): void {\n if (flag) {\n this.formValueChanged = true;\n }\n if (this.error != null) {\n this.error = null;//clear error\n }\n this.inlienAlert.close();//Close alert if being shown\n }\n\n open(): void {\n this.newUserForm.reset();//Reset form\n this.formValueChanged = false;\n this.modal.open();\n }\n\n close(): void {\n if (this.formValueChanged) {\n if (this.newUserForm.isEmpty()) {\n this.opened = false;\n } else {\n //Need user confirmation\n this.inlienAlert.showInlineConfirmation({\n message: \"ALERT.FORM_CHANGE_CONFIRMATION\"\n });\n }\n } else {\n this.opened = false;\n }\n }\n\n confirmCancel(): void {\n this.modal.close();\n }\n\n //Create new user\n create(): void {\n //Double confirm everything is ok\n //Form is valid\n if (!this.isValid) {\n return;\n }\n\n //We have new user data\n let u = this.getNewUser();\n if (!u) {\n return;\n }\n\n //Start process\n this.onGoing = true;\n\n this.userService.addUser(u)\n .then(() => {\n this.onGoing = false;\n this.modal.close();\n })\n .catch(error => {\n this.onGoing = false;\n this.error = error;\n this.inlienAlert.showInlineError(error);\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/sign-up/sign-up.component.ts","export class AppConfig {\n constructor(){\n //Set default value\n this.with_notary = false;\n this.with_admiral = false;\n this.admiral_endpoint = \"\";\n this.auth_mode = \"db_auth\";\n this.registry_url = \"\";\n this.project_creation_restriction = \"everyone\";\n this.self_registration = true;\n }\n \n with_notary: boolean;\n with_admiral: boolean;\n admiral_endpoint: string;\n auth_mode: string;\n registry_url: string;\n project_creation_restriction: string;\n self_registration: boolean;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-config.ts","import { Component, OnInit } from '@angular/core';\n\nimport { SessionService } from '../../shared/session.service';\nimport { SessionUser } from '../../shared/session-user';\n\n@Component({\n selector: 'start-page',\n templateUrl: \"start.component.html\",\n styleUrls: ['start.component.css']\n})\nexport class StartPageComponent implements OnInit{\n private isSessionValid: boolean = false;\n\n constructor(\n private session: SessionService\n ) { }\n\n ngOnInit(): void {\n this.isSessionValid = this.session.getCurrentUser() != null;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/start-page/start.component.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\nimport { ClarityModule } from 'clarity-angular';\n\n@NgModule({\n imports: [\n BrowserModule,\n FormsModule,\n HttpModule,\n ClarityModule.forRoot()\n ],\n exports: [\n BrowserModule,\n FormsModule,\n HttpModule,\n ClarityModule\n ]\n})\nexport class CoreModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/core/core.module.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions } from '@angular/http';\n\nimport { BaseService } from '../service/base.service';\n\nimport { AuditLog } from './audit-log';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/observable/throw';\n\nexport const logEndpoint = \"/api/logs\";\n\n@Injectable()\nexport class AuditLogService extends BaseService {\n private httpOptions = new RequestOptions({\n headers: new Headers({\n \"Content-Type\": 'application/json',\n \"Accept\": 'application/json'\n })\n });\n\n constructor(private http: Http) {\n super();\n }\n\n listAuditLogs(queryParam: AuditLog): Observable {\n return this.http\n .post(`/api/projects/${queryParam.project_id}/logs/filter?page=${queryParam.page}&page_size=${queryParam.page_size}`, {\n begin_timestamp: queryParam.begin_timestamp,\n end_timestamp: queryParam.end_timestamp,\n keywords: queryParam.keywords,\n operation: queryParam.operation,\n project_id: queryParam.project_id,\n username: queryParam.username\n })\n .map(response => response)\n .catch(error => this.handleError(error));\n }\n\n getRecentLogs(lines: number): Observable {\n return this.http.get(logEndpoint + \"?lines=\" + lines, this.httpOptions)\n .map(response => response.json() as AuditLog[])\n .catch(error => this.handleError(error));\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/log/audit-log.service.ts","import { Injectable } from '@angular/core';\nimport { Http } from '@angular/http';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/observable/throw';\n\nimport { BaseService } from '../../service/base.service';\nimport { Member } from './member';\n\n@Injectable()\nexport class MemberService extends BaseService {\n \n constructor(private http: Http) {\n super();\n }\n\n listMembers(projectId: number, username: string): Observable {\n console.log('Get member from project_id:' + projectId + ', username:' + username);\n return this.http\n .get(`/api/projects/${projectId}/members?username=${username}`)\n .map(response=>response.json())\n .catch(error=>this.handleError(error)); \n }\n\n addMember(projectId: number, username: string, roleId: number): Observable {\n console.log('Adding member with username:' + username + ', roleId:' + roleId + ' under projectId:' + projectId);\n return this.http\n .post(`/api/projects/${projectId}/members`, { username: username, roles: [ roleId ] })\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n changeMemberRole(projectId: number, userId: number, roleId: number): Observable {\n console.log('Changing member role with userId:' + ' to roleId:' + roleId + ' under projectId:' + projectId);\n return this.http\n .put(`/api/projects/${projectId}/members/${userId}`, { roles: [ roleId ]})\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n deleteMember(projectId: number, userId: number): Observable {\n console.log('Deleting member role with userId:' + userId + ' under projectId:' + projectId);\n return this.http\n .delete(`/api/projects/${projectId}/members/${userId}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/member/member.service.ts","/*\n {\n \"id\": 1,\n \"endpoint\": \"http://10.117.4.151\",\n \"name\": \"target_01\",\n \"username\": \"admin\",\n \"password\": \"Harbor12345\",\n \"type\": 0,\n \"creation_time\": \"2017-02-24T06:41:52Z\",\n \"update_time\": \"2017-02-24T06:41:52Z\"\n }\n*/\n\nexport class Target {\n id: number;\n endpoint: string;\n name: string;\n username: string;\n password: string;\n type: number;\n creation_time: Date;\n update_time: Date;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/target.ts","import { Injectable } from '@angular/core';\nimport { Http, URLSearchParams, Response } from '@angular/http';\n\nimport { Repository } from './repository';\nimport { Tag } from './tag';\nimport { VerifiedSignature } from './verified-signature';\n\nimport { Observable } from 'rxjs/Observable'\nimport 'rxjs/add/observable/of';\nimport 'rxjs/add/operator/mergeMap';\n\n@Injectable()\nexport class RepositoryService {\n \n constructor(private http: Http){}\n\n listRepositories(projectId: number, repoName: string, page?: number, pageSize?: number): Observable {\n console.log('List repositories with project ID:' + projectId);\n let params = new URLSearchParams();\n params.set('page', page + '');\n params.set('page_size', pageSize + '');\n return this.http\n .get(`/api/repositories?project_id=${projectId}&q=${repoName}&detail=1`, {search: params})\n .map(response=>response)\n .catch(error=>Observable.throw(error));\n }\n\n listTags(repoName: string): Observable {\n return this.http\n .get(`/api/repositories/tags?repo_name=${repoName}&detail=1`)\n .map(response=>response.json())\n .catch(error=>Observable.throw(error));\n }\n\n listNotarySignatures(repoName: string): Observable {\n return this.http\n .get(`/api/repositories/signatures?repo_name=${repoName}`)\n .map(response=>response.json())\n .catch(error=>Observable.throw(error));\n }\n\n listTagsWithVerifiedSignatures(repoName: string): Observable {\n return this.http\n .get(`/api/repositories/signatures?repo_name=${repoName}`)\n .map(response=>response)\n .flatMap(res=>\n this.listTags(repoName)\n .map((tags: Tag[])=>{\n let signatures = res.json();\n tags.forEach(t=>{\n for(let i = 0; i < signatures.length; i++) {\n if(signatures[i].tag === t.tag) {\n t.verified = true;\n break;\n }\n }\n });\n return tags;\n })\n .catch(error=>Observable.throw(error))\n )\n .catch(error=>Observable.throw(error));\n }\n\n deleteRepository(repoName: string): Observable {\n console.log('Delete repository with repo name:' + repoName);\n return this.http\n .delete(`/api/repositories?repo_name=${repoName}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n deleteRepoByTag(repoName: string, tag: string): Observable {\n console.log('Delete repository with repo name:' + repoName + ', tag:' + tag);\n return this.http\n .delete(`/api/repositories?repo_name=${repoName}&tag=${tag}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/repository.service.ts","import { Http, Response,} from '@angular/http';\n\nexport class BaseService {\n\n protected handleError(error: Response | any): Promise {\n // In a real world app, we might use a remote logging infrastructure\n let errMsg: string; \n console.log(typeof error);\n if (error instanceof Response) {\n const body = error.json() || '';\n const err = body.error || JSON.stringify(body);\n errMsg = `${error.status} - ${error.statusText || ''} ${err}`;\n } else {\n errMsg = error.message ? error.message : error.toString();\n }\n return Promise.reject(error);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/service/base.service.ts","import { Component, Input, Output, EventEmitter, OnInit, HostBinding } from '@angular/core';\n\nimport { CreateEditPolicy } from './create-edit-policy';\n\nimport { ReplicationService } from '../../replication/replication.service';\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType, ActionType } from '../../shared/shared.const';\n\nimport { Policy } from '../../replication/policy';\nimport { Target } from '../../replication/target';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'create-edit-policy',\n templateUrl: 'create-edit-policy.component.html'\n})\nexport class CreateEditPolicyComponent implements OnInit {\n\n modalTitle: string;\n createEditPolicyOpened: boolean;\n createEditPolicy: CreateEditPolicy = new CreateEditPolicy();\n \n actionType: ActionType;\n\n errorMessageOpened: boolean;\n errorMessage: string;\n \n isCreateDestination: boolean;\n @Input() projectId: number;\n\n @Output() reload = new EventEmitter();\n\n targets: Target[];\n \n pingTestMessage: string;\n testOngoing: boolean;\n pingStatus: boolean;\n\n constructor(\n private replicationService: ReplicationService,\n private messageService: MessageService,\n private translateService: TranslateService) {}\n \n prepareTargets(targetId?: number) {\n this.replicationService\n .listTargets('')\n .subscribe(\n targets=>{\n this.targets = targets; \n if(this.targets && this.targets.length > 0) {\n let initialTarget: Target;\n (targetId) ? initialTarget = this.targets.find(t=>t.id==targetId) : initialTarget = this.targets[0]; \n this.createEditPolicy.targetId = initialTarget.id;\n this.createEditPolicy.targetName = initialTarget.name;\n this.createEditPolicy.endpointUrl = initialTarget.endpoint;\n this.createEditPolicy.username = initialTarget.username;\n this.createEditPolicy.password = initialTarget.password;\n }\n },\n error=>this.messageService.announceMessage(error.status, 'Error occurred while get targets.', AlertType.DANGER)\n );\n }\n\n ngOnInit(): void {}\n\n openCreateEditPolicy(policyId?: number): void {\n this.createEditPolicyOpened = true;\n this.createEditPolicy = new CreateEditPolicy();\n this.isCreateDestination = false;\n this.errorMessageOpened = false;\n this.errorMessage = '';\n \n this.pingTestMessage = '';\n this.pingStatus = true;\n this.testOngoing = false; \n\n if(policyId) {\n this.actionType = ActionType.EDIT;\n this.translateService.get('REPLICATION.EDIT_POLICY').subscribe(res=>this.modalTitle=res);\n this.replicationService\n .getPolicy(policyId)\n .subscribe(\n policy=>{\n this.createEditPolicy.policyId = policyId;\n this.createEditPolicy.name = policy.name;\n this.createEditPolicy.description = policy.description;\n this.createEditPolicy.enable = policy.enabled === 1? true : false;\n this.prepareTargets(policy.target_id);\n }\n )\n } else {\n this.actionType = ActionType.ADD_NEW;\n this.translateService.get('REPLICATION.ADD_POLICY').subscribe(res=>this.modalTitle=res);\n this.prepareTargets(); \n }\n } \n\n newDestination(checkedAddNew: boolean): void {\n console.log('CheckedAddNew:' + checkedAddNew);\n this.isCreateDestination = checkedAddNew;\n if(this.isCreateDestination) {\n this.createEditPolicy.targetName = '';\n this.createEditPolicy.endpointUrl = '';\n this.createEditPolicy.username = '';\n this.createEditPolicy.password = '';\n } else {\n this.prepareTargets();\n }\n }\n\n selectTarget(): void {\n let result = this.targets.find(target=>target.id == this.createEditPolicy.targetId);\n if(result) {\n this.createEditPolicy.targetId = result.id;\n this.createEditPolicy.endpointUrl = result.endpoint;\n this.createEditPolicy.username = result.username;\n this.createEditPolicy.password = result.password;\n }\n }\n \n onErrorMessageClose(): void {\n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n \n getPolicyByForm(): Policy {\n let policy = new Policy();\n policy.project_id = this.projectId;\n policy.id = this.createEditPolicy.policyId;\n policy.name = this.createEditPolicy.name;\n policy.description = this.createEditPolicy.description;\n policy.enabled = this.createEditPolicy.enable ? 1 : 0;\n policy.target_id = this.createEditPolicy.targetId;\n return policy;\n }\n\n getTargetByForm(): Target {\n let target = new Target();\n target.id = this.createEditPolicy.targetId;\n target.name = this.createEditPolicy.targetName;\n target.endpoint = this.createEditPolicy.endpointUrl;\n target.username = this.createEditPolicy.username;\n target.password = this.createEditPolicy.password;\n return target;\n }\n\n createPolicy(): void {\n console.log('Create policy with existing target in component.');\n this.replicationService\n .createPolicy(this.getPolicyByForm())\n .subscribe(\n response=>{\n console.log('Successful created policy: ' + response);\n this.createEditPolicyOpened = false;\n this.reload.emit(true);\n },\n error=>{\n this.errorMessageOpened = true;\n this.errorMessage = error['_body'];\n console.log('Failed to create policy:' + error.status + ', error message:' + JSON.stringify(error['_body']));\n });\n }\n\n createOrUpdatePolicyAndCreateTarget(): void {\n console.log('Creating policy with new created target.');\n this.replicationService\n .createOrUpdatePolicyWithNewTarget(this.getPolicyByForm(), this.getTargetByForm())\n .subscribe(\n response=>{\n console.log('Successful created policy and target:' + response);\n this.createEditPolicyOpened = false;\n this.reload.emit(true);\n },\n error=>{\n this.errorMessageOpened = true;\n this.errorMessage = error['_body'];\n console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body']));\n }\n );\n }\n\n updatePolicy(): void {\n console.log('Creating policy with existing target.');\n this.replicationService\n .updatePolicy(this.getPolicyByForm())\n .subscribe(\n response=>{\n console.log('Successful created policy and target:' + response);\n this.createEditPolicyOpened = false;\n this.reload.emit(true);\n },\n error=>{\n this.errorMessageOpened = true;\n this.errorMessage = error['_body'];\n console.log('Failed to create policy and target:' + error.status + ', error message:' + JSON.stringify(error['_body']));\n }\n );\n }\n\n onSubmit() {\n if(this.isCreateDestination) {\n this.createOrUpdatePolicyAndCreateTarget();\n } else {\n if(this.actionType === ActionType.ADD_NEW) {\n this.createPolicy();\n } else if(this.actionType === ActionType.EDIT){\n this.updatePolicy();\n }\n }\n \n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n\n testConnection() {\n this.pingStatus = true;\n this.translateService.get('REPLICATION.TESTING_CONNECTION').subscribe(res=>this.pingTestMessage=res);\n this.testOngoing = !this.testOngoing;\n let pingTarget = new Target();\n pingTarget.endpoint = this.createEditPolicy.endpointUrl;\n pingTarget.username = this.createEditPolicy.username;\n pingTarget.password = this.createEditPolicy.password;\n this.replicationService\n .pingTarget(pingTarget)\n .subscribe(\n response=>{\n this.testOngoing = !this.testOngoing;\n this.translateService.get('REPLICATION.TEST_CONNECTION_SUCCESS').subscribe(res=>this.pingTestMessage=res);\n this.pingStatus = true;\n },\n error=>{\n this.testOngoing = !this.testOngoing;\n this.translateService.get('REPLICATION.TEST_CONNECTION_FAILURE').subscribe(res=>this.pingTestMessage=res);\n this.pingStatus = false;\n }\n );\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/create-edit-policy/create-edit-policy.component.ts","import { Component, ViewChild, AfterViewChecked, Output, EventEmitter, Input } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { User } from '../../user/user';\nimport { isEmptyForm } from '../../shared/shared.utils';\n\n@Component({\n selector: 'new-user-form',\n templateUrl: 'new-user-form.component.html',\n styleUrls: ['new-user-form.component.css']\n})\n\nexport class NewUserFormComponent implements AfterViewChecked {\n newUser: User = new User();\n confirmedPwd: string = \"\";\n @Input() isSelfRegistration: boolean = false;\n\n newUserFormRef: NgForm;\n @ViewChild(\"newUserFrom\") newUserForm: NgForm;\n\n //Notify the form value changes\n @Output() valueChange = new EventEmitter();\n\n public get isValid(): boolean {\n let pwdEqualStatus = true;\n if (this.newUserForm.controls[\"confirmPassword\"] &&\n this.newUserForm.controls[\"newPassword\"]) {\n pwdEqualStatus = this.newUserForm.controls[\"confirmPassword\"].value === this.newUserForm.controls[\"newPassword\"].value;\n }\n return this.newUserForm &&\n this.newUserForm.valid && pwdEqualStatus;\n }\n\n ngAfterViewChecked(): void {\n if (this.newUserFormRef != this.newUserForm) {\n this.newUserFormRef = this.newUserForm;\n if (this.newUserFormRef) {\n this.newUserFormRef.valueChanges.subscribe(data => {\n this.valueChange.emit(true);\n });\n }\n }\n }\n\n //Return the current user data\n getData(): User {\n return this.newUser;\n }\n\n //Reset form\n reset(): void {\n if (this.newUserForm) {\n this.newUserForm.reset();\n }\n }\n\n //To check if form is empty\n isEmpty(): boolean {\n return isEmptyForm(this.newUserForm);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/new-user-form/new-user-form.component.ts","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/config/config.component.css\n// module id = 277\n// module chunks = 0","import { NgForm } from '@angular/forms';\nimport { httpStatusCode, AlertType } from './shared.const';\nimport { MessageService } from '../global-message/message.service';\n/**\n * To handle the error message body\n * \n * @export\n * @returns {string}\n */\nexport const errorHandler = function (error: any): string {\n if (error) {\n if (error.message) {\n return error.message;\n } else if (error._body) {\n return error._body;\n } else if (error.statusText) {\n return error.statusText;\n } else {\n return error;\n }\n }\n\n return \"UNKNOWN_ERROR\";\n}\n\n/**\n * To check if form is empty\n */\nexport const isEmptyForm = function (ngForm: NgForm): boolean {\n if (ngForm && ngForm.form) {\n let values = ngForm.form.value;\n if (values) {\n for (var key in values) {\n if (values[key]) {\n return false;\n }\n }\n }\n\n }\n\n return true;\n}\n\n/**\n * Hanlde the 401 and 403 code\n * \n * If handled the 401 or 403, then return true otherwise false\n */\nexport const accessErrorHandler = function (error: any, msgService: MessageService): boolean {\n if (error && error.status && msgService) {\n if (error.status === httpStatusCode.Unauthorized) {\n msgService.announceAppLevelMessage(error.status, \"UNAUTHORIZED_ERROR\", AlertType.DANGER);\n return true;\n } else if (error.status === httpStatusCode.Forbidden) {\n msgService.announceAppLevelMessage(error.status, \"FORBIDDEN_ERROR\", AlertType.DANGER);\n return true;\n }\n }\n\n return false;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/shared.utils.ts","import { Component, OnInit, ViewChild, AfterViewChecked } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { SessionUser } from '../../shared/session-user';\nimport { SessionService } from '../../shared/session.service';\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType, httpStatusCode } from '../../shared/shared.const';\nimport { errorHandler, accessErrorHandler } from '../../shared/shared.utils';\nimport { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';\n\n@Component({\n selector: \"account-settings-modal\",\n templateUrl: \"account-settings-modal.component.html\"\n})\n\nexport class AccountSettingsModalComponent implements OnInit, AfterViewChecked {\n opened: boolean = false;\n staticBackdrop: boolean = true;\n account: SessionUser;\n error: any = null;\n originalStaticData: SessionUser;\n\n private isOnCalling: boolean = false;\n private formValueChanged: boolean = false;\n\n accountFormRef: NgForm;\n @ViewChild(\"accountSettingsFrom\") accountForm: NgForm;\n @ViewChild(InlineAlertComponent)\n private inlineAlert: InlineAlertComponent;\n\n constructor(\n private session: SessionService,\n private msgService: MessageService) { }\n\n ngOnInit(): void {\n //Value copy\n this.account = Object.assign({}, this.session.getCurrentUser());\n }\n\n private isUserDataChange(): boolean {\n if (!this.originalStaticData || !this.account) {\n return false;\n }\n\n for (var prop in this.originalStaticData) {\n if (this.originalStaticData[prop]) {\n if (this.account[prop]) {\n if (this.originalStaticData[prop] != this.account[prop]) {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n public get isValid(): boolean {\n return this.accountForm && this.accountForm.valid && this.error === null;\n }\n\n public get showProgress(): boolean {\n return this.isOnCalling;\n }\n\n ngAfterViewChecked(): void {\n if (this.accountFormRef != this.accountForm) {\n this.accountFormRef = this.accountForm;\n if (this.accountFormRef) {\n this.accountFormRef.valueChanges.subscribe(data => {\n if (this.error) {\n this.error = null;\n }\n this.formValueChanged = true;\n this.inlineAlert.close();\n });\n }\n }\n }\n\n open() {\n //Keep the initial data for future diff\n this.originalStaticData = Object.assign({}, this.session.getCurrentUser());\n this.account = Object.assign({}, this.session.getCurrentUser());\n this.formValueChanged = false;\n\n this.opened = true;\n }\n\n close() {\n if (this.formValueChanged) {\n if (!this.isUserDataChange()) {\n this.opened = false;\n } else {\n //Need user confirmation\n this.inlineAlert.showInlineConfirmation({\n message: \"ALERT.FORM_CHANGE_CONFIRMATION\"\n });\n }\n } else {\n this.opened = false;\n }\n }\n\n submit() {\n if (!this.isValid || this.isOnCalling) {\n return;\n }\n\n //Double confirm session is valid\n let cUser = this.session.getCurrentUser();\n if (!cUser) {\n return;\n }\n\n this.isOnCalling = true;\n\n this.session.updateAccountSettings(this.account)\n .then(() => {\n this.isOnCalling = false;\n this.opened = false;\n this.msgService.announceMessage(200, \"PROFILE.SAVE_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.isOnCalling = false;\n this.error = error;\n if(accessErrorHandler(error, this.msgService)){\n this.opened = false;\n }else{\n this.inlineAlert.showInlineError(error);\n }\n });\n }\n\n confirmCancel(): void {\n this.inlineAlert.close();\n this.opened = false;\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/account-settings/account-settings-modal.component.ts","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CoreModule } from '../core/core.module';\n\nimport { SignInComponent } from './sign-in/sign-in.component';\nimport { PasswordSettingComponent } from './password/password-setting.component';\nimport { AccountSettingsModalComponent } from './account-settings/account-settings-modal.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { SignUpComponent } from './sign-up/sign-up.component';\nimport { ForgotPasswordComponent } from './password/forgot-password.component';\nimport { ResetPasswordComponent } from './password/reset-password.component';\n\nimport { PasswordSettingService } from './password/password-setting.service';\n\n@NgModule({\n imports: [\n CoreModule,\n RouterModule,\n SharedModule\n ],\n declarations: [\n SignInComponent,\n PasswordSettingComponent,\n AccountSettingsModalComponent,\n SignUpComponent,\n ForgotPasswordComponent,\n ResetPasswordComponent],\n exports: [\n SignInComponent,\n PasswordSettingComponent,\n AccountSettingsModalComponent,\n ResetPasswordComponent],\n\n providers: [PasswordSettingService]\n})\nexport class AccountModule { }\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/account.module.ts","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgForm } from '@angular/forms';\n\nimport { PasswordSettingService } from './password-setting.service';\nimport { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';\n\n@Component({\n selector: 'forgot-password',\n templateUrl: \"forgot-password.component.html\",\n styleUrls: ['password.component.css']\n})\nexport class ForgotPasswordComponent {\n opened: boolean = false;\n private onGoing: boolean = false;\n private email: string = \"\";\n private validationState: boolean = true;\n private forceValid: boolean = true;\n\n @ViewChild(\"forgotPasswordFrom\") forgotPwdForm: NgForm;\n @ViewChild(InlineAlertComponent)\n private inlineAlert: InlineAlertComponent;\n\n constructor(private pwdService: PasswordSettingService) { }\n\n public get showProgress(): boolean {\n return this.onGoing;\n }\n\n public get isValid(): boolean {\n return this.forgotPwdForm && this.forgotPwdForm.valid && this.forceValid;\n }\n\n public open(): void {\n this.opened = true;\n this.validationState = true;\n this.forceValid = true;\n this.forgotPwdForm.resetForm();\n }\n\n public close(): void {\n this.opened = false;\n }\n\n public send(): void {\n //Double confirm to avoid improper situations\n if (!this.email) {\n return;\n }\n\n if (!this.isValid) {\n return;\n }\n\n this.onGoing = true;\n this.pwdService.sendResetPasswordMail(this.email)\n .then(response => {\n this.onGoing = false;\n this.forceValid = false;//diable the send button\n this.inlineAlert.showInlineSuccess({\n message: \"RESET_PWD.SUCCESS\"\n });\n })\n .catch(error => {\n this.onGoing = false;\n this.inlineAlert.showInlineError(error);\n })\n\n }\n\n public handleValidation(flag: boolean): void {\n if (flag) {\n this.validationState = true;\n } else {\n this.validationState = this.isValid;\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/password/forgot-password.component.ts","import { Component, ViewChild, AfterViewChecked } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgForm } from '@angular/forms';\n\nimport { PasswordSettingService } from './password-setting.service';\nimport { SessionService } from '../../shared/session.service';\nimport { AlertType, httpStatusCode } from '../../shared/shared.const';\nimport { MessageService } from '../../global-message/message.service';\nimport { errorHandler, isEmptyForm, accessErrorHandler } from '../../shared/shared.utils';\nimport { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';\n\n@Component({\n selector: 'password-setting',\n templateUrl: \"password-setting.component.html\"\n})\nexport class PasswordSettingComponent implements AfterViewChecked {\n opened: boolean = false;\n oldPwd: string = \"\";\n newPwd: string = \"\";\n reNewPwd: string = \"\";\n error: any = null;\n\n private formValueChanged: boolean = false;\n private onCalling: boolean = false;\n\n pwdFormRef: NgForm;\n @ViewChild(\"changepwdForm\") pwdForm: NgForm;\n @ViewChild(InlineAlertComponent)\n private inlineAlert: InlineAlertComponent;\n\n constructor(\n private passwordService: PasswordSettingService,\n private session: SessionService,\n private msgService: MessageService) { }\n\n //If form is valid\n public get isValid(): boolean {\n if (this.pwdForm && this.pwdForm.form.get(\"newPassword\")) {\n return this.pwdForm.valid &&\n (this.pwdForm.form.get(\"newPassword\").value === this.pwdForm.form.get(\"reNewPassword\").value) &&\n this.error === null;\n }\n return false;\n }\n\n public get valueChanged(): boolean {\n return this.formValueChanged;\n }\n\n public get showProgress(): boolean {\n return this.onCalling;\n }\n\n ngAfterViewChecked() {\n if (this.pwdFormRef != this.pwdForm) {\n this.pwdFormRef = this.pwdForm;\n if (this.pwdFormRef) {\n this.pwdFormRef.valueChanges.subscribe(data => {\n this.formValueChanged = true;\n this.error = null;\n this.inlineAlert.close();\n });\n }\n }\n }\n\n //Open modal dialog\n open(): void {\n this.opened = true;\n this.pwdForm.reset();\n this.formValueChanged = false;\n }\n\n //Close the moal dialog\n close(): void {\n if (this.formValueChanged) {\n if (isEmptyForm(this.pwdForm)) {\n this.opened = false;\n } else {\n //Need user confirmation\n this.inlineAlert.showInlineConfirmation({\n message: \"ALERT.FORM_CHANGE_CONFIRMATION\"\n });\n }\n } else {\n this.opened = false;\n }\n }\n\n confirmCancel(): void {\n this.opened = false;\n }\n\n //handle the ok action\n doOk(): void {\n if (this.onCalling) {\n return;//To avoid duplicate click events\n }\n\n if (!this.isValid) {\n return;//Double confirm\n }\n\n //Double confirm session is valid\n let cUser = this.session.getCurrentUser();\n if (!cUser) {\n return;\n }\n\n //Call service\n this.onCalling = true;\n\n this.passwordService.changePassword(cUser.user_id,\n {\n new_password: this.pwdForm.value.newPassword,\n old_password: this.pwdForm.value.oldPassword\n })\n .then(() => {\n this.onCalling = false;\n this.opened = false;\n this.msgService.announceMessage(200, \"CHANGE_PWD.SAVE_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.onCalling = false;\n this.error = error;\n if(accessErrorHandler(error, this.msgService)){\n this.opened = false;\n }else{\n this.inlineAlert.showInlineError(error);\n }\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/password/password-setting.component.ts","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { NgForm } from '@angular/forms';\n\nimport { PasswordSettingService } from './password-setting.service';\nimport { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';\nimport { errorHandler, accessErrorHandler } from '../../shared/shared.utils';\nimport { AlertType } from '../../shared/shared.const';\nimport { MessageService } from '../../global-message/message.service';\n\n@Component({\n selector: 'reset-password',\n templateUrl: \"reset-password.component.html\",\n styleUrls: ['password.component.css']\n})\nexport class ResetPasswordComponent implements OnInit{\n opened: boolean = true;\n private onGoing: boolean = false;\n private password: string = \"\";\n private validationState: any = {};\n private resetUuid: string = \"\";\n private resetOk: boolean = false;\n\n @ViewChild(\"resetPwdForm\") resetPwdForm: NgForm;\n @ViewChild(InlineAlertComponent)\n private inlineAlert: InlineAlertComponent;\n\n constructor(\n private pwdService: PasswordSettingService,\n private route: ActivatedRoute,\n private msgService: MessageService,\n private router: Router) { }\n\n ngOnInit(): void {\n this.route.queryParams.subscribe(params => this.resetUuid = params[\"reset_uuid\"] || \"\");\n }\n\n public get showProgress(): boolean {\n return this.onGoing;\n }\n\n public get isValid(): boolean {\n return this.resetPwdForm && this.resetPwdForm.valid && this.samePassword();\n }\n\n public getValidationState(key: string): boolean {\n return this.validationState && \n this.validationState[key] &&\n key === 'reNewPassword'?this.samePassword():true;\n }\n\n public open(): void {\n this.resetOk = false;\n this.opened = true;\n this.resetPwdForm.resetForm();\n }\n\n public close(): void {\n this.opened = false;\n }\n\n public send(): void {\n //If already reset password ok, navigator to sign-in\n if(this.resetOk){\n this.router.navigate(['sign-in']);\n return;\n }\n\n //Double confirm to avoid improper situations\n if (!this.password) {\n return;\n }\n\n if (!this.isValid) {\n return;\n }\n\n this.onGoing = true;\n this.pwdService.resetPassword(this.resetUuid, this.password)\n .then(() => {\n this.onGoing = false;\n this.resetOk = true;\n this.inlineAlert.showInlineSuccess({message:'RESET_PWD.RESET_OK'});\n })\n .catch(error => {\n this.onGoing = false;\n if(accessErrorHandler(error, this.msgService)){\n this.close();\n }else{\n this.inlineAlert.showInlineError(errorHandler(error));\n }\n });\n }\n\n public handleValidation(key: string, flag: boolean): void {\n if (flag) {\n if(!this.validationState[key]){\n this.validationState[key] = true;\n }\n } else {\n this.validationState[key] = this.getControlValidationState(key)\n }\n }\n\n private getControlValidationState(key: string): boolean {\n if (this.resetPwdForm) {\n let control = this.resetPwdForm.controls[key];\n if (control) {\n return control.valid;\n }\n }\n\n return false;\n }\n\n private samePassword(): boolean {\n if (this.resetPwdForm) {\n let control1 = this.resetPwdForm.controls[\"newPassword\"];\n let control2 = this.resetPwdForm.controls[\"reNewPassword\"];\n if (control1 && control2) {\n return control1.value == control2.value;\n }\n }\n\n return false;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/password/reset-password.component.ts","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Input, ViewChild, AfterViewChecked } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { SessionService } from '../../shared/session.service';\nimport { SignInCredential } from '../../shared/sign-in-credential';\n\nimport { SignUpComponent } from '../sign-up/sign-up.component';\nimport { harborRootRoute } from '../../shared/shared.const';\nimport { ForgotPasswordComponent } from '../password/forgot-password.component';\n\nimport { AppConfigService } from '../../app-config.service';\nimport { AppConfig } from '../../app-config';\n\n//Define status flags for signing in states\nexport const signInStatusNormal = 0;\nexport const signInStatusOnGoing = 1;\nexport const signInStatusError = -1;\n\n@Component({\n selector: 'sign-in',\n templateUrl: \"sign-in.component.html\",\n styleUrls: ['sign-in.component.css']\n})\n\nexport class SignInComponent implements AfterViewChecked, OnInit {\n private redirectUrl: string = \"\";\n private appConfig: AppConfig = new AppConfig();\n //Form reference\n signInForm: NgForm;\n @ViewChild('signInForm') currentForm: NgForm;\n @ViewChild('signupDialog') signUpDialog: SignUpComponent;\n @ViewChild('forgotPwdDialog') forgotPwdDialog: ForgotPasswordComponent;\n\n //Status flag\n signInStatus: number = signInStatusNormal;\n\n //Initialize sign in credential\n @Input() signInCredential: SignInCredential = {\n principal: \"\",\n password: \"\"\n };\n\n constructor(\n private router: Router,\n private session: SessionService,\n private route: ActivatedRoute,\n private appConfigService: AppConfigService\n ) { }\n\n ngOnInit(): void {\n this.appConfig = this.appConfigService.getConfig();\n this.route.queryParams\n .subscribe(params => {\n this.redirectUrl = params[\"redirect_url\"] || \"\";\n let isSignUp = params[\"sign_up\"] || \"\";\n if (isSignUp != \"\") {\n this.signUp();//Open sign up\n }\n });\n }\n\n //For template accessing\n public get isError(): boolean {\n return this.signInStatus === signInStatusError;\n }\n\n public get isOnGoing(): boolean {\n return this.signInStatus === signInStatusOnGoing;\n }\n\n //Validate the related fields\n public get isValid(): boolean {\n return this.currentForm.form.valid;\n }\n\n //Whether show the 'sign up' link\n public get selfSignUp(): boolean {\n return this.appConfig.auth_mode === 'db_auth'\n && this.appConfig.self_registration;\n }\n\n //General error handler\n private handleError(error) {\n //Set error status\n this.signInStatus = signInStatusError;\n\n let message = error.status ? error.status + \":\" + error.statusText : error;\n console.error(\"An error occurred when signing in:\", message);\n }\n\n //Hande form values changes\n private formChanged() {\n if (this.currentForm === this.signInForm) {\n return;\n }\n this.signInForm = this.currentForm;\n if (this.signInForm) {\n this.signInForm.valueChanges\n .subscribe(data => {\n this.updateState();\n });\n }\n\n }\n\n //Implement interface\n //Watch the view change only when view is in error state\n ngAfterViewChecked() {\n if (this.signInStatus === signInStatusError) {\n this.formChanged();\n }\n }\n\n //Update the status if we have done some changes\n updateState(): void {\n if (this.signInStatus === signInStatusError) {\n this.signInStatus = signInStatusNormal; //reset\n }\n }\n\n //Trigger the signin action\n signIn(): void {\n //Should validate input firstly\n if (!this.isValid || this.isOnGoing) {\n return;\n }\n\n //Start signing in progress\n this.signInStatus = signInStatusOnGoing;\n\n //Call the service to send out the http request\n this.session.signIn(this.signInCredential)\n .then(() => {\n //Set status\n this.signInStatus = signInStatusNormal;\n\n //Redirect to the right route\n if (this.redirectUrl === \"\") {\n //Routing to the default location\n this.router.navigateByUrl(harborRootRoute);\n } else {\n this.router.navigateByUrl(this.redirectUrl);\n }\n })\n .catch(error => {\n this.handleError(error);\n });\n }\n\n //Open sign up dialog\n signUp(): void {\n this.signUpDialog.open();\n }\n\n //Open forgot password dialog\n forgotPassword(): void {\n this.forgotPwdDialog.open();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/account/sign-in/sign-in.component.ts","import { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CookieService } from 'angular2-cookie/core';\n\nimport { supportedLangs, enLang } from './shared/shared.const';\nimport { SessionService } from './shared/session.service';\n\n@Component({\n selector: 'harbor-app',\n templateUrl: 'app.component.html',\n styleUrls: []\n})\nexport class AppComponent {\n constructor(\n private translate: TranslateService,\n private cookie: CookieService,\n private session: SessionService) {\n translate.addLangs(supportedLangs);\n translate.setDefaultLang(enLang);\n\n //If user has selected lang, then directly use it\n let langSetting = this.cookie.get(\"harbor-lang\");\n if (!langSetting || langSetting.trim() === \"\") {\n //Use browser lang\n langSetting = translate.getBrowserLang();\n }\n\n let selectedLang = this.isLangMatch(langSetting, supportedLangs) ? langSetting : enLang;\n translate.use(selectedLang);\n //this.session.switchLanguage(selectedLang).catch(error => console.error(error));\n }\n\n private isLangMatch(browserLang: string, supportedLangs: string[]) {\n if (supportedLangs && supportedLangs.length > 0) {\n return supportedLangs.find(lang => lang === browserLang);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Component, Output, EventEmitter } from '@angular/core';\n\nimport { GlobalSearchService } from './global-search.service';\nimport { SearchResults } from './search-results';\nimport { errorHandler, accessErrorHandler } from '../../shared/shared.utils';\nimport { AlertType, ListMode } from '../../shared/shared.const';\nimport { MessageService } from '../../global-message/message.service';\n\nimport { SearchTriggerService } from './search-trigger.service';\n\n@Component({\n selector: \"search-result\",\n templateUrl: \"search-result.component.html\",\n styleUrls: [\"search-result.component.css\"],\n\n providers: [GlobalSearchService]\n})\n\nexport class SearchResultComponent {\n private searchResults: SearchResults = new SearchResults();\n private originalCopy: SearchResults;\n\n private currentTerm: string = \"\";\n\n //Open or close\n private stateIndicator: boolean = false;\n //Search in progress\n private onGoing: boolean = false;\n\n //Whether or not mouse point is onto the close indicator\n private mouseOn: boolean = false;\n\n constructor(\n private search: GlobalSearchService,\n private msgService: MessageService,\n private searchTrigger: SearchTriggerService) { }\n\n private doFilterProjects(event: string) {\n this.searchResults.project = this.originalCopy.project.filter(pro => pro.name.indexOf(event) != -1);\n }\n\n private clone(src: SearchResults): SearchResults {\n let res: SearchResults = new SearchResults();\n\n if (src) {\n src.project.forEach(pro => res.project.push(Object.assign({}, pro)));\n src.repository.forEach(repo => res.repository.push(Object.assign({}, repo)))\n\n return res;\n }\n\n return res//Empty object\n }\n\n public get listMode(): string {\n return ListMode.READONLY;\n }\n\n public get state(): boolean {\n return this.stateIndicator;\n }\n\n public get done(): boolean {\n return !this.onGoing;\n }\n\n public get hover(): boolean {\n return this.mouseOn;\n }\n\n //Handle mouse event of close indicator\n mouseAction(over: boolean): void {\n this.mouseOn = over;\n }\n\n //Show the results\n show(): void {\n this.stateIndicator = true;\n this.searchTrigger.searchInputStat(true);\n }\n\n //Close the result page\n close(): void {\n //Tell shell close\n this.searchTrigger.closeSearch(true);\n this.searchTrigger.searchInputStat(false);\n this.stateIndicator = false;\n }\n\n //Call search service to complete the search request\n doSearch(term: string): void {\n //Do nothing if search is ongoing\n if (this.onGoing) {\n return;\n }\n //Confirm page is displayed\n if (!this.stateIndicator) {\n this.show();\n }\n\n this.currentTerm = term;\n\n //If term is empty, then clear the results\n if (term === \"\") {\n this.searchResults.project = [];\n this.searchResults.repository = [];\n return;\n }\n //Show spinner\n this.onGoing = true;\n\n this.search.doSearch(term)\n .then(searchResults => {\n this.onGoing = false;\n this.originalCopy = searchResults; //Keeo the original data\n this.searchResults = this.clone(searchResults);\n })\n .catch(error => {\n this.onGoing = false;\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.DANGER);\n }\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/global-search/search-result.component.ts","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { ModalEvent } from '../modal-event';\nimport { modalEvents } from '../modal-events.const';\n\nimport { AccountSettingsModalComponent } from '../../account/account-settings/account-settings-modal.component';\nimport { SearchResultComponent } from '../global-search/search-result.component';\nimport { PasswordSettingComponent } from '../../account/password/password-setting.component';\nimport { NavigatorComponent } from '../navigator/navigator.component';\nimport { SessionService } from '../../shared/session.service';\n\nimport { AboutDialogComponent } from '../../shared/about-dialog/about-dialog.component';\nimport { StartPageComponent } from '../start-page/start.component';\n\nimport { SearchTriggerService } from '../global-search/search-trigger.service';\n\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { harborRootRoute } from '../../shared/shared.const';\n\n@Component({\n selector: 'harbor-shell',\n templateUrl: 'harbor-shell.component.html',\n styleUrls: [\"harbor-shell.component.css\"]\n})\n\nexport class HarborShellComponent implements OnInit, OnDestroy {\n\n @ViewChild(AccountSettingsModalComponent)\n private accountSettingsModal: AccountSettingsModalComponent;\n\n @ViewChild(SearchResultComponent)\n private searchResultComponet: SearchResultComponent;\n\n @ViewChild(PasswordSettingComponent)\n private pwdSetting: PasswordSettingComponent;\n\n @ViewChild(NavigatorComponent)\n private navigator: NavigatorComponent;\n\n @ViewChild(AboutDialogComponent)\n private aboutDialog: AboutDialogComponent;\n\n @ViewChild(StartPageComponent)\n private searchSatrt: StartPageComponent;\n\n //To indicator whwther or not the search results page is displayed\n //We need to use this property to do some overriding work\n private isSearchResultsOpened: boolean = false;\n\n private searchSub: Subscription;\n private searchCloseSub: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private session: SessionService,\n private searchTrigger: SearchTriggerService) { }\n\n ngOnInit() {\n this.searchSub = this.searchTrigger.searchTriggerChan$.subscribe(searchEvt => {\n this.doSearch(searchEvt);\n });\n\n this.searchCloseSub = this.searchTrigger.searchCloseChan$.subscribe(close => {\n if (close) {\n this.searchClose();\n }else{\n this.watchClickEvt();//reuse\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.searchSub) {\n this.searchSub.unsubscribe();\n }\n\n if (this.searchCloseSub) {\n this.searchCloseSub.unsubscribe();\n }\n }\n\n public get isStartPage(): boolean {\n return this.router.routerState.snapshot.url.toString() === harborRootRoute;\n }\n\n public get showSearch(): boolean {\n return this.isSearchResultsOpened;\n }\n\n public get isSystemAdmin(): boolean {\n let account = this.session.getCurrentUser();\n return account != null && account.has_admin_role > 0;\n }\n\n public get isUserExisting(): boolean {\n let account = this.session.getCurrentUser();\n return account != null;\n }\n\n //Open modal dialog\n openModal(event: ModalEvent): void {\n switch (event.modalName) {\n case modalEvents.USER_PROFILE:\n this.accountSettingsModal.open();\n break;\n case modalEvents.CHANGE_PWD:\n this.pwdSetting.open();\n break;\n case modalEvents.ABOUT:\n this.aboutDialog.open();\n break;\n default:\n break;\n }\n }\n\n //Handle the global search event and then let the result page to trigger api\n doSearch(event: string): void {\n if (event === \"\") {\n if (!this.isSearchResultsOpened) {\n //Will not open search result panel if term is empty\n return;\n } else {\n //If opened, then close the search result panel\n this.isSearchResultsOpened = false;\n this.searchResultComponet.close();\n return;\n }\n }\n //Once this method is called\n //the search results page must be opened\n this.isSearchResultsOpened = true;\n\n //Call the child component to do the real work\n this.searchResultComponet.doSearch(event);\n }\n\n //Search results page closed\n //remove the related ovevriding things\n searchClose(): void {\n this.isSearchResultsOpened = false;\n }\n\n //Close serch result panel if existing\n watchClickEvt(): void {\n this.searchResultComponet.close();\n this.isSearchResultsOpened = false;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/harbor-shell/harbor-shell.component.ts","export const modalEvents = {\n USER_PROFILE: \"USER_PROFILE\", \n CHANGE_PWD: \"CHANGE_PWD\",\n ABOUT: \"ABOUT\"\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/modal-events.const.ts","import { Component, Output, EventEmitter, OnInit, Inject } from '@angular/core';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { ModalEvent } from '../modal-event';\nimport { modalEvents } from '../modal-events.const';\n\nimport { SessionUser } from '../../shared/session-user';\nimport { SessionService } from '../../shared/session.service';\nimport { CookieService } from 'angular2-cookie/core';\n\nimport { supportedLangs, enLang, languageNames, signInRoute } from '../../shared/shared.const';\n\nimport { AppConfigService } from '../../app-config.service';\nimport { AppConfig } from '../../app-config';\n\n@Component({\n selector: 'navigator',\n templateUrl: \"navigator.component.html\",\n styleUrls: [\"navigator.component.css\"]\n})\n\nexport class NavigatorComponent implements OnInit {\n // constructor(private router: Router){}\n @Output() showAccountSettingsModal = new EventEmitter();\n @Output() showPwdChangeModal = new EventEmitter();\n\n private sessionUser: SessionUser = null;\n private selectedLang: string = enLang;\n private appConfig: AppConfig = new AppConfig();\n\n constructor(\n private session: SessionService,\n private router: Router,\n private translate: TranslateService,\n private cookie: CookieService,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n this.sessionUser = this.session.getCurrentUser();\n this.selectedLang = this.translate.currentLang;\n this.translate.onLangChange.subscribe(langChange => {\n this.selectedLang = langChange.lang;\n //Keep in cookie for next use\n this.cookie.put(\"harbor-lang\", langChange.lang);\n });\n\n this.appConfig = this.appConfigService.getConfig();\n }\n\n public get isSessionValid(): boolean {\n return this.sessionUser != null;\n }\n\n public get accountName(): string {\n return this.sessionUser ? this.sessionUser.username : \"\";\n }\n\n public get currentLang(): string {\n return languageNames[this.selectedLang];\n }\n\n public get isIntegrationMode(): boolean {\n return this.appConfig.with_admiral && this.appConfig.admiral_endpoint.trim() != \"\";\n }\n\n public get admiralLink(): string {\n let routeSegments = [this.appConfig.admiral_endpoint,\n \"?registry_url=\",\n encodeURIComponent(window.location.href)\n ];\n\n return routeSegments.join(\"\");\n }\n\n matchLang(lang: string): boolean {\n return lang.trim() === this.selectedLang;\n }\n\n //Open the account setting dialog\n openAccountSettingsModal(): void {\n this.showAccountSettingsModal.emit({\n modalName: modalEvents.USER_PROFILE,\n modalFlag: true\n });\n }\n\n //Open change password dialog\n openChangePwdModal(): void {\n this.showPwdChangeModal.emit({\n modalName: modalEvents.CHANGE_PWD,\n modalFlag: true\n });\n }\n\n //Open about dialog\n openAboutDialog(): void {\n this.showPwdChangeModal.emit({\n modalName: modalEvents.ABOUT,\n modalFlag: true\n });\n }\n\n //Log out system\n logOut(): void {\n this.session.signOff()\n .then(() => {\n this.sessionUser = null;\n //Naviagte to the sign in route\n this.router.navigate([\"/sign-in\"]);\n })\n .catch()//TODO:\n }\n\n //Switch languages\n switchLanguage(lang: string): void {\n if (supportedLangs.find(supportedLang => supportedLang === lang.trim())) {\n this.translate.use(lang);\n } else {\n this.translate.use(enLang);//Use default\n //TODO:\n console.error('Language ' + lang.trim() + ' is not suppoted');\n }\n //Try to switch backend lang\n //this.session.switchLanguage(lang).catch(error => console.error(error));\n }\n\n //Handle the home action\n homeAction(): void {\n if (this.sessionUser != null) {\n //Navigate to default page\n this.router.navigate(['harbor']);\n } else {\n //Naviagte to signin page\n this.router.navigate(['sign-in']);\n }\n }\n\n openSignUp(): void {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"sign_up\": true }\n };\n\n this.router.navigate([signInRoute], navigatorExtra);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/navigator/navigator.component.ts","import { Component, Input, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { Configuration } from '../config';\n\n@Component({\n selector: 'config-auth',\n templateUrl: \"config-auth.component.html\",\n styleUrls: ['../config.component.css']\n})\nexport class ConfigurationAuthComponent {\n private changeSub: Subscription;\n @Input(\"ldapConfig\") currentConfig: Configuration = new Configuration();\n\n @ViewChild(\"authConfigFrom\") authForm: NgForm;\n\n constructor() { }\n\n public get showLdap(): boolean {\n return this.currentConfig &&\n this.currentConfig.auth_mode &&\n this.currentConfig.auth_mode.value === 'ldap_auth';\n }\n\n private disabled(prop: any): boolean {\n return !(prop && prop.editable);\n }\n\n public isValid(): boolean {\n return this.authForm && this.authForm.valid;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/auth/config-auth.component.ts","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgForm } from '@angular/forms';\n\nimport { ConfigurationService } from './config.service';\nimport { Configuration } from './config';\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType, DeletionTargets } from '../shared/shared.const';\nimport { errorHandler, accessErrorHandler } from '../shared/shared.utils';\nimport { StringValueItem } from './config';\nimport { DeletionDialogService } from '../shared/deletion-dialog/deletion-dialog.service';\nimport { Subscription } from 'rxjs/Subscription';\nimport { DeletionMessage } from '../shared/deletion-dialog/deletion-message'\n\nimport { ConfigurationAuthComponent } from './auth/config-auth.component';\nimport { ConfigurationEmailComponent } from './email/config-email.component';\n\nimport { AppConfigService } from '../app-config.service';\n\nconst fakePass = \"fakepassword\";\n\n@Component({\n selector: 'config',\n templateUrl: \"config.component.html\",\n styleUrls: ['config.component.css']\n})\nexport class ConfigurationComponent implements OnInit, OnDestroy {\n private onGoing: boolean = false;\n allConfig: Configuration = new Configuration();\n private currentTabId: string = \"\";\n private originalCopy: Configuration;\n private confirmSub: Subscription;\n private testingOnGoing: boolean = false;\n\n @ViewChild(\"repoConfigFrom\") repoConfigForm: NgForm;\n @ViewChild(\"systemConfigFrom\") systemConfigForm: NgForm;\n @ViewChild(ConfigurationEmailComponent) mailConfig: ConfigurationEmailComponent;\n @ViewChild(ConfigurationAuthComponent) authConfig: ConfigurationAuthComponent;\n\n constructor(\n private msgService: MessageService,\n private configService: ConfigurationService,\n private confirmService: DeletionDialogService,\n private appConfigService: AppConfigService) { }\n\n ngOnInit(): void {\n //First load\n this.retrieveConfig();\n\n this.confirmSub = this.confirmService.deletionConfirm$.subscribe(confirmation => {\n this.reset(confirmation.data);\n });\n }\n\n ngOnDestroy(): void {\n if (this.confirmSub) {\n this.confirmSub.unsubscribe();\n }\n }\n\n public get inProgress(): boolean {\n return this.onGoing;\n }\n\n public get testingInProgress(): boolean {\n return this.testingOnGoing;\n }\n\n public isValid(): boolean {\n return this.repoConfigForm &&\n this.repoConfigForm.valid &&\n this.systemConfigForm &&\n this.systemConfigForm.valid &&\n this.mailConfig &&\n this.mailConfig.isValid() &&\n this.authConfig &&\n this.authConfig.isValid();\n }\n\n public hasChanges(): boolean {\n return !this.isEmpty(this.getChanges());\n }\n\n public isMailConfigValid(): boolean {\n return this.mailConfig &&\n this.mailConfig.isValid();\n }\n\n public get showTestServerBtn(): boolean {\n return this.currentTabId === 'config-email';\n }\n\n public get showLdapServerBtn(): boolean {\n return this.currentTabId === 'config-auth' &&\n this.allConfig.auth_mode &&\n this.allConfig.auth_mode.value === \"ldap_auth\";\n }\n\n public isLDAPConfigValid(): boolean {\n return this.authConfig && this.authConfig.isValid();\n }\n\n public tabLinkChanged(tabLink: any) {\n this.currentTabId = tabLink.id;\n }\n\n /**\n * \n * Save the changed values\n * \n * @memberOf ConfigurationComponent\n */\n public save(): void {\n let changes = this.getChanges();\n if (!this.isEmpty(changes)) {\n this.onGoing = true;\n this.configService.saveConfiguration(changes)\n .then(response => {\n this.onGoing = false;\n //API should return the updated configurations here\n //Unfortunately API does not do that\n //To refresh the view, we can clone the original data copy\n //or force refresh by calling service.\n //HERE we choose force way\n this.retrieveConfig();\n\n //Reload bootstrap option\n this.appConfigService.load().catch(error=> console.error(\"Failed to reload bootstrap option with error: \", error));\n\n this.msgService.announceMessage(response.status, \"CONFIG.SAVE_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.onGoing = false;\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.DANGER);\n }\n });\n } else {\n //Inprop situation, should not come here\n console.error(\"Save obort becasue nothing changed\");\n }\n }\n\n /**\n * \n * Discard current changes if have and reset\n * \n * @memberOf ConfigurationComponent\n */\n public cancel(): void {\n let changes = this.getChanges();\n if (!this.isEmpty(changes)) {\n let msg = new DeletionMessage(\n \"CONFIG.CONFIRM_TITLE\",\n \"CONFIG.CONFIRM_SUMMARY\",\n \"\",\n changes,\n DeletionTargets.EMPTY\n );\n this.confirmService.openComfirmDialog(msg);\n } else {\n //Inprop situation, should not come here\n console.error(\"Nothing changed\");\n }\n }\n\n /**\n * \n * Test the connection of specified mail server\n * \n * \n * @memberOf ConfigurationComponent\n */\n public testMailServer(): void {\n let mailSettings = {};\n let allChanges = this.getChanges();\n for (let prop in allChanges) {\n if (prop.startsWith(\"email_\")) {\n mailSettings[prop] = allChanges[prop];\n }\n }\n\n this.testingOnGoing = true;\n this.configService.testMailServer(mailSettings)\n .then(response => {\n this.testingOnGoing = false;\n this.msgService.announceMessage(200, \"CONFIG.TEST_MAIL_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.testingOnGoing = false;\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.WARNING);\n });\n }\n\n public testLDAPServer(): void {\n let ldapSettings = {};\n let allChanges = this.getChanges();\n for (let prop in allChanges) {\n if (prop.startsWith(\"ldap_\")) {\n ldapSettings[prop] = allChanges[prop];\n }\n }\n\n console.info(ldapSettings);\n this.testingOnGoing = true;\n this.configService.testLDAPServer(ldapSettings)\n .then(respone => {\n this.testingOnGoing = false;\n this.msgService.announceMessage(200, \"CONFIG.TEST_LDAP_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.testingOnGoing = false;\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.WARNING);\n });\n }\n\n private retrieveConfig(): void {\n this.onGoing = true;\n this.configService.getConfiguration()\n .then(configurations => {\n this.onGoing = false;\n\n //Add two password fields\n configurations.email_password = new StringValueItem(fakePass, true);\n configurations.ldap_search_password = new StringValueItem(fakePass, true);\n this.allConfig = configurations;\n\n //Keep the original copy of the data\n this.originalCopy = this.clone(configurations);\n })\n .catch(error => {\n this.onGoing = false;\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.DANGER);\n }\n });\n }\n\n /**\n * \n * Get the changed fields and return a map\n * \n * @private\n * @returns {*}\n * \n * @memberOf ConfigurationComponent\n */\n private getChanges(): any {\n let changes = {};\n if (!this.allConfig || !this.originalCopy) {\n return changes;\n }\n\n for (let prop in this.allConfig) {\n let field = this.originalCopy[prop];\n if (field && field.editable) {\n if (field.value != this.allConfig[prop].value) {\n changes[prop] = this.allConfig[prop].value;\n //Fix boolean issue\n if (typeof field.value === \"boolean\") {\n changes[prop] = changes[prop] ? \"1\" : \"0\";\n }\n }\n }\n }\n\n return changes;\n }\n\n /**\n * \n * Deep clone the configuration object\n * \n * @private\n * @param {Configuration} src\n * @returns {Configuration}\n * \n * @memberOf ConfigurationComponent\n */\n private clone(src: Configuration): Configuration {\n let dest = new Configuration();\n if (!src) {\n return dest;//Empty\n }\n\n for (let prop in src) {\n if (src[prop]) {\n dest[prop] = Object.assign({}, src[prop]); //Deep copy inner object\n }\n }\n\n return dest;\n }\n\n /**\n * \n * Reset the configuration form\n * \n * @private\n * @param {*} changes\n * \n * @memberOf ConfigurationComponent\n */\n private reset(changes: any): void {\n if (!this.isEmpty(changes)) {\n for (let prop in changes) {\n if (this.originalCopy[prop]) {\n this.allConfig[prop] = Object.assign({}, this.originalCopy[prop]);\n }\n }\n } else {\n //force reset\n this.retrieveConfig();\n }\n }\n\n private isEmpty(obj) {\n for (let key in obj) {\n if (obj.hasOwnProperty(key))\n return false;\n }\n return true;\n }\n\n private disabled(prop: any): boolean {\n return !(prop && prop.editable);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/config.component.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { Configuration } from './config';\n\nconst configEndpoint = \"/api/configurations\";\nconst emailEndpoint = \"/api/email/ping\";\nconst ldapEndpoint = \"/api/ldap/ping\";\n\n@Injectable()\nexport class ConfigurationService {\n private headers: Headers = new Headers({\n \"Accept\": 'application/json',\n \"Content-Type\": 'application/json'\n });\n private options: RequestOptions = new RequestOptions({\n 'headers': this.headers\n });\n\n constructor(private http: Http) { }\n\n public getConfiguration(): Promise {\n return this.http.get(configEndpoint, this.options).toPromise()\n .then(response => response.json() as Configuration)\n .catch(error => Promise.reject(error));\n }\n\n public saveConfiguration(values: any): Promise {\n return this.http.put(configEndpoint, JSON.stringify(values), this.options)\n .toPromise()\n .then(response => response)\n .catch(error => Promise.reject(error));\n }\n\n public testMailServer(mailSettings: any): Promise {\n return this.http.post(emailEndpoint, JSON.stringify(mailSettings), this.options)\n .toPromise()\n .then(response => response)\n .catch(error => Promise.reject(error));\n }\n\n public testLDAPServer(ldapSettings: any): Promise {\n return this.http.post(ldapEndpoint, JSON.stringify(ldapSettings), this.options)\n .toPromise()\n .then(response => response)\n .catch(error => Promise.reject(error));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/config.service.ts","import { Component, Input, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { Configuration } from '../config';\n\n@Component({\n selector: 'config-email',\n templateUrl: \"config-email.component.html\",\n styleUrls: ['../config.component.css']\n})\nexport class ConfigurationEmailComponent {\n @Input(\"mailConfig\") currentConfig: Configuration = new Configuration();\n \n @ViewChild(\"mailConfigFrom\") mailForm: NgForm;\n\n constructor() { }\n\n private disabled(prop: any): boolean {\n return !(prop && prop.editable);\n }\n\n public isValid(): boolean {\n return this.mailForm && this.mailForm.valid;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/email/config-email.component.ts","import { AlertType } from '../shared/shared.const';\n\nexport class Message {\n statusCode: number;\n message: string;\n alertType: AlertType;\n isAppLevel: boolean = false;\n\n get type(): string {\n switch (this.alertType) {\n case AlertType.DANGER:\n return 'alert-danger';\n case AlertType.INFO:\n return 'alert-info';\n case AlertType.SUCCESS:\n return 'alert-success';\n case AlertType.WARNING:\n return 'alert-warning';\n default:\n return 'alert-warning';\n }\n }\n\n constructor() { }\n\n static newMessage(statusCode: number, message: string, alertType: AlertType): Message {\n let m = new Message();\n m.statusCode = statusCode;\n m.message = message;\n m.alertType = alertType;\n return m;\n }\n\n\n toString(): string {\n return 'Message with statusCode:' + this.statusCode +\n ', message:' + this.message +\n ', alert type:' + this.type;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/global-message/message.ts","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\n\nimport { AuditLog } from './audit-log';\nimport { SessionUser } from '../shared/session-user';\n\nimport { AuditLogService } from './audit-log.service';\nimport { SessionService } from '../shared/session.service';\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType } from '../shared/shared.const';\n\nimport { State } from 'clarity-angular';\n\nconst optionalSearch: {} = {0: 'AUDIT_LOG.ADVANCED', 1: 'AUDIT_LOG.SIMPLE'};\n\nclass FilterOption {\n key: string;\n description: string;\n checked: boolean;\n\n constructor(private iKey: string, private iDescription: string, private iChecked: boolean) {\n this.key = iKey;\n this.description = iDescription;\n this.checked = iChecked;\n }\n\n toString(): string {\n return 'key:' + this.key + ', description:' + this.description + ', checked:' + this.checked + '\\n';\n }\n}\n\n@Component({\n selector: 'audit-log',\n templateUrl: './audit-log.component.html',\n styleUrls: [ 'audit-log.css' ]\n})\nexport class AuditLogComponent implements OnInit {\n\n currentUser: SessionUser;\n projectId: number;\n queryParam: AuditLog = new AuditLog();\n auditLogs: AuditLog[];\n \n toggleName = optionalSearch;\n currentOption: number = 0;\n filterOptions: FilterOption[] = [ \n new FilterOption('all', 'AUDIT_LOG.ALL_OPERATIONS', true),\n new FilterOption('pull', 'AUDIT_LOG.PULL', true),\n new FilterOption('push', 'AUDIT_LOG.PUSH', true),\n new FilterOption('create', 'AUDIT_LOG.CREATE', true),\n new FilterOption('delete', 'AUDIT_LOG.DELETE', true),\n new FilterOption('others', 'AUDIT_LOG.OTHERS', true) \n ];\n\n pageOffset: number = 1;\n pageSize: number = 2;\n totalRecordCount: number;\n totalPage: number;\n \n constructor(private route: ActivatedRoute, private router: Router, private auditLogService: AuditLogService, private messageService: MessageService) {\n //Get current user from registered resolver.\n this.route.data.subscribe(data=>this.currentUser = data['auditLogResolver']); \n }\n\n ngOnInit(): void {\n this.projectId = +this.route.snapshot.parent.params['id'];\n console.log('Get projectId from route params snapshot:' + this.projectId);\n this.queryParam.project_id = this.projectId;\n this.queryParam.page_size = this.pageSize;\n }\n\n retrieve(state?: State): void {\n if(state) {\n this.queryParam.page = state.page.to + 1;\n }\n this.auditLogService\n .listAuditLogs(this.queryParam)\n .subscribe(\n response=>{\n this.totalRecordCount = response.headers.get('x-total-count');\n this.totalPage = Math.ceil(this.totalRecordCount / this.pageSize);\n console.log('TotalRecordCount:' + this.totalRecordCount + ', totalPage:' + this.totalPage);\n this.auditLogs = response.json();\n },\n error=>{\n this.router.navigate(['/harbor', 'projects']);\n this.messageService.announceMessage(error.status, 'Failed to list audit logs with project ID:' + this.queryParam.project_id, AlertType.DANGER);\n }\n );\n }\n\n doSearchAuditLogs(searchUsername: string): void {\n this.queryParam.username = searchUsername;\n this.retrieve();\n }\n\n doSearchByTimeRange(strDate: string, target: string): void {\n let oneDayOffset = 3600 * 24;\n switch(target) {\n case 'begin':\n this.queryParam.begin_timestamp = new Date(strDate).getTime() / 1000;\n break;\n case 'end':\n this.queryParam.end_timestamp = new Date(strDate).getTime() / 1000 + oneDayOffset;\n break;\n }\n console.log('Search audit log filtered by time range, begin: ' + this.queryParam.begin_timestamp + ', end:' + this.queryParam.end_timestamp);\n this.retrieve();\n }\n\n doSearchByOptions() {\n let selectAll = true;\n let operationFilter: string[] = [];\n for(var i in this.filterOptions) {\n let filterOption = this.filterOptions[i];\n if(filterOption.checked) {\n operationFilter.push(this.filterOptions[i].key);\n }else{\n selectAll = false;\n }\n }\n if(selectAll) {\n operationFilter = [];\n }\n this.queryParam.keywords = operationFilter.join('/');\n this.retrieve();\n console.log('Search option filter:' + operationFilter.join('/'));\n }\n\n toggleOptionalName(option: number): void {\n (option === 1) ? this.currentOption = 0 : this.currentOption = 1;\n }\n\n toggleFilterOption(option: string): void {\n let selectedOption = this.filterOptions.find(value =>(value.key === option));\n selectedOption.checked = !selectedOption.checked;\n if(selectedOption.key === 'all') {\n this.filterOptions.filter(value=> value.key !== selectedOption.key).forEach(value => value.checked = selectedOption.checked);\n } else {\n if(!selectedOption.checked) {\n this.filterOptions.find(value=>value.key === 'all').checked = false;\n }\n let selectAll = true;\n this.filterOptions.filter(value=> value.key !== 'all').forEach(value =>{\n if(!value.checked) {\n selectAll = false;\n }\n });\n this.filterOptions.find(value=>value.key === 'all').checked = selectAll;\n }\n this.doSearchByOptions();\n }\n refresh(): void {\n this.retrieve();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/log/audit-log.component.ts","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuditLog } from './audit-log';\nimport { SessionUser } from '../shared/session-user';\n\nimport { AuditLogService } from './audit-log.service';\nimport { SessionService } from '../shared/session.service';\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType } from '../shared/shared.const';\nimport { errorHandler, accessErrorHandler } from '../shared/shared.utils';\n\n@Component({\n selector: 'recent-log',\n templateUrl: './recent-log.component.html',\n styleUrls: ['recent-log.component.css']\n})\n\nexport class RecentLogComponent implements OnInit {\n private sessionUser: SessionUser = null;\n private recentLogs: AuditLog[];\n private logsCache: AuditLog[];\n private onGoing: boolean = false;\n private lines: number = 10; //Support 10, 25 and 50\n\n constructor(\n private session: SessionService,\n private msgService: MessageService,\n private logService: AuditLogService) {\n this.sessionUser = this.session.getCurrentUser();//Initialize session\n }\n\n ngOnInit(): void {\n this.retrieveLogs();\n }\n\n public get inProgress(): boolean {\n return this.onGoing;\n }\n\n public setLines(lines: number): void {\n this.lines = lines;\n if (this.lines < 10) {\n this.lines = 10;\n }\n\n this.retrieveLogs();\n }\n\n public doFilter(terms: string): void {\n if (terms.trim() === \"\") {\n this.recentLogs = this.logsCache.filter(log => log.username != \"\");\n return;\n }\n\n this.recentLogs = this.logsCache.filter(log => this.isMatched(terms, log));\n }\n\n public refresh(): void {\n this.retrieveLogs();\n }\n\n public formatDateTime(dateTime: string){\n let dt: Date = new Date(dateTime);\n return dt.toLocaleString();\n }\n\n private retrieveLogs(): void {\n if (this.lines < 10) {\n this.lines = 10;\n }\n\n this.onGoing = true;\n this.logService.getRecentLogs(this.lines)\n .subscribe(\n response => {\n this.onGoing = false;\n this.logsCache = response; //Keep the data\n this.recentLogs = this.logsCache.filter(log => log.username != \"\");//To display\n },\n error => {\n this.onGoing = false;\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.DANGER);\n }\n }\n );\n }\n\n private isMatched(terms: string, log: AuditLog): boolean {\n let reg = new RegExp('.*' + terms + '.*', 'i');\n return reg.test(log.username) ||\n reg.test(log.repo_name) ||\n reg.test(log.operation);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/log/recent-log.component.ts","import { Component, EventEmitter, Output } from '@angular/core';\nimport { Response } from '@angular/http';\n\nimport { Project } from '../project';\nimport { ProjectService } from '../project.service';\n\n\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType } from '../../shared/shared.const';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'create-project',\n templateUrl: 'create-project.component.html',\n styleUrls: [ 'create-project.css' ]\n})\nexport class CreateProjectComponent {\n \n project: Project = new Project();\n createProjectOpened: boolean;\n \n errorMessageOpened: boolean;\n errorMessage: string;\n \n @Output() create = new EventEmitter();\n \n constructor(private projectService: ProjectService, \n private messageService: MessageService,\n private translateService: TranslateService) {}\n\n onSubmit() {\n this.projectService\n .createProject(this.project.name, this.project.public ? 1 : 0)\n .subscribe(\n status=>{\n this.create.emit(true);\n this.createProjectOpened = false;\n },\n error=>{\n this.errorMessageOpened = true;\n if (error instanceof Response) { \n switch(error.status) {\n case 409:\n this.translateService.get('PROJECT.NAME_ALREADY_EXISTS').subscribe(res=>this.errorMessage = res);\n break;\n case 400:\n this.translateService.get('PROJECT.NAME_IS_ILLEGAL').subscribe(res=>this.errorMessage = res); \n break;\n default:\n this.translateService.get('PROJECT.UNKNOWN_ERROR').subscribe(res=>{\n this.errorMessage = res;\n this.messageService.announceMessage(error.status, this.errorMessage, AlertType.DANGER);\n });\n }\n }\n }); \n }\n\n newProject() {\n this.project = new Project();\n this.createProjectOpened = true;\n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n\n onErrorMessageClose(): void {\n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/create-project/create-project.component.ts","import { Component, EventEmitter, Output, Input, OnInit } from '@angular/core';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { Project } from '../project';\nimport { ProjectService } from '../project.service';\n\nimport { SessionService } from '../../shared/session.service';\nimport { SearchTriggerService } from '../../base/global-search/search-trigger.service';\nimport { signInRoute, ListMode } from '../../shared/shared.const';\n\nimport { State } from 'clarity-angular';\n\n@Component({\n selector: 'list-project',\n templateUrl: 'list-project.component.html'\n})\nexport class ListProjectComponent implements OnInit {\n\n @Input() projects: Project[];\n\n\n @Input() totalPage: number;\n @Input() totalRecordCount: number;\n pageOffset: number = 1;\n\n @Output() paginate = new EventEmitter();\n\n @Output() toggle = new EventEmitter();\n @Output() delete = new EventEmitter();\n\n @Input() mode: string = ListMode.FULL;\n\n constructor(\n private session: SessionService,\n private router: Router,\n private searchTrigger: SearchTriggerService) { }\n\n ngOnInit(): void {\n }\n\n public get listFullMode(): boolean {\n return this.mode === ListMode.FULL;\n }\n\n goToLink(proId: number): void {\n this.searchTrigger.closeSearch(false);\n \n let linkUrl = ['harbor', 'projects', proId, 'repository'];\n if (!this.session.getCurrentUser()) {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"redirect_url\": linkUrl.join(\"/\") }\n };\n\n this.router.navigate([signInRoute], navigatorExtra);\n } else {\n this.router.navigate(linkUrl);\n\n }\n }\n\n refresh(state: State) {\n this.paginate.emit(state);\n }\n\n toggleProject(p: Project) {\n this.toggle.emit(p);\n }\n\n deleteProject(p: Project) {\n this.delete.emit(p);\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/list-project/list-project.component.ts","import { Component, Input, EventEmitter, Output } from '@angular/core';\nimport { Response } from '@angular/http';\nimport { MemberService } from '../member.service';\nimport { MessageService } from '../../../global-message/message.service';\nimport { AlertType } from '../../../shared/shared.const';\n\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { Member } from '../member';\n\n@Component({\n selector: 'add-member',\n templateUrl: 'add-member.component.html'\n})\nexport class AddMemberComponent {\n\n member: Member = new Member();\n addMemberOpened: boolean;\n errorMessage: string;\n \n errorMessageOpened: boolean;\n\n\n @Input() projectId: number;\n @Output() added = new EventEmitter();\n\n constructor(private memberService: MemberService, \n private messageService: MessageService, \n private translateService: TranslateService) {}\n\n onSubmit(): void {\n console.log('Adding member:' + JSON.stringify(this.member));\n this.memberService\n .addMember(this.projectId, this.member.username, this.member.role_id)\n .subscribe(\n response=>{\n console.log('Added member successfully.');\n this.added.emit(true);\n this.addMemberOpened = false;\n },\n error=>{\n this.errorMessageOpened = true;\n if (error instanceof Response) { \n switch(error.status){\n case 404:\n this.translateService.get('MEMBER.USERNAME_DOES_NOT_EXISTS').subscribe(res=>this.errorMessage = res);\n break;\n case 409:\n this.translateService.get('MEMBER.USERNAME_ALREADY_EXISTS').subscribe(res=>this.errorMessage = res);\n break;\n default:\n this.translateService.get('MEMBER.UNKNOWN_ERROR').subscribe(res=>{\n this.errorMessage = res;\n this.messageService.announceMessage(error.status, this.errorMessage, AlertType.DANGER);\n });\n \n }\n }\n console.log('Failed to add member of project:' + this.projectId, ' with error:' + error);\n }\n );\n }\n\n openAddMemberModal(): void {\n this.errorMessageOpened = false;\n this.errorMessage = '';\n this.member = new Member();\n this.addMemberOpened = true;\n }\n\n onErrorMessageClose(): void {\n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/member/add-member/add-member.component.ts","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Response } from '@angular/http';\n\nimport { SessionUser } from '../../shared/session-user';\nimport { Member } from './member';\nimport { MemberService } from './member.service';\n\nimport { AddMemberComponent } from './add-member/add-member.component';\n\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType, DeletionTargets } from '../../shared/shared.const';\n\nimport { DeletionDialogService } from '../../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../../shared/deletion-dialog/deletion-message';\nimport { SessionService } from '../../shared/session.service';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/switchMap';\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/observable/throw';\n\nexport const roleInfo: {} = { 1: 'MEMBER.PROJECT_ADMIN', 2: 'MEMBER.DEVELOPER', 3: 'MEMBER.GUEST' };\n\n@Component({\n templateUrl: 'member.component.html'\n})\nexport class MemberComponent implements OnInit {\n\n currentUser: SessionUser;\n members: Member[];\n projectId: number;\n roleInfo = roleInfo;\n\n @ViewChild(AddMemberComponent)\n addMemberComponent: AddMemberComponent;\n\n constructor(private route: ActivatedRoute, private router: Router,\n private memberService: MemberService, private messageService: MessageService,\n private deletionDialogService: DeletionDialogService,\n session:SessionService) {\n //Get current user from registered resolver.\n this.currentUser = session.getCurrentUser();\n deletionDialogService.deletionConfirm$.subscribe(message => {\n if (message && message.targetId === DeletionTargets.PROJECT_MEMBER) {\n this.memberService\n .deleteMember(this.projectId, message.data)\n .subscribe(\n response => {\n console.log('Successful change role with user ' + message.data);\n this.retrieve(this.projectId, '');\n },\n error => this.messageService.announceMessage(error.status, 'Failed to change role with user ' + message.data, AlertType.DANGER)\n );\n }\n });\n }\n\n retrieve(projectId: number, username: string) {\n this.memberService\n .listMembers(projectId, username)\n .subscribe(\n response => this.members = response,\n error => {\n this.router.navigate(['/harbor', 'projects']);\n this.messageService.announceMessage(error.status, 'Failed to get project member with project ID:' + projectId, AlertType.DANGER);\n }\n );\n }\n\n ngOnInit() {\n //Get projectId from route params snapshot. \n this.projectId = +this.route.snapshot.parent.params['id'];\n console.log('Get projectId from route params snapshot:' + this.projectId);\n\n this.retrieve(this.projectId, '');\n }\n\n openAddMemberModal() {\n this.addMemberComponent.openAddMemberModal();\n }\n\n addedMember() {\n this.retrieve(this.projectId, '');\n }\n\n changeRole(userId: number, roleId: number) {\n this.memberService\n .changeMemberRole(this.projectId, userId, roleId)\n .subscribe(\n response => {\n console.log('Successful change role with user ' + userId + ' to roleId ' + roleId);\n this.retrieve(this.projectId, '');\n },\n error => this.messageService.announceMessage(error.status, 'Failed to change role with user ' + userId + ' to roleId ' + roleId, AlertType.DANGER)\n );\n }\n\n deleteMember(userId: number) {\n let deletionMessage: DeletionMessage = new DeletionMessage(\n 'MEMBER.DELETION_TITLE',\n 'MEMBER.DELETION_SUMMARY',\n userId+\"\",\n userId,\n DeletionTargets.PROJECT_MEMBER\n );\n this.deletionDialogService.openComfirmDialog(deletionMessage);\n }\n\n doSearch(searchMember) {\n this.retrieve(this.projectId, searchMember);\n }\n\n refresh() {\n this.retrieve(this.projectId, '');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/member/member.component.ts","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Project } from '../project';\n\nimport { SessionService } from '../../shared/session.service';\n\n@Component({\n selector: 'project-detail',\n templateUrl: \"project-detail.component.html\",\n styleUrls: [ 'project-detail.css' ]\n})\nexport class ProjectDetailComponent {\n\n currentProject: Project;\n \n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private sessionService: SessionService) {\n this.route.data.subscribe(data=>this.currentProject = data['projectResolver']);\n\n }\n\n public get isSystemAdmin(): boolean {\n let account = this.sessionService.getCurrentUser();\n return account != null && account.has_admin_role > 0;\n }\n \n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project-detail/project-detail.component.ts","import { Injectable } from '@angular/core';\nimport { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\n\nimport { Project } from './project';\nimport { ProjectService } from './project.service';\n\n@Injectable()\nexport class ProjectRoutingResolver implements Resolve{\n\n constructor(private projectService: ProjectService, private router: Router) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n let projectId = route.params['id'];\n return this.projectService\n .getProject(projectId)\n .then(project=> {\n if(project) {\n return project;\n } else {\n this.router.navigate(['/harbor', 'projects']);\n return null;\n }\n });\n } \n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project-routing-resolver.service.ts","import { Component, OnInit, ViewChild } from '@angular/core';\n\nimport { Router } from '@angular/router';\n\nimport { Project } from './project';\nimport { ProjectService } from './project.service';\n\nimport { CreateProjectComponent } from './create-project/create-project.component';\n\nimport { ListProjectComponent } from './list-project/list-project.component';\n\nimport { MessageService } from '../global-message/message.service';\nimport { Message } from '../global-message/message';\n\nimport { AlertType } from '../shared/shared.const';\nimport { Response } from '@angular/http';\n\nimport { DeletionDialogService } from '../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../shared/deletion-dialog/deletion-message';\nimport { DeletionTargets } from '../shared/shared.const';\n\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { State } from 'clarity-angular';\n\nconst types: {} = { 0: 'PROJECT.MY_PROJECTS', 1: 'PROJECT.PUBLIC_PROJECTS'};\n\n@Component({\n selector: 'project',\n templateUrl: 'project.component.html',\n styleUrls: [ 'project.css' ]\n})\nexport class ProjectComponent implements OnInit {\n \n selected = [];\n changedProjects: Project[];\n projectTypes = types;\n \n @ViewChild(CreateProjectComponent)\n creationProject: CreateProjectComponent;\n\n @ViewChild(ListProjectComponent)\n listProject: ListProjectComponent;\n\n currentFilteredType: number = 0;\n\n subscription: Subscription;\n\n projectName: string;\n isPublic: number;\n\n page: number = 1;\n pageSize: number = 3;\n\n totalPage: number;\n totalRecordCount: number;\n\n constructor(\n private projectService: ProjectService,\n private messageService: MessageService,\n private deletionDialogService: DeletionDialogService){\n this.subscription = deletionDialogService.deletionConfirm$.subscribe(message => {\n if (message && message.targetId === DeletionTargets.PROJECT) {\n let projectId = message.data;\n this.projectService\n .deleteProject(projectId)\n .subscribe(\n response=>{\n console.log('Successful delete project with ID:' + projectId);\n this.retrieve();\n },\n error=>this.messageService.announceMessage(error.status, error, AlertType.WARNING)\n );\n }\n });\n }\n\n ngOnInit(): void {\n this.projectName = '';\n this.isPublic = 0;\n }\n\n retrieve(state?: State): void {\n if(state) {\n this.page = state.page.to + 1;\n }\n this.projectService\n .listProjects(this.projectName, this.isPublic, this.page, this.pageSize)\n .subscribe(\n response => {\n this.totalRecordCount = response.headers.get('x-total-count');\n this.totalPage = Math.ceil(this.totalRecordCount / this.pageSize);\n console.log('TotalRecordCount:' + this.totalRecordCount + ', totalPage:' + this.totalPage);\n this.changedProjects = response.json();\n },\n error => this.messageService.announceAppLevelMessage(error.status, error, AlertType.WARNING)\n );\n }\n\n openModal(): void {\n this.creationProject.newProject();\n }\n \n createProject(created: boolean) {\n if(created) {\n this.retrieve();\n }\n }\n\n doSearchProjects(projectName: string): void {\n console.log('Search for project name:' + projectName);\n this.projectName = projectName;\n this.retrieve();\n }\n\n doFilterProjects(filteredType: number): void {\n console.log('Filter projects with type:' + types[filteredType]);\n this.isPublic = filteredType;\n this.retrieve();\n }\n\n toggleProject(p: Project) {\n if (p) {\n p.public === 0 ? p.public = 1 : p.public = 0;\n this.projectService\n .toggleProjectPublic(p.project_id, p.public)\n .subscribe(\n response=>console.log('Successful toggled project_id:' + p.project_id),\n error=>this.messageService.announceMessage(error.status, error, AlertType.WARNING)\n );\n }\n }\n\n deleteProject(p: Project) {\n let deletionMessage = new DeletionMessage(\n 'PROJECT.DELETION_TITLE',\n 'PROJECT.DELETION_SUMMARY',\n p.name,\n p.project_id,\n DeletionTargets.PROJECT\n );\n this.deletionDialogService.openComfirmDialog(deletionMessage);\n }\n\n refresh(): void {\n this.retrieve();\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project.component.ts","import { Component, Output, EventEmitter } from '@angular/core';\n\nimport { ReplicationService } from '../replication.service';\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType, ActionType } from '../../shared/shared.const';\n\nimport { Target } from '../target';\n\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'create-edit-destination',\n templateUrl: './create-edit-destination.component.html'\n})\nexport class CreateEditDestinationComponent {\n\n modalTitle: string;\n createEditDestinationOpened: boolean;\n\n errorMessageOpened: boolean;\n errorMessage: string;\n\n testOngoing: boolean;\n pingTestMessage: string;\n pingStatus: boolean;\n\n actionType: ActionType;\n\n target: Target = new Target();\n\n @Output() reload = new EventEmitter();\n \n constructor(\n private replicationService: ReplicationService,\n private messageService: MessageService,\n private translateService: TranslateService) {}\n\n openCreateEditTarget(targetId?: number) {\n this.target = new Target();\n\n this.createEditDestinationOpened = true;\n \n this.errorMessageOpened = false;\n this.errorMessage = '';\n \n this.pingTestMessage = '';\n this.pingStatus = true;\n this.testOngoing = false; \n\n if(targetId) {\n this.actionType = ActionType.EDIT;\n this.translateService.get('DESTINATION.TITLE_EDIT').subscribe(res=>this.modalTitle=res);\n this.replicationService\n .getTarget(targetId)\n .subscribe(\n target=>this.target=target,\n error=>this.messageService\n .announceMessage(error.status, 'DESTINATION.FAILED_TO_GET_TARGET', AlertType.DANGER)\n );\n } else {\n this.actionType = ActionType.ADD_NEW;\n this.translateService.get('DESTINATION.TITLE_ADD').subscribe(res=>this.modalTitle=res);\n }\n }\n\n testConnection() {\n this.translateService.get('DESTINATION.TESTING_CONNECTION').subscribe(res=>this.pingTestMessage=res);\n this.pingStatus = true;\n this.testOngoing = !this.testOngoing;\n this.replicationService\n .pingTarget(this.target)\n .subscribe(\n response=>{\n this.pingStatus = true;\n this.translateService.get('DESTINATION.TEST_CONNECTION_SUCCESS').subscribe(res=>this.pingTestMessage=res);\n this.testOngoing = !this.testOngoing;\n },\n error=>{\n this.pingStatus = false;\n this.translateService.get('DESTINATION.TEST_CONNECTION_FAILURE').subscribe(res=>this.pingTestMessage=res);\n this.testOngoing = !this.testOngoing;\n }\n )\n }\n\n onSubmit() {\n this.errorMessage = '';\n this.errorMessageOpened = false;\n\n switch(this.actionType) {\n case ActionType.ADD_NEW:\n this.replicationService\n .createTarget(this.target)\n .subscribe(\n response=>{\n console.log('Successful added target.');\n this.createEditDestinationOpened = false;\n this.reload.emit(true);\n },\n error=>{\n this.errorMessageOpened = true;\n let errorMessageKey = '';\n switch(error.status) {\n case 409:\n errorMessageKey = 'DESTINATION.CONFLICT_NAME';\n break;\n case 400:\n errorMessageKey = 'DESTINATION.INVALID_NAME';\n break;\n default:\n errorMessageKey = 'UNKNOWN_ERROR';\n }\n this.translateService\n .get(errorMessageKey)\n .subscribe(res=>{\n this.errorMessage = res;\n this.messageService.announceMessage(error.status, errorMessageKey, AlertType.DANGER);\n });\n }\n );\n break;\n case ActionType.EDIT:\n this.replicationService\n .updateTarget(this.target)\n .subscribe(\n response=>{ \n console.log('Successful updated target.');\n this.createEditDestinationOpened = false;\n this.reload.emit(true);\n },\n error=>{\n this.errorMessageOpened = true;\n this.errorMessage = 'Failed to update target:' + error;\n let errorMessageKey = '';\n switch(error.status) {\n case 409:\n errorMessageKey = 'DESTINATION.CONFLICT_NAME';\n break;\n case 400:\n errorMessageKey = 'DESTINATION.INVALID_NAME';\n break;\n default:\n errorMessageKey = 'UNKNOWN_ERROR';\n }\n this.translateService\n .get(errorMessageKey)\n .subscribe(res=>{\n this.errorMessage = res;\n this.messageService.announceMessage(error.status, errorMessageKey, AlertType.DANGER);\n });\n }\n );\n break;\n }\n }\n\n onErrorMessageClose(): void {\n this.errorMessageOpened = false;\n this.errorMessage = '';\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/create-edit-destination/create-edit-destination.component.ts","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { Target } from '../target';\nimport { ReplicationService } from '../replication.service';\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType } from '../../shared/shared.const';\n\nimport { DeletionDialogService } from '../../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../../shared/deletion-dialog/deletion-message';\n\nimport { DeletionTargets } from '../../shared/shared.const';\n\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { CreateEditDestinationComponent } from '../create-edit-destination/create-edit-destination.component';\n\n@Component({\n selector: 'destination',\n templateUrl: 'destination.component.html'\n})\nexport class DestinationComponent implements OnInit {\n\n @ViewChild(CreateEditDestinationComponent) \n createEditDestinationComponent: CreateEditDestinationComponent; \n\n targets: Target[];\n target: Target;\n\n targetName: string;\n subscription : Subscription;\n\n constructor(\n private replicationService: ReplicationService,\n private messageService: MessageService,\n private deletionDialogService: DeletionDialogService) {\n this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(message=>{\n let targetId = message.data;\n this.replicationService\n .deleteTarget(targetId)\n .subscribe(\n response=>{\n console.log('Successful deleted target with ID:' + targetId);\n this.reload();\n },\n error=>this.messageService\n .announceMessage(error.status, \n 'Failed to delete target with ID:' + targetId + ', error:' + error, \n AlertType.DANGER)\n );\n });\n }\n\n ngOnInit(): void {\n this.targetName = '';\n this.retrieve('');\n }\n\n ngOnDestroy(): void {\n if(this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n retrieve(targetName: string): void {\n this.replicationService\n .listTargets(targetName)\n .subscribe(\n targets=>this.targets = targets,\n error=>this.messageService.announceMessage(error.status,'Failed to get targets:' + error, AlertType.DANGER)\n );\n }\n\n doSearchTargets(targetName: string) {\n this.targetName = targetName;\n this.retrieve(targetName);\n }\n\n refreshTargets() {\n this.retrieve('');\n }\n\n reload() {\n this.retrieve(this.targetName);\n }\n\n openModal() {\n this.createEditDestinationComponent.openCreateEditTarget();\n this.target = new Target();\n }\n\n editTarget(target: Target) {\n if(target) {\n this.createEditDestinationComponent.openCreateEditTarget(target.id);\n }\n }\n\n deleteTarget(target: Target) {\n if(target) {\n let targetId = target.id;\n let deletionMessage = new DeletionMessage('REPLICATION.DELETION_TITLE_TARGET', 'REPLICATION.DELETION_SUMMARY_TARGET', target.name, target.id, DeletionTargets.TARGET);\n this.deletionDialogService.openComfirmDialog(deletionMessage);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/destination/destination.component.ts","import { Component } from '@angular/core';\n\n@Component({\n selector: 'replication-management',\n templateUrl: 'replication-management.component.html',\n styleUrls: [ 'replication-management.css' ]\n})\nexport class ReplicationManagementComponent {}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/replication-management/replication-management.component.ts","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CreateEditPolicyComponent } from '../shared/create-edit-policy/create-edit-policy.component';\n\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType } from '../shared/shared.const';\n\nimport { SessionService } from '../shared/session.service';\n\nimport { ReplicationService } from './replication.service';\n\nimport { SessionUser } from '../shared/session-user';\nimport { Policy } from './policy';\nimport { Job } from './job';\nimport { Target } from './target';\n\nimport { State } from 'clarity-angular';\n\nconst ruleStatus = [\n { 'key': '', 'description': 'REPLICATION.ALL_STATUS'},\n { 'key': '1', 'description': 'REPLICATION.ENABLED'},\n { 'key': '0', 'description': 'REPLICATION.DISABLED'}\n];\n\nconst jobStatus = [\n { 'key': '', 'description': 'REPLICATION.ALL' },\n { 'key': 'pending', 'description': 'REPLICATION.PENDING' },\n { 'key': 'running', 'description': 'REPLICATION.RUNNING' },\n { 'key': 'error', 'description': 'REPLICATION.ERROR' },\n { 'key': 'retrying', 'description': 'REPLICATION.RETRYING' },\n { 'key': 'stopped' , 'description': 'REPLICATION.STOPPED' },\n { 'key': 'finished', 'description': 'REPLICATION.FINISHED' },\n { 'key': 'canceled', 'description': 'REPLICATION.CANCELED' } \n];\n\nconst optionalSearch: {} = {0: 'REPLICATION.ADVANCED', 1: 'REPLICATION.SIMPLE'};\n\nclass SearchOption {\n policyId: number;\n policyName: string = '';\n repoName: string = '';\n status: string = '';\n startTime: string = '';\n endTime: string = '';\n page: number = 1;\n pageSize: number = 5;\n}\n\n@Component({\n selector: 'replicaton',\n templateUrl: 'replication.component.html'\n})\nexport class ReplicationComponent implements OnInit {\n \n currentUser: SessionUser;\n projectId: number;\n\n search: SearchOption;\n\n ruleStatus = ruleStatus;\n currentRuleStatus: {key: string, description: string};\n\n jobStatus = jobStatus;\n currentJobStatus: {key: string, description: string};\n\n changedPolicies: Policy[];\n changedJobs: Job[];\n initSelectedId: number;\n\n policies: Policy[];\n jobs: Job[];\n\n jobsTotalRecordCount: number;\n jobsTotalPage: number;\n\n toggleJobSearchOption = optionalSearch;\n currentJobSearchOption: number;\n\n @ViewChild(CreateEditPolicyComponent) \n createEditPolicyComponent: CreateEditPolicyComponent;\n\n constructor(\n private sessionService: SessionService, \n private messageService: MessageService,\n private replicationService: ReplicationService,\n private route: ActivatedRoute) {\n this.currentUser = this.sessionService.getCurrentUser();\n }\n\n ngOnInit(): void {\n this.projectId = +this.route.snapshot.parent.params['id'];\n console.log('Get projectId from route params snapshot:' + this.projectId);\n this.search = new SearchOption();\n this.currentRuleStatus = this.ruleStatus[0];\n this.currentJobStatus = this.jobStatus[0];\n this.currentJobSearchOption = 0;\n this.retrievePolicies();\n }\n\n retrievePolicies(): void {\n this.replicationService\n .listPolicies(this.search.policyName, this.projectId)\n .subscribe(\n response=>{\n this.changedPolicies = response;\n if(this.changedPolicies && this.changedPolicies.length > 0) {\n this.initSelectedId = this.changedPolicies[0].id;\n }\n this.policies = this.changedPolicies;\n if(this.changedPolicies && this.changedPolicies.length > 0) {\n this.search.policyId = this.changedPolicies[0].id;\n this.fetchPolicyJobs();\n } else {\n this.changedJobs = [];\n }\n },\n error=>this.messageService.announceMessage(error.status,'Failed to get policies with project ID:' + this.projectId, AlertType.DANGER)\n );\n }\n\n openModal(): void {\n console.log('Open modal to create policy.');\n this.createEditPolicyComponent.openCreateEditPolicy();\n }\n\n openEditPolicy(policyId: number) {\n console.log('Open modal to edit policy ID:' + policyId);\n this.createEditPolicyComponent.openCreateEditPolicy(policyId);\n }\n\n fetchPolicyJobs(state?: State) { \n if(state) {\n this.search.page = state.page.to + 1;\n }\n console.log('Received policy ID ' + this.search.policyId + ' by clicked row.');\n this.replicationService\n .listJobs(this.search.policyId, this.search.status, this.search.repoName, \n this.search.startTime, this.search.endTime, this.search.page, this.search.pageSize)\n .subscribe(\n response=>{\n this.jobsTotalRecordCount = response.headers.get('x-total-count');\n this.jobsTotalPage = Math.ceil(this.jobsTotalRecordCount / this.search.pageSize);\n this.changedJobs = response.json();\n this.jobs = this.changedJobs;\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to fetch jobs with policy ID:' + this.search.policyId, AlertType.DANGER)\n );\n }\n\n selectOne(policy: Policy) {\n if(policy) {\n this.search.policyId = policy.id;\n this.fetchPolicyJobs();\n }\n }\n\n doSearchPolicies(policyName: string) {\n this.search.policyName = policyName;\n this.retrievePolicies();\n }\n\n doFilterPolicyStatus(status: string) {\n console.log('Do filter policies with status:' + status);\n this.currentRuleStatus = this.ruleStatus.find(r=>r.key === status);\n if(status.trim() === '') {\n this.changedPolicies = this.policies;\n } else {\n this.changedPolicies = this.policies.filter(policy=>policy.enabled === +this.currentRuleStatus.key);\n }\n }\n\n doFilterJobStatus(status: string) {\n console.log('Do filter jobs with status:' + status);\n this.currentJobStatus = this.jobStatus.find(r=>r.key === status);\n if(status.trim() === '') {\n this.changedJobs = this.jobs;\n } else {\n this.changedJobs = this.jobs.filter(job=>job.status === status);\n }\n }\n\n doSearchJobs(repoName: string) {\n this.search.repoName = repoName;\n this.fetchPolicyJobs();\n }\n\n reloadPolicies(isReady: boolean) {\n if(isReady) {\n this.retrievePolicies();\n }\n }\n\n refreshPolicies() {\n this.retrievePolicies();\n }\n\n refreshJobs() {\n this.fetchPolicyJobs();\n }\n\n toggleSearchJobOptionalName(option: number) {\n (option === 1) ? this.currentJobSearchOption = 0 : this.currentJobSearchOption = 1;\n }\n\n doJobSearchByTimeRange(strDate: string, target: string) {\n if(!strDate || strDate.trim() === '') {\n strDate = 0 + '';\n }\n let oneDayOffset = 3600 * 24;\n switch(target) {\n case 'begin':\n this.search.startTime = (new Date(strDate).getTime() / 1000) + '';\n break;\n case 'end':\n this.search.endTime = (new Date(strDate).getTime() / 1000 + oneDayOffset) + '';\n break;\n }\n console.log('Search jobs filtered by time range, begin: ' + this.search.startTime + ', end:' + this.search.endTime);\n this.fetchPolicyJobs();\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/replication.component.ts","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ReplicationService } from '../../replication/replication.service';\n\nimport { CreateEditPolicyComponent } from '../../shared/create-edit-policy/create-edit-policy.component';\n\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType } from '../../shared/shared.const';\n\nimport { Policy } from '../../replication/policy';\n\n@Component({\n selector: 'total-replication',\n templateUrl: 'total-replication.component.html',\n providers: [ ReplicationService ]\n})\nexport class TotalReplicationComponent implements OnInit {\n\n changedPolicies: Policy[];\n policies: Policy[];\n policyName: string = '';\n projectId: number;\n\n @ViewChild(CreateEditPolicyComponent) \n createEditPolicyComponent: CreateEditPolicyComponent;\n\n constructor(\n private replicationService: ReplicationService,\n private messageService: MessageService) {}\n\n ngOnInit() {\n this.retrievePolicies();\n }\n\n retrievePolicies(): void {\n this.replicationService\n .listPolicies(this.policyName)\n .subscribe(\n response=>{\n this.changedPolicies = response;\n this.policies = this.changedPolicies;\n },\n error=>this.messageService.announceMessage(error.status,'Failed to get policies.', AlertType.DANGER)\n );\n }\n\n doSearchPolicies(policyName: string) {\n this.policyName = policyName;\n this.retrievePolicies();\n }\n \n openEditPolicy(policyId: number) {\n console.log('Open modal to edit policy ID:' + policyId);\n this.createEditPolicyComponent.openCreateEditPolicy(policyId);\n }\n\n selectPolicy(policy: Policy) {\n if(policy) {\n this.projectId = policy.project_id;\n }\n }\n \n refreshPolicies() {\n this.retrievePolicies();\n }\n\n reloadPolicies(isReady: boolean) {\n if(isReady) {\n this.retrievePolicies();\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/total-replication/total-replication.component.ts","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RepositoryService } from './repository.service';\nimport { Repository } from './repository';\n\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType, DeletionTargets } from '../shared/shared.const';\n\n\nimport { DeletionDialogService } from '../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../shared/deletion-dialog/deletion-message';\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { State } from 'clarity-angular';\n\nconst repositoryTypes = [\n { key: '0', description: 'REPOSITORY.MY_REPOSITORY' },\n { key: '1', description: 'REPOSITORY.PUBLIC_REPOSITORY' }\n];\n\n@Component({\n selector: 'repository',\n templateUrl: 'repository.component.html'\n})\nexport class RepositoryComponent implements OnInit {\n changedRepositories: Repository[];\n\n projectId: number;\n repositoryTypes = repositoryTypes;\n currentRepositoryType: {};\n lastFilteredRepoName: string;\n\n page: number = 1;\n pageSize: number = 15;\n\n totalPage: number;\n totalRecordCount: number;\n\n subscription: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private repositoryService: RepositoryService,\n private messageService: MessageService,\n private deletionDialogService: DeletionDialogService\n ) {\n this.subscription = this.deletionDialogService\n .deletionConfirm$\n .subscribe(\n message=>{\n let repoName = message.data;\n this.repositoryService\n .deleteRepository(repoName)\n .subscribe(\n response=>{\n this.refresh();\n console.log('Successful deleted repo:' + repoName);\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to delete repo:' + repoName, AlertType.DANGER)\n );\n }\n );\n }\n\n ngOnInit(): void {\n this.projectId = this.route.snapshot.parent.params['id'];\n this.currentRepositoryType = this.repositoryTypes[0];\n this.lastFilteredRepoName = '';\n this.retrieve();\n }\n\n ngOnDestroy(): void {\n if(this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n retrieve(state?: State) {\n if(state) {\n this.page = state.page.to + 1;\n }\n this.repositoryService\n .listRepositories(this.projectId, this.lastFilteredRepoName, this.page, this.pageSize)\n .subscribe(\n response=>{\n this.totalRecordCount = response.headers.get('x-total-count');\n this.totalPage = Math.ceil(this.totalRecordCount / this.pageSize);\n console.log('TotalRecordCount:' + this.totalRecordCount + ', totalPage:' + this.totalPage);\n this.changedRepositories=response.json();\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to list repositories.', AlertType.DANGER)\n );\n }\n\n doFilterRepositoryByType(type: string) {\n this.currentRepositoryType = this.repositoryTypes.find(r=>r.key == type);\n }\n \n doSearchRepoNames(repoName: string) {\n this.lastFilteredRepoName = repoName;\n this.retrieve();\n \n }\n\n deleteRepo(repoName: string) {\n let message = new DeletionMessage(\n 'REPOSITORY.DELETION_TITLE_REPO', \n 'REPOSITORY.DELETION_SUMMARY_REPO', \n repoName, repoName, DeletionTargets.REPOSITORY);\n this.deletionDialogService.openComfirmDialog(message);\n }\n\n refresh() {\n this.retrieve();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/repository.component.ts","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { SharedModule } from '../shared/shared.module';\n\nimport { RepositoryComponent } from './repository.component';\nimport { ListRepositoryComponent } from './list-repository/list-repository.component';\nimport { TagRepositoryComponent } from './tag-repository/tag-repository.component';\nimport { TopRepoComponent } from './top-repo/top-repo.component';\n\nimport { RepositoryService } from './repository.service';\n\n@NgModule({\n imports: [\n SharedModule,\n RouterModule\n ],\n declarations: [\n RepositoryComponent,\n ListRepositoryComponent,\n TagRepositoryComponent,\n TopRepoComponent\n ],\n exports: [RepositoryComponent, ListRepositoryComponent, TopRepoComponent],\n providers: [RepositoryService]\n})\nexport class RepositoryModule { }\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/repository.module.ts","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { RepositoryService } from '../repository.service';\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType, DeletionTargets } from '../../shared/shared.const';\n\nimport { DeletionDialogService } from '../../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../../shared/deletion-dialog/deletion-message';\n\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { TagView } from '../tag-view';\n\n@Component({\n selector: 'tag-repository',\n templateUrl: 'tag-repository.component.html'\n})\nexport class TagRepositoryComponent implements OnInit, OnDestroy {\n\n projectId: number;\n repoName: string;\n\n tags: TagView[];\n\n private subscription: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private messageService: MessageService,\n private deletionDialogService: DeletionDialogService,\n private repositoryService: RepositoryService) {\n this.subscription = this.deletionDialogService.deletionConfirm$.subscribe(\n message=>{\n let tag = message.data;\n if(tag) {\n if(tag.verified) {\n return;\n } else {\n let tagName = tag.tag;\n this.repositoryService\n .deleteRepoByTag(this.repoName, tagName)\n .subscribe(\n response=>{\n this.retrieve();\n console.log('Deleted repo:' + this.repoName + ' with tag:' + tagName);\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to delete tag:' + tagName + ' under repo:' + this.repoName, AlertType.DANGER)\n );\n }\n }\n \n }\n )\n }\n \n ngOnInit() {\n this.projectId = this.route.snapshot.params['id']; \n this.repoName = this.route.snapshot.params['repo'];\n this.tags = [];\n this.retrieve();\n }\n\n ngOnDestroy() {\n if(this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n \n retrieve() {\n this.tags = [];\n this.repositoryService\n .listTagsWithVerifiedSignatures(this.repoName)\n .subscribe(\n items=>{\n items.forEach(t=>{\n let tag = new TagView();\n tag.tag = t.tag;\n let data = JSON.parse(t.manifest.history[0].v1Compatibility);\n tag.architecture = data['architecture'];\n tag.author = data['author'];\n tag.verified = t.verified || false;\n tag.created = data['created'];\n tag.dockerVersion = data['docker_version'];\n tag.pullCommand = 'docker pull ' + t.manifest.name + ':' + t.tag;\n tag.os = data['os'];\n this.tags.push(tag);\n });\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to list tags with repo:' + this.repoName, AlertType.DANGER));\n }\n\n deleteTag(tag: TagView) {\n if(tag) {\n let titleKey: string, summaryKey: string;\n if (tag.verified) {\n titleKey = 'REPOSITORY.DELETION_TITLE_TAG_DENIED';\n summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG_DENIED';\n } else {\n titleKey = 'REPOSITORY.DELETION_TITLE_TAG';\n summaryKey = 'REPOSITORY.DELETION_SUMMARY_TAG';\n }\n let message = new DeletionMessage(titleKey, summaryKey, tag.tag, tag, DeletionTargets.TAG);\n this.deletionDialogService.openComfirmDialog(message);\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/tag-repository/tag-repository.component.ts","import { Component } from '@angular/core';\n \n@Component({\n selector: 'about-dialog',\n templateUrl: \"about-dialog.component.html\",\n styleUrls: [\"about-dialog.component.css\"]\n})\nexport class AboutDialogComponent {\n private opened: boolean = false;\n private version: string =\"0.4.1\";\n private build: string =\"4276418\";\n\n public open(): void {\n this.opened = true;\n }\n\n public close(): void {\n this.opened = false;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/about-dialog/about-dialog.component.ts","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\n\nconst defaultInterval = 1000;\nconst defaultLeftTime = 5;\n \n@Component({\n selector: 'page-not-found',\n templateUrl: \"not-found.component.html\",\n styleUrls: ['not-found.component.css']\n})\nexport class PageNotFoundComponent implements OnInit, OnDestroy{\n private leftSeconds: number = defaultLeftTime;\n private timeInterval: any = null;\n\n constructor(private router: Router){}\n\n ngOnInit(): void {\n if(!this.timeInterval){\n this.timeInterval = setInterval(interval => {\n this.leftSeconds--;\n if(this.leftSeconds <= 0){\n this.router.navigate(['harbor']);\n clearInterval(this.timeInterval);\n }\n }, defaultInterval);\n }\n }\n\n ngOnDestroy(): void {\n if(this.timeInterval){\n clearInterval(this.timeInterval);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/not-found/not-found.component.ts","import { Injectable } from '@angular/core';\nimport {\n CanActivate, Router,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n CanActivateChild,\n NavigationExtras\n} from '@angular/router';\nimport { SessionService } from '../../shared/session.service';\nimport { harborRootRoute, signInRoute } from '../../shared/shared.const';\n\n@Injectable()\nexport class AuthCheckGuard implements CanActivate, CanActivateChild {\n constructor(private authService: SessionService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return new Promise((resolve, reject) => {\n let user = this.authService.getCurrentUser();\n if (!user) {\n this.authService.retrieveUser()\n .then(() => resolve(true))\n .catch(error => {\n //Session retrieving failed then redirect to sign-in\n //no matter what status code is.\n //Please pay attention that route 'harborRootRoute' support anonymous user\n if (state.url != harborRootRoute) {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"redirect_url\": state.url }\n };\n this.router.navigate([signInRoute], navigatorExtra);\n return resolve(false);\n } else {\n return resolve(true);\n }\n });\n } else {\n return resolve(true);\n }\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return this.canActivate(route, state);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/route/auth-user-activate.service.ts","import { Injectable } from '@angular/core';\nimport {\n CanActivate, Router,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n CanActivateChild\n} from '@angular/router';\nimport { SessionService } from '../../shared/session.service';\nimport { harborRootRoute } from '../../shared/shared.const';\n\n@Injectable()\nexport class SignInGuard implements CanActivate, CanActivateChild {\n constructor(private authService: SessionService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n //If user has logged in, should not login again\n return new Promise((resolve, reject) => {\n let user = this.authService.getCurrentUser();\n if (!user) {\n this.authService.retrieveUser()\n .then(() => {\n this.router.navigate([harborRootRoute]);\n return resolve(false);\n })\n .catch(error => {\n return resolve(true);\n });\n } else {\n this.router.navigate([harborRootRoute]);\n return resolve(false);\n }\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return this.canActivate(route, state);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/route/sign-in-guard-activate.service.ts","import { Injectable } from '@angular/core';\nimport {\n CanActivate, Router,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n CanActivateChild,\n NavigationExtras\n} from '@angular/router';\nimport { SessionService } from '../../shared/session.service';\nimport { harborRootRoute, signInRoute } from '../../shared/shared.const';\n\n@Injectable()\nexport class SystemAdminGuard implements CanActivate, CanActivateChild {\n constructor(private authService: SessionService, private router: Router) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return new Promise((resolve, reject) => {\n let user = this.authService.getCurrentUser();\n if (!user) {\n this.authService.retrieveUser()\n .then(() => {\n //updated user\n user = this.authService.getCurrentUser();\n if (user.has_admin_role > 0) {\n return resolve(true);\n } else {\n this.router.navigate([harborRootRoute]);\n return resolve(false);\n }\n })\n .catch(error => {\n //Session retrieving failed then redirect to sign-in\n //no matter what status code is.\n //Please pay attention that route 'harborRootRoute' support anonymous user\n if (state.url != harborRootRoute) {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"redirect_url\": state.url }\n };\n this.router.navigate([signInRoute], navigatorExtra);\n return resolve(false);\n } else {\n return resolve(true);\n }\n });\n } else {\n if (user.has_admin_role > 0) {\n return resolve(true);\n } else {\n this.router.navigate([harborRootRoute]);\n return resolve(false);\n }\n }\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise | boolean {\n return this.canActivate(route, state);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/route/system-admin-activate.service.ts","import { Component, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { NgForm } from '@angular/forms';\n\nimport { NewUserFormComponent } from '../shared/new-user-form/new-user-form.component';\nimport { User } from './user';\n\nimport { SessionService } from '../shared/session.service';\nimport { UserService } from './user.service';\nimport { errorHandler, accessErrorHandler } from '../shared/shared.utils';\nimport { MessageService } from '../global-message/message.service';\nimport { AlertType, httpStatusCode } from '../shared/shared.const';\nimport { InlineAlertComponent } from '../shared/inline-alert/inline-alert.component';\n\n@Component({\n selector: \"new-user-modal\",\n templateUrl: \"new-user-modal.component.html\"\n})\n\nexport class NewUserModalComponent {\n opened: boolean = false;\n private error: any;\n private onGoing: boolean = false;\n private formValueChanged: boolean = false;\n\n @Output() addNew = new EventEmitter();\n\n constructor(private session: SessionService,\n private userService: UserService,\n private msgService: MessageService) { }\n\n @ViewChild(NewUserFormComponent)\n private newUserForm: NewUserFormComponent;\n @ViewChild(InlineAlertComponent)\n private inlineAlert: InlineAlertComponent;\n\n private getNewUser(): User {\n return this.newUserForm.getData();\n }\n\n public get inProgress(): boolean {\n return this.onGoing;\n }\n\n public get isValid(): boolean {\n return this.newUserForm.isValid && this.error == null;\n }\n\n public get errorMessage(): string {\n return errorHandler(this.error);\n }\n\n formValueChange(flag: boolean): void {\n if (this.error != null) {\n this.error = null;//clear error\n }\n\n this.formValueChanged = true;\n this.inlineAlert.close();\n }\n\n open(): void {\n this.newUserForm.reset();//Reset form\n this.formValueChanged = false;\n this.opened = true;\n }\n\n close(): void {\n if (this.formValueChanged) {\n if (this.newUserForm.isEmpty()) {\n this.opened = false;\n } else {\n //Need user confirmation\n this.inlineAlert.showInlineConfirmation({\n message: \"ALERT.FORM_CHANGE_CONFIRMATION\"\n });\n }\n } else {\n this.opened = false;\n }\n }\n\n confirmCancel(event: boolean): void {\n this.opened = false;\n }\n\n //Create new user\n create(): void {\n //Double confirm everything is ok\n //Form is valid\n if (!this.isValid) {\n return;\n }\n\n //We have new user data\n let u = this.getNewUser();\n if (!u) {\n return;\n }\n\n //Session is ok and role is matched\n let account = this.session.getCurrentUser();\n if (!account || account.has_admin_role === 0) {\n return;\n }\n\n //Start process\n this.onGoing = true;\n\n this.userService.addUser(u)\n .then(() => {\n this.onGoing = false;\n //TODO:\n //As no response data returned, can not add it to list directly\n\n this.addNew.emit(u);\n this.opened = false;\n this.msgService.announceMessage(200, \"USER.SAVE_SUCCESS\", AlertType.SUCCESS);\n })\n .catch(error => {\n this.onGoing = false;\n this.error = error;\n if(accessErrorHandler(error, this.msgService)){\n this.opened = false;\n }else{\n this.inlineAlert.showInlineError(error);\n }\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/user/new-user-modal.component.ts","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport 'rxjs/add/operator/toPromise';\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { UserService } from './user.service';\nimport { User } from './user';\nimport { NewUserModalComponent } from './new-user-modal.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { DeletionDialogService } from '../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../shared/deletion-dialog/deletion-message';\nimport { DeletionTargets, AlertType, httpStatusCode } from '../shared/shared.const'\nimport { errorHandler, accessErrorHandler } from '../shared/shared.utils';\nimport { MessageService } from '../global-message/message.service';\n\n@Component({\n selector: 'harbor-user',\n templateUrl: 'user.component.html',\n styleUrls: ['user.component.css'],\n\n providers: [UserService]\n})\n\nexport class UserComponent implements OnInit, OnDestroy {\n users: User[] = [];\n originalUsers: Promise;\n private onGoing: boolean = false;\n private adminMenuText: string = \"\";\n private adminColumn: string = \"\";\n private deletionSubscription: Subscription;\n\n @ViewChild(NewUserModalComponent)\n private newUserDialog: NewUserModalComponent;\n\n constructor(\n private userService: UserService,\n private translate: TranslateService,\n private deletionDialogService: DeletionDialogService,\n private msgService: MessageService) {\n this.deletionSubscription = deletionDialogService.deletionConfirm$.subscribe(confirmed => {\n if (confirmed && confirmed.targetId === DeletionTargets.USER) {\n this.delUser(confirmed.data);\n }\n });\n }\n\n private isMatchFilterTerm(terms: string, testedItem: string): boolean {\n return testedItem.indexOf(terms) != -1;\n }\n\n isSystemAdmin(u: User): string {\n if (!u) {\n return \"{{MISS}}\";\n }\n let key: string = u.has_admin_role ? \"USER.IS_ADMIN\" : \"USER.IS_NOT_ADMIN\";\n this.translate.get(key).subscribe((res: string) => this.adminColumn = res);\n return this.adminColumn;\n }\n\n adminActions(u: User): string {\n if (!u) {\n return \"{{MISS}}\";\n }\n let key: string = u.has_admin_role ? \"USER.DISABLE_ADMIN_ACTION\" : \"USER.ENABLE_ADMIN_ACTION\";\n this.translate.get(key).subscribe((res: string) => this.adminMenuText = res);\n return this.adminMenuText;\n }\n\n public get inProgress(): boolean {\n return this.onGoing;\n }\n\n ngOnInit(): void {\n this.refreshUser();\n }\n\n ngOnDestroy(): void {\n if(this.deletionSubscription){\n this.deletionSubscription.unsubscribe();\n }\n }\n\n //Filter items by keywords\n doFilter(terms: string): void {\n this.originalUsers.then(users => {\n if (terms.trim() === \"\") {\n this.users = users;\n } else {\n this.users = users.filter(user => {\n return this.isMatchFilterTerm(terms, user.username);\n })\n }\n });\n }\n\n //Disable the admin role for the specified user\n changeAdminRole(user: User): void {\n //Double confirm user is existing\n if (!user || user.user_id === 0) {\n return;\n }\n\n //Value copy\n let updatedUser: User = {\n user_id: user.user_id\n };\n\n if (user.has_admin_role === 0) {\n updatedUser.has_admin_role = 1;//Set as admin\n } else {\n updatedUser.has_admin_role = 0;//Set as none admin\n }\n\n this.userService.updateUserRole(updatedUser)\n .then(() => {\n //Change view now\n user.has_admin_role = updatedUser.has_admin_role;\n })\n .catch(error => {\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(500, errorHandler(error), AlertType.DANGER);\n }\n })\n }\n\n //Delete the specified user\n deleteUser(user: User): void {\n if (!user) {\n return;\n }\n\n //Confirm deletion\n let msg: DeletionMessage = new DeletionMessage(\n \"USER.DELETION_TITLE\",\n \"USER.DELETION_SUMMARY\",\n user.username,\n user,\n DeletionTargets.USER\n );\n this.deletionDialogService.openComfirmDialog(msg);\n }\n\n private delUser(user: User): void {\n this.userService.deleteUser(user.user_id)\n .then(() => {\n //Remove it from current user list\n //and then view refreshed\n this.originalUsers.then(users => {\n this.users = users.filter(u => u.user_id != user.user_id);\n this.msgService.announceMessage(500, \"USER.DELETE_SUCCESS\", AlertType.SUCCESS);\n });\n })\n .catch(error => {\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(500, errorHandler(error), AlertType.DANGER);\n }\n });\n }\n\n //Refresh the user list\n refreshUser(): void {\n //Start to get\n this.onGoing = true;\n\n this.originalUsers = this.userService.getUsers()\n .then(users => {\n this.onGoing = false;\n\n this.users = users;\n return users;\n })\n .catch(error => {\n this.onGoing = false;\n if (!accessErrorHandler(error, this.msgService)) {\n this.msgService.announceMessage(500, errorHandler(error), AlertType.DANGER);\n }\n });\n }\n\n //Add new user\n addNewUser(): void {\n this.newUserDialog.open();\n }\n\n //Add user to the user list\n addUserToList(user: User): void {\n //Currently we can only add it by reloading all\n this.refreshUser();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/user/user.component.ts","module.exports = \".reset-modal-title-override {\\n font-size: 14px !important;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/password/password.component.css\n// module id = 457\n// module chunks = 0","module.exports = \".statistic-wrapper {\\n padding: 12px;\\n margin: 12px;\\n text-align: center;\\n vertical-align: middle;\\n height: 72px;\\n min-width: 108px;\\n max-width: 216px;\\n display: inline-block;\\n}\\n\\n.statistic-data {\\n font-size: 48px;\\n font-weight: bolder;\\n font-family: \\\"Metropolis\\\";\\n line-height: 48px;\\n}\\n\\n.statistic-text {\\n font-size: 24px;\\n font-weight: 400;\\n line-height: 24px;\\n text-transform: uppercase;\\n font-family: \\\"Metropolis\\\";\\n}\\n\\n.statistic-column-title {\\n position: relative;\\n top: 40%;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/statictics/statistics.component.css\n// module id = 458\n// module chunks = 0","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 477;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src async\n// module id = 477\n// module chunks = 0","import './polyfills.ts';\n\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { enableProdMode } from '@angular/core';\nimport { environment } from './environments/environment';\nimport { AppModule } from './app/';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import { Injectable } from '@angular/core'\nimport { Subject } from 'rxjs/Subject';\n\nimport { DeletionMessage } from './deletion-message';\n\n@Injectable()\nexport class DeletionDialogService {\n private deletionAnnoucedSource = new Subject();\n private deletionConfirmSource = new Subject();\n\n deletionAnnouced$ = this.deletionAnnoucedSource.asObservable();\n deletionConfirm$ = this.deletionConfirmSource.asObservable();\n\n confirmDeletion(message: any): void {\n this.deletionConfirmSource.next(message);\n }\n\n openComfirmDialog(message: DeletionMessage): void {\n this.deletionAnnoucedSource.next(message);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/deletion-dialog/deletion-dialog.service.ts","import { NgModule } from '@angular/core';\nimport { CoreModule } from '../core/core.module';\nimport { CookieService } from 'angular2-cookie/core';\n\nimport { SessionService } from '../shared/session.service';\nimport { MessageComponent } from '../global-message/message.component';\n\nimport { MessageService } from '../global-message/message.service';\nimport { MaxLengthExtValidatorDirective } from './max-length-ext.directive';\nimport { FilterComponent } from './filter/filter.component';\nimport { HarborActionOverflow } from './harbor-action-overflow/harbor-action-overflow';\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { RouterModule } from '@angular/router';\n\nimport { DeletionDialogComponent } from './deletion-dialog/deletion-dialog.component';\nimport { DeletionDialogService } from './deletion-dialog/deletion-dialog.service';\nimport { BaseRoutingResolver } from './route/base-routing-resolver.service';\nimport { SystemAdminGuard } from './route/system-admin-activate.service';\nimport { NewUserFormComponent } from './new-user-form/new-user-form.component';\nimport { InlineAlertComponent } from './inline-alert/inline-alert.component';\n\nimport { ListPolicyComponent } from './list-policy/list-policy.component';\nimport { CreateEditPolicyComponent } from './create-edit-policy/create-edit-policy.component';\n\nimport { PortValidatorDirective } from './port.directive';\n\nimport { PageNotFoundComponent } from './not-found/not-found.component';\nimport { AboutDialogComponent } from './about-dialog/about-dialog.component';\n\nimport { AuthCheckGuard } from './route/auth-user-activate.service';\n\nimport { StatisticsComponent } from './statictics/statistics.component';\nimport { StatisticsPanelComponent } from './statictics/statistics-panel.component';\nimport { SignInGuard } from './route/sign-in-guard-activate.service';\n\n@NgModule({\n imports: [\n CoreModule,\n TranslateModule,\n RouterModule\n ],\n declarations: [\n MessageComponent,\n MaxLengthExtValidatorDirective,\n FilterComponent,\n HarborActionOverflow,\n DeletionDialogComponent,\n NewUserFormComponent,\n InlineAlertComponent,\n ListPolicyComponent,\n CreateEditPolicyComponent,\n PortValidatorDirective,\n PageNotFoundComponent,\n AboutDialogComponent,\n StatisticsComponent,\n StatisticsPanelComponent\n ],\n exports: [\n CoreModule,\n MessageComponent,\n MaxLengthExtValidatorDirective,\n FilterComponent,\n HarborActionOverflow,\n TranslateModule,\n DeletionDialogComponent,\n NewUserFormComponent,\n InlineAlertComponent,\n ListPolicyComponent,\n CreateEditPolicyComponent,\n PortValidatorDirective,\n PageNotFoundComponent,\n AboutDialogComponent,\n StatisticsComponent,\n StatisticsPanelComponent\n ],\n providers: [\n SessionService,\n MessageService,\n CookieService,\n DeletionDialogService,\n BaseRoutingResolver,\n SystemAdminGuard,\n AuthCheckGuard,\n SignInGuard]\n})\nexport class SharedModule {\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/shared.module.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpModule } from '@angular/http';\nimport { ClarityModule } from 'clarity-angular';\nimport { AppComponent } from './app.component';\n\nimport { BaseModule } from './base/base.module';\nimport { HarborRoutingModule } from './harbor-routing.module';\nimport { SharedModule } from './shared/shared.module';\nimport { AccountModule } from './account/account.module';\nimport { ConfigurationModule } from './config/config.module';\n\nimport { TranslateModule, TranslateLoader, MissingTranslationHandler } from \"@ngx-translate/core\";\nimport { MyMissingTranslationHandler } from './i18n/missing-trans.handler';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { Http } from '@angular/http';\n\nimport { AppConfigService } from './app-config.service';\n\nexport function HttpLoaderFactory(http: Http) {\n return new TranslateHttpLoader(http, 'i18n/lang/', '-lang.json');\n}\n\nexport function initConfig(configService: AppConfigService) {\n return () => configService.load();\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n ],\n imports: [\n SharedModule,\n BaseModule,\n AccountModule,\n HarborRoutingModule,\n ConfigurationModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: (HttpLoaderFactory),\n deps: [Http]\n },\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: MyMissingTranslationHandler\n }\n })\n ],\n providers: [\n AppConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: initConfig,\n deps: [AppConfigService],\n multi: true\n }],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../shared/shared.module';\nimport { RouterModule } from '@angular/router';\n\nimport { ProjectModule } from '../project/project.module';\nimport { UserModule } from '../user/user.module';\nimport { AccountModule } from '../account/account.module';\nimport { RepositoryModule } from '../repository/repository.module';\n\nimport { NavigatorComponent } from './navigator/navigator.component';\nimport { GlobalSearchComponent } from './global-search/global-search.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { HarborShellComponent } from './harbor-shell/harbor-shell.component';\nimport { SearchResultComponent } from './global-search/search-result.component';\nimport { StartPageComponent } from './start-page/start.component';\n\nimport { SearchTriggerService } from './global-search/search-trigger.service';\n\n@NgModule({\n imports: [\n SharedModule,\n ProjectModule,\n UserModule,\n AccountModule,\n RouterModule,\n RepositoryModule\n ],\n declarations: [\n NavigatorComponent,\n GlobalSearchComponent,\n FooterComponent,\n HarborShellComponent,\n SearchResultComponent,\n StartPageComponent\n ],\n exports: [ HarborShellComponent ],\n providers: [SearchTriggerService]\n})\nexport class BaseModule {\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/base.module.ts","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'footer',\n templateUrl: \"footer.component.html\"\n})\nexport class FooterComponent {\n // constructor(private router: Router){}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/footer/footer.component.ts","import { Component, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs/Subject';\nimport { Observable } from 'rxjs/Observable';\nimport { Subscription } from 'rxjs/Subscription';\n\nimport { SearchTriggerService } from './search-trigger.service';\nimport { harborRootRoute } from '../../shared/shared.const';\n\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\n\nconst deBounceTime = 500; //ms\n\n@Component({\n selector: 'global-search',\n templateUrl: \"global-search.component.html\"\n})\nexport class GlobalSearchComponent implements OnInit, OnDestroy {\n //Keep search term as Subject\n private searchTerms = new Subject();\n\n //Keep subscription for future use\n private searchSub: Subscription;\n private stateSub: Subscription;\n\n //To indicate if the result panel is opened\n private isResPanelOpened: boolean = false;\n\n constructor(\n private searchTrigger: SearchTriggerService,\n private router: Router) { }\n\n //Implement ngOnIni\n ngOnInit(): void {\n this.searchSub = this.searchTerms\n .debounceTime(deBounceTime)\n .distinctUntilChanged()\n .subscribe(term => {\n this.searchTrigger.triggerSearch(term);\n });\n }\n\n ngOnDestroy(): void {\n if (this.searchSub) {\n this.searchSub.unsubscribe();\n }\n }\n\n //Handle the term inputting event\n search(term: string): void {\n //Send event even term is empty\n\n this.searchTerms.next(term.trim());\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/global-search/global-search.component.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { SearchResults } from './search-results';\n\nconst searchEndpoint = \"/api/search\";\n/**\n * Declare service to handle the global search\n * \n * \n * @export\n * @class GlobalSearchService\n */\n@Injectable()\nexport class GlobalSearchService {\n private headers = new Headers({\n \"Content-Type\": 'application/json'\n });\n private options = new RequestOptions({\n headers: this.headers\n });\n\n constructor(private http: Http) { }\n\n /**\n * Search related artifacts with the provided keyword\n * \n * @param {string} keyword\n * @returns {Promise}\n * \n * @memberOf GlobalSearchService\n */\n doSearch(term: string): Promise {\n let searchUrl = searchEndpoint + \"?q=\" + term;\n\n return this.http.get(searchUrl, this.options).toPromise()\n .then(response => response.json() as SearchResults)\n .catch(error => Promise.reject(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/global-search/global-search.service.ts","import { Project } from '../../project/project';\nimport { Repository } from '../../repository/repository';\n\nexport class SearchResults {\n constructor(){\n this.project = [];\n this.repository = [];\n }\n\n project: Project[];\n repository: Repository[];\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/global-search/search-results.ts","import { NgModule } from '@angular/core';\nimport { CoreModule } from '../core/core.module';\nimport { SharedModule } from '../shared/shared.module';\n\nimport { ConfigurationComponent } from './config.component';\nimport { ConfigurationService } from './config.service';\nimport { ConfigurationAuthComponent } from './auth/config-auth.component';\nimport { ConfigurationEmailComponent } from './email/config-email.component';\n\n@NgModule({\n imports: [\n CoreModule,\n SharedModule\n ],\n declarations: [\n ConfigurationComponent,\n ConfigurationAuthComponent,\n ConfigurationEmailComponent],\n exports: [ConfigurationComponent],\n providers: [ConfigurationService]\n})\nexport class ConfigurationModule { }\n\n\n// WEBPACK FOOTER //\n// ./src/app/config/config.module.ts","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { Message } from './message';\nimport { MessageService } from './message.service';\n\nimport { AlertType, dismissInterval, httpStatusCode } from '../shared/shared.const';\n\n@Component({\n selector: 'global-message',\n templateUrl: 'message.component.html'\n})\nexport class MessageComponent implements OnInit {\n\n @Input() isAppLevel: boolean;\n globalMessage: Message = new Message();\n globalMessageOpened: boolean;\n messageText: string = \"\";\n\n constructor(\n private messageService: MessageService,\n private router: Router,\n private translate: TranslateService) { }\n\n ngOnInit(): void {\n //Only subscribe application level message\n if (this.isAppLevel) {\n this.messageService.appLevelAnnounced$.subscribe(\n message => {\n this.globalMessageOpened = true;\n this.globalMessage = message;\n this.messageText = message.message;\n\n this.translateMessage(message);\n }\n )\n } else {\n //Only subscribe general messages\n this.messageService.messageAnnounced$.subscribe(\n message => {\n this.globalMessageOpened = true;\n this.globalMessage = message;\n this.messageText = message.message;\n\n this.translateMessage(message);\n\n // Make the message alert bar dismiss after several intervals.\n //Only for this case\n setInterval(() => this.onClose(), dismissInterval);\n }\n );\n }\n }\n\n //Translate or refactor the message shown to user\n translateMessage(msg: Message): void {\n if (!msg) {\n return;\n }\n\n let key = \"\";\n if (!msg.message) {\n key = \"UNKNOWN_ERROR\";\n } else {\n key = typeof msg.message === \"string\" ? msg.message.trim() : msg.message;\n if (key === \"\") {\n key = \"UNKNOWN_ERROR\";\n }\n }\n\n //Override key for HTTP 401 and 403\n if (this.globalMessage.statusCode === httpStatusCode.Unauthorized) {\n key = \"UNAUTHORIZED_ERROR\";\n }\n\n if (this.globalMessage.statusCode === httpStatusCode.Forbidden) {\n key = \"FORBIDDEN_ERROR\";\n }\n\n this.translate.get(key).subscribe((res: string) => this.messageText = res);\n }\n\n public get needAuth(): boolean {\n return this.globalMessage ?\n (this.globalMessage.statusCode === httpStatusCode.Unauthorized) ||\n (this.globalMessage.statusCode === httpStatusCode.Forbidden) : false;\n }\n\n //Show message text\n public get message(): string {\n return this.messageText;\n }\n\n signIn(): void {\n this.router.navigate(['sign-in']);\n }\n\n onClose() {\n this.globalMessageOpened = false;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/global-message/message.component.ts","import { NgModule } from '@angular/core';\n\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { SignInComponent } from './account/sign-in/sign-in.component';\nimport { HarborShellComponent } from './base/harbor-shell/harbor-shell.component';\nimport { ProjectComponent } from './project/project.component';\nimport { UserComponent } from './user/user.component';\nimport { ReplicationManagementComponent } from './replication/replication-management/replication-management.component';\n\nimport { TotalReplicationComponent } from './replication/total-replication/total-replication.component';\nimport { DestinationComponent } from './replication/destination/destination.component';\n\nimport { ProjectDetailComponent } from './project/project-detail/project-detail.component';\n\nimport { RepositoryComponent } from './repository/repository.component';\nimport { TagRepositoryComponent } from './repository/tag-repository/tag-repository.component';\nimport { ReplicationComponent } from './replication/replication.component';\nimport { MemberComponent } from './project/member/member.component';\nimport { AuditLogComponent } from './log/audit-log.component';\n\nimport { BaseRoutingResolver } from './shared/route/base-routing-resolver.service';\nimport { ProjectRoutingResolver } from './project/project-routing-resolver.service';\nimport { SystemAdminGuard } from './shared/route/system-admin-activate.service';\nimport { SignUpComponent } from './account/sign-up/sign-up.component';\nimport { ResetPasswordComponent } from './account/password/reset-password.component';\nimport { RecentLogComponent } from './log/recent-log.component';\nimport { ConfigurationComponent } from './config/config.component';\nimport { PageNotFoundComponent } from './shared/not-found/not-found.component'\nimport { StartPageComponent } from './base/start-page/start.component';\n\nimport { AuthCheckGuard } from './shared/route/auth-user-activate.service';\nimport { SignInGuard } from './shared/route/sign-in-guard-activate.service';\n\nconst harborRoutes: Routes = [\n { path: '', redirectTo: '/harbor/dashboard', pathMatch: 'full' },\n { path: 'harbor', redirectTo: '/harbor/dashboard', pathMatch: 'full' },\n { path: 'sign-in', component: SignInComponent, canActivate: [SignInGuard] },\n { path: 'sign-up', component: SignUpComponent },\n { path: 'password-reset', component: ResetPasswordComponent },\n {\n path: 'harbor',\n component: HarborShellComponent,\n children: [\n { path: 'sign-in', component: SignInComponent, canActivate: [SignInGuard] },\n { path: 'sign-up', component: SignUpComponent },\n { path: 'dashboard', component: StartPageComponent, canActivate: [AuthCheckGuard]},\n {\n path: 'projects',\n component: ProjectComponent,\n canActivate: [AuthCheckGuard]\n },\n {\n path: 'logs',\n component: RecentLogComponent,\n canActivate: [AuthCheckGuard]\n },\n {\n path: 'users',\n component: UserComponent,\n canActivate: [AuthCheckGuard, SystemAdminGuard]\n },\n {\n path: 'replications',\n component: ReplicationManagementComponent,\n canActivate: [AuthCheckGuard, SystemAdminGuard],\n canActivateChild: [AuthCheckGuard, SystemAdminGuard],\n children: [\n {\n path: 'rules',\n component: TotalReplicationComponent\n },\n {\n path: 'endpoints',\n component: DestinationComponent\n }\n ]\n },\n {\n path: 'tags/:id/:repo',\n component: TagRepositoryComponent,\n canActivate: [AuthCheckGuard]\n },\n {\n path: 'projects/:id',\n component: ProjectDetailComponent,\n canActivate: [AuthCheckGuard],\n canActivateChild: [AuthCheckGuard],\n resolve: {\n projectResolver: ProjectRoutingResolver\n },\n children: [\n {\n path: 'repository',\n component: RepositoryComponent\n },\n {\n path: 'replication',\n component: ReplicationComponent\n },\n {\n path: 'member',\n component: MemberComponent\n },\n {\n path: 'log',\n component: AuditLogComponent\n }\n ]\n },\n {\n path: 'configs',\n component: ConfigurationComponent,\n canActivate: [AuthCheckGuard, SystemAdminGuard],\n }\n ]\n },\n { path: \"**\", component: PageNotFoundComponent }\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(harborRoutes)\n ],\n exports: [RouterModule]\n})\nexport class HarborRoutingModule {\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/harbor-routing.module.ts","import { MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';\n\nexport class MyMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n const missingText = \"{Miss Harbor Text}\";\n return params.key || missingText;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/i18n/missing-trans.handler.ts","export * from './app.component';\nexport * from './app.module';\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/index.ts","/*\n {\n \"log_id\": 3,\n \"user_id\": 0,\n \"project_id\": 0,\n \"repo_name\": \"library/mysql\",\n \"repo_tag\": \"5.6\",\n \"guid\": \"\",\n \"operation\": \"push\",\n \"op_time\": \"2017-02-14T09:22:58Z\",\n \"username\": \"admin\",\n \"keywords\": \"\",\n \"BeginTime\": \"0001-01-01T00:00:00Z\",\n \"begin_timestamp\": 0,\n \"EndTime\": \"0001-01-01T00:00:00Z\",\n \"end_timestamp\": 0\n }\n*/\nexport class AuditLog {\n log_id: number;\n project_id: number;\n username: string;\n repo_name: string;\n repo_tag: string;\n operation: string;\n op_time: Date;\n begin_timestamp: number = 0;\n end_timestamp: number = 0;\n keywords: string;\n page: number;\n page_size: number;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/log/audit-log.ts","import { NgModule } from '@angular/core';\nimport { AuditLogComponent } from './audit-log.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { AuditLogService } from './audit-log.service';\nimport { RecentLogComponent } from './recent-log.component';\n\n@NgModule({\n imports: [SharedModule],\n declarations: [\n AuditLogComponent,\n RecentLogComponent],\n providers: [AuditLogService],\n exports: [\n AuditLogComponent,\n RecentLogComponent]\n})\nexport class LogModule { }\n\n\n// WEBPACK FOOTER //\n// ./src/app/log/log.module.ts","/*\n{\n \"user_id\": 1,\n \"username\": \"admin\",\n \"email\": \"\",\n \"password\": \"\",\n \"realname\": \"\",\n \"comment\": \"\",\n \"deleted\": 0,\n \"role_name\": \"projectAdmin\",\n \"role_id\": 1,\n \"has_admin_role\": 0,\n \"reset_uuid\": \"\",\n \"creation_time\": \"0001-01-01T00:00:00Z\",\n \"update_time\": \"0001-01-01T00:00:00Z\"\n}\n*/\n\nexport class Member {\n user_id: number;\n username: string;\n role_name: string;\n has_admin_role: number;\n role_id: number;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/member/member.ts","import { NgModule } from '@angular/core';\n\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '../shared/shared.module';\nimport { RepositoryModule } from '../repository/repository.module';\nimport { ReplicationModule } from '../replication/replication.module';\nimport { LogModule } from '../log/log.module';\n\nimport { ProjectComponent } from './project.component';\nimport { CreateProjectComponent } from './create-project/create-project.component';\nimport { ListProjectComponent } from './list-project/list-project.component';\n\nimport { ProjectDetailComponent } from './project-detail/project-detail.component';\nimport { MemberComponent } from './member/member.component';\nimport { AddMemberComponent } from './member/add-member/add-member.component';\n\nimport { ProjectService } from './project.service';\nimport { MemberService } from './member/member.service';\nimport { ProjectRoutingResolver } from './project-routing-resolver.service';\n\n@NgModule({\n imports: [\n SharedModule,\n RepositoryModule,\n ReplicationModule,\n LogModule,\n RouterModule\n ],\n declarations: [\n ProjectComponent,\n CreateProjectComponent,\n ListProjectComponent,\n ProjectDetailComponent,\n MemberComponent,\n AddMemberComponent\n ],\n exports: [ProjectComponent, ListProjectComponent],\n providers: [ProjectRoutingResolver, ProjectService, MemberService]\n})\nexport class ProjectModule {\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project.module.ts","/*\n [\n {\n \"project_id\": 1,\n \"owner_id\": 1,\n \"name\": \"library\",\n \"creation_time\": \"2017-02-10T07:57:56Z\",\n \"creation_time_str\": \"\",\n \"deleted\": 0,\n \"owner_name\": \"\",\n \"public\": 1,\n \"Togglable\": true,\n \"update_time\": \"2017-02-10T07:57:56Z\",\n \"current_user_role_id\": 1,\n \"repo_count\": 0\n }\n ]\n*/\nexport class Project { \n project_id: number;\n owner_id: number;\n name: string;\n creation_time: Date;\n creation_time_str: string;\n deleted: number;\n owner_name: string;\n public: number;\n Togglable: boolean;\n update_time: Date;\n current_user_role_id: number;\n repo_count: number;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/project/project.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { Job } from '../job';\nimport { State } from 'clarity-angular';\n\n@Component({\n selector: 'list-job',\n templateUrl: 'list-job.component.html'\n})\nexport class ListJobComponent {\n @Input() jobs: Job[];\n @Input() totalRecordCount: number;\n @Input() totalPage: number;\n @Output() paginate = new EventEmitter();\n\n pageOffset: number = 1;\n\n refresh(state: State) {\n if(this.jobs) {\n this.paginate.emit(state);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/list-job/list-job.component.ts","/*\n {\n \"id\": 1,\n \"project_id\": 1,\n \"project_name\": \"library\",\n \"target_id\": 1,\n \"target_name\": \"target_01\",\n \"name\": \"sync_01\",\n \"enabled\": 0,\n \"description\": \"sync_01 desc.\",\n \"cron_str\": \"\",\n \"start_time\": \"0001-01-01T00:00:00Z\",\n \"creation_time\": \"2017-02-24T06:41:52Z\",\n \"update_time\": \"2017-02-24T06:41:52Z\",\n \"error_job_count\": 0,\n \"deleted\": 0\n }\n*/\n\nexport class Policy {\n id: number;\n project_id: number;\n project_name: string;\n target_id: number;\n target_name: string;\n name: string;\n enabled: number;\n description: string;\n cron_str: string;\n start_time: Date;\n creation_time: Date;\n update_time: Date;\n error_job_count: number;\n deleted: number;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/policy.ts","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ReplicationManagementComponent } from './replication-management/replication-management.component';\n\nimport { ReplicationComponent } from './replication.component';\nimport { ListJobComponent } from './list-job/list-job.component';\nimport { TotalReplicationComponent } from './total-replication/total-replication.component';\nimport { DestinationComponent } from './destination/destination.component';\nimport { CreateEditDestinationComponent } from './create-edit-destination/create-edit-destination.component';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ReplicationService } from './replication.service';\n\n@NgModule({\n imports: [ \n SharedModule,\n RouterModule\n ],\n declarations: [ \n ReplicationComponent,\n ReplicationManagementComponent,\n ListJobComponent,\n TotalReplicationComponent,\n DestinationComponent,\n CreateEditDestinationComponent\n ],\n exports: [ ReplicationComponent ],\n providers: [ ReplicationService ]\n})\nexport class ReplicationModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/replication.module.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { Repository } from '../repository';\nimport { State } from 'clarity-angular';\n\nimport { SearchTriggerService } from '../../base/global-search/search-trigger.service';\nimport { SessionService } from '../../shared/session.service';\nimport { signInRoute, ListMode } from '../../shared/shared.const';\n\n@Component({\n selector: 'list-repository',\n templateUrl: 'list-repository.component.html'\n})\nexport class ListRepositoryComponent {\n\n @Input() projectId: number;\n @Input() repositories: Repository[];\n @Output() delete = new EventEmitter();\n\n @Input() totalPage: number;\n @Input() totalRecordCount: number;\n @Output() paginate = new EventEmitter();\n\n @Input() mode: string = ListMode.FULL;\n\n pageOffset: number = 1;\n\n constructor(\n private router: Router,\n private searchTrigger: SearchTriggerService,\n private session: SessionService) { }\n\n deleteRepo(repoName: string) {\n this.delete.emit(repoName);\n } \n\n refresh(state: State) {\n if(this.repositories) {\n this.paginate.emit(state);\n }\n }\n\n public get listFullMode(): boolean {\n return this.mode === ListMode.FULL;\n }\n\n public gotoLink(projectId: number, repoName: string): void {\n this.searchTrigger.closeSearch(false);\n\n let linkUrl = ['harbor', 'tags', projectId, repoName];\n if (!this.session.getCurrentUser()) {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"redirect_url\": linkUrl.join(\"/\") }\n };\n\n this.router.navigate([signInRoute], navigatorExtra);\n } else {\n this.router.navigate(linkUrl);\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/list-repository/list-repository.component.ts","/*\n {\n \"id\": \"2\",\n \"name\": \"library/mysql\",\n \"owner_id\": 1,\n \"project_id\": 1,\n \"description\": \"\",\n \"pull_count\": 0,\n \"star_count\": 0,\n \"tags_count\": 1,\n \"creation_time\": \"2017-02-14T09:22:58Z\",\n \"update_time\": \"0001-01-01T00:00:00Z\"\n }\n*/\n\nexport class Repository {\n id: number;\n name: string;\n owner_id: number;\n project_id: number;\n description: string;\n pull_count: number;\n start_count: number;\n tags_count: number;\n creation_time: Date;\n update_time: Date;\n\n constructor(name: string, tags_count: number) {\n this.name = name;\n this.tags_count = tags_count;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/repository.ts","export class TagView {\n tag: string;\n pullCommand: string;\n verified: boolean;\n author: string;\n created: Date;\n dockerVersion: string;\n architecture: string;\n os: string;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/tag-view.ts","import { Component, OnInit } from '@angular/core';\n\nimport { errorHandler } from '../../shared/shared.utils';\nimport { AlertType, ListMode } from '../../shared/shared.const';\nimport { MessageService } from '../../global-message/message.service';\nimport { TopRepoService } from './top-repository.service';\nimport { Repository } from '../repository';\n\n@Component({\n selector: 'top-repo',\n templateUrl: \"top-repo.component.html\",\n\n providers: [TopRepoService]\n})\nexport class TopRepoComponent implements OnInit{\n private topRepos: Repository[] = [];\n\n constructor(\n private topRepoService: TopRepoService,\n private msgService: MessageService\n ) { }\n\n public get listMode(): string {\n return ListMode.READONLY;\n }\n\n //Implement ngOnIni\n ngOnInit(): void {\n this.getTopRepos();\n }\n\n //Get top popular repositories\n getTopRepos() {\n this.topRepoService.getTopRepos()\n .then(repos => repos.forEach(item => {\n let repo: Repository = new Repository(item.name, item.count);\n repo.pull_count = 0;\n this.topRepos.push(repo);\n }))\n .catch(error => {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.WARNING);\n })\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/top-repo/top-repo.component.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { TopRepo } from './top-repository';\n\nexport const topRepoEndpoint = \"/api/repositories/top\";\n/**\n * Declare service to handle the top repositories\n * \n * \n * @export\n * @class GlobalSearchService\n */\n@Injectable()\nexport class TopRepoService {\n private headers = new Headers({\n \"Content-Type\": 'application/json'\n });\n private options = new RequestOptions({\n headers: this.headers\n });\n\n constructor(private http: Http) { }\n\n /**\n * Get top popular repositories\n * \n * @param {string} keyword\n * @returns {Promise}\n * \n * @memberOf GlobalSearchService\n */\n getTopRepos(): Promise {\n return this.http.get(topRepoEndpoint, this.options).toPromise()\n .then(response => response.json() as TopRepo[])\n .catch(error => Promise.reject(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/repository/top-repo/top-repository.service.ts","export class CreateEditPolicy {\n policyId: number;\n name: string;\n description: string;\n enable: boolean;\n targetId: number;\n targetName: string;\n endpointUrl: string;\n username: string;\n password: string;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/create-edit-policy/create-edit-policy.ts","import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs/Subscription';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { DeletionDialogService } from './deletion-dialog.service';\nimport { DeletionMessage } from './deletion-message';\n\n@Component({\n selector: 'deletion-dialog',\n templateUrl: 'deletion-dialog.component.html',\n styleUrls: ['deletion-dialog.component.css']\n})\n\nexport class DeletionDialogComponent implements OnDestroy{\n opened: boolean = false;\n dialogTitle: string = \"\";\n dialogContent: string = \"\";\n message: DeletionMessage;\n private annouceSubscription: Subscription;\n\n constructor(\n private delService: DeletionDialogService,\n private translate: TranslateService) {\n this.annouceSubscription = delService.deletionAnnouced$.subscribe(msg => {\n this.dialogTitle = msg.title;\n this.dialogContent = msg.message;\n this.message = msg;\n\n this.translate.get(this.dialogTitle).subscribe((res: string) => this.dialogTitle = res);\n this.translate.get(this.dialogContent, { 'param': msg.param }).subscribe((res: string) => this.dialogContent = res);\n //Open dialog\n this.open();\n });\n }\n\n ngOnDestroy(): void {\n if(this.annouceSubscription){\n this.annouceSubscription.unsubscribe();\n }\n }\n\n open(): void {\n this.opened = true;\n }\n\n close(): void {\n this.opened = false;\n }\n\n confirm(): void {\n this.delService.confirmDeletion(this.message);\n this.close();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/deletion-dialog/deletion-dialog.component.ts","import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { Observable } from 'rxjs/Observable';\n\nimport 'rxjs/add/operator/debounceTime';\nimport 'rxjs/add/operator/distinctUntilChanged';\n\n\n@Component({\n selector: 'grid-filter',\n templateUrl: 'filter.component.html',\n styleUrls: ['filter.component.css']\n})\n\nexport class FilterComponent implements OnInit{\n private placeHolder: string = \"\";\n private currentValue: string = \"\";\n private leadingSpacesAdded: boolean = false;\n private filerAction: Function;\n\n private filterTerms = new Subject();\n\n @Output(\"filter\") private filterEvt = new EventEmitter();\n\n @Input(\"filterPlaceholder\")\n public set flPlaceholder(placeHolder: string) {\n this.placeHolder = placeHolder;\n }\n\n ngOnInit(): void {\n this.filterTerms\n .debounceTime(300)\n .distinctUntilChanged()\n .subscribe(terms => {\n this.filterEvt.emit(terms);\n });\n }\n\n valueChange(): void {\n //Send out filter terms\n this.filterTerms.next(this.currentValue.trim());\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/filter/filter.component.ts","import {Component} from \"@angular/core\";\n\n@Component({\n selector: \"harbor-action-overflow\",\n templateUrl: \"harbor-action-overflow.html\"\n})\n\nexport class HarborActionOverflow {\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/harbor-action-overflow/harbor-action-overflow.ts","import { Component, Input, Output, EventEmitter, ViewChild, OnDestroy } from '@angular/core';\n\nimport { ReplicationService } from '../../replication/replication.service';\nimport { Policy } from '../../replication/policy';\n\nimport { DeletionDialogService } from '../../shared/deletion-dialog/deletion-dialog.service';\nimport { DeletionMessage } from '../../shared/deletion-dialog/deletion-message';\n\nimport { DeletionTargets } from '../../shared/shared.const';\n\nimport { MessageService } from '../../global-message/message.service';\nimport { AlertType } from '../../shared/shared.const';\n\nimport { Subscription } from 'rxjs/Subscription';\n\n@Component({\n selector: 'list-policy',\n templateUrl: 'list-policy.component.html',\n})\nexport class ListPolicyComponent implements OnDestroy {\n \n @Input() policies: Policy[];\n @Input() projectless: boolean;\n @Input() selectedId: number;\n\n @Output() reload = new EventEmitter();\n @Output() selectOne = new EventEmitter();\n @Output() editOne = new EventEmitter();\n \n subscription: Subscription;\n\n constructor(\n private replicationService: ReplicationService,\n private deletionDialogService: DeletionDialogService,\n private messageService: MessageService) {\n \n this.subscription = this.subscription = this.deletionDialogService\n .deletionConfirm$\n .subscribe(\n message=>{\n if(message && message.targetId === DeletionTargets.POLICY) {\n this.replicationService\n .deletePolicy(message.data)\n .subscribe(\n response=>{\n console.log('Successful delete policy with ID:' + message.data);\n this.reload.emit(true);\n },\n error=>this.messageService.announceMessage(error.status, 'Failed to delete policy with ID:' + message.data, AlertType.DANGER)\n );\n }\n });\n\n }\n\n ngOnDestroy() {\n if(this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n selectPolicy(policy: Policy): void {\n this.selectedId = policy.id;\n console.log('Select policy ID:' + policy.id);\n this.selectOne.emit(policy);\n }\n\n editPolicy(policy: Policy) {\n console.log('Open modal to edit policy.');\n this.editOne.emit(policy.id);\n }\n \n enablePolicy(policy: Policy): void {\n policy.enabled = policy.enabled === 0 ? 1 : 0; \n console.log('Enable policy ID:' + policy.id + ' with activation status ' + policy.enabled);\n this.replicationService.enablePolicy(policy.id, policy.enabled);\n }\n\n deletePolicy(policy: Policy) {\n let deletionMessage: DeletionMessage = new DeletionMessage('REPLICATION.DELETION_TITLE', 'REPLICATION.DELETION_SUMMARY', policy.name, policy.id, DeletionTargets.POLICY);\n this.deletionDialogService.openComfirmDialog(deletionMessage);\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/list-policy/list-policy.component.ts","import { Directive, OnChanges, Input, SimpleChanges } from '@angular/core';\nimport { ValidatorFn, AbstractControl, Validator, NG_VALIDATORS, Validators } from '@angular/forms';\n\nexport const assiiChars = /[\\u4e00-\\u9fa5]/;\n\nexport function maxLengthExtValidator(length: number): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const value: string = control.value\n if (!value || value.trim() === \"\") {\n return null;\n }\n\n const regExp = new RegExp(assiiChars, 'i');\n let count = 0;\n let len = value.length;\n\n for (var i = 0; i < len; i++) {\n if (regExp.test(value[i])) {\n count += 3;\n } else {\n count++;\n }\n }\n return count > length ? { 'maxLengthExt': count } : null;\n }\n}\n\n@Directive({\n selector: '[maxLengthExt]',\n providers: [{ provide: NG_VALIDATORS, useExisting: MaxLengthExtValidatorDirective, multi: true }]\n})\n\nexport class MaxLengthExtValidatorDirective implements Validator, OnChanges {\n @Input() maxLengthExt: number;\n private valFn = Validators.nullValidator;\n\n ngOnChanges(changes: SimpleChanges): void {\n const change = changes['maxLengthExt'];\n if (change) {\n const val: number = change.currentValue;\n this.valFn = maxLengthExtValidator(val);\n } else {\n this.valFn = Validators.nullValidator;\n }\n }\n\n validate(control: AbstractControl): { [key: string]: any } {\n return this.valFn(control);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/max-length-ext.directive.ts","import { Directive } from '@angular/core';\nimport { ValidatorFn, AbstractControl, Validator, NG_VALIDATORS, Validators } from '@angular/forms';\n\nexport const portNumbers = /[\\d]+/;\n\nexport function portValidator(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n const value: string = control.value\n if (!value) {\n return { 'port': 65535 };\n }\n\n const regExp = new RegExp(portNumbers, 'i');\n if(!regExp.test(value)){\n return { 'port': 65535 };\n }else{\n const portV = parseInt(value);\n if(portV <=0 || portV >65535){\n return { 'port': 65535 };\n }\n }\n return null;\n }\n}\n\n@Directive({\n selector: '[port]',\n providers: [{ provide: NG_VALIDATORS, useExisting: PortValidatorDirective, multi: true }]\n})\n\nexport class PortValidatorDirective implements Validator {\n private valFn = portValidator();\n\n validate(control: AbstractControl): { [key: string]: any } {\n return this.valFn(control);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/port.directive.ts","import { Injectable } from '@angular/core';\nimport {\n Router,\n Resolve,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n NavigationExtras\n} from '@angular/router';\n\nimport { SessionService } from '../../shared/session.service';\nimport { SessionUser } from '../../shared/session-user';\nimport { harborRootRoute } from '../shared.const';\n\n@Injectable()\nexport class BaseRoutingResolver implements Resolve {\n\n constructor(private session: SessionService, private router: Router) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\n //To refresh seesion\n return this.session.retrieveUser()\n .then(sessionUser => {\n return sessionUser;\n })\n .catch(error => {\n //Session retrieving failed then redirect to sign-in\n //no matter what status code is.\n //Please pay attention that route 'harborRootRoute' support anonymous user\n if (state.url != harborRootRoute) {\n let navigatorExtra: NavigationExtras = {\n queryParams: { \"redirect_url\": state.url }\n };\n this.router.navigate(['sign-in'], navigatorExtra);\n }\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/route/base-routing-resolver.service.ts","\n/**\n * Declare class for store the sign in data,\n * two prperties:\n * principal: The username used to sign in\n * password: The password used to sign in\n * \n * @export\n * @class SignInCredential\n */\n\nexport class SignInCredential {\n principal: string;\n password: string;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/sign-in-credential.ts","import { Component, Input, OnInit } from '@angular/core';\n\nimport { StatisticsService } from './statistics.service';\nimport { errorHandler } from '../../shared/shared.utils';\nimport { AlertType } from '../../shared/shared.const';\n\nimport { MessageService } from '../../global-message/message.service';\n\nimport { Statistics } from './statistics';\n\nimport { SessionService } from '../session.service';\n\n@Component({\n selector: 'statistics-panel',\n templateUrl: \"statistics-panel.component.html\",\n styleUrls: ['statistics.component.css'],\n providers: [StatisticsService]\n})\n\nexport class StatisticsPanelComponent implements OnInit {\n\n private originalCopy: Statistics = new Statistics();\n\n constructor(\n private statistics: StatisticsService,\n private msgService: MessageService,\n private session: SessionService) { }\n\n ngOnInit(): void {\n if (this.session.getCurrentUser()) {\n this.getStatistics();\n }\n }\n\n getStatistics(): void {\n this.statistics.getStatistics()\n .then(statistics => this.originalCopy = statistics)\n .catch(error => {\n this.msgService.announceMessage(error.status, errorHandler(error), AlertType.WARNING);\n })\n }\n\n public get isValidSession(): boolean {\n let user = this.session.getCurrentUser();\n return user && user.has_admin_role > 0;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/statictics/statistics-panel.component.ts","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'statistics',\n templateUrl: \"statistics.component.html\",\n styleUrls: ['statistics.component.css']\n})\n\nexport class StatisticsComponent {\n @Input() data: any;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/statictics/statistics.component.ts","import { Injectable } from '@angular/core';\nimport { Headers, Http, RequestOptions } from '@angular/http';\nimport 'rxjs/add/operator/toPromise';\n\nimport { Statistics } from './statistics';\n\nexport const statisticsEndpoint = \"/api/statistics\";\n/**\n * Declare service to handle the top repositories\n * \n * \n * @export\n * @class GlobalSearchService\n */\n@Injectable()\nexport class StatisticsService {\n private headers = new Headers({\n \"Content-Type\": 'application/json'\n });\n private options = new RequestOptions({\n headers: this.headers\n });\n\n constructor(private http: Http) { }\n\n getStatistics(): Promise {\n return this.http.get(statisticsEndpoint, this.options).toPromise()\n .then(response => response.json() as Statistics)\n .catch(error => Promise.reject(error));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/statictics/statistics.service.ts","export class Statistics {\n constructor() {}\n \n my_project_count: number;\n my_repo_count: number;\n public_project_count: number;\n public_repo_count: number;\n total_project_count: number;\n total_repo_count: number;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/statictics/statistics.ts","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../shared/shared.module';\nimport { UserComponent } from './user.component';\nimport { NewUserModalComponent } from './new-user-modal.component';\nimport { UserService } from './user.service';\n\n@NgModule({\n imports: [\n SharedModule\n ],\n declarations: [\n UserComponent,\n NewUserModalComponent\n ],\n exports: [\n UserComponent\n ],\n providers:[UserService]\n})\nexport class UserModule {\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/user/user.module.ts","/**\n * For user management\n * \n * @export\n * @class User\n */\nexport class User {\n user_id: number;\n username?: string;\n realname?: string;\n email?: string;\n password?: string;\n comment?: string;\n has_admin_role?: number;\n creation_time?: string;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/user/user.ts","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `angular-cli.json`.\n\nexport const environment = {\n production: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","// This file includes polyfills needed by Angular 2 and is loaded before\n// the app. You can add your own extra polyfills to this file.\nimport 'core-js/es6/symbol';\nimport 'core-js/es6/object';\nimport 'core-js/es6/function';\nimport 'core-js/es6/parse-int';\nimport 'core-js/es6/parse-float';\nimport 'core-js/es6/number';\nimport 'core-js/es6/math';\nimport 'core-js/es6/string';\nimport 'core-js/es6/date';\nimport 'core-js/es6/array';\nimport 'core-js/es6/regexp';\nimport 'core-js/es6/map';\nimport 'core-js/es6/set';\nimport 'core-js/es6/reflect';\n\nimport 'core-js/es7/reflect';\n\n\nimport 'zone.js/dist/zone';\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/polyfills.ts","import { DeletionTargets } from '../../shared/shared.const';\n\nexport class DeletionMessage {\n public constructor(title: string, message: string, param: string, data: any, targetId: DeletionTargets) {\n this.title = title;\n this.message = message;\n this.data = data;\n this.targetId = targetId;\n this.param = param;\n }\n title: string;\n message: string;\n data: any;\n targetId: DeletionTargets = DeletionTargets.EMPTY;\n param: string;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/deletion-dialog/deletion-message.ts","import { Injectable } from '@angular/core';\nimport { Http, URLSearchParams, Response } from '@angular/http';\n\nimport { BaseService } from '../service/base.service';\n\nimport { Policy } from './policy';\nimport { Job } from './job';\nimport { Target } from './target';\n\nimport { Observable } from 'rxjs/Observable';\nimport 'rxjs/add/operator/catch';\nimport 'rxjs/add/operator/map';\nimport 'rxjs/add/observable/throw';\nimport 'rxjs/add/operator/mergeMap';\n\n@Injectable()\nexport class ReplicationService extends BaseService {\n constructor(private http: Http) {\n super();\n }\n\n listPolicies(policyName: string, projectId?: any): Observable {\n if(!projectId) {\n projectId = '';\n }\n console.log('Get policies with project ID:' + projectId + ', policy name:' + policyName);\n return this.http\n .get(`/api/policies/replication?project_id=${projectId}&name=${policyName}`)\n .map(response=>response.json() as Policy[])\n .catch(error=>Observable.throw(error));\n }\n\n getPolicy(policyId: number): Observable {\n console.log('Get policy with ID:' + policyId);\n return this.http\n .get(`/api/policies/replication/${policyId}`)\n .map(response=>response.json() as Policy)\n .catch(error=>Observable.throw(error));\n }\n\n createPolicy(policy: Policy): Observable {\n console.log('Create policy with project ID:' + policy.project_id + ', policy:' + JSON.stringify(policy));\n return this.http\n .post(`/api/policies/replication`, JSON.stringify(policy))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n updatePolicy(policy: Policy): Observable {\n if (policy && policy.id) {\n return this.http\n .put(`/api/policies/replication/${policy.id}`, JSON.stringify(policy))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n } \n return Observable.throw(new Error(\"Policy is nil or has no ID set.\"));\n }\n\n createOrUpdatePolicyWithNewTarget(policy: Policy, target: Target): Observable {\n return this.http\n .post(`/api/targets`, JSON.stringify(target))\n .map(response=>{\n return response.status;\n })\n .catch(error=>Observable.throw(error))\n .flatMap((status)=>{\n if(status === 201) {\n return this.http\n .get(`/api/targets?name=${target.name}`)\n .map(res=>res)\n .catch(error=>Observable.throw(error));\n }\n })\n .flatMap((res: Response) => { \n if(res.status === 200) {\n let lastAddedTarget= res.json()[0];\n if(lastAddedTarget && lastAddedTarget.id) {\n policy.target_id = lastAddedTarget.id;\n if(policy.id) {\n return this.http\n .put(`/api/policies/replication/${policy.id}`, JSON.stringify(policy))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n } else {\n return this.http\n .post(`/api/policies/replication`, JSON.stringify(policy))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n } \n }\n })\n .catch(error=>Observable.throw(error));\n }\n\n enablePolicy(policyId: number, enabled: number): Observable {\n console.log('Enable or disable policy ID:' + policyId + ' with activation status:' + enabled);\n return this.http\n .put(`/api/policies/replication/${policyId}/enablement`, {enabled: enabled})\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n deletePolicy(policyId: number): Observable {\n console.log('Delete policy ID:' + policyId);\n return this.http\n .delete(`/api/policies/replication/${policyId}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n // /api/jobs/replication/?page=1&page_size=20&end_time=&policy_id=1&start_time=&status=&repository=\n listJobs(policyId: number, status: string = '', repoName: string = '', startTime: string = '', endTime: string = '', page: number, pageSize: number): Observable {\n console.log('Get jobs under policy ID:' + policyId);\n return this.http\n .get(`/api/jobs/replication?policy_id=${policyId}&status=${status}&repository=${repoName}&start_time=${startTime}&end_time=${endTime}&page=${page}&page_size=${pageSize}`)\n .map(response=>response)\n .catch(error=>Observable.throw(error));\n }\n\n listTargets(targetName: string): Observable {\n console.log('Get targets.');\n return this.http\n .get(`/api/targets?name=${targetName}`)\n .map(response=>response.json() as Target[])\n .catch(error=>Observable.throw(error));\n }\n\n getTarget(targetId: number): Observable {\n console.log('Get target by ID:' + targetId);\n return this.http\n .get(`/api/targets/${targetId}`)\n .map(response=>response.json() as Target)\n .catch(error=>Observable.throw(error));\n }\n\n createTarget(target: Target): Observable {\n console.log('Create target:' + JSON.stringify(target));\n return this.http\n .post(`/api/targets`, JSON.stringify(target))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n pingTarget(target: Target): Observable {\n console.log('Ping target.');\n let body = new URLSearchParams();\n body.set('endpoint', target.endpoint);\n body.set('username', target.username);\n body.set('password', target.password);\n return this.http\n .post(`/api/targets/ping`, body)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n updateTarget(target: Target): Observable {\n console.log('Update target with target ID' + target.id);\n return this.http\n .put(`/api/targets/${target.id}`, JSON.stringify(target))\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n deleteTarget(targetId: number): Observable {\n console.log('Deleting target with ID:' + targetId);\n return this.http\n .delete(`/api/targets/${targetId}`)\n .map(response=>response.status)\n .catch(error=>Observable.throw(error));\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/replication/replication.service.ts","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { errorHandler } from '../shared.utils';\n\n@Component({\n selector: 'inline-alert',\n templateUrl: \"inline-alert.component.html\"\n})\nexport class InlineAlertComponent {\n private inlineAlertType: string = 'alert-danger';\n private inlineAlertClosable: boolean = true;\n private alertClose: boolean = true;\n private displayedText: string = \"\";\n private showCancelAction: boolean = false;\n private useAppLevelStyle: boolean = false;\n\n @Output() confirmEvt = new EventEmitter();\n\n constructor(private translate: TranslateService){}\n\n public get errorMessage(): string {\n return this.displayedText;\n }\n\n //Show error message inline\n public showInlineError(error: any): void {\n this.displayedText = errorHandler(error);\n\n this.inlineAlertType = 'alert-danger';\n this.showCancelAction = false;\n this.inlineAlertClosable = true;\n this.alertClose = false;\n this.useAppLevelStyle = false;\n }\n\n //Show confirmation info with action button\n public showInlineConfirmation(warning: any): void {\n this.displayedText = \"\";\n if(warning && warning.message){\n this.translate.get(warning.message).subscribe((res: string) => this.displayedText = res);\n }\n this.inlineAlertType = 'alert-warning';\n this.showCancelAction = true;\n this.inlineAlertClosable = true;\n this.alertClose = false;\n this.useAppLevelStyle = true;\n }\n\n //Show inline sccess info\n public showInlineSuccess(info: any): void {\n this.displayedText = \"\";\n if(info && info.message){\n this.translate.get(info.message).subscribe((res: string) => this.displayedText = res);\n }\n this.inlineAlertType = 'alert-success';\n this.showCancelAction = false;\n this.inlineAlertClosable = true;\n this.alertClose = false;\n this.useAppLevelStyle = false;\n }\n\n //Close alert\n public close(): void {\n this.alertClose = true;\n }\n\n private confirmCancel(): void {\n this.confirmEvt.emit(true);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/inline-alert/inline-alert.component.ts","module.exports = \".progress-size-small {\\n height: 0.5em !important;\\n}\\n\\n.visibility-hidden {\\n visibility: hidden;\\n}\\n\\n.forgot-password-link {\\n position: relative;\\n line-height: 36px;\\n font-size: 14px;\\n float: right;\\n top: -5px;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/sign-in/sign-in.component.css\n// module id = 802\n// module chunks = 0","module.exports = \".search-overlay {\\n display: block;\\n position: absolute;\\n height: 100%;\\n width: 98%;\\n /*shoud be lesser than 1000 to aoivd override the popup menu*/\\n z-index: 999;\\n box-sizing: border-box;\\n background: #fafafa;\\n top: 0px;\\n padding-left: 24px;\\n}\\n\\n.search-header {\\n display: inline-block;\\n width: 100%;\\n position: relative;\\n}\\n\\n.search-title {\\n font-size: 28px;\\n letter-spacing: normal;\\n color: #000;\\n}\\n\\n.search-close {\\n position: absolute;\\n right: 24px;\\n cursor: pointer;\\n}\\n\\n.search-parent-override {\\n position: relative !important;\\n}\\n\\n.search-spinner {\\n top: 50%;\\n left: 50%;\\n position: absolute;\\n}\\n\\n.grid-header-wrapper {\\n text-align: right;\\n}\\n\\n.grid-filter {\\n position: relative;\\n top: 8px;\\n margin: 0px auto 0px auto;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/global-search/search-result.component.css\n// module id = 803\n// module chunks = 0","module.exports = \".side-nav-override {\\n box-shadow: 6px 0px 0px 0px #ccc;\\n}\\n\\n.container-override {\\n position: relative !important;\\n}\\n\\n.start-content-padding {\\n padding-top: 0px !important;\\n padding-bottom: 0px !important;\\n padding-left: 0px !important;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/harbor-shell/harbor-shell.component.css\n// module id = 804\n// module chunks = 0","module.exports = \".sign-in-override {\\n padding-left: 0px !important;\\n padding-right: 5px !important;\\n}\\n\\n.sign-up-override {\\n padding-left: 5px !important;\\n}\\n\\n.custom-divider {\\n display: inline-block;\\n border-right: 2px inset snow;\\n padding: 2px 0px 2px 0px;\\n vertical-align: middle;\\n height: 24px;\\n}\\n\\n.lang-selected {\\n font-weight: bold;\\n}\\n\\n.nav-divider {\\n display: inline-block;\\n width: 1px;\\n height: 40px;\\n background-color: #fafafa;\\n position: relative;\\n top: 10px;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/navigator/navigator.component.css\n// module id = 805\n// module chunks = 0","module.exports = \".start-card {\\n border-right: 1px solid #cccccc;\\n padding: 24px;\\n background-color: white;\\n height: 100%;\\n}\\n\\n.row-fill-height {\\n height: 100%;\\n}\\n\\n.row-margin {\\n margin-left: 24px;\\n}\\n\\n.column-fill-height {\\n height: 100%;\\n}\\n\\n.my-card-img {\\n background-image: url('../../../images/harbor-logo.png');\\n background-repeat: no-repeat;\\n background-size: contain;\\n height: 160px;\\n}\\n\\n.my-card-footer {\\n float: right;\\n margin-top: 100px;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/start-page/start.component.css\n// module id = 806\n// module chunks = 0","module.exports = \".advance-option {\\n font-size: 12px;\\n}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/log/audit-log.css\n// module id = 807\n// module chunks = 0","module.exports = \".h2-log-override {\\n margin-top: 0px !important;\\n}\\n\\n.filter-log {\\n float: right;\\n margin-right: 24px;\\n position: relative;\\n top: 8px;\\n}\\n\\n.action-head-pos {\\n position: relative;\\n top: 20px;\\n}\\n\\n.refresh-btn {\\n position: absolute;\\n right: -4px;\\n top: 8px;\\n cursor: pointer;\\n}\\n\\n.custom-lines-button {\\n padding: 0px !important;\\n min-width: 25px !important;\\n}\\n\\n.lines-button-toggole {\\n font-size: 16px;\\n text-decoration: underline;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/log/recent-log.component.css\n// module id = 808\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/create-project/create-project.css\n// module id = 809\n// module chunks = 0","module.exports = \".display-in-line {\\n display: inline-block;\\n}\\n\\n.project-title {\\n margin-left: 10px; \\n}\\n\\n.pull-right {\\n float: right !important;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/project-detail/project-detail.css\n// module id = 810\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/project.css\n// module id = 811\n// module chunks = 0","module.exports = \".custom-h2 {\\n margin-top: 0px !important;\\n}\\n\\n.custom-add-button {\\n font-size: medium;\\n margin-left: -12px;\\n}\\n\\n.filter-icon {\\n position: relative;\\n right: -12px;\\n}\\n\\n.filter-pos {\\n float: right;\\n margin-right: 24px;\\n position: relative;\\n top: 8px;\\n}\\n\\n.action-panel-pos {\\n position: relative;\\n top: 20px;\\n}\\n\\n.refresh-btn {\\n position: absolute;\\n right: -4px;\\n top: 8px;\\n cursor: pointer;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/replication-management/replication-management.css\n// module id = 812\n// module chunks = 0","module.exports = \".margin-left-override {\\n margin-left: 24px !important;\\n}\\n\\n.about-text-link {\\n font-family: \\\"Proxima Nova Light\\\";\\n font-size: 14px;\\n color: #007CBB;\\n line-height: 24px;\\n}\\n\\n.about-copyright-text {\\n font-family: \\\"Proxima Nova Light\\\";\\n font-size: 13px;\\n color: #565656;\\n line-height: 16px;\\n}\\n\\n.about-product-title {\\n font-family: \\\"Metropolis Light\\\";\\n font-size: 28px;\\n color: #000000;\\n line-height: 36px;\\n}\\n\\n.about-version {\\n font-family: \\\"Metropolis\\\";\\n font-size: 14px;\\n color: #565656;\\n font-weight: 500;\\n}\\n\\n.about-build {\\n font-family: \\\"Metropolis\\\";\\n font-size: 14px;\\n color: #565656;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/about-dialog/about-dialog.component.css\n// module id = 813\n// module chunks = 0","module.exports = \".deletion-icon-inline {\\n display: inline-block;\\n}\\n\\n.deletion-title {\\n line-height: 24px;\\n color: #000000;\\n font-size: 22px;\\n}\\n\\n.deletion-content {\\n font-size: 14px;\\n color: #565656;\\n line-height: 24px;\\n display: inline-block;\\n vertical-align: middle;\\n width: 80%;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/deletion-dialog/deletion-dialog.component.css\n// module id = 814\n// module chunks = 0","module.exports = \".filter-icon {\\n position: relative;\\n right: -12px;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/filter/filter.component.css\n// module id = 815\n// module chunks = 0","module.exports = \".label-info {\\n margin: 0px !important;\\n padding: 0px !important;\\n margin-top: -5px !important;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/new-user-form/new-user-form.component.css\n// module id = 816\n// module chunks = 0","module.exports = \".wrapper-back {\\n position: absolute;\\n top: 50%;\\n height: 240px;\\n margin-top: -120px;\\n text-align: center;\\n left: 50%;\\n margin-left: -300px;\\n}\\n\\n.status-code {\\n font-weight: bolder;\\n font-size: 4em;\\n color: #A32100;\\n vertical-align: middle;\\n}\\n\\n.status-text {\\n font-weight: bold;\\n font-size: 3em;\\n margin-left: 10px;\\n vertical-align: middle;\\n}\\n\\n.status-subtitle {\\n font-size: 18px;\\n}\\n\\n.second-number {\\n font-weight: bold;\\n font-size: 2em;\\n color: #EB8D00;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/not-found/not-found.component.css\n// module id = 817\n// module chunks = 0","module.exports = \".custom-h2 {\\n margin-top: 0px !important;\\n}\\n\\n.custom-add-button {\\n font-size: medium;\\n margin-left: -12px;\\n}\\n\\n.filter-icon {\\n position: relative;\\n right: -12px;\\n}\\n\\n.filter-pos {\\n float: right;\\n margin-right: 24px;\\n position: relative;\\n top: 8px;\\n}\\n\\n.action-panel-pos {\\n position: relative;\\n top: 20px;\\n}\\n\\n.refresh-btn {\\n position: absolute;\\n right: -4px;\\n top: 8px;\\n cursor: pointer;\\n}\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/user/user.component.css\n// module id = 818\n// module chunks = 0","module.exports = \"\\n

{{'PROFILE.TITLE' | translate}}

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/account-settings/account-settings-modal.component.html\n// module id = 820\n// module chunks = 0","module.exports = \"\\n

{{'RESET_PWD.TITLE' | translate}}

\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/password/forgot-password.component.html\n// module id = 821\n// module chunks = 0","module.exports = \"\\n

{{'CHANGE_PWD.TITLE' | translate}}

\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/password/password-setting.component.html\n// module id = 822\n// module chunks = 0","module.exports = \"\\n

{{'RESET_PWD.TITLE' | translate}}

\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/password/reset-password.component.html\n// module id = 823\n// module chunks = 0","module.exports = \"
\\n
\\n \\n
\\n \\n \\n
\\n \\n \\n {{'SIGN_IN.FORGOT_PWD' | translate}}\\n
\\n
\\n {{ 'SIGN_IN.INVALID_MSG' | translate }}\\n
\\n \\n {{ 'BUTTON.SIGN_UP_LINK' | translate }}\\n
\\n
\\n
\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/sign-in/sign-in.component.html\n// module id = 824\n// module chunks = 0","module.exports = \"\\n

{{'SIGN_UP.TITLE' | translate}}

\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/account/sign-up/sign-up.component.html\n// module id = 825\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.html\n// module id = 826\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/footer/footer.component.html\n// module id = 827\n// module chunks = 0","module.exports = \"
\\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/global-search/global-search.component.html\n// module id = 828\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n Search results for '{{currentTerm}}'\\n \\n \\n \\n
\\n \\n
Search...
\\n
\\n

Projects

\\n
\\n \\n
\\n \\n

Repositories

\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/global-search/search-result.component.html\n// module id = 829\n// module chunks = 0","module.exports = \"\\n \\n \\n \\n\\n\\n\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/harbor-shell/harbor-shell.component.html\n// module id = 830\n// module chunks = 0","module.exports = \"\\n \\n
\\n Management\\n Registry\\n
\\n \\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/navigator/navigator.component.html\n// module id = 831\n// module chunks = 0","module.exports = \"\\n
\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n

Getting Start

\\n

\\n {{'START_PAGE.GETTING_START' | translate}}\\n

\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/base/start-page/start.component.html\n// module id = 832\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.LDAP_SEARCH_DN' | translate}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.LDAP_BASE_DN' | translate}}\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.LDAP_UID' | translate}}\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{'CONFIG.TOOLTIP.LDAP_SCOPE' | translate}}\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n {{'CONFIG.TOOLTIP.AUTH_MODE' | translate}}\\n \\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.SELF_REGISTRATION' | translate}}\\n \\n \\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/config/auth/config-auth.component.html\n// module id = 833\n// module chunks = 0","module.exports = \"

{{'CONFIG.TITLE' | translate }}

\\n\\n\\n {{'CONFIG.AUTH' | translate }}\\n {{'CONFIG.REPLICATION' | translate }}\\n {{'CONFIG.EMAIL' | translate }}\\n {{'CONFIG.SYSTEM' | translate }}\\n\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.VERIFY_REMOTE_CERT' | translate }}\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.TOOLTIP.TOKEN_EXPIRATION' | translate}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/config/config.component.html\n// module id = 834\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n {{'CONFIG.SSL_TOOLTIP' | translate}}\\n \\n \\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/config/email/config-email.component.html\n// module id = 835\n// module chunks = 0","module.exports = \"\\n
\\n \\n {{message}}\\n \\n
\\n \\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/global-message/message.component.html\n// module id = 836\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n {{'AUDIT_LOG.USERNAME' | translate}}\\n {{'AUDIT_LOG.REPOSITORY_NAME' | translate}}\\n {{'AUDIT_LOG.TAGS' | translate}}\\n {{'AUDIT_LOG.OPERATION' | translate}}\\n {{'AUDIT_LOG.TIMESTAMP' | translate}}\\n \\n {{l.username}}\\n {{l.repo_name}}\\n {{l.repo_tag}}\\n {{l.operation}}\\n {{l.op_time}}\\n \\n \\n {{totalRecordCount}} {{'AUDIT_LOG.ITEMS' | translate}}\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/log/audit-log.component.html\n// module id = 837\n// module chunks = 0","module.exports = \"
\\n

{{'SIDE_NAV.LOGS' | translate}}

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n {{'AUDIT_LOG.USERNAME' | translate}}\\n {{'AUDIT_LOG.REPOSITORY_NAME' | translate}}\\n {{'AUDIT_LOG.TAGS' | translate}}\\n {{'AUDIT_LOG.OPERATION' | translate}}\\n {{'AUDIT_LOG.TIMESTAMP' | translate}}\\n \\n {{l.username}}\\n {{l.repo_name}}\\n {{l.repo_tag}}\\n {{l.operation}}\\n {{formatDateTime(l.op_time)}}\\n \\n {{ (recentLogs ? recentLogs.length : 0) }} {{'AUDIT_LOG.ITEMS' | translate}}\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/log/recent-log.component.html\n// module id = 838\n// module chunks = 0","module.exports = \"\\n

{{'PROJECT.NEW_PROJECT' | translate}}

\\n
\\n
\\n
\\n \\n
\\n \\n {{errorMessage}}\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/create-project/create-project.component.html\n// module id = 839\n// module chunks = 0","module.exports = \"\\n {{'PROJECT.NAME' | translate}}\\n {{'PROJECT.PUBLIC_OR_PRIVATE' | translate}}\\n {{'PROJECT.REPO_COUNT'| translate}}\\n {{'PROJECT.CREATION_TIME' | translate}}\\n {{'PROJECT.DESCRIPTION' | translate}}\\n \\n {{p.name}}\\n {{ (p.public === 1 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}}\\n {{p.repo_count}}\\n {{p.creation_time}}\\n \\n {{p.description}}\\n \\n {{'PROJECT.NEW_POLICY' | translate}}\\n {{'PROJECT.MAKE' | translate}} {{(p.public === 0 ? 'PROJECT.PUBLIC' : 'PROJECT.PRIVATE') | translate}} \\n
\\n {{'PROJECT.DELETE' | translate}}\\n
\\n
\\n
\\n \\n {{totalRecordCount || (projects ? projects.length : 0)}} {{'PROJECT.ITEMS' | translate}}\\n \\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/list-project/list-project.component.html\n// module id = 840\n// module chunks = 0","module.exports = \"\\n

{{'MEMBER.NEW_MEMBER' | translate}}

\\n
\\n
\\n
\\n \\n
\\n \\n {{errorMessage}}\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/member/add-member/add-member.component.html\n// module id = 841\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n {{'MEMBER.NAME' | translate}}\\n {{'MEMBER.ROLE' | translate}}\\n \\n {{u.username}}\\n \\n {{roleInfo[u.role_id] | translate}}\\n \\n {{'MEMBER.PROJECT_ADMIN' | translate}}\\n {{'MEMBER.DEVELOPER' | translate}}\\n {{'MEMBER.GUEST' | translate}}\\n
\\n {{'MEMBER.DELETE' | translate}}\\n
\\n
\\n
\\n {{ (members ? members.length : 0) }} {{'MEMBER.ITEMS' | translate}}\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/member/member.component.html\n// module id = 842\n// module chunks = 0","module.exports = \"< {{'PROJECT_DETAIL.PROJECTS' | translate}}\\n

{{currentProject.name}}

\\n\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/project-detail/project-detail.component.html\n// module id = 843\n// module chunks = 0","module.exports = \"

{{'PROJECT.PROJECTS' | translate}}

\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/project/project.component.html\n// module id = 844\n// module chunks = 0","module.exports = \"\\n

{{modalTitle}}

\\n
\\n
\\n
\\n \\n
\\n \\n {{errorMessage}}\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n {{ pingTestMessage }}\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/create-edit-destination/create-edit-destination.component.html\n// module id = 845\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n {{'DESTINATION.NAME' | translate}}\\n {{'DESTINATION.URL' | translate}}\\n {{'DESTINATION.CREATION_TIME' | translate}}\\n \\n {{t.name}}\\n {{t.endpoint}}\\n {{t.creation_time}}\\n \\n {{'DESTINATION.TITLE_EDIT' | translate}}\\n {{'DESTINATION.DELETE' | translate}}\\n \\n \\n \\n {{ (targets ? targets.length : 0) }} {{'DESTINATION.ITEMS' | translate}}\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/destination/destination.component.html\n// module id = 846\n// module chunks = 0","module.exports = \" \\n {{'REPLICATION.NAME' | translate}}\\n {{'REPLICATION.STATUS' | translate}}\\n {{'REPLICATION.OPERATION' | translate}} \\n {{'REPLICATION.CREATION_TIME' | translate}}\\n {{'REPLICATION.END_TIME' | translate}}\\n {{'REPLICATION.LOGS' | translate}}\\n \\n {{j.repository}}\\n {{j.status}}\\n {{j.operation}}\\n {{j.creation_time}}\\n {{j.update_time}}\\n \\n \\n \\n {{ totalRecordCount }} {{'REPLICATION.ITEMS' | translate}} \\n \\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/list-job/list-job.component.html\n// module id = 847\n// module chunks = 0","module.exports = \"

{{'SIDE_NAV.SYSTEM_MGMT.REPLICATION' | translate}}

\\n\\n\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/replication-management/replication-management.component.html\n// module id = 848\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
{{'REPLICATION.REPLICATION_JOBS' | translate}}
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/replication.component.html\n// module id = 849\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/replication/total-replication/total-replication.component.html\n// module id = 850\n// module chunks = 0","module.exports = \"\\n {{'REPOSITORY.NAME' | translate}}\\n {{'REPOSITORY.TAGS_COUNT' | translate}}\\n {{'REPOSITORY.PULL_COUNT' | translate}}\\n \\n {{r.name || r.repository_name}}\\n {{r.tags_count}}\\n {{r.pull_count}}\\n \\n {{'REPOSITORY.COPY_ID' | translate}}\\n {{'REPOSITORY.COPY_PARENT_ID' | translate}}\\n
\\n {{'REPOSITORY.DELETE' | translate}}\\n
\\n
\\n
\\n \\n {{totalRecordCount || (repositories ? repositories.length : 0)}} {{'REPOSITORY.ITEMS' | translate}}\\n \\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/repository/list-repository/list-repository.component.html\n// module id = 851\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/repository/repository.component.html\n// module id = 852\n// module chunks = 0","module.exports = \"< {{'REPOSITORY.REPOSITORIES' | translate}}\\n

{{repoName}} {{tags ? tags.length : 0}}

\\n\\n {{'REPOSITORY.TAG' | translate}}\\n {{'REPOSITORY.PULL_COMMAND' | translate}}\\n {{'REPOSITORY.VERIFIED' | translate}}\\n {{'REPOSITORY.AUTHOR' | translate}}\\n {{'REPOSITORY.CREATED' | translate}}\\n {{'REPOSITORY.DOCKER_VERSION' | translate}}\\n {{'REPOSITORY.ARCHITECTURE' | translate}}\\n {{'REPOSITORY.OS' | translate}}\\n \\n {{t.tag}}\\n {{t.pullCommand}}\\n \\n \\n \\n \\n {{t.author}}\\n {{t.created | date: 'yyyy/MM/dd'}}\\n {{t.dockerVersion}}\\n {{t.architecture}}\\n {{t.os}}\\n \\n {{'REPOSITORY.DELETE' | translate}}\\n \\n \\n \\n {{tags ? tags.length : 0}} {{'REPOSITORY.ITEMS' | translate}}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/repository/tag-repository/tag-repository.component.html\n// module id = 853\n// module chunks = 0","module.exports = \"
\\n

Popular Repositories

\\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/repository/top-repo/top-repo.component.html\n// module id = 854\n// module chunks = 0","module.exports = \"\\n

vmware

\\n
\\n
Harbor
\\n
\\n
\\n {{'ABOUT.VERSION' | translate}} {{version}}\\n |\\n {{'ABOUT.BUILD' | translate}} {{build}}\\n
\\n
\\n
\\n \\n \\n

\\n {{'ABOUT.END_USER_LICENSE' | translate}}
\\n {{'ABOUT.OPEN_SOURCE_LICENSE' | translate}}\\n

\\n
\\n
\\n
\\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/about-dialog/about-dialog.component.html\n// module id = 855\n// module chunks = 0","module.exports = \"\\n

{{modalTitle}}

\\n
\\n
\\n
\\n \\n
\\n \\n {{errorMessage}}\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n {{ pingTestMessage }}\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/create-edit-policy/create-edit-policy.component.html\n// module id = 856\n// module chunks = 0","module.exports = \"\\n

{{dialogTitle}}

\\n
\\n
\\n \\n
\\n
{{dialogContent}}
\\n
\\n
\\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/deletion-dialog/deletion-dialog.component.html\n// module id = 857\n// module chunks = 0","module.exports = \"\\n \\n \\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/filter/filter.component.html\n// module id = 858\n// module chunks = 0","module.exports = \"\\n\\n \\n
\\n \\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/harbor-action-overflow/harbor-action-overflow.html\n// module id = 859\n// module chunks = 0","module.exports = \"\\n
\\n \\n {{errorMessage}}\\n \\n
\\n \\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/inline-alert/inline-alert.component.html\n// module id = 860\n// module chunks = 0","module.exports = \"\\n {{'REPLICATION.NAME' | translate}}\\n {{'REPLICATION.PROJECT' | translate}} \\n {{'REPLICATION.DESCRIPTION' | translate}}\\n {{'REPLICATION.DESTINATION_NAME' | translate}}\\n {{'REPLICATION.LAST_START_TIME' | translate}} \\n {{'REPLICATION.ACTIVATION' | translate}}\\n \\n {{p.name}}\\n {{p.project_name}}\\n {{p.description}}\\n {{p.target_name}}\\n {{p.start_time}}\\n \\n {{ (p.enabled === 1 ? 'REPLICATION.ENABLED' : 'REPLICATION.DISABLED') | translate}}\\n \\n {{'REPLICATION.EDIT_POLICY' | translate}}\\n {{ (p.enabled === 0 ? 'REPLICATION.ENABLE' : 'REPLICATION.DISABLE') | translate}}\\n {{'REPLICATION.DELETE_POLICY' | translate}}\\n \\n \\n \\n {{ (policies ? policies.length : 0) }} {{'REPLICATION.ITEMS' | translate}}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/list-policy/list-policy.component.html\n// module id = 861\n// module chunks = 0","module.exports = \"
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/new-user-form/new-user-form.component.html\n// module id = 862\n// module chunks = 0","module.exports = \"
\\n
\\n \\n 404\\n {{'PAGE_NOT_FOUND.MAIN_TITLE' | translate}}\\n
\\n
\\n {{'PAGE_NOT_FOUND.SUB_TITLE' | translate}} {{leftSeconds}} {{'PAGE_NOT_FOUND.UNIT' | translate}}\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/not-found/not-found.component.html\n// module id = 863\n// module chunks = 0","module.exports = \"
\\n

{{'STATISTICS.TITLE' | translate }}

\\n \\n
\\n
\\n{{'STATISTICS.PRO_ITEM' | translate }}\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n {{'STATISTICS.REPO_ITEM' | translate }}\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/statictics/statistics-panel.component.html\n// module id = 864\n// module chunks = 0","module.exports = \"
\\n {{data.number}}\\n {{data.label}}\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/statictics/statistics.component.html\n// module id = 865\n// module chunks = 0","module.exports = \"\\n

{{'USER.ADD_USER_TITLE' | translate}}

\\n
\\n \\n \\n
\\n
\\n \\n \\n \\n
\\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/user/new-user-modal.component.html\n// module id = 866\n// module chunks = 0","module.exports = \"
\\n

{{'SIDE_NAV.SYSTEM_MGMT.USER' | translate}}

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n {{'USER.COLUMN_NAME' | translate}}\\n {{'USER.COLUMN_ADMIN' | translate}}\\n {{'USER.COLUMN_EMAIL' | translate}}\\n {{'USER.COLUMN_REG_NAME' | translate}}\\n \\n {{user.username}}\\n {{isSystemAdmin(user)}}\\n {{user.email}}\\n \\n {{user.creation_time}}\\n \\n {{adminActions(user)}}\\n
\\n {{'USER.DEL_ACTION' | translate}}\\n
\\n
\\n
\\n {{users.length}} {{'USER.ADD_ACTION' | translate}}\\n
\\n
\\n \\n
\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/user/user.component.html\n// module id = 867\n// module chunks = 0","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { AlertType } from '../../shared/shared.const';\n\n@Injectable()\nexport class SearchTriggerService {\n\n private searchTriggerSource = new Subject();\n private searchCloseSource = new Subject();\n private searchInputSource = new Subject();\n\n searchTriggerChan$ = this.searchTriggerSource.asObservable();\n searchCloseChan$ = this.searchCloseSource.asObservable();\n searchInputChan$ = this.searchInputSource.asObservable();\n\n triggerSearch(event: string) {\n this.searchTriggerSource.next(event);\n }\n\n //Set event to true for shell\n //set to false for search panel\n closeSearch(event: boolean) {\n this.searchCloseSource.next(event);\n }\n\n //Notify the state change of search box in home start page\n searchInputStat(event: boolean) {\n this.searchInputSource.next(event);\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/base/global-search/search-trigger.service.ts"],"sourceRoot":""} \ No newline at end of file diff --git a/src/ui/static/resources/css/account-settings.css b/src/ui/static/resources/css/account-settings.css deleted file mode 100644 index 57914e569..000000000 --- a/src/ui/static/resources/css/account-settings.css +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ diff --git a/src/ui/static/resources/css/admin-options.css b/src/ui/static/resources/css/admin-options.css deleted file mode 100644 index a7830e15c..000000000 --- a/src/ui/static/resources/css/admin-options.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.switch-pane-admin-options { - display: inline; - width: 340px; - float: right; - list-style-type: none; -} - -.switch-pane-admin-options a, .switch-pane-admin-options span { - display: inline-block; - text-decoration: none; - float: left; -} - -.switch-pane-admin-options li .active { - border-bottom: 2px solid rgb(0, 84, 190); - font-weight: bold; -} - -.inline-help-config { - padding: 6px; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/dashboard.css b/src/ui/static/resources/css/dashboard.css deleted file mode 100644 index 45bd75b23..000000000 --- a/src/ui/static/resources/css/dashboard.css +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.up-section .up-table-pane { - overflow-y: auto; - height: 220px; - margin-top: -10px; -} - -.up-section .dl-horizontal dt{ - line-height: 25px; -} - -.up-section .dl-horizontal dt { - text-align: left; -} - diff --git a/src/ui/static/resources/css/destination.css b/src/ui/static/resources/css/destination.css deleted file mode 100644 index 3cc3d97f6..000000000 --- a/src/ui/static/resources/css/destination.css +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.create-destination { - height: 275px; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/footer.css b/src/ui/static/resources/css/footer.css deleted file mode 100644 index 38e9d85c9..000000000 --- a/src/ui/static/resources/css/footer.css +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.footer-absolute { - position: absolute; - bottom: 0; - left: 0; - padding: 0; - margin: 0; -} - -.footer-static { - position: static; - -} - -.footer{ - width: 100%; - clear: both; - background-color: #A8A8A8; - height: 44px; - z-index: 10; -} -.footer p { - padding-top: 8px; - color: #FFFFFF; - margin-left: auto; - margin-right: auto; - width: 385px; -} diff --git a/src/ui/static/resources/css/header.css b/src/ui/static/resources/css/header.css deleted file mode 100644 index f21aaaf17..000000000 --- a/src/ui/static/resources/css/header.css +++ /dev/null @@ -1,145 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.navbar-custom { - background-image: none; - background-color: #057ac9; - height: 66px; - margin-bottom: 0; -} - -nav .container { - margin-top: 15px; -} - -nav .container-custom { - min-width: 1024px; -} - -.navbar-custom .navbar-nav > li > a, -.navbar-custom .navbar-nav > li > a:hover, -.navbar-custom .navbar-nav > li > a:focus, -.navbar-custom .navbar-nav > li > a:active { - color: white; /*Change active text color here*/ -} - -.navbar-brand > img { - margin-top: -25px; -} - -.navbar-form { - margin-top: 0; - padding-right: 0; -} - -.search-icon { - background: url("/static/resources/img/magnitude-glass.jpg") no-repeat 97% 6px; - background-size: 1.5em; - background-color: #FFFFFF; -} - -.nav-custom li { - float: left; - padding: 10px 0 0 0; - margin-right: 12px; - list-style: none; - display: inline-block; -} - -.nav-custom li a { - font-size: 14px; - color: #FFFFFF; - text-decoration: none; -} - -.nav-custom .active { - border-bottom: 3px solid #EFEFEF; - font-weight: bold; -} - -.dropdown { - float: left; -} - -.dropdown .btn-link:hover, -.dropdown .btn-link:visited, -.dropdown .btn-link:link { - display:inline-block; - text-decoration: none; - color: #FFFFFF; -} - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu>.dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - -webkit-border-radius: 0 6px 6px 6px; - -moz-border-radius: 0 6px 6px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover>.dropdown-menu { - display: block; -} - -.dropdown-submenu>a:after { - display: block; - content: " "; - float: right; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-width: 5px 0 5px 5px; - border-left-color: #ccc; - margin-top: 5px; - margin-right: -10px; -} - -.dropdown-submenu:hover>a:after { - border-left-color: #fff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left>.dropdown-menu { - left: -100%; - margin-left: 10px; - -webkit-border-radius: 6px 0 6px 6px; - -moz-border-radius: 6px 0 6px 6px; - border-radius: 6px 0 6px 6px; -} - -.loading-progress { - display: inline-block; - position: relative; - background-image: url('/static/resources/img/loading.gif'); - background-position: center; - background-size: 107px; - width: 1em; - height: 1.2em; - margin-bottom: 2px; - vertical-align: middle; -} - -a:hover, a:visited, a:link { - text-decoration: none; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/index.css b/src/ui/static/resources/css/index.css deleted file mode 100644 index 93ae84f18..000000000 --- a/src/ui/static/resources/css/index.css +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -body { - margin: 0; - padding: 0; - width: 100%; - height: 100%; - position: fixed; -} - -.has-logged-in { - position: relative; - top: 50px; -} - -.has-logged-in h4 { - float: left; - width: 100%; - line-height: 2em; - text-align: center; -} - -.has-logged-in .last-logged-in-time { - text-align: center; -} - -.has-logged-in .control-button { - height: 2em; - width: 100%; - padding-right: 10%; - clear: both; -} - -.container-fluid-custom { - background-color: #EFEFEF; - width: 100%; - height: 100%; - min-height: 1px; - overflow-y: auto; - overflow-x: hidden; -} - -.up-section { - position: relative; - padding: 15px 15px 15px; - margin: 20px 0 0 -15px; - background-color: #FFFFFF; - height: 277px; -} - -.up-section h4 label { - margin-left: 5px; -} - -.right-part { - padding-right: 0; - margin-right: -15px; -} - -.thumbnail { - margin-top: 10px; - display: inline-block; - border: none; - padding: 2px; - box-shadow: none; - width: 30%; - vertical-align: top; -} - -.down-section { - position: relative; - padding: 15px 15px 15px; - margin: 20px -15px 0 -15px; - background-color: #FFFFFF; - height: 350px; -} - -.down-section-left { - margin-right: 0; -} - -.down-section ul { - padding: 0; - margin-left: 30px; - margin-right: 20px; -} - -.long-line { - overflow: hidden; - width: 100%; -} - -.long-line-margin-right { - margin-right: 30px; -} - -.down-table-pane { - overflow-y: auto; - height: 260px; - padding-left: 10px; - padding-right: 10px; -} - -.page-header { - padding-bottom: 10px; - margin: 10px; - border-bottom: none; -} - -.underlined { - border-bottom: 2px solid #EFEFEF; -} - -.step-content { - text-align: center; -} - -.display-inline-block { - display: inline-block; -} - -.title-color { - color: #057ac9; -} - -.page-content { - margin: 0 20px 0 20px; - text-align: left; - overflow-y: hidden; -} diff --git a/src/ui/static/resources/css/project.css b/src/ui/static/resources/css/project.css deleted file mode 100644 index 3f3917232..000000000 --- a/src/ui/static/resources/css/project.css +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.container-custom { - position: relative; - min-height: 1px; -} - -.extend-height { - height: 100%; - padding-left: 0; - padding-right: 0; -} - -.section { - padding: 15px; - margin-top: 20px; - background-color: #FFFFFF; - height: 100%; - min-height: 672px; - width: 100%; -} - -.search-pane { - margin: 0 10px 0 10px; - height: 3em; -} - - -.table>tbody>tr>td, .table>tbody>tr>th { - vertical-align: middle; -} - -.table-header { - margin-bottom: 0; -} - -.table-head-container { - -} - -.table-body-container { - overflow-y: auto; -} - -.gutter { - margin: 0 1em 0 1em; -} - -.project-pane { - margin: 0 10px 0 10px; -} - -.pane { - height: auto; - min-height: 1px; -} - -.tab-pane { - min-height: 1px; - max-height: 1px; -} - -.sub-pane { - min-height: 380px; - overflow-y: auto; -} - -.well-custom { - width: 100%; - background-color: #f5f5f5; - background-image: none; - - z-index: 10; -} - -.form-custom { - margin-top: 1em; -} - -.empty-hint { - text-align: center; - vertical-align: middle; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/replication.css b/src/ui/static/resources/css/replication.css deleted file mode 100644 index 1f41d5c18..000000000 --- a/src/ui/static/resources/css/replication.css +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.create-policy { - height: 565px; - overflow-y: auto; -} - -.form-group-custom { - margin-top: 10px; -} - -.h4-custom { - margin-top: 20px; -} - -.h4-custom-down { - display: inline-block; - margin-top: 20px; -} - -.hr-line { - margin-top: 0; - margin-bottom: 10px; -} - -.form-control-custom { - width: 100% !important; -} - -.pane-split { - overflow: hidden; - width: 100%; -} - -#upon-pane { - margin-top: 10px; - height: 320px; -} - -#upon-pane table>tbody>tr { - cursor: all-scroll; -} -#down-pane { - height: 582px; -} - -.sub-pane-split { - margin: 15px; - height: auto; - min-height: 50px; -} - -.well-split { - margin: 0; - position: relative; -} - -.split-handle { - margin-left: auto; - margin-right: auto; - width: 1em; - height: 1em; - cursor: ns-resize; - color: #C0C0C0; -} - -.color-success { - color: #5cb85c; -} - -.color-danger { - color: #d9534f -} - -.color-warning { - color: #f0ad4e; -} - -.label-custom { - margin: 0 5px 0 10px; -} - -.dialog-message { - padding: 15px; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/repository.css b/src/ui/static/resources/css/repository.css deleted file mode 100644 index ad55044fa..000000000 --- a/src/ui/static/resources/css/repository.css +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -.panel { - margin-bottom: 0; -} - -.pane-container { - overflow-y: auto; -} - -.pane-container .list-group-item { - border: none; -} - -.item-line { - margin: 0 0 10px 0; -} - -.switch-pane { - padding: 10px 15px 0 15px; - margin: 0 10px 10px 10px; - height: 3em; - background-color: rgb(231,244,254); -} - -.switch-pane-projects { - float: left; -} - -.switch-pane-tabs { - width: 265px; - list-style-type: none; -} - -.switch-pane-tabs a,.switch-pane-tabs span { - display: inline-block; - text-decoration: none; - float: left; -} - -.switch-pane-tabs li .active { - border-bottom: 2px solid rgb(0, 84, 190); - font-weight: bold; -} - -.switch-pane-drop-down { - display: block; - position: absolute; - margin: -10px 0 0 10px; - z-index: 1000; -} - -.search-projects { - padding: 15px 10px 10px; -} - -.project-list { - height: 440px; -} - -.project-selected { - margin-left: -1.2em; -} - -.list-group { - box-shadow: none; -} - -.list-group-item { - text-align: left; - margin-left: 20%; -} - -.panel-group { - margin-top: 10px; -} - -.repository-table { - width: 100%; -} - -.repository-table th, .repository-table td { - padding: 10px; - text-align: left; -} - -.each-tab-pane { - padding: 0 10px; -} - -.inline-block { - display: inline-block; -} - -.datetime-picker-title { - float: left; - line-height: 2.5em; - margin: 0 0.5em 0 0; -} - -.input-group .form-control { - z-index: 1; -} - -.well { - padding: 12px; -} - -.popover{ - max-width: 500px; -} - -.popover-header { - padding:8px 14px; - background-color:#f7f7f7; - border-bottom:1px solid #ebebeb; - -webkit-border-radius:5px 5px 0 0; - -moz-border-radius:5px 5px 0 0; - border-radius:5px 5px 0 0; -} - -.popover-title { - height: 2.5em; - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} - -.alert-custom { - position: relative; - bottom: 42px; - z-index: 99; - width: 100%; - margin-left: auto; - margin-right: auto; - padding: 10px; - background-color: #f2dede; - background-image: none; -} - -.alert-custom .close { - right: 0; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/search.css b/src/ui/static/resources/css/search.css deleted file mode 100644 index bf532006a..000000000 --- a/src/ui/static/resources/css/search.css +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.search-result { - min-height: 200px; - max-height: 200px; - overflow-y: auto; -} - -.search-result li { - margin-bottom: 15px; -} \ No newline at end of file diff --git a/src/ui/static/resources/css/sign-up.css b/src/ui/static/resources/css/sign-up.css deleted file mode 100644 index 02885b62d..000000000 --- a/src/ui/static/resources/css/sign-up.css +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -.main-title { - margin-top: 20px; - margin-left: 180px; -} - -.main-content { - width: 60%; - margin-top: 40px; -} - -.form-horizontal .control-label { - text-align: right; -} - -.row { - margin-left: 0; - margin-right: 0; -} - -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} - -.small-size-fonts { - font-size: 10pt; -} - -.asterisk { - display: inline-block; - margin-left: -25px; - padding-top: 8px; - color: red; - font-size: 14pt; -} - - - -.css-form input.ng-invalid.ng-touched { - border-color: red; -} - -.error-message { - color: red; - width: 100%; - margin-right: auto; - margin-left: auto; -} \ No newline at end of file diff --git a/src/ui/static/resources/img/Harbor_Logo_rec.png b/src/ui/static/resources/img/Harbor_Logo_rec.png deleted file mode 100644 index d318e5312dfe28a371b1ca27fe8450e9da416257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5368 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 diff --git a/src/ui/static/resources/img/Step1.png b/src/ui/static/resources/img/Step1.png deleted file mode 100644 index 4ddbefa08a69794ca5da34b717c9a362b55b33af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73813 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

A_N%9>TX&E=g0)@9Ng^+9HqsoxB_=t|r7lvBm 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 diff --git a/src/ui/static/resources/img/Step2.png b/src/ui/static/resources/img/Step2.png deleted file mode 100644 index 64ab8a04b44b1536e49ba69baf9d15567d2a41f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82221 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

)!~ z=JyPYWf2hRwHo)e)xdv&ra+{|?8xP;O&GO3wTorH9=GC;Y4u?&qpMqAfq;@Uy%g#!Dc^ zb4i%a_!)3_m~F#p#=VH+=Y-Q3Z5{x&huJpVW*k4Krb5%N4tQd0I#YCA@Gs)< z7i7-M?O0TfG8=BSIM(7%;kM)7e&0^~rQ2>_8SaUcIfz0(%Kdq{&fkXZ_TyhEOZHj# zGd;NFtqa~Df$>e6Zxo#Xai3xYuOiKF^$|kXIE6vq8-d^BFoy8WbBtrKtd|Mj+^6E@ zJ5t`f-W&?d2Ry*PfH#0q0PkJX1n)?F=c4Z~zz4u+pch~VZUYtr{G2oepcav8!u$Wc zzUTr3v-5Gl14PQ3@4;UH^?*=z3K|pu3qm!NkCW4HKr^`L$Zcu}WR3Q6`V}8ug*7xXyS@##n+Gj~xQif;9+HUx?!uSJCE79OHV7*4*gWql(U% zIL7No_5GkKx>P#E_1v*i&B=wYP}S|^>X0?OCjK7~>e_k|+RP8>?c@f$7UDgVP{woW zSKx|J4Hd_E{kI3`ps1@VI}itd0@_y9NIu3jK~2d&65}35P9uR}^GzPxff+zF))}2V zz%F1Oz|S)e0?z}y-uxQq2gGXBX$F2K?OwnY<*@9_&nHYHwNQQenIji?3wRsg``{CR4G7hj*B0*qJdgMpN7#kP zyaQClIZbYJf#{@4(@|asT&k)U#R15S6@?&a7V4J;IW`yd+)qQ~mZrTM>eK7tF%{lHHAp(m7BhZ)Y##|c^p X?8XfNfGNxQzy_QR{0_g&CrSSgaIgWf diff --git a/src/ui/static/resources/js/components/details/retrieve-projects.directive.html b/src/ui/static/resources/js/components/details/retrieve-projects.directive.html deleted file mode 100644 index 965d3d12b..000000000 --- a/src/ui/static/resources/js/components/details/retrieve-projects.directive.html +++ /dev/null @@ -1,35 +0,0 @@ - -

\ No newline at end of file diff --git a/src/ui/static/resources/js/components/details/retrieve-projects.directive.js b/src/ui/static/resources/js/components/details/retrieve-projects.directive.js deleted file mode 100644 index d5f3beb8f..000000000 --- a/src/ui/static/resources/js/components/details/retrieve-projects.directive.js +++ /dev/null @@ -1,214 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.details') - .directive('retrieveProjects', retrieveProjects); - - RetrieveProjectsController.$inject = ['$scope', 'nameFilter', '$filter', 'trFilter', 'ListProjectService', '$location', 'getParameterByName', 'CurrentProjectMemberService', '$window']; - - function RetrieveProjectsController($scope, nameFilter, $filter, trFilter, ListProjectService, $location, getParameterByName, CurrentProjectMemberService, $window) { - var vm = this; - - vm.projectName = ''; - vm.isOpen = false; - vm.isProjectMember = false; - vm.target = $location.path().substr(1) || 'repositories'; - vm.roleId = 0; - - vm.isPublic = Number(getParameterByName('is_public', $location.absUrl())); - - var DEFAULT_PAGE = 1; - - vm.page = DEFAULT_PAGE; - - vm.projects = []; - vm.retrieve = retrieve; - vm.filterInput = ''; - vm.selectItem = selectItem; - vm.checkProjectMember = checkProjectMember; - - function retrieve() { - ListProjectService(vm.projectName, vm.isPublic, vm.page) - .then(getProjectSuccess, getProjectFailed); - } - - $scope.$watch('vm.page', function(current) { - if(current) { - vm.retrieve(); - } - }); - - $scope.$watch('vm.isPublic', function(current) { - vm.projectType = vm.isPublic === 0 ? 'my_project_count' : 'public_project_count'; - }); - - $scope.$watch('vm.selectedProject', function(current) { - if(current) { - vm.selectedId = current.project_id; - } - }); - - function parseNextLink(link) { - if(link === '') { - return false; - } - - var parts = link.split(","); - for(var i in parts) { - var groups = /^\<(.*)\>;\srel=\"(\w+)\"$/.exec($.trim(parts[i])); - if(groups && groups.length > 2){ - var url = groups[1]; - var rel = groups[2]; - if(rel === 'next') { - return { - 'page': getParameterByName('page', url), - 'rel' : rel - }; - } - } - } - return false; - } - - - function getProjectSuccess(response) { - var partialProjects = response.data || []; - for(var i in partialProjects) { - vm.projects.push(partialProjects[i]); - } - - var nextLink = parseNextLink(response.headers("Link") || ''); - - if(nextLink) { - vm.page = parseInt(nextLink.page); - } else { - - if(vm.projects.length == 0 && vm.isPublic === 0){ - $window.location.href = '/project'; - } - - if(getParameterByName('project_id', $location.absUrl())){ - for(var i in vm.projects) { - var project = vm.projects[i]; - if(project['project_id'] == getParameterByName('project_id', $location.absUrl())) { - vm.selectedProject = project; - break; - } - } - } - - if(vm.selectedProject) { - $location.search('project_id', vm.selectedProject.project_id); - vm.checkProjectMember(vm.selectedProject.project_id); - } - - vm.resultCount = vm.projects.length; - - $scope.$watch('vm.filterInput', function(current, origin) { - vm.resultCount = $filter('name')(vm.projects, vm.filterInput, 'name').length; - }); - } - } - - function getProjectFailed(response) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_project')); - $scope.$emit('raiseError', true); - console.log('Failed to list projects.'); - } - - function selectItem(item) { - vm.selectedProject = item; - $location.search('project_id', vm.selectedProject.project_id); - $scope.$emit('projectChanged', true); - } - - $scope.$on('$locationChangeSuccess', function(e) { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.isOpen = false; - vm.checkProjectMember(vm.selectedProject.project_id); - }); - - function checkProjectMember(projectId) { - CurrentProjectMemberService(projectId) - .success(getCurrentProjectMemberSuccess) - .error(getCurrentProjectMemberFailed); - } - - function getCurrentProjectMemberSuccess(data, status) { - console.log('Successful get current project member:' + status); - vm.isProjectMember = true; - if(data && data['roles'] && data['roles'].length > 0) { - vm.roleId = data['roles'][0]['role_id']; - } - } - - function getCurrentProjectMemberFailed(data, status) { - vm.isProjectMember = false; - console.log('Current user has no member for the project:' + status + ', location.url:' + $location.url()); - vm.target = 'repositories'; - } - - } - - function retrieveProjects() { - var directive = { - restrict: 'E', - templateUrl: '/static/resources/js/components/details/retrieve-projects.directive.html', - scope: { - 'target': '=', - 'isOpen': '=', - 'selectedProject': '=', - 'isPublic': '=', - 'isProjectMember': '=', - 'roleId': '=' - }, - link: link, - controller: RetrieveProjectsController, - bindToController: true, - controllerAs: 'vm' - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - - $(document).on('click', clickHandler); - - function clickHandler(e) { - $('[data-toggle="popover"],[data-original-title]').each(function () { - if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) { - (($(this).popover('hide').data('bs.popover')||{}).inState||{}).click = false; - } - }); - var targetId = $(e.target).attr('id'); - if(targetId === 'switchPane' || - targetId === 'retrievePane' || - targetId === 'retrieveFilter') { - return; - }else{ - ctrl.isOpen = false; - scope.$apply(); - } - } - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/details/switch-pane-projects.directive.html b/src/ui/static/resources/js/components/details/switch-pane-projects.directive.html deleted file mode 100644 index d83d29be4..000000000 --- a/src/ui/static/resources/js/components/details/switch-pane-projects.directive.html +++ /dev/null @@ -1,19 +0,0 @@ - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/details/switch-pane-projects.directive.js b/src/ui/static/resources/js/components/details/switch-pane-projects.directive.js deleted file mode 100644 index d0a8c994e..000000000 --- a/src/ui/static/resources/js/components/details/switch-pane-projects.directive.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.details') - .directive('switchPaneProjects', switchPaneProjects); - - SwitchPaneProjectsController.$inject = ['$scope']; - - function SwitchPaneProjectsController($scope) { - var vm = this; - - $scope.$watch('vm.selectedProject', function(current, origin) { - if(current){ - vm.projectName = current.name; - vm.selectedProject = current; - } - }); - - vm.switchPane = switchPane; - - function switchPane() { - if(vm.isOpen) { - vm.isOpen = false; - }else{ - vm.isOpen = true; - } - } - - } - - function switchPaneProjects() { - var directive = { - restrict: 'E', - templateUrl: '/static/resources/js/components/details/switch-pane-projects.directive.html', - scope: { - 'isOpen': '=', - 'selectedProject': '=' - }, - controller: SwitchPaneProjectsController, - controllerAs: 'vm', - bindToController: true - }; - - return directive; - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html deleted file mode 100644 index 9c8c5dbbd..000000000 --- a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html +++ /dev/null @@ -1,18 +0,0 @@ - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js deleted file mode 100644 index 5e7fa533c..000000000 --- a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.dismissable.alerts') - .directive('dismissableAlerts', dismissableAlerts); - - function dismissableAlerts() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/dismissable-alerts/dismissable-alerts.directive.html', - 'link': link - }; - return directive; - function link(scope, element, attrs, ctrl) { - - scope.close = function() { - scope.toggleAlert = false; - }; - scope.$on('raiseAlert', function(e, val) { - console.log('received raiseAlert:' + angular.toJson(val)); - if(val.show) { - scope.message = val.message; - scope.toggleAlert = true; - }else{ - scope.message = ''; - scope.toggleAlert = false; - } - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js b/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js deleted file mode 100644 index cc1f2e2a7..000000000 --- a/src/ui/static/resources/js/components/dismissable-alerts/dismissable-alerts.module.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular.module('harbor.dismissable.alerts', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/element-height/element-height.inspector.js b/src/ui/static/resources/js/components/element-height/element-height.inspector.js deleted file mode 100644 index bf7350a97..000000000 --- a/src/ui/static/resources/js/components/element-height/element-height.inspector.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.element.height') - .directive('elementHeight', elementHeight); - - function elementHeight($window) { - var directive = { - 'restrict': 'A', - 'link': link - }; - - return directive; - - function link(scope, element, attrs) { - - var w = angular.element($window); - - scope.getDimension = function() { - return {'h' : w.height()}; - }; - - if(!angular.isDefined(scope.subsHeight)) {scope.subsHeight = 110;} - if(!angular.isDefined(scope.subsSection)) {scope.subsSection = 32;} - if(!angular.isDefined(scope.subsSubPane)) {scope.subsSubPane = 226;} - if(!angular.isDefined(scope.subsTblBody)) {scope.subsTblBody = 40;} - - scope.$watch(scope.getDimension, function(current) { - if(current) { - var h = current.h; - element.css({'height': (h - scope.subsHeight) + 'px'}); - element.find('.section').css({'height': (h - scope.subsHeight - scope.subsSection) + 'px'}); - element.find('.sub-pane').css({'height': (h - scope.subsHeight - scope.subsSubPane) + 'px'}); - element.find('.tab-pane').css({'height': (h - scope.subsHeight - scope.subsSubPane - scope.subsSection -100) + 'px'}); - } - }, true); - - w.on('pageshow, resize', function() { - scope.$apply(); - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/components/element-height/element-height.module.js b/src/ui/static/resources/js/components/element-height/element-height.module.js deleted file mode 100644 index 14be71f1e..000000000 --- a/src/ui/static/resources/js/components/element-height/element-height.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.element.height', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/inline-help/inline-help.directive.html b/src/ui/static/resources/js/components/inline-help/inline-help.directive.html deleted file mode 100644 index d843a57f6..000000000 --- a/src/ui/static/resources/js/components/inline-help/inline-help.directive.html +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/inline-help/inline-help.directive.js b/src/ui/static/resources/js/components/inline-help/inline-help.directive.js deleted file mode 100644 index 284c85baf..000000000 --- a/src/ui/static/resources/js/components/inline-help/inline-help.directive.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.inline.help') - .directive('inlineHelp', inlineHelp); - function InlineHelpController() { - var vm = this; - } - function inlineHelp() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/inline-help/inline-help.directive.html', - 'scope': { - 'helpTitle': '@', - 'content': '@' - }, - 'replace': true, - 'link': link, - 'controller': InlineHelpController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - function link(scope, element, attr, ctrl) { - element.popover({ - 'title': ctrl.helpTitle, - 'content': ctrl.content, - 'html': true - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/inline-help/inline-help.module.js b/src/ui/static/resources/js/components/inline-help/inline-help.module.js deleted file mode 100644 index 26311190e..000000000 --- a/src/ui/static/resources/js/components/inline-help/inline-help.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.inline.help', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js b/src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js deleted file mode 100644 index 073d3dceb..000000000 --- a/src/ui/static/resources/js/components/loading-progress/loading-progress.directive.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.loading.progress') - .directive('loadingProgress', loadingProgress); - - function loadingProgress() { - var directive = { - 'restrict': 'EA', - 'scope': { - 'toggleInProgress': '=', - 'hideTarget': '@' - }, - 'link': link - }; - - return directive; - - function link(scope, element, attrs) { - var spinner = $(''); - - function convertToBoolean(val) { - return val === 'true' ? true : false; - } - - var hideTarget = convertToBoolean(scope.hideTarget); - - var pristine = element.html(); - - scope.$watch('toggleInProgress', function(current) { - if(scope.toggleInProgress) { - element.attr('disabled', 'disabled'); - if(hideTarget) { - element.html(spinner); - }else{ - spinner = spinner.css({'margin-left': '5px'}); - element.append(spinner); - } - }else{ - if(hideTarget) { - element.html(pristine); - }else{ - element.find('.loading-progress').remove(); - } - element.removeAttr('disabled'); - } - }); - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/loading-progress/loading-progress.module.js b/src/ui/static/resources/js/components/loading-progress/loading-progress.module.js deleted file mode 100644 index 076da55c5..000000000 --- a/src/ui/static/resources/js/components/loading-progress/loading-progress.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.loading.progress', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/log/advanced-search.directive.html b/src/ui/static/resources/js/components/log/advanced-search.directive.html deleted file mode 100644 index d90829e3a..000000000 --- a/src/ui/static/resources/js/components/log/advanced-search.directive.html +++ /dev/null @@ -1,68 +0,0 @@ - -
-
-
-
-
-
- -
-
-  // 'all' | tr //   -  Create   -  Pull   -  Push   -  Delete   -  // 'others' | tr //   - -
- -
- -
- -
- // 'from' | tr //: - -
- - - - -
-
- -
- // 'to' | tr //: -
- - - - -
-
- -
-
-
-
-
- -
-
-
-
-
\ No newline at end of file diff --git a/src/ui/static/resources/js/components/log/advanced-search.directive.js b/src/ui/static/resources/js/components/log/advanced-search.directive.js deleted file mode 100644 index 338c717dc..000000000 --- a/src/ui/static/resources/js/components/log/advanced-search.directive.js +++ /dev/null @@ -1,178 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.log') - .directive('advancedSearch', advancedSearch); - - AdvancedSearchController.$inject = ['$scope', 'ListLogService', '$filter', 'trFilter']; - - function AdvancedSearchController($scope, ListLogService, $filter, trFilter) { - var vm = this; - - vm.checkOperation = checkOperation; - vm.close = close; - - vm.opAll = true; - - vm.doSearch = doSearch; - - $scope.$watch('vm.op', function(current) { - if(current && vm.op[0] === 'all') { - vm.opCreate = true; - vm.opPull = true; - vm.opPush = true; - vm.opDelete = true; - vm.opOthers = true; - } - }, true); - - $scope.$watch('vm.fromDate', function(current) { - if(current) { - vm.fromDate = current; - } - }); - - $scope.$watch('vm.toDate', function(current) { - if(current) { - vm.toDate = current; - } - }); - - - vm.opCreate = true; - vm.opPull = true; - vm.opPush = true; - vm.opDelete = true; - vm.opOthers = true; - vm.others = ''; - - vm.op = []; - vm.op.push('all'); - function checkOperation(e) { - if(e.checked === 'all') { - vm.opCreate = vm.opAll; - vm.opPull = vm.opAll; - vm.opPush = vm.opAll; - vm.opDelete = vm.opAll; - vm.opOthers = vm.opAll; - }else { - vm.opAll = false; - } - - vm.op = []; - - if(vm.opCreate) { - vm.op.push('create'); - } - if(vm.opPull) { - vm.op.push('pull'); - } - if(vm.opPush) { - vm.op.push('push'); - } - if(vm.opDelete) { - vm.op.push('delete'); - } - if(vm.opOthers && $.trim(vm.others) !== '') { - vm.op.push($.trim(vm.others)); - } - } - - vm.pickUp = pickUp; - - function pickUp(e) { - switch(e.key){ - case 'fromDate': - vm.fromDate = e.value; - break; - case 'toDate': - vm.toDate = e.value; - break; - } - $scope.$apply(); - } - - function close() { - vm.op = []; - vm.op.push('all'); - vm.fromDate = ''; - vm.toDate = ''; - vm.others = ''; - vm.isOpen = false; - } - - function doSearch (e){ - if(vm.opOthers && $.trim(vm.others) !== '') { - e.op.push(vm.others); - } - if(vm.fromDate && vm.toDate && (getDateValue(vm.fromDate) > getDateValue(vm.toDate))) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('begin_date_is_later_than_end_date')); - $scope.$emit('raiseError', true); - return - } - vm.search(e); - } - - function getDateValue(date) { - if(date) { - return new Date(date); - } - return 0; - } - } - - function advancedSearch(I18nService) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/log/advanced-search.directive.html', - 'scope': { - 'isOpen': '=', - 'op': '=', - 'opOthers': '=', - 'others': '=', - 'fromDate': '=', - 'toDate': '=', - 'search': '&' - }, - 'link': link, - 'controller': AdvancedSearchController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('.datetimepicker').datetimepicker({ - locale: I18nService().getCurrentLanguage(), - ignoreReadonly: true, - format: 'L', - showClear: true - }); - element.find('#fromDatePicker').on('blur', function(){ - ctrl.pickUp({'key': 'fromDate', 'value': $(this).val()}); - }); - element.find('#toDatePicker').on('blur', function(){ - ctrl.pickUp({'key': 'toDate', 'value': $(this).val()}); - }); - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/log/list-log.directive.html b/src/ui/static/resources/js/components/log/list-log.directive.html deleted file mode 100644 index 8cb2225da..000000000 --- a/src/ui/static/resources/js/components/log/list-log.directive.html +++ /dev/null @@ -1,57 +0,0 @@ - -
-
-
-
- - - - -
-
- - - -
-
- -
-
-
- - - - - - - - -
// 'username' | tr //// 'repository_name' | tr //// 'tag' | tr //// 'operation' | tr //// 'timestamp' | tr //
-
-
- - - - - - -
//log.username////log.repo_name////log.repo_tag////log.operation////log.op_time | dateL : 'YYYY-MM-DD HH:mm:ss'//
-
-
- -
-
-
diff --git a/src/ui/static/resources/js/components/log/list-log.directive.js b/src/ui/static/resources/js/components/log/list-log.directive.js deleted file mode 100644 index 481b1c28c..000000000 --- a/src/ui/static/resources/js/components/log/list-log.directive.js +++ /dev/null @@ -1,178 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.log') - .directive('listLog', listLog); - - ListLogController.$inject = ['$scope','ListLogService', 'getParameterByName', '$location', '$filter', 'trFilter']; - - function ListLogController($scope, ListLogService, getParameterByName, $location, $filter, trFilter) { - - $scope.subsTabPane = 30; - - var vm = this; - - vm.sectionHeight = {'min-height': '579px'}; - - vm.isOpen = false; - - vm.beginTimestamp = 0; - vm.endTimestamp = 0; - vm.keywords = ''; - - vm.username = $location.hash() || ''; - - vm.op = []; - vm.opOthers = true; - - vm.search = search; - vm.showAdvancedSearch = showAdvancedSearch; - - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.queryParams = { - 'beginTimestamp' : vm.beginTimestamp, - 'endTimestamp' : vm.endTimestamp, - 'keywords' : vm.keywords, - 'projectId': vm.projectId, - 'username' : vm.username - }; - - vm.page = 1; - vm.pageSize = 15; - - $scope.$watch('vm.page', function(current, origin) { - if(current) { - vm.page = current; - retrieve(vm.queryParams, vm.page, vm.pageSize); - } - }); - - $scope.$on('retrieveData', function(e, val) { - if(val) { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.queryParams = { - 'beginTimestamp' : vm.beginTimestamp, - 'endTimestamp' : vm.endTimestamp, - 'keywords' : vm.keywords, - 'projectId': vm.projectId, - 'username' : vm.username - }; - vm.username = ''; - retrieve(vm.queryParams, vm.page, vm.pageSize); - } - }); - - function search(e) { - - vm.page = 1; - - if(e.op[0] === 'all') { - e.op = ['create', 'pull', 'push', 'delete']; - } - if(vm.opOthers && $.trim(vm.others) !== '') { - e.op.push(vm.others); - } - - vm.queryParams.keywords = e.op.join('/'); - vm.queryParams.username = e.username; - - vm.queryParams.beginTimestamp = toUTCSeconds(vm.fromDate, 0, 0, 0); - vm.queryParams.endTimestamp = toUTCSeconds(vm.toDate, 23, 59, 59); - - retrieve(vm.queryParams, vm.page, vm.pageSize); - - } - - function showAdvancedSearch() { - if(vm.isOpen){ - vm.isOpen = false; - }else{ - vm.isOpen = true; - } - } - - function retrieve(queryParams, page, pageSize) { - ListLogService(queryParams, page, pageSize) - .then(listLogComplete) - .catch(listLogFailed); - } - - function listLogComplete(response) { - vm.logs = response.data; - vm.totalCount = response.headers('X-Total-Count'); - - console.log('Total Count in logs:' + vm.totalCount + ', page:' + vm.page); - - vm.isOpen = false; - } - function listLogFailed(response){ - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_log') + response); - $scope.$emit('raiseError', true); - console.log('Failed to get log:' + response); - } - - function toUTCSeconds(date, hour, min, sec) { - if(!angular.isDefined(date) || date === '') { - return 0; - } - - var t = new Date(date); - t.setHours(hour); - t.setMinutes(min); - t.setSeconds(sec); - - return t.getTime() / 1000; - } - - } - - listLog.$inject = ['$timeout']; - - function listLog($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/log/list-log.directive.html', - 'scope': { - 'sectionHeight': '=' - }, - 'link': link, - 'controller': ListLogController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.search({'op': ctrl.op, 'username': ctrl.username}); - } else { - $timeout(function() { - if(ctrl.username.length === 0) { - ctrl.search({'op': ctrl.op, 'username': ctrl.username}); - } - }); - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/log/log.config.js b/src/ui/static/resources/js/components/log/log.config.js deleted file mode 100644 index 1f5e1c73d..000000000 --- a/src/ui/static/resources/js/components/log/log.config.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.log'); - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/log/log.module.js b/src/ui/static/resources/js/components/log/log.module.js deleted file mode 100644 index 94bf397ae..000000000 --- a/src/ui/static/resources/js/components/log/log.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.log', [ - 'harbor.services.log' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html deleted file mode 100644 index 257d6b09e..000000000 --- a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.html +++ /dev/null @@ -1,30 +0,0 @@ - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js deleted file mode 100644 index 7557f5fe9..000000000 --- a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.directive.js +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.modal.dialog') - .directive('modalDialog', modalDialog); - - ModalDialogController.$inject = ['$scope']; - - function ModalDialogController($scope) { - var vm = this; - - } - - function modalDialog() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/modal-dialog/modal-dialog.directive.html', - 'link': link, - 'scope': { - 'contentType': '@', - 'modalTitle': '@', - 'modalMessage': '@', - 'action': '&', - 'confirmOnly': '=' - }, - 'controller': ModalDialogController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - scope.$watch('contentType', function(current) { - if(current) { - ctrl.contentType = current; - } - }); - scope.$watch('confirmOnly', function(current) { - if(current) { - ctrl.confirmOnly = current; - } - }); - - scope.$watch('vm.modalMessage', function(current) { - if(current) { - switch(ctrl.contentType) { - case 'text/html': - element.find('.modal-body').html(current); break; - case 'text/plain': - element.find('.modal-body').text(current); break; - default: - element.find('.modal-body').text(current); break; - } - } - }); - - scope.$on('showDialog', function(e, val) { - if(val) { - element.find('#myModal').modal('show'); - }else{ - element.find('#myModal').modal('hide'); - } - }); - - element.find('#btnOk').on('click', clickHandler); - - function clickHandler(e) { - ctrl.action(); - } - } - } - -})(); diff --git a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js b/src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js deleted file mode 100644 index 2ac2ba083..000000000 --- a/src/ui/static/resources/js/components/modal-dialog/modal-dialog.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.modal.dialog', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js b/src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js deleted file mode 100644 index 136763fd6..000000000 --- a/src/ui/static/resources/js/components/optional-menu/optional-menu.directive.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.optional.menu') - .directive('optionalMenu', optionalMenu); - - OptionalMenuController.$inject = ['$scope', '$window', 'I18nService', 'LogOutService', 'currentUser', '$timeout', 'trFilter', '$filter', 'GetVolumeInfoService']; - - function OptionalMenuController($scope, $window, I18nService, LogOutService, currentUser, $timeoutm, trFilter, $filter, GetVolumeInfoService) { - var vm = this; - - var i18n = I18nService(); - i18n.setCurrentLanguage(vm.language); - vm.languageName = i18n.getLanguageName(vm.language); - console.log('current language:' + vm.languageName); - - vm.supportLanguages = i18n.getSupportLanguages(); - vm.user = currentUser.get(); - vm.setLanguage = setLanguage; - vm.logOut = logOut; - vm.about = about; - - function setLanguage(language) { - vm.languageName = i18n.getLanguageName(vm.language); - var hash = $window.location.hash; - $window.location.href = '/language?lang=' + language + '&hash=' + encodeURIComponent(hash); - } - function logOut() { - LogOutService() - .success(logOutSuccess) - .error(logOutFailed); - } - function logOutSuccess(data, status) { - currentUser.unset(); - $window.location.href= '/'; - } - function logOutFailed(data, status) { - console.log('Failed to log out:' + data); - } - - var raiseInfo = { - 'confirmOnly': true, - 'contentType': 'text/html', - 'action': function() {} - }; - - function about() { - $scope.$emit('modalTitle', $filter('tr')('about_harbor')); - vm.modalMessage = $filter('tr')('current_version', [vm.version || 'Unknown']); - if(vm.showDownloadCert === 'true') { - appendDownloadCertLink(); - } - GetVolumeInfoService("data") - .then(getVolumeInfoSuccess, getVolumeInfoFailed); - } - function getVolumeInfoSuccess(response) { - var storage = response.data; - vm.modalMessage += '
' + $filter('tr')('current_storage', - [toGigaBytes(storage['storage']['free']), toGigaBytes(storage['storage']['total'])]); - $scope.$emit('modalMessage', vm.modalMessage); - $scope.$emit('raiseInfo', raiseInfo); - - } - function getVolumeInfoFailed(response) { - $scope.$emit('modalMessage', vm.modalMessage); - $scope.$emit('raiseInfo', raiseInfo); - } - - function toGigaBytes(val) { - return Math.round(val / (1024 * 1024 * 1024)); - } - - function appendDownloadCertLink() { - vm.modalMessage += '
' + $filter('tr')('default_root_cert', ['/api/systeminfo/getcert', $filter('tr')('download')]); - } - - } - - function optionalMenu() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/optional_menu?timestamp=' + new Date().getTime(), - 'scope': { - 'version': '@', - 'language': '@', - 'showDownloadCert': '@' - }, - 'controller': OptionalMenuController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/optional-menu/optional-menu.module.js b/src/ui/static/resources/js/components/optional-menu/optional-menu.module.js deleted file mode 100644 index 71cde6b35..000000000 --- a/src/ui/static/resources/js/components/optional-menu/optional-menu.module.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.optional.menu', [ - 'harbor.services.user', - 'harbor.services.i18n' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/paginator/paginator.directive.html b/src/ui/static/resources/js/components/paginator/paginator.directive.html deleted file mode 100644 index c6f466066..000000000 --- a/src/ui/static/resources/js/components/paginator/paginator.directive.html +++ /dev/null @@ -1,39 +0,0 @@ - - -

// 'total' | tr // // vm.totalCount // // 'items' | tr //

\ No newline at end of file diff --git a/src/ui/static/resources/js/components/paginator/paginator.directive.js b/src/ui/static/resources/js/components/paginator/paginator.directive.js deleted file mode 100644 index fdcca1c9e..000000000 --- a/src/ui/static/resources/js/components/paginator/paginator.directive.js +++ /dev/null @@ -1,253 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.paginator') - .directive('paginator', paginator); - - PaginatorController.$inject = []; - - function PaginatorController() { - var vm = this; - } - - paginator.$inject = []; - - function paginator() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/paginator/paginator.directive.html', - 'scope': { - 'totalCount': '@', - 'pageSize': '@', - 'page': '=', - 'displayCount': '@' - }, - 'link': link, - 'controller': PaginatorController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - scope.$watch('vm.page', function(current) { - if(current) { - ctrl.page = current; - togglePageButton(); - } - }); - - var tc; - - scope.$watch('vm.totalCount', function(current) { - if(current) { - var totalCount = current; - - tc = new TimeCounter(); - - console.log('Total Count:' + totalCount + ', Page Size:' + ctrl.pageSize + ', Display Count:' + ctrl.displayCount + ', Page:' + ctrl.page); - - ctrl.buttonCount = Math.ceil(totalCount / ctrl.pageSize); - - if(ctrl.buttonCount <= ctrl.displayCount) { - tc.setMaximum(1); - ctrl.visible = false; - }else{ - tc.setMaximum(Math.ceil(ctrl.buttonCount / ctrl.displayCount)); - ctrl.visible = true; - } - - ctrl.gotoFirst = gotoFirst; - ctrl.gotoLast = gotoLast; - - if(ctrl.buttonCount < ctrl.page) { - ctrl.page = ctrl.buttonCount; - } - - ctrl.previous = previous; - ctrl.next = next; - - drawButtons(tc.getTime()); - - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - - toggleFirst(); - toggleLast(); - - togglePageButton(); - - } - }); - - var TimeCounter = function() { - this.time = 0; - this.minimum = 0; - this.maximum = 0; - }; - - TimeCounter.prototype.setMaximum = function(maximum) { - this.maximum = maximum; - }; - - TimeCounter.prototype.getMaximum = function() { - return this.maximum; - }; - - TimeCounter.prototype.increment = function() { - if(this.time < this.maximum) { - ++this.time; - if((ctrl.page % ctrl.displayCount) != 0) { - ctrl.page = this.time * ctrl.displayCount; - } - ++ctrl.page; - } - }; - - TimeCounter.prototype.canIncrement = function() { - if(this.time + 1 < this.maximum) { - return true; - } - return false; - }; - - TimeCounter.prototype.decrement = function() { - if(this.time > this.minimum) { - if(this.time === 0) { - ctrl.page = ctrl.displayCount; - }else{ - ctrl.page = this.time * ctrl.displayCount; - } - --this.time; - } - }; - - TimeCounter.prototype.canDecrement = function() { - if(this.time > this.minimum) { - return true; - } - return false; - }; - - TimeCounter.prototype.getTime = function() { - return this.time; - }; - - TimeCounter.prototype.setTime = function(time) { - this.time = time; - }; - - function drawButtons(time) { - element.find('li[tag="pagination-button"]').remove(); - var buttons = []; - for(var i = 1; i <= ctrl.displayCount; i++) { - var displayNumber = ctrl.displayCount * time + i; - if(displayNumber <= ctrl.buttonCount) { - buttons.push('
  • ' + displayNumber + '
  • '); - } - } - - $(buttons.join('')) - .insertAfter(element.find('ul li:eq(' + (ctrl.visible ? 1 : 0) + ')')).end() - .on('click', buttonClickHandler); - } - - function togglePrevious(status) { - ctrl.disabledPrevious = status ? '' : 'disabled'; - toggleFirst(); - toggleLast(); - } - - function toggleNext(status) { - ctrl.disabledNext = status ? '' : 'disabled'; - toggleFirst(); - toggleLast(); - } - - function toggleFirst() { - ctrl.disabledFirst = (ctrl.page > 1) ? '' : 'disabled'; - } - - function toggleLast() { - ctrl.disabledLast = (ctrl.page < ctrl.buttonCount) ? '' : 'disabled'; - } - - function buttonClickHandler(e) { - ctrl.page = $(e.target).attr('page'); - togglePageButton(); - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - - scope.$apply(); - } - - function togglePageButton() { - element.find('li[tag="pagination-button"]').removeClass('active'); - element.find('li[tag="pagination-button"] a[page="' + ctrl.page + '"]').parent().addClass('active'); - } - - function previous() { - if(tc.canDecrement()) { - tc.decrement(); - drawButtons(tc.getTime()); - togglePageButton(); - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - } - } - - function gotoFirst() { - ctrl.page = 1; - tc.setTime(0); - drawButtons(0); - - toggleFirst(); - toggleLast(); - - togglePageButton(); - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - } - - function next() { - if(tc.canIncrement()) { - tc.increment(); - drawButtons(tc.getTime()); - togglePageButton(); - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - } - } - - function gotoLast() { - ctrl.page = ctrl.buttonCount; - tc.setTime(Math.ceil(ctrl.buttonCount / ctrl.displayCount) - 1); - drawButtons(tc.getTime()); - - toggleFirst(); - toggleLast(); - - togglePageButton(); - togglePrevious(tc.canDecrement()); - toggleNext(tc.canIncrement()); - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/paginator/paginator.module.js b/src/ui/static/resources/js/components/paginator/paginator.module.js deleted file mode 100644 index f6c952621..000000000 --- a/src/ui/static/resources/js/components/paginator/paginator.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.paginator', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/add-project-member.directive.html b/src/ui/static/resources/js/components/project-member/add-project-member.directive.html deleted file mode 100644 index 806299c51..000000000 --- a/src/ui/static/resources/js/components/project-member/add-project-member.directive.html +++ /dev/null @@ -1,44 +0,0 @@ - -
    -
    -
    -
    -
    - -
    -
    - // 'username_is_required' | tr // -
    - // vm.errorMessage | tr // -
    -
    -
    - -    - -  //role.name | tr//   - -
    -
    -
    -
    - - -
    -
    -
    - -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/add-project-member.directive.js b/src/ui/static/resources/js/components/project-member/add-project-member.directive.js deleted file mode 100644 index 7018ad5b3..000000000 --- a/src/ui/static/resources/js/components/project-member/add-project-member.directive.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member') - .directive('addProjectMember', addProjectMember); - - AddProjectMemberController.$inject = ['$scope', 'roles', 'AddProjectMemberService']; - - function AddProjectMemberController($scope, roles, AddProjectMemberService) { - var vm = this; - - $scope.pm = {}; - - var pm = $scope.pm; - - vm.roles = roles(); - vm.optRole = 1; - - vm.save = save; - vm.cancel = cancel; - vm.reset = reset; - - vm.hasError = false; - vm.errorMessage = ''; - - function save(pm) { - if(pm && angular.isDefined(pm.username)) { - AddProjectMemberService(vm.projectId, vm.optRole, pm.username) - .success(addProjectMemberComplete) - .error(addProjectMemberFailed); - } - } - - function cancel(form) { - - form.$setPristine(); - form.$setUntouched(); - - vm.isOpen = false; - pm.username = ''; - vm.optRole = 1; - - vm.hasError = false; - vm.errorMessage = ''; - } - - function addProjectMemberComplete(data, status, header) { - console.log('addProjectMemberComplete: status:' + status + ', data:' + data); - vm.reload(); - vm.isOpen = false; - } - - function addProjectMemberFailed(data, status, headers) { - if(status === 403) { - vm.hasError = true; - vm.errorMessage = 'failed_to_add_member'; - } - if(status === 409 && pm.username !== '') { - vm.hasError = true; - vm.errorMessage = 'username_already_exist'; - } - if(status === 404) { - vm.hasError = true; - vm.errorMessage = 'username_does_not_exist'; - } - console.log('addProjectMemberFailed: status:' + status + ', data:' + data); - } - - function reset() { - vm.hasError = false; - vm.errorMessage = ''; - } - - } - - addProjectMember.$inject = ['$timeout']; - - function addProjectMember($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/project-member/add-project-member.directive.html', - 'scope': { - 'projectId': '@', - 'isOpen': '=', - 'reload': '&' - }, - 'link': link, - 'controller': AddProjectMemberController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - scope.form.$setPristine(); - scope.form.$setUntouched(); - scope.$watch('vm.isOpen', function(current) { - if(current) { - $timeout(function() { - element.find('[name=uUsername]:input').focus(); - }); - } - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/components/project-member/edit-project-member.directive.html b/src/ui/static/resources/js/components/project-member/edit-project-member.directive.html deleted file mode 100644 index 1d1b48f47..000000000 --- a/src/ui/static/resources/js/components/project-member/edit-project-member.directive.html +++ /dev/null @@ -1,25 +0,0 @@ - -//vm.username// - - - - - - - - - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/edit-project-member.directive.js b/src/ui/static/resources/js/components/project-member/edit-project-member.directive.js deleted file mode 100644 index b2f7d9c49..000000000 --- a/src/ui/static/resources/js/components/project-member/edit-project-member.directive.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member') - .directive('editProjectMember', editProjectMember); - - EditProjectMemberController.$inject = ['$scope', 'roles', 'getRole','EditProjectMemberService', '$filter', 'trFilter']; - - function EditProjectMemberController($scope, roles, getRole, EditProjectMemberService, $filter, trFilter) { - var vm = this; - - vm.roles = roles(); - vm.editMode = false; - vm.lastRoleName = vm.roleName; - - $scope.$watch('vm.roleName', function(current, origin) { - if(current) { - vm.currentRole = getRole({'key': 'roleName', 'value': current}); - vm.roleId = vm.currentRole.id; - } - }); - - vm.updateProjectMember = updateProjectMember; - vm.deleteProjectMember = deleteProjectMember; - vm.cancelUpdate = cancelUpdate; - - function updateProjectMember(e) { - if(vm.editMode) { - console.log('update project member, roleId:' + e.roleId); - EditProjectMemberService(e.projectId, e.userId, e.roleId) - .success(editProjectMemberComplete) - .error(editProjectMemberFailed); - }else { - vm.editMode = true; - } - } - - function deleteProjectMember() { - vm.delete(); - } - - function editProjectMemberComplete(data, status, headers) { - console.log('edit project member complete: ' + status); - vm.lastRoleName = vm.roleName; - vm.editMode = false; - vm.reload(); - } - - function editProjectMemberFailed(e) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_change_member')); - $scope.$emit('raiseError', true); - console.log('Failed to edit project member:' + e); - } - - function cancelUpdate() { - vm.editMode = false; - vm.roleName = vm.lastRoleName; - } - - } - - function editProjectMember() { - var directive = { - 'restrict': 'A', - 'templateUrl': '/static/resources/js/components/project-member/edit-project-member.directive.html', - 'scope': { - 'username': '=', - 'userId': '=', - 'currentUserId': '=', - 'roleName': '=', - 'projectId': '=', - 'delete': '&', - 'reload': '&', - 'currentRoleId': '@' - }, - 'controller': EditProjectMemberController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/list-project-member.directive.html b/src/ui/static/resources/js/components/project-member/list-project-member.directive.html deleted file mode 100644 index 31a5af950..000000000 --- a/src/ui/static/resources/js/components/project-member/list-project-member.directive.html +++ /dev/null @@ -1,47 +0,0 @@ - -
    -
    -
    -
    - - - - -
    - - -
    - -
    -
    -
    - - - - -
    // 'username' | tr //// 'role' | tr //// 'operation' | tr //
    -
    -
    - - - - -
    -
    -
    -
    -
    -
    diff --git a/src/ui/static/resources/js/components/project-member/list-project-member.directive.js b/src/ui/static/resources/js/components/project-member/list-project-member.directive.js deleted file mode 100644 index ba582dcae..000000000 --- a/src/ui/static/resources/js/components/project-member/list-project-member.directive.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member') - .directive('listProjectMember', listProjectMember); - - ListProjectMemberController.$inject = ['$scope', 'ListProjectMemberService', 'DeleteProjectMemberService', 'getParameterByName', '$location', 'currentUser', '$filter', 'trFilter', '$window']; - - function ListProjectMemberController($scope, ListProjectMemberService, DeleteProjectMemberService, getParameterByName, $location, currentUser, $filter, trFilter, $window) { - - $scope.subsTabPane = 30; - - var vm = this; - - vm.sectionHeight = {'min-height': '579px'}; - - vm.isOpen = false; - vm.search = search; - vm.addProjectMember = addProjectMember; - vm.deleteProjectMember = deleteProjectMember; - vm.retrieve = retrieve; - vm.username = ''; - - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.retrieve(); - - $scope.$on('retrieveData', function(e, val) { - if(val) { - console.log('received retrieve data:' + val); - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.username = ''; - vm.retrieve(); - } - }); - - function search(e) { - vm.projectId = e.projectId; - vm.username = e.username; - retrieve(); - } - - function addProjectMember() { - vm.isOpen = !vm.isOpen; - } - - function deleteProjectMember(e) { - DeleteProjectMemberService(e.projectId, e.userId) - .success(deleteProjectMemberSuccess) - .error(deleteProjectMemberFailed); - } - - function deleteProjectMemberSuccess(data, status) { - console.log('Successful delete project member.'); - vm.retrieve(); - } - - function deleteProjectMemberFailed(e) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_member')); - $scope.$emit('raiseError', true); - console.log('Failed to edit project member:' + e); - } - - function retrieve() { - ListProjectMemberService(vm.projectId, {'username': vm.username}) - .then(getProjectMemberComplete) - .catch(getProjectMemberFailed); - } - - function getProjectMemberComplete(response) { - vm.user = currentUser.get(); - vm.projectMembers = response.data || []; - } - - function getProjectMemberFailed(response) { - console.log('Failed to get project members:' + response); - vm.projectMembers = []; - $location.url('repositories').search('project_id', vm.projectId); - } - - } - - listProjectMember.$inject = ['$timeout']; - - function listProjectMember($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/project-member/list-project-member.directive.html', - 'scope': { - 'sectionHeight': '=', - 'roleId': '@' - }, - 'link': link, - 'controller': ListProjectMemberController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.retrieve(); - } else { - $timeout(function() { - if(ctrl.username.length === 0) { - ctrl.retrieve(); - } - }); - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/project-member.config.js b/src/ui/static/resources/js/components/project-member/project-member.config.js deleted file mode 100644 index 9c0438e2e..000000000 --- a/src/ui/static/resources/js/components/project-member/project-member.config.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member') - .constant('roles', roles) - .factory('getRole', getRole); - - function roles() { - return [ - {'id': '1', 'name': 'project_admin', 'roleName': 'projectAdmin'}, - {'id': '2', 'name': 'developer', 'roleName': 'developer'}, - {'id': '3', 'name': 'guest', 'roleName': 'guest'} - ]; - } - - getRole.$inject = ['roles', '$filter', 'trFilter']; - - function getRole(roles, $filter, trFilter) { - var r = roles(); - return get; - function get(query) { - - for(var i = 0; i < r.length; i++) { - var role = r[i]; - if(query.key === 'roleName' && role.roleName === query.value || query.key === 'roleId' && role.id === String(query.value)) { - return role; - } - } - } - } -})(); diff --git a/src/ui/static/resources/js/components/project-member/project-member.module.js b/src/ui/static/resources/js/components/project-member/project-member.module.js deleted file mode 100644 index 45c26aab3..000000000 --- a/src/ui/static/resources/js/components/project-member/project-member.module.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member', [ - 'harbor.services.project.member', - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/switch-role.directive.html b/src/ui/static/resources/js/components/project-member/switch-role.directive.html deleted file mode 100644 index dc3c8cef5..000000000 --- a/src/ui/static/resources/js/components/project-member/switch-role.directive.html +++ /dev/null @@ -1,19 +0,0 @@ - - - //vm.currentRole.name | tr// - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project-member/switch-role.directive.js b/src/ui/static/resources/js/components/project-member/switch-role.directive.js deleted file mode 100644 index 6f9d0a352..000000000 --- a/src/ui/static/resources/js/components/project-member/switch-role.directive.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project.member') - .directive('switchRole', switchRole); - - SwitchRoleController.$inject = ['getRole', '$scope']; - - function SwitchRoleController(getRole, $scope) { - var vm = this; - - $scope.$watch('vm.roleName', function(current,origin) { - if(current) { - vm.currentRole = getRole({'key': 'roleName', 'value': current}); - } - }); - - vm.selectRole = selectRole; - - function selectRole(role) { - vm.currentRole = getRole({'key': 'roleName', 'value': role.roleName}); - vm.roleName = role.roleName; - } - - } - - function switchRole() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/project-member/switch-role.directive.html', - 'scope': { - 'roles': '=', - 'editMode': '=', - 'userId': '=', - 'roleName': '=' - }, - 'controller' : SwitchRoleController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project/add-project.directive.html b/src/ui/static/resources/js/components/project/add-project.directive.html deleted file mode 100644 index 35fb17e92..000000000 --- a/src/ui/static/resources/js/components/project/add-project.directive.html +++ /dev/null @@ -1,44 +0,0 @@ - -
    -
    -
    -
    -
    - -
    -
    - // 'project_name_is_required' | tr // - // 'project_name_is_invalid' | tr // -
    - // vm.errorMessage | tr // -
    -
    -
    - - -
    -
    -
    -
    - - -
    -
    -
    -
    -
    diff --git a/src/ui/static/resources/js/components/project/add-project.directive.js b/src/ui/static/resources/js/components/project/add-project.directive.js deleted file mode 100644 index 0a96d3961..000000000 --- a/src/ui/static/resources/js/components/project/add-project.directive.js +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project') - .directive('addProject', addProject); - - AddProjectController.$inject = ['AddProjectService', '$scope']; - - function AddProjectController(AddProjectService, $scope) { - var vm = this; - - $scope.p = {}; - var vm0 = $scope.p; - vm0.projectName = ''; - vm.isPublic = 0; - - vm.addProject = addProject; - vm.cancel = cancel; - - vm.reset = reset; - - vm.hasError = false; - vm.errorMessage = ''; - - $scope.$watch('vm.isOpen', function(current) { - if(current) { - $scope.form.$setPristine(); - $scope.form.$setUntouched(); - vm0.projectName = ''; - vm.isPublic = 0; - } - }); - - - function addProject(p) { - if(p && angular.isDefined(p.projectName)) { - vm.isPublic = vm.isPublic ? 1 : 0; - AddProjectService(p.projectName, vm.isPublic) - .success(addProjectSuccess) - .error(addProjectFailed); - } - } - - function addProjectSuccess(data, status) { - $scope.$emit('addedSuccess', true); - vm.hasError = false; - vm.errorMessage = ''; - vm.isOpen = false; - } - - function addProjectFailed(data, status) { - vm.hasError = true; - if(status === 400 && vm0.projectName !== '' && vm0.projectName.length < 4) { - vm.errorMessage = 'project_name_is_too_short'; - } - if(status === 400 && vm0.projectName.length > 30) { - vm.errorMessage = 'project_name_is_too_long'; - } - if(status === 409 && vm0.projectName !== '') { - vm.errorMessage = 'project_already_exist'; - } - console.log('Failed to add project:' + status); - } - - function cancel(form){ - if(form) { - form.$setPristine(); - form.$setUntouched(); - } - vm.isOpen = false; - vm0.projectName = ''; - vm.isPublic = 0; - - vm.hasError = false; - vm.errorMessage = ''; - } - - function reset() { - vm.hasError = false; - vm.errorMessage = ''; - } - } - - addProject.$inject = ['$timeout']; - - function addProject($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/project/add-project.directive.html', - 'controller': AddProjectController, - 'link': link, - 'scope' : { - 'isOpen': '=' - }, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - scope.$watch('vm.isOpen', function(current) { - if(current) { - $timeout(function() { - element.find(':input[name=uProjectName]').focus(); - }); - } - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/components/project/project.module.js b/src/ui/static/resources/js/components/project/project.module.js deleted file mode 100644 index dd87d77b4..000000000 --- a/src/ui/static/resources/js/components/project/project.module.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.project', [ - 'harbor.services.project', - 'harbor.services.user' - ]); -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project/publicity-button.directive.html b/src/ui/static/resources/js/components/project/publicity-button.directive.html deleted file mode 100644 index 7c9038831..000000000 --- a/src/ui/static/resources/js/components/project/publicity-button.directive.html +++ /dev/null @@ -1,16 +0,0 @@ - - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/project/publicity-button.directive.js b/src/ui/static/resources/js/components/project/publicity-button.directive.js deleted file mode 100644 index 1af415ecc..000000000 --- a/src/ui/static/resources/js/components/project/publicity-button.directive.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.project') - .directive('publicityButton', publicityButton); - - PublicityButtonController.$inject = ['$scope', 'ToggleProjectPublicityService', '$filter', 'trFilter']; - - function PublicityButtonController($scope, ToggleProjectPublicityService, $filter, trFilter) { - var vm = this; - vm.toggle = toggle; - - function toggle() { - vm.isPublic = vm.isPublic ? 0 : 1; - ToggleProjectPublicityService(vm.projectId, vm.isPublic) - .success(toggleProjectPublicitySuccess) - .error(toggleProjectPublicityFailed); - } - - function toggleProjectPublicitySuccess(data, status) { - - console.log('Successful toggle project publicity.'); - } - - function toggleProjectPublicityFailed(e, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - var message; - if(status === 403) { - message = $filter('tr')('failed_to_toggle_publicity_insuffient_permissions'); - }else{ - message = $filter('tr')('failed_to_toggle_publicity'); - } - $scope.$emit('modalMessage', message); - $scope.$emit('raiseError', true); - - vm.isPublic = vm.isPublic ? 0 : 1; - console.log('Failed to toggle project publicity:' + e); - } - } - - function publicityButton() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/project/publicity-button.directive.html', - 'scope': { - 'isPublic': '=', - 'projectId': '=', - 'roleId': '@' - }, - 'link': link, - 'controller': PublicityButtonController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attr, ctrl) { - scope.$watch('vm.isPublic', function(current, origin) { - if(current) { - ctrl.isPublic = current; - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/replication/create-policy.directive.html b/src/ui/static/resources/js/components/replication/create-policy.directive.html deleted file mode 100644 index 33774d71a..000000000 --- a/src/ui/static/resources/js/components/replication/create-policy.directive.html +++ /dev/null @@ -1,121 +0,0 @@ - - diff --git a/src/ui/static/resources/js/components/replication/create-policy.directive.js b/src/ui/static/resources/js/components/replication/create-policy.directive.js deleted file mode 100644 index b46c25055..000000000 --- a/src/ui/static/resources/js/components/replication/create-policy.directive.js +++ /dev/null @@ -1,439 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.replication') - .directive('createPolicy', createPolicy); - - CreatePolicyController.$inject = ['$scope', 'ListReplicationPolicyService', 'ListDestinationService', 'CreateDestinationService', 'UpdateDestinationService', 'PingDestinationService', 'CreateReplicationPolicyService', 'UpdateReplicationPolicyService', 'ListDestinationPolicyService','$location', 'getParameterByName', '$filter', 'trFilter', '$q', '$timeout']; - - function CreatePolicyController($scope, ListReplicationPolicyService, ListDestinationService, CreateDestinationService, UpdateDestinationService, PingDestinationService, CreateReplicationPolicyService, UpdateReplicationPolicyService, ListDestinationPolicyService, $location, getParameterByName, $filter, trFilter, $q, $timeout) { - var vm = this; - - //Since can not set value for textarea by using vm - //use $scope for instead. - $scope.replication = {}; - $scope.replication.policy = {}; - $scope.replication.destination = {}; - - var vm0 = $scope.replication.policy; - var vm1 = $scope.replication.destination; - - vm.selectDestination = selectDestination; - vm.projectId = getParameterByName('project_id', $location.absUrl()); - - $scope.$on('$locationChangeSuccess', function() { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - }); - - vm.addNew = addNew; - vm.edit = edit; - vm.prepareDestination = prepareDestination; - vm.create = create; - vm.update = update; - vm.pingDestination = pingDestination; - vm.checkDestinationPolicyStatus = checkDestinationPolicyStatus; - - vm.targetEditable = true; - vm.checkedAddTarget = false; - - vm.notAvailable = false; - vm.pingAvailable = true; - vm.pingMessage = ''; - - vm.pingTIP = false; - vm.saveTIP = false; - - vm.closeError = closeError; - vm.toggleErrorMessage = false; - vm.errorMessages = []; - - $scope.$watch('vm.destinations', function(current) { - if(current) { - if(!angular.isArray(current) || current.length === 0) { - vm.notAvailable = true; - return; - } - if(!angular.isDefined(vm1.selection)) { - vm1.selection = current[0]; - vm1.endpoint = current[0].endpoint; - vm1.username = current[0].username; - vm1.password = current[0].password; - } - } - }); - - $scope.$watch('vm.checkedAddTarget', function(current) { - if(current) { - vm.targetEditable = true; - vm1.name = ''; - vm1.endpoint = ''; - vm1.username = ''; - vm1.password = ''; - vm.pingMessage = ''; - } - }); - - $scope.$watch('vm.targetId', function(current) { - if(current) { - vm1.selection.id = current; - } - }); - - $scope.$watch('replication.destination.endpoint', function(current) { - if(current) { - vm.notAvailable = false; - }else{ - vm.notAvailable = true; - } - }); - - function selectDestination(item) { - vm1.selection = item; - if(angular.isDefined(item)) { - vm.targetId = item.id; - vm1.endpoint = item.endpoint; - vm1.username = item.username; - vm1.password = item.password; - } - } - - function prepareDestination() { - ListDestinationService('') - .success(listDestinationSuccess) - .error(listDestinationFailed); - } - - function addNew() { - vm.modalTitle = $filter('tr')('add_new_policy', []); - - vm0.name = ''; - vm0.description = ''; - vm0.enabled = true; - } - - function edit(policyId) { - console.log('Edit policy ID:' + policyId); - vm.policyId = policyId; - - vm.modalTitle = $filter('tr')('edit_policy', []); - - ListReplicationPolicyService(policyId) - .success(listReplicationPolicySuccess) - .error(listReplicationPolicyFailed); - } - - function create(policy) { - vm.policy = policy; - saveDestination(); - } - - function saveDestination() { - - var target = { - 'name' : vm1.name, - 'endpoint': vm1.endpoint, - 'username': vm1.username, - 'password': vm1.password - }; - - if(vm.checkedAddTarget){ - CreateDestinationService(target.name, target.endpoint, target.username, target.password) - .success(createDestinationSuccess) - .error(createDestinationFailed); - }else{ - vm.policy.targetId = vm1.selection.id || vm.destinations[0].id; - saveOrUpdatePolicy(); - } - } - - function saveOrUpdatePolicy() { - vm.saveTIP = true; - - switch(vm.action) { - case 'ADD_NEW': - CreateReplicationPolicyService(vm.policy) - .success(createReplicationPolicySuccess) - .error(createReplicationPolicyFailed); - break; - case 'EDIT': - UpdateReplicationPolicyService(vm.policyId, vm.policy) - .success(updateReplicationPolicySuccess) - .error(updateReplicationPolicyFailed); - break; - default: - vm.saveTIP = false; - } - } - - function update(policy) { - vm.policy = policy; - if(vm.targetEditable) { - vm.policy.targetId = vm1.selection.id; - saveDestination(); - } - } - - function pingDestination() { - - var target = { - 'endpoint': vm1.endpoint, - 'username': vm1.username, - 'password': vm1.password - }; - - if(vm.checkedAddTarget) { - target.name = vm1.name; - } - - vm.pingMessage = $filter('tr')('pinging_target'); - vm.pingTIP = true; - vm.isError = false; - - PingDestinationService(target) - .success(pingDestinationSuccess) - .error(pingDestinationFailed); - } - - function checkDestinationPolicyStatus() { - console.log('Checking destination policy status, target_ID:' + vm.targetId); - ListDestinationPolicyService(vm.targetId) - .success(listDestinationPolicySuccess) - .error(listDestinationPolicyFailed); - } - - function closeError() { - vm.errorMessages = []; - vm.toggleErrorMessage = false; - } - - function listDestinationSuccess(data, status) { - vm.destinations = data || []; - } - function listDestinationFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_get_destination')); - console.log('Failed to get destination:' + data); - } - - function listDestinationPolicySuccess(data, status) { - if(vm.action === 'EDIT') { - console.log('Current target editable:' + vm.targetEditable + ', policy ID:' + vm.policyId); - vm.targetEditable = true; - for(var i in data) { - if(data[i].enabled === 1) { - vm.targetEditable = false; - break; - } - } - } - } - - function listDestinationPolicyFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_get_destination_policies')); - console.log('Failed to list destination policy:' + data); - } - - function listReplicationPolicySuccess(data, status) { - - var replicationPolicy = data; - - vm.targetId = replicationPolicy.target_id; - - vm0.name = replicationPolicy.name; - vm0.description = replicationPolicy.description; - vm0.enabled = (replicationPolicy.enabled === 1); - - angular.forEach(vm.destinations, function(item) { - if(item.id === vm.targetId) { - vm1.endpoint = item.endpoint; - vm1.username = item.username; - vm1.password = item.password; - } - }); - - vm.checkDestinationPolicyStatus(); - } - function listReplicationPolicyFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_get_replication_policy')); - console.log('Failed to list replication policy:' + data); - } - function createReplicationPolicySuccess(data, status) { - vm.saveTIP = false; - console.log('Successful create replication policy.'); - vm.reload(); - vm.closeDialog(); - } - function createReplicationPolicyFailed(data, status) { - vm.saveTIP = false; - if(status === 409) { - vm.errorMessages.push($filter('tr')('policy_already_exists')); - }else{ - vm.errorMessages.push($filter('tr')('failed_to_create_replication_policy')); - } - console.log('Failed to create replication policy:' + data); - } - function updateReplicationPolicySuccess(data, status) { - console.log('Successful update replication policy.'); - vm.reload(); - vm.saveTIP = false; - vm.closeDialog(); - } - function updateReplicationPolicyFailed(data, status) { - vm.saveTIP = false; - vm.errorMessages.push($filter('tr')('failed_to_update_replication_policy')); - console.log('Failed to update replication policy:' + data); - } - function createDestinationSuccess(data, status, headers) { - var content = headers('Location'); - vm.policy.targetId = Number(content.substr(content.lastIndexOf('/') + 1)); - console.log('Successful create destination, targetId:' + vm.policy.targetId); - saveOrUpdatePolicy(); - } - function createDestinationFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_create_destination')); - console.log('Failed to create destination:' + data); - } - function updateDestinationSuccess(data, status) { - console.log('Successful update destination.'); - vm.policy.targetId = vm1.selection.id; - saveOrUpdatePolicy(); - } - function updateDestinationFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_update_destination')); - $scope.$broadcast('showDialog', true); - console.log('Failed to update destination:' + data); - } - function pingDestinationSuccess(data, status) { - vm.isError = false; - vm.pingMessage = $filter('tr')('successful_ping_target', []); - vm.pingTIP = false; - } - function pingDestinationFailed(data, status) { - vm.isError = true; - if(status === 404) { - data = ''; - } - vm.pingMessage = $filter('tr')('failed_to_ping_target', []); - console.log("Failed to ping target:" + data); - - vm.pingTIP = false; - } - } - - function createPolicy($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/replication/create-policy.directive.html', - 'scope': { - 'policyId': '@', - 'modalTitle': '@', - 'reload': '&', - 'action': '=' - }, - 'link': link, - 'controller': CreatePolicyController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attr, ctrl) { - - element.find('#createPolicyModal').on('show.bs.modal', function() { - scope.$apply(function() { - scope.form.$setPristine(); - scope.form.$setUntouched(); - - scope.$watch('vm.checkedAddTarget', function(current, origin) { - if(origin) { - var d = scope.replication.destination; - if(angular.isDefined(d) && angular.isDefined(d.selection)) { - ctrl.targetId = d.selection.id; - d.endpoint = d.selection.endpoint; - d.username = d.selection.username; - d.password = d.selection.password; - ctrl.checkDestinationPolicyStatus(); - } - } - }); - - scope.$watch('vm.errorMessages', function(current) { - if(current && current.length > 0) { - ctrl.toggleErrorMessage = true; - } - }, true); - - ctrl.checkedAddTarget = false; - ctrl.targetEditable = true; - - ctrl.notAvailable = false; - - ctrl.pingMessage = ''; - ctrl.pingAvailable = true; - - ctrl.saveTIP = false; - ctrl.pingTIP = false; - ctrl.toggleErrorMessage = false; - ctrl.errorMessages = []; - - ctrl.prepareDestination(); - - switch(ctrl.action) { - case 'ADD_NEW': - ctrl.addNew(); - break; - case 'EDIT': - ctrl.edit(ctrl.policyId); - break; - } - }); - }); - - ctrl.save = save; - ctrl.closeDialog = closeDialog; - - function save(form) { - - ctrl.toggleErrorMessage = false; - ctrl.errorMessages = []; - - var postPayload = { - 'projectId': Number(ctrl.projectId), - 'name': form.policy.name, - 'enabled': form.policy.enabled ? 1 : 0, - 'description': form.policy.description, - 'cron_str': '', - 'start_time': '' - }; - switch(ctrl.action) { - case 'ADD_NEW': - ctrl.create(postPayload); - break; - case 'EDIT': - ctrl.update(postPayload); - break; - } - } - - function closeDialog() { - element.find('#createPolicyModal').modal('hide'); - } - } - } - -})(); diff --git a/src/ui/static/resources/js/components/replication/list-replication.directive.html b/src/ui/static/resources/js/components/replication/list-replication.directive.html deleted file mode 100644 index 2269f653b..000000000 --- a/src/ui/static/resources/js/components/replication/list-replication.directive.html +++ /dev/null @@ -1,155 +0,0 @@ - -
    -
    -
    -
    - - - - -
    - - -
    -
    -
    -
    - - - - - - - - - - -
    // 'name' | tr //// 'description' | tr //// 'destination' | tr //// 'last_start_time' | tr //// 'activation' | tr// // 'actions' | tr //
    -
    -
    - - - - - - - - - - - - - - - -

    // 'no_replication_policies_add_new' | tr //

    //r.name////r.description////r.target_name////r.start_time | dateL : 'YYYY-MM-DD HH:mm:ss'// - // 'enabled' | tr // - // 'disabled' | tr // - -
    - - -
    -   - -   - -
    - -
    -
    -
    -
    -
    -
    //vm.replicationPolicies ? vm.replicationPolicies.length : 0// // 'items' | tr //
    -
    -

    -

    // 'replication_jobs' | tr //

    -
    -
    -
    - - - - -
    -
    - -
    - -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    - - - - -
    -
    -
    - -
    -
    -
    -
    -
    - - - - - - - - - -
    // 'name' | tr //// 'operation' | tr //// 'creation_time' | tr //// 'end_time' | tr //// 'status' | tr //// 'logs' | tr //
    -
    -
    - - - - - - - - - - - - - - -

    // 'no_replication_jobs' | tr //

    //r.repository////r.operation////r.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'////r.update_time | dateL : 'YYYY-MM-DD HH:mm:ss'////r.status// - -
    -
    -
    -
    - -
    -
    - diff --git a/src/ui/static/resources/js/components/replication/list-replication.directive.js b/src/ui/static/resources/js/components/replication/list-replication.directive.js deleted file mode 100644 index 94b820220..000000000 --- a/src/ui/static/resources/js/components/replication/list-replication.directive.js +++ /dev/null @@ -1,440 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.replication') - .directive('listReplication', listReplication) - .factory('jobStatus', jobStatus); - - jobStatus.inject = ['$filter', 'trFilter']; - function jobStatus($filter, trFilter) { - return function() { - return [ - {'key': 'all' , 'value': $filter('tr')('all')}, - {'key': 'pending', 'value': $filter('tr')('pending')}, - {'key': 'running', 'value': $filter('tr')('running')}, - {'key': 'error' , 'value': $filter('tr')('error')}, - {'key': 'retrying', 'value': $filter('tr')('retrying')}, - {'key': 'stopped', 'value': $filter('tr')('stopped')}, - {'key': 'finished', 'value':$filter('tr')('finished')}, - {'key': 'canceled', 'value': $filter('tr')('canceled')} - ]; - }; - } - - ListReplicationController.$inject = ['$scope', 'getParameterByName', '$location', 'ListReplicationPolicyService', 'ToggleReplicationPolicyService', 'DeleteReplicationPolicyService', 'ListReplicationJobService', '$window', '$filter', 'trFilter', 'jobStatus']; - - function ListReplicationController($scope, getParameterByName, $location, ListReplicationPolicyService, ToggleReplicationPolicyService, DeleteReplicationPolicyService, ListReplicationJobService, $window, $filter, trFilter, jobStatus) { - var vm = this; - - vm.sectionHeight = {'min-height': '1260px'}; - - $scope.$on('retrieveData', function(e, val) { - if(val) { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.retrievePolicy(); - } - }); - - vm.addReplication = addReplication; - vm.editReplication = editReplication; - vm.deleteReplicationPolicy = deleteReplicationPolicy; - - vm.confirmToDelete = confirmToDelete; - - vm.searchReplicationPolicy = searchReplicationPolicy; - vm.searchReplicationJob = searchReplicationJob; - vm.refreshReplicationJob = refreshReplicationJob; - - vm.retrievePolicy = retrievePolicy; - vm.retrieveJob = retrieveJob; - - vm.pageSize = 20; - vm.page = 1; - - $scope.$watch('vm.page', function(current) { - if(vm.lastPolicyId !== -1 && current) { - vm.page = current; - console.log('replication job: vm.page:' + current); - vm.retrieveJob(vm.lastPolicyId, vm.page, vm.pageSize); - } - }); - - vm.confirmToTogglePolicy = confirmToTogglePolicy; - vm.togglePolicy = togglePolicy; - - vm.downloadLog = downloadLog; - - vm.last = false; - - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.retrievePolicy(); - - vm.jobStatus = jobStatus; - vm.currentStatus = vm.jobStatus()[0]; - - vm.pickUp = pickUp; - - vm.searchJobTIP = false; - vm.refreshJobTIP = false; - - function searchReplicationPolicy() { - vm.retrievePolicy(); - } - - function searchReplicationJob() { - if(vm.lastPolicyId !== -1) { - vm.searchJobTIP = true; - vm.retrieveJob(vm.lastPolicyId, vm.page, vm.pageSize); - } - } - - function refreshReplicationJob() { - if(vm.fromDate && vm.toDate && (getDateValue(vm.fromDate) > getDateValue(vm.toDate))) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('begin_date_is_later_than_end_date')); - $scope.$emit('raiseError', true); - return; - } - if(vm.lastPolicyId !== -1) { - vm.refreshJobTIP = true; - vm.retrieveJob(vm.lastPolicyId, vm.page, vm.pageSize); - } - } - - function retrievePolicy() { - ListReplicationPolicyService('', vm.projectId, vm.replicationPolicyName) - .success(listReplicationPolicySuccess) - .error(listReplicationPolicyFailed); - } - - function retrieveJob(policyId, page, pageSize) { - var status = (vm.currentStatus.key === 'all' ? '' : vm.currentStatus.key); - ListReplicationJobService(policyId, vm.replicationJobName, status, toUTCSeconds(vm.fromDate, 0, 0, 0), toUTCSeconds(vm.toDate, 23, 59, 59), page, pageSize) - .then(listReplicationJobSuccess, listReplicationJobFailed); - } - - function listReplicationPolicySuccess(data, status) { - vm.replicationJobs = []; - vm.replicationPolicies = data || []; - } - - function listReplicationPolicyFailed(data, status) { - console.log('Failed to list replication policy:' + data); - } - - function listReplicationJobSuccess(response) { - vm.replicationJobs = response.data || []; - vm.totalCount = response.headers('X-Total-Count'); - var alertInfo = { - 'show': false, - 'message': '' - }; - angular.forEach(vm.replicationJobs, function(item) { - for(var key in item) { - var value = item[key]; - if(key === 'status' && (value === 'error' || value === 'retrying')) { - alertInfo.show = true; - alertInfo.message = $filter('tr')('alert_job_contains_error'); - } - switch(key) { - case 'operation': - case 'status': - item[key] = $filter('tr')(value); - break; - default: - break; - } - } - }); - - $scope.$emit('raiseAlert', alertInfo); - vm.searchJobTIP = false; - vm.refreshJobTIP = false; - } - - function listReplicationJobFailed(response) { - console.log('Failed to list replication job:' + response); - vm.searchJobTIP = false; - vm.refreshJobTIP = false; - } - - function addReplication() { - vm.modalTitle = $filter('tr')('add_new_policy', []); - vm.action = 'ADD_NEW'; - } - - function editReplication(policyId) { - vm.policyId = policyId; - vm.modalTitle = $filter('tr')('edit_policy', []); - vm.action = 'EDIT'; - - console.log('Selected policy ID:' + vm.policyId); - } - - function deleteReplicationPolicy() { - DeleteReplicationPolicyService(vm.policyId) - .success(deleteReplicationPolicySuccess) - .error(deleteReplicationPolicyFailed); - } - - function deleteReplicationPolicySuccess(data, status) { - console.log('Successful delete replication policy.'); - vm.retrievePolicy(); - } - - function deleteReplicationPolicyFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - if(status === 412) { - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_replication_enabled')); - }else{ - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_replication_policy')); - } - $scope.$emit('raiseError', true); - console.log('Failed to delete replication policy.'); - } - - function confirmToDelete(policyId, policyName) { - vm.policyId = policyId; - - $scope.$emit('modalTitle', $filter('tr')('confirm_delete_policy_title')); - $scope.$emit('modalMessage', $filter('tr')('confirm_delete_policy', [policyName])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/plain', - 'action': vm.deleteReplicationPolicy - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - - function confirmToTogglePolicy(policyId, enabled, name) { - vm.policyId = policyId; - vm.enabled = enabled; - - var status = $filter('tr')(vm.enabled === 1 ? 'enable':'disable'); - - var title; - var message; - if(enabled === 1){ - title = $filter('tr')('confirm_to_toggle_enabled_policy_title'); - message = $filter('tr')('confirm_to_toggle_enabled_policy'); - }else{ - title = $filter('tr')('confirm_to_toggle_disabled_policy_title'); - message = $filter('tr')('confirm_to_toggle_disabled_policy'); - } - $scope.$emit('modalTitle', title); - $scope.$emit('modalMessage', message); - - var emitInfo = { - 'contentType': 'text/html', - 'confirmOnly': false, - 'action': vm.togglePolicy - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function togglePolicy() { - ToggleReplicationPolicyService(vm.policyId, vm.enabled) - .success(toggleReplicationPolicySuccess) - .error(toggleReplicationPolicyFailed); - } - - function toggleReplicationPolicySuccess(data, status) { - console.log('Successful toggle replication policy.'); - vm.retrievePolicy(); - } - - function toggleReplicationPolicyFailed(data, status) { - console.log('Failed to toggle replication policy.'); - } - - function downloadLog(policyId) { - $window.open('/api/jobs/replication/' + policyId + '/log', '_blank'); - } - - function pickUp(e) { - switch(e.key){ - case 'fromDate': - vm.fromDate = e.value; - break; - case 'toDate': - vm.toDate = e.value; - break; - } - $scope.$apply(); - } - - function toUTCSeconds(date, hour, min, sec) { - if(!angular.isDefined(date) || date === '') { - return ''; - } - var t = new Date(date); - t.setHours(hour); - t.setMinutes(min); - t.setSeconds(sec); - return t.getTime() / 1000; - } - - function getDateValue(date) { - if(date) { - return new Date(date); - } - return 0; - } - - } - - listReplication.inject = ['$timeout', 'I18nService']; - - function listReplication($timeout, I18nService) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/replication/list-replication.directive.html', - 'scope': { - 'sectionHeight': '=' - }, - 'link': link, - 'controller': ListReplicationController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - - var uponPaneHeight = element.find('#upon-pane').height(); - var downPaneHeight = element.find('#down-pane').height(); - - var uponTableHeight = element.find('#upon-pane .table-body-container').height(); - var downTableHeight = element.find('#down-pane .table-body-container').height(); - - var handleHeight = element.find('.split-handle').height() + element.find('.split-handle').offset().top + element.find('.well').height() - 32; - console.log('handleHeight:' + handleHeight); - var maxDownPaneHeight = 760; - - element.find('.split-handle').on('mousedown', mousedownHandler); - - function mousedownHandler(e) { - e.preventDefault(); - $(document).on('mousemove', mousemoveHandler); - $(document).on('mouseup', mouseupHandler); - } - - function mousemoveHandler(e) { - - var incrementHeight = $('.container-fluid').scrollTop() + e.pageY; - - if(element.find('#down-pane').height() <= maxDownPaneHeight) { - element.find('#upon-pane').css({'height' : (uponPaneHeight - (handleHeight - incrementHeight)) + 'px'}); - element.find('#down-pane').css({'height' : (downPaneHeight + (handleHeight - incrementHeight)) + 'px'}); - element.find('#upon-pane .table-body-container').css({'height': (uponTableHeight - (handleHeight - incrementHeight)) + 'px'}); - element.find('#down-pane .table-body-container').css({'height': (downTableHeight + (handleHeight - incrementHeight)) + 'px'}); - }else{ - element.find('#down-pane').css({'height' : (maxDownPaneHeight) + 'px'}); - $(document).off('mousemove'); - } - } - - function mouseupHandler(e) { - $(document).off('mousedown'); - $(document).off('mousemove'); - } - - - ctrl.lastPolicyId = -1; - - scope.$watch('vm.replicationPolicies', function(current) { - $timeout(function(){ - if(current) { - if(current.length > 0) { - element.find('#upon-pane table>tbody>tr').on('click', trClickHandler); - element.find('#upon-pane table>tbody>tr:eq(0)').trigger('click'); - }else{ - element - .find('#upon-pane table>tbody>tr') - .css({'background-color': '#FFFFFF'}) - .css({'color': '#000'}); - } - } - }); - }); - - function trClickHandler(e) { - element - .find('#upon-pane table>tbody>tr') - .css({'background-color': '#FFFFFF'}) - .css({'color': '#000'}) - .css({'cursor': 'default'}); - element - .find('#upon-pane table>tbody>tr a') - .css({'color': '#337ab7'}); - $(this) - .css({'background-color': '#057ac9'}) - .css({'color': '#fff'}); - $('a', this) - .css({'color': '#fff'}); - ctrl.retrieveJob($(this).attr('policy_id'), ctrl.page, ctrl.pageSize); - ctrl.lastPolicyId = $(this).attr('policy_id'); - } - - element.find('.datetimepicker').datetimepicker({ - locale: I18nService().getCurrentLanguage(), - ignoreReadonly: true, - format: 'L', - showClear: true - }); - element.find('#fromDatePicker').on('blur', function(){ - ctrl.pickUp({'key': 'fromDate', 'value': $(this).val()}); - }); - element.find('#toDatePicker').on('blur', function(){ - ctrl.pickUp({'key': 'toDate', 'value': $(this).val()}); - }); - - element.find('#txtSearchPolicyInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.searchReplicationPolicy(); - } else { - $timeout(function() { - if(ctrl.replicationPolicyName.length === 0) { - ctrl.searchReplicationPolicy(); - } - }); - } - }); - - element.find('#txtSearchJobInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.searchReplicationJob(); - } else { - $timeout(function() { - if(ctrl.replicationJobName.length === 0) { - ctrl.searchReplicationJob(); - } - }); - } - }); - - } - } - -})(); diff --git a/src/ui/static/resources/js/components/replication/replication.module.js b/src/ui/static/resources/js/components/replication/replication.module.js deleted file mode 100644 index bb276f733..000000000 --- a/src/ui/static/resources/js/components/replication/replication.module.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.replication', [ - 'harbor.services.replication.policy', - 'harbor.services.replication.job' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/list-repository.directive.html b/src/ui/static/resources/js/components/repository/list-repository.directive.html deleted file mode 100644 index 2c4a1ce3b..000000000 --- a/src/ui/static/resources/js/components/repository/list-repository.directive.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    -

    // 'no_repositories' | tr //

    -
    - -
    - -
    -
    -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/list-repository.directive.js b/src/ui/static/resources/js/components/repository/list-repository.directive.js deleted file mode 100644 index de71d12d9..000000000 --- a/src/ui/static/resources/js/components/repository/list-repository.directive.js +++ /dev/null @@ -1,290 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.repository') - .directive('listRepository', listRepository); - - ListRepositoryController.$inject = ['$scope', 'ListRepositoryService', 'DeleteRepositoryService', '$filter', 'trFilter', '$location', 'getParameterByName', '$window']; - - function ListRepositoryController($scope, ListRepositoryService, DeleteRepositoryService, $filter, trFilter, $location, getParameterByName, $window) { - - $scope.subsTabPane = 30; - - var vm = this; - - vm.sectionHeight = {'min-height': '579px'}; - - vm.filterInput = ''; - vm.toggleInProgress = []; - - var hashValue = $location.hash(); - if(hashValue) { - var slashIndex = hashValue.indexOf('/'); - if(slashIndex >=0) { - vm.filterInput = hashValue.substring(slashIndex + 1); - }else{ - vm.filterInput = hashValue; - } - } - vm.page = 1; - vm.pageSize = 15; - - vm.retrieve = retrieve; - vm.searchRepo = searchRepo; - vm.tagCount = {}; - - vm.projectId = getParameterByName('project_id', $location.absUrl()); - - $scope.$on('retrieveData', function(e, val) { - if(val) { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - vm.filterInput = ''; - vm.retrieve(); - } - }); - - - $scope.$watch('vm.repositories', function(current) { - if(current) { - vm.repositories = current || []; - } - }); - - $scope.$watch('vm.page', function(current) { - if(current) { - vm.page = current; - vm.retrieve(); - } - }); - - $scope.$watch('vm.tagName', function(current) { - if(current) { - vm.selectedTags = []; - } - }); - - $scope.$on('repoName', function(e, val) { - vm.repoName = val; - }); - - $scope.$on('tag', function(e, val){ - vm.tag = val; - }); - - $scope.$on('tagCount', function(e, val) { - vm.tagCount = val; - }); - - $scope.$on('tags', function(e, val) { - vm.tags = val; - }); - - vm.deleteByRepo = deleteByRepo; - vm.deleteByTag = deleteByTag; - - vm.deleteSelectedTagsByRepo = deleteSelectedTagsByRepo; - - vm.deleteImage = deleteImage; - vm.deleteSelectedTags = deleteSelectedTags; - - vm.selectAll = []; - vm.selectAllTags = selectAllTags; - - vm.selectedTags = []; - - function retrieve(){ - console.log('retrieve repositories, project_id:' + vm.projectId); - ListRepositoryService(vm.projectId, vm.filterInput, vm.page, vm.pageSize) - .then(getRepositoryComplete, getRepositoryFailed); - } - - function getRepositoryComplete(response) { - vm.repositories = response.data || []; - vm.totalCount = response.headers('X-Total-Count'); - vm.selectAll[vm.repoName] = false; - vm.selectedTags = []; - } - - function getRepositoryFailed(response) { - var errorMessage = ''; - if(response.status === 404) { - errorMessage = $filter('tr')('project_does_not_exist'); - }else{ - errorMessage = $filter('tr')('failed_to_get_project'); - } - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', errorMessage); - var emitInfo = { - 'confirmOnly': true, - 'contentType': 'text/html', - 'action' : function() { - $window.location.href = '/dashboard'; - } - }; - $scope.$emit('raiseInfo', emitInfo); - console.log('Failed to list repositories:' + response.data); - } - - function searchRepo() { - $scope.$broadcast('refreshTags', true); - vm.retrieve(); - } - - function deleteByRepo(repoName) { - vm.repoName = repoName; - vm.tag = ''; - - $scope.$emit('modalTitle', $filter('tr')('alert_delete_repo_title', [repoName])); - $scope.$emit('modalMessage', $filter('tr')('alert_delete_repo', [repoName])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/html', - 'action' : vm.deleteImage - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function deleteSelectedTagsByRepo(repo) { - vm.repoName = repo; - $scope.$broadcast('gatherSelectedTags' + vm.repoName, true); - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/html', - 'action' : vm.deleteSelectedTags - }; - $scope.$emit('modalTitle', $filter('tr')('alert_delete_tag_title')); - $scope.$emit('modalMessage', $filter('tr')('alert_delete_selected_tag')); - $scope.$emit('raiseInfo', emitInfo); - } - - function selectAllTags(repo) { - vm.selectAll[repo] = !vm.selectAll[repo]; - console.log('send to tags selectAll:' + vm.selectAll[repo]); - $scope.$broadcast('selectAll' + repo, {'status': vm.selectAll[repo], 'repoName': repo}); - } - - $scope.$on('selectedAll', function(e, val) { - console.log('received from tags selectedAll:' + angular.toJson(val)); - vm.selectAll[val.repoName] = val.status; - }); - - function deleteByTag() { - $scope.$emit('modalTitle', $filter('tr')('alert_delete_tag_title', [vm.tag])); - var message; - console.log('vm.tagCount:' + angular.toJson(vm.tagCount[vm.repoName])); - $scope.$emit('modalMessage', $filter('tr')('alert_delete_tag', [vm.tag])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/html', - 'action' : vm.deleteImage - }; - $scope.$emit('raiseInfo', emitInfo); - } - - function deleteImage() { - console.log('Delete image, repoName:' + vm.repoName + ', tag:' + vm.tag); - vm.toggleInProgress[vm.repoName + '|' + vm.tag] = true; - DeleteRepositoryService(vm.repoName, vm.tag) - .success(deleteRepositorySuccess) - .error(deleteRepositoryFailed); - } - - $scope.$on('selectedTags', function(e, val) { - if(val) { - vm.selectedTags[val.repoName] = val.tags; - } - }); - - function deleteSelectedTags() { - console.log('Delete selected tags:' + angular.toJson(vm.selectedTags[vm.repoName]) + ' under repo:' + vm.repoName); - vm.toggleInProgress[vm.repoName + '|'] = true; - for(var i in vm.selectedTags[vm.repoName] || []) { - var tag = vm.selectedTags[vm.repoName][i]; - if(tag !== '') { - vm.toggleInProgress[vm.repoName + '|' + tag] = true; - DeleteRepositoryService(vm.repoName, tag) - .success(deleteRepositorySuccess) - .error(deleteRepositoryFailed); - } - } - } - - function deleteRepositorySuccess(data, status) { - vm.toggleInProgress[vm.repoName + '|'] = false; - vm.toggleInProgress[vm.repoName + '|' + vm.tag] = false; - vm.retrieve(); - $scope.$broadcast('refreshTags', true); - } - - function deleteRepositoryFailed(data, status) { - vm.toggleInProgress[vm.repoName + '|'] = false; - vm.toggleInProgress[vm.repoName + '|' + vm.tag] = false; - - $scope.$emit('modalTitle', $filter('tr')('error')); - var message; - if(status === 401) { - message = $filter('tr')('failed_to_delete_repo_insuffient_permissions'); - }else{ - message = $filter('tr')('failed_to_delete_repo'); - } - $scope.$emit('modalMessage', message); - $scope.$emit('raiseError', true); - - console.log('Failed to delete repository:' + angular.toJson(data)); - } - - } - - listRepository.$inject = ['$timeout']; - - function listRepository($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/repository/list-repository.directive.html', - 'scope': { - 'sectionHeight': '=', - 'roleId': '@' - }, - 'link': link, - 'controller': ListRepositoryController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - - function link(scope, element, attr, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.retrieve(); - } else { - $timeout(function() { - if(ctrl.filterInput.length === 0) { - ctrl.retrieve(); - } - }); - } - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/list-tag.directive.html b/src/ui/static/resources/js/components/repository/list-tag.directive.html deleted file mode 100644 index d2239371e..000000000 --- a/src/ui/static/resources/js/components/repository/list-tag.directive.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    - - - - - - - - - - - - - - - -
    // 'tag' | tr //// 'image_details' | tr //// 'pull_command' | tr //// 'operation' | tr //
    //tag// - - -    - - -
    -
    -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/list-tag.directive.js b/src/ui/static/resources/js/components/repository/list-tag.directive.js deleted file mode 100644 index 3fa014ca0..000000000 --- a/src/ui/static/resources/js/components/repository/list-tag.directive.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.repository') - .directive('listTag', listTag); - - ListTagController.$inject = ['$scope', 'ListTagService', '$filter', 'trFilter']; - - function ListTagController($scope, ListTagService, $filter, trFilter) { - var vm = this; - - vm.tags = []; - vm.retrieve = retrieve; - - vm.selected = []; - vm.selected[vm.repoName] = []; - - vm.selectedTags = []; - - $scope.$watch('vm.repoName', function(current, origin) { - if(current) { - console.log('vm.repoName triggered tags retrieval.'); - vm.retrieve(); - } - }); - - $scope.$on('refreshTags', function(e, val) { - if(val) { - vm.retrieve(); - vm.selectedCount[vm.repoName] = 0; - vm.selected[val.repoName] = []; - vm.selectedTags = []; - } - }); - - $scope.$watch('vm.selectedCount[vm.repoName]', function(current, previous) { - if(current !== previous) { - console.log('Watching vm.selectedCount:' + current); - $scope.$emit('selectedAll', {'status': (current === vm.tags.length), 'repoName': vm.repoName}); - } - }); - - $scope.$on('gatherSelectedTags' + vm.repoName, function(e, val) { - if(val) { - console.log('RECEIVED gatherSelectedTags:' + val); - gatherSelectedTags(); - } - }); - - $scope.$on('selectAll' + vm.repoName, function(e, val) { - (val.status) ? vm.selectedCount[val.repoName] = vm.tags.length : vm.selectedCount[val.repoName] = 0; - for(var i = 0; i < vm.tags.length; i++) { - vm.selected[val.repoName][i] = val.status; - } - gatherSelectedTags(); - console.log('received selectAll:' + angular.toJson(val) + ', vm.selected:' + angular.toJson(vm.selected)); - }); - - $scope.$watch('vm.tags', function(current) { - if(current) { - vm.tags = current; - } - }); - - vm.deleteTag = deleteTag; - - vm.selectedCount = []; - vm.selectedCount[vm.repoName] = 0; - - vm.selectOne = selectOne; - - function retrieve() { - ListTagService(vm.repoName) - .success(getTagSuccess) - .error(getTagFailed); - } - - function getTagSuccess(data) { - vm.tags = data || []; - vm.tagCount[vm.repoName] = vm.tags.length; - - $scope.$emit('tags', vm.tags); - $scope.$emit('tagCount', vm.tagCount); - - angular.forEach(vm.tags, function(item) { - vm.toggleInProgress[vm.repoName + '|' + item] = false; - }); - - for(var i = 0; i < vm.tags.length; i++) { - vm.selected[vm.repoName][i] = false; - } - } - - function getTagFailed(data) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_tag')); - $scope.$emit('raiseError', true); - console.log('Failed to get tags:' + data); - } - - function deleteTag(e) { - $scope.$emit('repoName', e.repoName); - $scope.$emit('tag', e.tag); - vm.deleteByTag(); - } - - function selectOne(index, tagName) { - vm.selected[vm.repoName][index] = !vm.selected[vm.repoName][index]; - (vm.selected[vm.repoName][index]) ? ++vm.selectedCount[vm.repoName] : --vm.selectedCount[vm.repoName]; - console.log('selectOne, repoName:' + vm.repoName + ', vm.selected:' + vm.selected[vm.repoName][index] + ', index:' + index + ', length:' + vm.selectedCount[vm.repoName]); - gatherSelectedTags(); - } - - function gatherSelectedTags() { - vm.selectedTags[vm.repoName] = []; - for(var i = 0; i < vm.tags.length; i++) { - (vm.selected[vm.repoName][i]) ? vm.selectedTags[vm.repoName][i] = vm.tags[i] : vm.selectedTags[vm.repoName][i] = ''; - } - var tagsToDelete = []; - for(var i in vm.selectedTags[vm.repoName]) { - var tag = vm.selectedTags[vm.repoName][i]; - if(tag !== '') { - tagsToDelete.push(tag); - } - } - $scope.$emit('selectedTags', {'repoName': vm.repoName, 'tags': tagsToDelete}); - } - - } - - function listTag() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/repository/list-tag.directive.html', - 'scope': { - 'tagCount': '=', - 'associateId': '=', - 'repoName': '=', - 'toggleInProgress': '=', - 'deleteByTag': '&', - 'roleId': '@' - }, - 'replace': true, - 'controller': ListTagController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/popup-details.directive.html b/src/ui/static/resources/js/components/repository/popup-details.directive.html deleted file mode 100644 index 0598d3dd9..000000000 --- a/src/ui/static/resources/js/components/repository/popup-details.directive.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/ui/static/resources/js/components/repository/popup-details.directive.js b/src/ui/static/resources/js/components/repository/popup-details.directive.js deleted file mode 100644 index c4ad3bfe4..000000000 --- a/src/ui/static/resources/js/components/repository/popup-details.directive.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.repository') - .directive('popupDetails', popupDetails); - - PopupDetailsController.$inject = []; - - function PopupDetailsController() { - - } - - popupDetails.$inject = ['ListManifestService', '$filter', 'dateLFilter']; - - function popupDetails(ListManifestService, $filter, dateLFilter) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/repository/popup-details.directive.html', - 'scope': { - 'repoName': '@', - 'tag': '@', - 'index': '@' - }, - 'replace': true, - 'link': link, - 'controller': PopupDetailsController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - element - .popover({ - 'template': '', - 'title': '
    ', - 'content': generateContent, - 'html': true - }) - .on('show.bs.popover', function(e) { - var data = ListManifestService(ctrl.repoName, ctrl.tag) - .success(function(data) { - return data; - }) - .error(function(data, status) { - console.log('Failed to get manifest of repo :' + ctrl.repoName); - return null; - }); - ctrl.manifest = {}; - if(data && angular.isDefined(data.responseJSON)) { - ctrl.manifest = angular.fromJson(data.responseJSON.manifest.history[0].v1Compatibility); - ctrl.manifest['created'] = $filter('dateL')(ctrl.manifest['created'], 'YYYY-MM-DD HH:mm:ss'); - } - }) - .on('inserted.bs.popover', function(e){ - var self = jQuery(this); - $('[type="text"]:input', self.parent()) - .on('click', function(e) { - $(this).select(); - }); - self.parent().find('.glyphicon.glyphicon-remove-circle').on('click', function() { - self.trigger('click'); - }); - }); - - function generateContent() { - var content = '
    ' + - '
    ' + - '' + - '

    ' + - '
    ' + - '

    ' + - '
    ' + - '

    ' + check_output(ctrl.manifest['created']) + '

    ' + - '
    ' + - '

    ' + check_output(ctrl.manifest['author']) + '

    ' + - '
    ' + - '

    ' + check_output(ctrl.manifest['architecture']) + '

    ' + - '
    ' + - '

    ' + check_output(ctrl.manifest['docker_version']) + '

    ' + - '
    ' + - '

    ' + check_output(ctrl.manifest['os']) + '

    ' + - '
    '; - return content; - } - function check_output(s) { - return (angular.isUndefined(s) || s === '') ? 'N/A' : s; - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/pull-command.directive.html b/src/ui/static/resources/js/components/repository/pull-command.directive.html deleted file mode 100644 index 6b03d4a4c..000000000 --- a/src/ui/static/resources/js/components/repository/pull-command.directive.html +++ /dev/null @@ -1,5 +0,0 @@ -
    -
    - -
    -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/pull-command.directive.js b/src/ui/static/resources/js/components/repository/pull-command.directive.js deleted file mode 100644 index 5c8f12bd3..000000000 --- a/src/ui/static/resources/js/components/repository/pull-command.directive.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.repository') - .directive('pullCommand', pullCommand); - - function PullCommandController() { - - } - - function pullCommand() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/repository/pull-command.directive.html', - 'scope': { - 'repoName': '@', - 'tag': '@' - }, - 'link': link, - 'controller': PullCommandController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - ctrl.harborRegUrl = $('#HarborRegUrl').val() + '/'; - - element.find('input[type="text"]').on('click', function() { - $(this).select(); - }); - - element.find('a').on('click', clickHandler); - - function clickHandler(e) { - element.find('input[type="text"]').select(); - } - - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/repository/repository.module.js b/src/ui/static/resources/js/components/repository/repository.module.js deleted file mode 100644 index 10b3ee18a..000000000 --- a/src/ui/static/resources/js/components/repository/repository.module.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.repository', [ - 'harbor.services.repository']); -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/search/search-input.directive.html b/src/ui/static/resources/js/components/search/search-input.directive.html deleted file mode 100644 index dadde61ef..000000000 --- a/src/ui/static/resources/js/components/search/search-input.directive.html +++ /dev/null @@ -1,19 +0,0 @@ - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/search/search-input.directive.js b/src/ui/static/resources/js/components/search/search-input.directive.js deleted file mode 100644 index cf71be575..000000000 --- a/src/ui/static/resources/js/components/search/search-input.directive.js +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.search') - .directive('searchInput', searchInput); - - SearchInputController.$inject = ['$scope', '$location', '$window']; - - function SearchInputController($scope, $location, $window) { - var vm = this; - - vm.searchFor = searchFor; - - function searchFor(searchContent) { - $location - .path('/search') - .search({'q': searchContent}); - $window.location.href = $location.url(); - } - - } - - function searchInput() { - - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/search/search-input.directive.html', - 'scope': { - 'searchInput': '=', - }, - 'link': link, - 'controller': SearchInputController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element - .find('input[type="text"]') - .on('keydown', keydownHandler); - - function keydownHandler(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.searchFor($(this).val()); - } - } - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/search/search.directive.html b/src/ui/static/resources/js/components/search/search.directive.html deleted file mode 100644 index 9086c0bba..000000000 --- a/src/ui/static/resources/js/components/search/search.directive.html +++ /dev/null @@ -1,26 +0,0 @@ - -
    - - - - - - - - - -
    // 'project_repo_name' | tr //// 'creation_time' | tr //// 'author' | tr //
    //s.repository_name//N/AN/A
    -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/search/search.directive.js b/src/ui/static/resources/js/components/search/search.directive.js deleted file mode 100644 index 66182aa43..000000000 --- a/src/ui/static/resources/js/components/search/search.directive.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.search') - .directive('search', search); - - SearchController.$inject = ['SearchService', '$scope']; - - function SearchController(SearchService, $scope) { - var vm = this; - vm.keywords = ""; - vm.search = searchByFilter; - vm.filterBy = 'repository'; - - searchByFilter(); - - - function searchByFilter() { - SearchService(vm.keywords) - .success(searchSuccess) - .error(searchFailed); - } - - function searchSuccess(data, status) { - console.log('filterBy:' + vm.filterBy + ", data:" + data); - vm.searchResult = data[vm.filterBy]; - } - - function searchFailed(data, status) { - console.log('Failed to search:' + data); - } - - } - - function search() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/search/search.directive.html', - 'scope': { - 'filterBy': '=' - }, - 'controller': SearchController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/search/search.module.js b/src/ui/static/resources/js/components/search/search.module.js deleted file mode 100644 index 5be6cf0a3..000000000 --- a/src/ui/static/resources/js/components/search/search.module.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.search', [ - 'harbor.services.search']); -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/sign-in/sign-in.directive.js b/src/ui/static/resources/js/components/sign-in/sign-in.directive.js deleted file mode 100644 index 48d121973..000000000 --- a/src/ui/static/resources/js/components/sign-in/sign-in.directive.js +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.sign.in') - .directive('signIn', signIn); - - SignInController.$inject = ['SignInService', 'LogOutService', 'currentUser', 'I18nService', '$window', '$scope', 'getParameterByName', '$location']; - function SignInController(SignInService, LogOutService, currentUser, I18nService, $window, $scope, getParameterByName, $location) { - var vm = this; - - vm.hasError = false; - vm.errorMessage = ''; - - vm.reset = reset; - vm.doSignIn = doSignIn; - vm.doSignUp = doSignUp; - vm.doForgotPassword = doForgotPassword; - - vm.doContinue = doContinue; - vm.doLogOut = doLogOut; - - vm.signInTIP = false; - - $scope.user = {}; - - function reset() { - vm.hasError = false; - vm.errorMessage = ''; - } - - function doSignIn(user) { - if(!$scope.user.principal || !$scope.user.password || - $scope.user.principal.length === 0 || $scope.user.password.length === 0) { - vm.hasError = true; - vm.errorMessage = 'username_and_password_are_required'; - } - if(user.principal && user.password) { - vm.lastUrl = getParameterByName('last_url', $location.absUrl()); - vm.signInTIP = true; - SignInService(user.principal, user.password) - .success(signedInSuccess) - .error(signedInFailed); - } - } - - function signedInSuccess(data, status) { - if(vm.lastUrl) { - $window.location.href = vm.lastUrl; - return; - } - $window.location.href = "/dashboard"; - } - - function signedInFailed(data, status) { - vm.signInTIP = false; - vm.hasError = true; - if(status === 401) { - vm.errorMessage = 'username_or_password_is_incorrect'; - }else { - vm.errorMessage = 'failed_to_sign_in'; - } - console.log('Failed to sign in:' + data + ', status:' + status); - } - - function doSignUp() { - $window.location.href = '/sign_up'; - } - - function doForgotPassword() { - $window.location.href = '/forgot_password'; - } - - function doContinue() { - $window.location.href = '/dashboard'; - } - - function doLogOut() { - LogOutService() - .success(logOutSuccess) - .error(logOutFailed); - } - - function logOutSuccess(data, status) { - currentUser.unset(); - I18nService().unset(); - $window.location.href= '/'; - } - - function logOutFailed(data, status) { - console.log('Failed to to log out:' + data); - } - } - - function signIn() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/sign_in', - 'scope': true, - 'controller': SignInController, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/sign-in/sign-in.module.js b/src/ui/static/resources/js/components/sign-in/sign-in.module.js deleted file mode 100644 index 5c257f635..000000000 --- a/src/ui/static/resources/js/components/sign-in/sign-in.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.sign.in', [ - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/summary/summary.directive.html b/src/ui/static/resources/js/components/summary/summary.directive.html deleted file mode 100644 index a24ff5221..000000000 --- a/src/ui/static/resources/js/components/summary/summary.directive.html +++ /dev/null @@ -1,19 +0,0 @@ - - -
    -
    // key | tr //:
    //value//
    -
    // key | tr //:
    //value//
    -
    diff --git a/src/ui/static/resources/js/components/summary/summary.directive.js b/src/ui/static/resources/js/components/summary/summary.directive.js deleted file mode 100644 index cba67d557..000000000 --- a/src/ui/static/resources/js/components/summary/summary.directive.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.summary') - .directive('projectSummary', projectSummary); - - ProjectSummaryController.$inject = ['$scope', 'StatProjectService', '$filter', 'trFilter']; - - function ProjectSummaryController($scope, StatProjectService, $filter, trFilter) { - var vm = this; - - StatProjectService() - .success(statProjectSuccess) - .error(statProjectFailed); - - function statProjectSuccess(data) { - vm.statProjects = data; - } - - function statProjectFailed(data) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_stat')); - $scope.$emit('raiseError', true); - console.log('Failed to get stat:' + data); - } - } - - function projectSummary() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/summary/summary.directive.html', - 'controller': ProjectSummaryController, - 'scope' : true, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/summary/summary.module.js b/src/ui/static/resources/js/components/summary/summary.module.js deleted file mode 100644 index 3828e956d..000000000 --- a/src/ui/static/resources/js/components/summary/summary.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.summary', [ - 'harbor.services.project' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/configuration.directive.html b/src/ui/static/resources/js/components/system-management/configuration.directive.html deleted file mode 100644 index 4e330755c..000000000 --- a/src/ui/static/resources/js/components/system-management/configuration.directive.html +++ /dev/null @@ -1,235 +0,0 @@ - -
    - - -
    -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    - // 'timeout_is_required' | tr // - // 'invalid_timeout' | tr // - // 'invalid_timeout' | tr // -
    -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - // vm.pingMessage // - // vm.pingMessage // -
    -
    -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    - // 'invalid_port_number' | tr // - // 'invalid_port_number' | tr // -
    -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/configuration.directive.js b/src/ui/static/resources/js/components/system-management/configuration.directive.js deleted file mode 100644 index a0ac6a7ad..000000000 --- a/src/ui/static/resources/js/components/system-management/configuration.directive.js +++ /dev/null @@ -1,383 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management') - .constant('defaultPassword', '12345678') - .directive('configuration', configuration); - - ConfigurationController.$inject = ['$scope', 'ConfigurationService', 'defaultPassword', '$filter', 'trFilter']; - - function ConfigurationController($scope, ConfigurationService, defaultPassword, $filter, trFilter) { - var vm = this; - - vm.toggleBooleans = [ - { - 'name': 'True', - 'value': true - }, - { - 'name': 'False', - 'value': false - } - ]; - - vm.toggleCustoms = [ - { - 'name': 'Admin Only', - 'value': 'adminonly', - }, - { - 'name': 'Everyone', - 'value': 'everyone' - } - ]; - - vm.supportedAuths = [ - { - 'name': 'DB auth', - 'value': 'db_auth' - }, - { - 'name': 'LDAP auth', - 'value': 'ldap_auth' - } - ]; - - var confKeyDefinitions = { - 'auth_mode': { type: 'auth', attr: 'authMode' }, - 'self_registration': { type: 'auth', attr: 'selfRegistration' }, - 'ldap_url': { type: 'auth', attr: 'ldapURL' }, - 'ldap_search_dn': { type: 'auth', attr: 'ldapSearchDN' }, - 'ldap_search_password': { type: 'auth', attr: 'ldapSearchPassword' }, - 'ldap_base_dn': { type: 'auth', attr: 'ldapBaseDN' }, - 'ldap_uid': { type: 'auth', attr: 'ldapUID' }, - 'ldap_filter': { type: 'auth', attr: 'ldapFilter' }, - 'ldap_timeout': { type: 'auth', attr: 'ldapConnectionTimeout' }, - 'ldap_scope': { type: 'auth', attr: 'ldapScope' }, - 'email_host': { type: 'email', attr: 'server' }, - 'email_port': { type: 'email', attr: 'serverPort' }, - 'email_username': { type: 'email', attr: 'username' }, - 'email_password': { type: 'email', attr: 'password' }, - 'email_from': { type: 'email', attr: 'from' }, - 'email_ssl': { type: 'email', attr: 'SSL' }, - 'project_creation_restriction': { type: 'system', attr: 'projectCreationRestriction' }, - 'verify_remote_cert': { type: 'system', attr: 'verifyRemoteCert' } - }; - - $scope.auth = {}; - $scope.email = {}; - $scope.system = {}; - - vm.retrieve = retrieve; - - vm.saveAuthConf = saveAuthConf; - vm.saveEmailConf = saveEmailConf; - vm.saveSystemConf = saveSystemConf; - - vm.gatherUpdateItems = gatherUpdateItems; - vm.clearUp = clearUp; - vm.hasChanged = hasChanged; - vm.setMaskPassword = setMaskPassword; - vm.undo = undo; - - vm.pingLDAP = pingLDAP; - vm.pingTIP = false; - vm.isError = false; - vm.pingMessage = ''; - - vm.retrieve(); - - function retrieve() { - - vm.ldapSearchPasswordChanged = false; - vm.emailPasswordChanged = false; - vm.changedItems = {}; - vm.updatedItems = {}; - vm.warning = {}; - vm.editable = {}; - - ConfigurationService - .get() - .then(getConfigurationSuccess, getConfigurationFailed); - } - - function getConfigurationSuccess(response) { - var data = response.data || []; - for(var key in data) { - var mappedDef = keyMapping(key); - if(mappedDef) { - $scope[mappedDef['type']][mappedDef['attr']] = { 'target': mappedDef['type'] + '.' + mappedDef['attr'], 'data': valueMapping(data[key]['value']) }; - $scope.$watch(mappedDef['type'] + '.' + mappedDef['attr'], onChangedCallback, true); - $scope[mappedDef['type']][mappedDef['attr']]['origin'] = { 'target': mappedDef['type'] + '.' + mappedDef['attr'], 'data': valueMapping(data[key]['value']) }; - vm.editable[mappedDef['type'] + '.' + mappedDef['attr']] = data[key]['editable']; - } - } - - $scope.auth.ldapSearchPassword = { 'target': 'auth.ldapSearchPassword', 'data': defaultPassword}; - $scope.email.password = { 'target': 'email.password', 'data': defaultPassword}; - - $scope.$watch('auth.ldapSearchPassword', onChangedCallback, true); - $scope.$watch('email.password', onChangedCallback, true); - - $scope.auth.ldapSearchPassword.actual = { 'target': 'auth.ldapSearchPassword', 'data': ''}; - $scope.email.password.actual = { 'target': 'email.password', 'data': ''}; - } - - function keyMapping(confKey) { - for (var key in confKeyDefinitions) { - if (confKey === key) { - return confKeyDefinitions[key]; - } - } - return null; - } - - function valueMapping(value) { - switch(value) { - case true: - return vm.toggleBooleans[0]; - case false: - return vm.toggleBooleans[1]; - case 'db_auth': - return vm.supportedAuths[0]; - case 'ldap_auth': - return vm.supportedAuths[1]; - case 'adminonly': - return vm.toggleCustoms[0]; - case 'everyone': - return vm.toggleCustoms[1]; - default: - return value; - } - } - - function onChangedCallback(current, previous) { - if(!angular.equals(current, previous)) { - var compositeKey = current.target.split("."); - vm.changed = false; - var changedData = {}; - switch(current.target) { - case 'auth.ldapSearchPassword': - if(vm.ldapSearchPasswordChanged) { - vm.changed = true; - changedData = $scope.auth.ldapSearchPassword.actual.data; - } - break; - case 'email.password': - if(vm.emailPasswordChanged) { - vm.changed = true; - changedData = $scope.email.password.actual.data; - } - break; - default: - if(!angular.equals(current.data, $scope[compositeKey[0]][compositeKey[1]]['origin']['data'])) { - vm.changed = true; - changedData = current.data; - } - } - if(vm.changed) { - vm.changedItems[current.target] = changedData; - vm.warning[current.target] = true; - } else { - delete vm.changedItems[current.target]; - vm.warning[current.target] = false; - } - } - } - - function getConfigurationFailed(response) { - console.log('Failed to get configurations.'); - } - - function updateConfigurationSuccess(response) { - $scope.$emit('modalTitle', $filter('tr')('update_configuration_title', [])); - $scope.$emit('modalMessage', $filter('tr')('successful_update_configuration', [])); - var emitInfo = { - 'confirmOnly': true, - 'contentType': 'text/plain', - 'action' : function() { - vm.retrieve(); - } - }; - $scope.$emit('raiseInfo', emitInfo); - console.log('Updated system configuration successfully.'); - } - - function updateConfigurationFailed() { - $scope.$emit('modalTitle', $filter('tr')('update_configuration_title', [])); - $scope.$emit('modalMessage', $filter('tr')('failed_to_update_configuration', [])); - $scope.$emit('raiseError', true); - console.log('Failed to update system configurations.'); - } - - function gatherUpdateItems() { - vm.updatedItems = {}; - for(var key in confKeyDefinitions) { - var value = confKeyDefinitions[key]; - var compositeKey = value.type + '.' + value.attr; - for(var itemKey in vm.changedItems) { - var item = vm.changedItems[itemKey]; - if (compositeKey === itemKey) { - (typeof item === 'object' && item) ? vm.updatedItems[key] = ((typeof item.value === 'boolean') ? Number(item.value) + '' : item.value) : vm.updatedItems[key] = String(item) || ''; - } - } - } - } - - function saveAuthConf(auth) { - vm.gatherUpdateItems(); - console.log('auth changed:' + angular.toJson(vm.updatedItems)); - ConfigurationService - .update(vm.updatedItems) - .then(updateConfigurationSuccess, updateConfigurationFailed); - } - - function saveEmailConf(email) { - vm.gatherUpdateItems(); - console.log('email changed:' + angular.toJson(vm.updatedItems)); - ConfigurationService - .update(vm.updatedItems) - .then(updateConfigurationSuccess, updateConfigurationFailed); - } - - function saveSystemConf(system) { - vm.gatherUpdateItems(); - console.log('system changed:' + angular.toJson(vm.updatedItems)); - ConfigurationService - .update(vm.updatedItems) - .then(updateConfigurationSuccess, updateConfigurationFailed); - } - - function clearUp(input) { - switch(input.target) { - case 'auth.ldapSearchPassword': - $scope.auth.ldapSearchPassword.data = ''; - break; - case 'email.password': - $scope.email.password.data = ''; - break; - } - } - - function hasChanged(input) { - switch(input.target) { - case 'auth.ldapSearchPassword': - vm.ldapSearchPasswordChanged = true; - $scope.auth.ldapSearchPassword.actual.data = input.data; - break; - case 'email.password': - vm.emailPasswordChanged = true; - $scope.email.password.actual.data = input.data; - break; - } - } - - function setMaskPassword(input) { - input.data = defaultPassword; - } - - function undo() { - vm.retrieve(); - } - - function pingLDAP(auth) { - var keyset = [ - {'name': 'ldapURL' , 'attr': 'ldap_url'}, - {'name': 'ldapSearchDN', 'attr': 'ldap_search_dn'}, - {'name': 'ldapScope' , 'attr': 'ldap_scope'}, - {'name': 'ldapSearchPassword' , 'attr': 'ldap_search_password'}, - {'name': 'ldapConnectionTimeout', 'attr': 'ldap_connection_timeout'} - ]; - var ldapConf = {}; - - for(var i = 0; i < keyset.length; i++) { - var key = keyset[i]; - var value; - if(key.name === 'ldapSearchPassword') { - value = auth[key.name]['actual']['data']; - }else { - value = auth[key.name]['data']; - } - ldapConf[key.attr] = value; - } - - vm.pingMessage = $filter('tr')('pinging_target'); - vm.pingTIP = true; - vm.isError = false; - - ConfigurationService - .pingLDAP(ldapConf) - .then(pingLDAPSuccess, pingLDAPFailed); - } - - function pingLDAPSuccess(response) { - vm.pingTIP = false; - vm.pingMessage = $filter('tr')('successful_ping_target'); - } - - function pingLDAPFailed(response) { - vm.isError = true; - vm.pingTIP = false; - vm.pingMessage = $filter('tr')('failed_to_ping_target'); - console.log('Failed to ping LDAP target:' + response.data); - } - - } - - configuration.$inject = ['$filter', 'trFilter']; - - function configuration($filter, trFilter) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/system-management/configuration.directive.html', - 'scope': true, - 'link': link, - 'controller': ConfigurationController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#ulTabHeader a').on('click', function(e) { - e.preventDefault(); - ctrl.gatherUpdateItems(); - if(!angular.equals(ctrl.updatedItems, {})) { - var emitInfo = { - 'confirmOnly': true, - 'contentType': 'text/html', - 'action' : function() { - return; - } - }; - scope.$emit('modalTitle', $filter('tr')('caution')); - scope.$emit('modalMessage', $filter('tr')('please_save_changes')); - scope.$emit('raiseInfo', emitInfo); - scope.$apply(); - e.stopPropagation(); - }else{ - $(this).tab('show'); - } - - }); - element.find('#ulTabHeader a:first').trigger('click'); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/create-destination.directive.html b/src/ui/static/resources/js/components/system-management/create-destination.directive.html deleted file mode 100644 index c85b41720..000000000 --- a/src/ui/static/resources/js/components/system-management/create-destination.directive.html +++ /dev/null @@ -1,85 +0,0 @@ - - diff --git a/src/ui/static/resources/js/components/system-management/create-destination.directive.js b/src/ui/static/resources/js/components/system-management/create-destination.directive.js deleted file mode 100644 index 710cd15bb..000000000 --- a/src/ui/static/resources/js/components/system-management/create-destination.directive.js +++ /dev/null @@ -1,251 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management') - .directive('createDestination', createDestination); - - CreateDestinationController.$inject = ['$scope', 'ListDestinationService', 'CreateDestinationService', 'UpdateDestinationService', 'PingDestinationService', 'ListDestinationPolicyService', '$filter', 'trFilter', '$timeout']; - - function CreateDestinationController($scope, ListDestinationService, CreateDestinationService, UpdateDestinationService, PingDestinationService, ListDestinationPolicyService, $filter, trFilter, $timeout) { - var vm = this; - - $scope.destination = {}; - - var vm0 = $scope.destination; - vm.addNew = addNew; - vm.edit = edit; - vm.create = create; - vm.update = update; - vm.pingDestination = pingDestination; - - vm.closeError = closeError; - vm.toggleErrorMessage = false; - vm.errorMessages = []; - - vm.pingTIP = false; - - $timeout(function(){ - $scope.$watch('destination.endpoint', function(current) { - if(current) { - vm.notAvailable = false; - }else{ - vm.notAvailable = true; - } - }); - }); - - function addNew() { - vm.modalTitle = $filter('tr')('add_new_destination', []); - vm0.name = ''; - vm0.endpoint = ''; - vm0.username = ''; - vm0.password = ''; - } - - function edit(targetId) { - vm.editable = true; - vm.modalTitle = $filter('tr')('edit_destination', []); - ListDestinationService(targetId) - .success(getDestinationSuccess) - .error(getDestinationFailed); - } - - function create(destination) { - CreateDestinationService(destination.name, destination.endpoint, - destination.username, destination.password) - .success(createDestinationSuccess) - .error(createDestinationFailed); - } - - function createDestinationSuccess(data, status) { - console.log('Successful created destination.'); - vm.reload(); - vm.closeDialog(); - } - - function createDestinationFailed(data, status) { - if(status === 409) { - vm.errorMessages.push($filter('tr')('destination_already_exists')); - }else{ - vm.errorMessages.push($filter('tr')('failed_to_create_destination')); - } - console.log('Failed to create destination:' + data); - } - - function update(destination) { - UpdateDestinationService(vm.targetId, destination) - .success(updateDestinationSuccess) - .error(updateDestinationFailed); - } - - function updateDestinationSuccess(data, status) { - console.log('Successful update destination.'); - vm.reload(); - vm.closeDialog(); - } - - function updateDestinationFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_to_update_destination')); - console.log('Failed to update destination:' + data); - } - - - function getDestinationSuccess(data, status) { - var destination = data; - vm0.name = destination.name; - vm0.endpoint = destination.endpoint; - vm0.username = destination.username; - vm0.password = destination.password; - - ListDestinationPolicyService(destination.id) - .success(listDestinationPolicySuccess) - .error(listDestinationPolicyFailed); - } - - function getDestinationFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_get_destination')); - console.log('Failed to get destination.'); - } - - function listDestinationPolicySuccess(data, status) { - for(var i in data) { - if(data[i].enabled === 1) { - vm.editable = false; - break; - } - } - } - - function listDestinationPolicyFailed(data, status) { - vm.errorMessages.push($filter('tr')('failed_get_destination_policies')); - console.log('Failed to list destination policy:' + data); - } - - function pingDestination() { - - vm.pingTIP = true; - vm.pingMessage = $filter('tr')('pinging_target'); - vm.isError = false; - - var target = { - 'name': vm0.name, - 'endpoint': vm0.endpoint, - 'username': vm0.username, - 'password': vm0.password - }; - PingDestinationService(target) - .success(pingDestinationSuccess) - .error(pingDestinationFailed); - } - - function closeError() { - vm.errorMessages = []; - vm.toggleErrorMessage = false; - } - - function pingDestinationSuccess(data, status) { - vm.isError = false; - vm.pingTIP = false; - vm.pingMessage = $filter('tr')('successful_ping_target', []); - } - function pingDestinationFailed(data, status) { - vm.isError = true; - vm.pingTIP = false; - if(status === 404) { - data = ''; - } - vm.pingMessage = $filter('tr')('failed_to_ping_target', []); - console.log("Failed to ping target:" + data); - } - } - - function createDestination($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/system-management/create-destination.directive.html', - 'scope': { - 'action': '@', - 'targetId': '@', - 'reload': '&' - }, - 'link': link, - 'controller': CreateDestinationController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - element.find('#createDestinationModal').on('show.bs.modal', function() { - scope.$apply(function(){ - scope.form.$setPristine(); - scope.form.$setUntouched(); - - ctrl.editable = true; - ctrl.notAvailble = true; - ctrl.pingMessage = ''; - - ctrl.pingTIP = false; - ctrl.toggleErrorMessage = false; - ctrl.errorMessages = []; - - switch(ctrl.action) { - case 'ADD_NEW': - ctrl.addNew(); - break; - case 'EDIT': - ctrl.edit(ctrl.targetId); - break; - } - - scope.$watch('vm.errorMessages', function(current) { - if(current && current.length > 0) { - ctrl.toggleErrorMessage = true; - } - }, true); - }); - }); - - ctrl.save = save; - ctrl.closeDialog = closeDialog; - - function save(destination) { - if(destination) { - ctrl.toggleErrorMessage = false; - ctrl.errorMessages = []; - - switch(ctrl.action) { - case 'ADD_NEW': - ctrl.create(destination); - break; - case 'EDIT': - ctrl.update(destination); - break; - } - } - } - - function closeDialog() { - element.find('#createDestinationModal').modal('hide'); - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/destination.directive.html b/src/ui/static/resources/js/components/system-management/destination.directive.html deleted file mode 100644 index 6d47cec4d..000000000 --- a/src/ui/static/resources/js/components/system-management/destination.directive.html +++ /dev/null @@ -1,63 +0,0 @@ - -
    -
    -
    -
    - - - - -
    - - -
    -
    -
    -
    - - - - - - - -
    // 'name' | tr //// 'endpoint' | tr //// 'creation_time' | tr //// 'actions' | tr //
    -
    -
    - - - - - - - - - - - - -

    // 'no_destinations' | tr //

    //r.name////r.endpoint////r.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'// - -   - -
    -
    -
    -
    -
    //vm.destinations ? vm.destinations.length : 0// // 'items' | tr //
    -
    -
    -
    diff --git a/src/ui/static/resources/js/components/system-management/destination.directive.js b/src/ui/static/resources/js/components/system-management/destination.directive.js deleted file mode 100644 index 0e4da65e4..000000000 --- a/src/ui/static/resources/js/components/system-management/destination.directive.js +++ /dev/null @@ -1,135 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management') - .directive('destination', destination); - - DestinationController.$inject = ['$scope', 'ListDestinationService', 'DeleteDestinationService', '$filter', 'trFilter']; - - function DestinationController($scope, ListDestinationService, DeleteDestinationService, $filter, trFilter) { - - $scope.subsSubPane = 276; - $scope.subsTblBody = 40; - var vm = this; - - vm.retrieve = retrieve; - vm.search = search; - vm.addDestination = addDestination; - vm.editDestination = editDestination; - vm.confirmToDelete = confirmToDelete; - vm.deleteDestination = deleteDestination; - - vm.retrieve(); - - function retrieve() { - ListDestinationService('', vm.destinationName) - .success(listDestinationSuccess) - .error(listDestinationFailed); - } - - function search() { - vm.retrieve(); - } - - function addDestination() { - vm.action = 'ADD_NEW'; - console.log('Action for destination:' + vm.action); - } - - function editDestination(targetId) { - vm.action = 'EDIT'; - vm.targetId = targetId; - console.log('Action for destination:' + vm.action + ', target ID:' + vm.targetId); - } - - function confirmToDelete(targetId, name) { - vm.selectedTargetId = targetId; - - $scope.$emit('modalTitle', $filter('tr')('confirm_delete_destination_title')); - $scope.$emit('modalMessage', $filter('tr')('confirm_delete_destination', [name])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/plain', - 'action': vm.deleteDestination - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function deleteDestination() { - DeleteDestinationService(vm.selectedTargetId) - .success(deleteDestinationSuccess) - .error(deleteDestinationFailed); - } - - function listDestinationSuccess(data, status) { - vm.destinations = data || []; - } - - function listDestinationFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_list_destination')); - $scope.$emit('raiseError', true); - console.log('Failed to list destination:' + data); - } - - function deleteDestinationSuccess(data, status) { - console.log('Successful delete destination.'); - vm.retrieve(); - } - - function deleteDestinationFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_destination')); - $scope.$emit('raiseError', true); - console.log('Failed to delete destination:' + data); - } - } - - destination.$inject = ['$timeout']; - - function destination($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/system-management/destination.directive.html', - 'scope': true, - 'link': link, - 'controller': DestinationController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.retrieve(); - } else { - $timeout(function() { - if(ctrl.destinationName.length === 0) { - ctrl.retrieve(); - } - }); - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/replication.directive.html b/src/ui/static/resources/js/components/system-management/replication.directive.html deleted file mode 100644 index 01cc5c232..000000000 --- a/src/ui/static/resources/js/components/system-management/replication.directive.html +++ /dev/null @@ -1,77 +0,0 @@ - -
    -
    -
    -
    - - - - -
    - -
    -
    -
    -
    - - - - - - - - - - -
    // 'name' | tr //// 'description' | tr //// 'projects' | tr //// 'destination' | tr //// 'start_time' | tr //// 'activation' | tr //// 'actions' | tr //
    -
    -
    - - - - - - - - - - - - - - - -

    // 'no_replication_policies' | tr //

    //r.name////r.description////r.project_name////r.target_name////r.start_time | dateL : 'YYYY-MM-DD HH:mm:ss'// - // 'enabled' | tr // - // 'disabled' | tr // - -
    - - -
    -   - -   - -
    -
    -
    -
    -
    -
    //vm.replications ? vm.replications.length : 0// // 'items' | tr //
    -
    -
    -
    diff --git a/src/ui/static/resources/js/components/system-management/replication.directive.js b/src/ui/static/resources/js/components/system-management/replication.directive.js deleted file mode 100644 index 522c8f672..000000000 --- a/src/ui/static/resources/js/components/system-management/replication.directive.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management') - .directive('replication', replication); - - ReplicationController.$inject = ['$scope', 'ListReplicationPolicyService', 'ToggleReplicationPolicyService', '$filter', 'trFilter']; - - function ReplicationController($scope, ListReplicationPolicyService, ToggleReplicationPolicyService, $filter, trFilter) { - - $scope.subsSubPane = 276; - - var vm = this; - vm.retrieve = retrieve; - vm.search = search; - vm.confirmToTogglePolicy = confirmToTogglePolicy; - vm.togglePolicy = togglePolicy; - vm.editReplication = editReplication; - vm.retrieve(); - - function search() { - vm.retrieve(); - } - - function retrieve() { - ListReplicationPolicyService('', '', vm.replicationName) - .success(listReplicationPolicySuccess) - .error(listReplicationPolicyFailed); - } - - function listReplicationPolicySuccess(data, status) { - vm.replications = data || []; - } - - function listReplicationPolicyFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_list_replication')); - $scope.$emit('raiseError', true); - console.log('Failed to list replication policy.'); - } - - function confirmToTogglePolicy(policyId, enabled, name) { - vm.policyId = policyId; - vm.enabled = enabled; - - var status = $filter('tr')(vm.enabled === 1 ? 'enable':'disable'); - - var title; - var message; - if(enabled === 1){ - title = $filter('tr')('confirm_to_toggle_enabled_policy_title'); - message = $filter('tr')('confirm_to_toggle_enabled_policy'); - }else{ - title = $filter('tr')('confirm_to_toggle_disabled_policy_title'); - message = $filter('tr')('confirm_to_toggle_disabled_policy'); - } - $scope.$emit('modalTitle', title); - $scope.$emit('modalMessage', message); - - var emitInfo = { - 'contentType': 'text/html', - 'confirmOnly': false, - 'action': vm.togglePolicy - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function togglePolicy() { - ToggleReplicationPolicyService(vm.policyId, vm.enabled) - .success(toggleReplicationPolicySuccess) - .error(toggleReplicationPolicyFailed); - } - - function toggleReplicationPolicySuccess(data, status) { - console.log('Successful toggle replication policy.'); - vm.retrieve(); - } - - function toggleReplicationPolicyFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_toggle_policy')); - $scope.$emit('raiseError', true); - console.log('Failed to toggle replication policy.'); - } - - function editReplication(policyId) { - vm.action = 'EDIT'; - vm.policyId = policyId; - } - } - - replication.$inject = ['$timeout']; - - function replication($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/system-management/replication.directive.html', - 'scope': true, - 'link': link, - 'controller': ReplicationController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.retrieve(); - } else { - $timeout(function() { - if(ctrl.replicationName.length === 0) { - ctrl.retrieve(); - } - }); - } - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/components/system-management/system-management.directive.html b/src/ui/static/resources/js/components/system-management/system-management.directive.html deleted file mode 100644 index 2005152c2..000000000 --- a/src/ui/static/resources/js/components/system-management/system-management.directive.html +++ /dev/null @@ -1,24 +0,0 @@ - -
    - - - -
    -
    - - - -
    diff --git a/src/ui/static/resources/js/components/system-management/system-management.directive.js b/src/ui/static/resources/js/components/system-management/system-management.directive.js deleted file mode 100644 index f04f54549..000000000 --- a/src/ui/static/resources/js/components/system-management/system-management.directive.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management') - .directive('systemManagement', systemManagement); - - SystemManagementController.$inject = ['$scope', '$location']; - - function SystemManagementController($scope, $location) { - var vm = this; - var currentTarget = $location.path().substring(1); - - switch(currentTarget) { - case 'destinations': - case 'replication': - case 'configuration': - $location.path('/' + currentTarget); - vm.target = currentTarget; - break; - default: - $location.path('/destinations'); - vm.target = 'destinations'; - } - - } - - function systemManagement() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/system-management/system-management.directive.html', - 'scope': true, - 'controller': SystemManagementController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/system-management/system-management.module.js b/src/ui/static/resources/js/components/system-management/system-management.module.js deleted file mode 100644 index f52f7aa1a..000000000 --- a/src/ui/static/resources/js/components/system-management/system-management.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.system.management', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/top-repository/top-repository.directive.html b/src/ui/static/resources/js/components/top-repository/top-repository.directive.html deleted file mode 100644 index e6567e7f6..000000000 --- a/src/ui/static/resources/js/components/top-repository/top-repository.directive.html +++ /dev/null @@ -1,38 +0,0 @@ - - -
    -
    - - - - - -
    // 'repository_name' | tr //// 'count' | tr //
    -
    -
    - - - - - - - - - - -

    // 'no_top_repositories' | tr //

    //t.name////t.count//
    -
    -
    diff --git a/src/ui/static/resources/js/components/top-repository/top-repository.directive.js b/src/ui/static/resources/js/components/top-repository/top-repository.directive.js deleted file mode 100644 index bb02890b4..000000000 --- a/src/ui/static/resources/js/components/top-repository/top-repository.directive.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.top.repository') - .directive('topRepository', topRepository); - - TopRepositoryController.$inject = ['$scope', 'ListTopRepositoryService', '$filter', 'trFilter']; - - function TopRepositoryController($scope, ListTopRepositoryService, $filter, trFilter) { - var vm = this; - - ListTopRepositoryService(5) - .success(listTopRepositorySuccess) - .error(listTopRepositoryFailed); - - function listTopRepositorySuccess(data) { - vm.top10Repositories = data || []; - } - - function listTopRepositoryFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_top_repo')); - $scope.$emit('raiseError', true); - console.log('Failed to get top repo:' + data); - } - - } - - function topRepository() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/top-repository/top-repository.directive.html', - 'controller': TopRepositoryController, - 'scope' : { - 'customBodyHeight': '=' - }, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - } - -})(); diff --git a/src/ui/static/resources/js/components/top-repository/top-repository.module.js b/src/ui/static/resources/js/components/top-repository/top-repository.module.js deleted file mode 100644 index 988f4e2f6..000000000 --- a/src/ui/static/resources/js/components/top-repository/top-repository.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.top.repository', [ - 'harbor.services.repository' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/user-log/user-log.directive.html b/src/ui/static/resources/js/components/user-log/user-log.directive.html deleted file mode 100644 index 9764fc7af..000000000 --- a/src/ui/static/resources/js/components/user-log/user-log.directive.html +++ /dev/null @@ -1,43 +0,0 @@ - -
    -
    - - - - - - - - -
    // 'username' | tr //// 'repository_name' | tr //// 'tag' | tr //// 'operation' | tr //// 'timestamp' | tr //
    -
    -
    - - - - - - - - - - - - - -

    // 'no_user_logs' | tr //

    //t.username////t.repo_name////t.repo_tag////t.operation////t.op_time | dateL : 'YYYY-MM-DD HH:mm:ss'//
    -
    -
    diff --git a/src/ui/static/resources/js/components/user-log/user-log.directive.js b/src/ui/static/resources/js/components/user-log/user-log.directive.js deleted file mode 100644 index d6f5dc344..000000000 --- a/src/ui/static/resources/js/components/user-log/user-log.directive.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.user.log') - .directive('userLog', userLog); - - UserLogController.$inject = ['$scope', 'ListIntegratedLogService', '$filter', 'trFilter', '$window']; - - function UserLogController($scope, ListIntegratedLogService, $filter, trFilter, $window) { - var vm = this; - - ListIntegratedLogService() - .success(listIntegratedLogSuccess) - .error(listIntegratedLogFailed); - - vm.gotoRepo = gotoRepo; - - function listIntegratedLogSuccess(data) { - vm.integratedLogs = data || []; - } - - function listIntegratedLogFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_user_log')); - $scope.$emit('raiseError', true); - console.log('Failed to get user logs:' + data); - } - - function gotoRepo(projectId, repoName) { - $window.location.href = '/repository#/repositories?project_id=' + projectId + '#' + encodeURIComponent(repoName); - } - - } - - function userLog() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/user-log/user-log.directive.html', - 'controller': UserLogController, - 'scope' : true, - 'controllerAs': 'vm', - 'bindToController': true - }; - - return directive; - } - -})(); diff --git a/src/ui/static/resources/js/components/user-log/user-log.module.js b/src/ui/static/resources/js/components/user-log/user-log.module.js deleted file mode 100644 index 6610262b1..000000000 --- a/src/ui/static/resources/js/components/user-log/user-log.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.user.log', [ - 'harbor.services.log' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/user/list-user.directive.html b/src/ui/static/resources/js/components/user/list-user.directive.html deleted file mode 100644 index 7d524634a..000000000 --- a/src/ui/static/resources/js/components/user/list-user.directive.html +++ /dev/null @@ -1,64 +0,0 @@ - -
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    - - - - - - - - -
    // 'username' | tr //// 'email' | tr //// 'registration_time' | tr //// 'administrator' | tr //// 'operation' | tr //
    -
    - -
    - - - - - - - - - - -
    //u.username////u.email////u.creation_time | dateL : 'YYYY-MM-DD HH:mm:ss'// - - -    -
    -
    -
    -
    -
    //vm.users ? vm.users.length : 0// // 'items' | tr //
    -
    -
    -
    -
    - - diff --git a/src/ui/static/resources/js/components/user/list-user.directive.js b/src/ui/static/resources/js/components/user/list-user.directive.js deleted file mode 100644 index 391c4994a..000000000 --- a/src/ui/static/resources/js/components/user/list-user.directive.js +++ /dev/null @@ -1,126 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.user') - .directive('listUser', listUser); - - ListUserController.$inject = ['$scope', 'ListUserService', 'DeleteUserService', 'currentUser', '$filter', 'trFilter']; - - function ListUserController($scope, ListUserService, DeleteUserService, currentUser, $filter, $trFilter) { - - $scope.subsSubPane = 226; - - var vm = this; - - vm.username = ''; - vm.searchUser = searchUser; - vm.deleteUser = deleteUser; - vm.confirmToDelete = confirmToDelete; - vm.retrieve = retrieve; - - vm.retrieve(); - - function searchUser() { - vm.retrieve(); - } - - function deleteUser() { - DeleteUserService(vm.selectedUserId) - .success(deleteUserSuccess) - .error(deleteUserFailed); - } - - function confirmToDelete(userId, username) { - vm.selectedUserId = userId; - - $scope.$emit('modalTitle', $filter('tr')('confirm_delete_user_title')); - $scope.$emit('modalMessage', $filter('tr')('confirm_delete_user', [username])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/plain', - 'action': vm.deleteUser - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function retrieve() { - ListUserService(vm.username) - .success(listUserSuccess) - .error(listUserFailed); - } - - function deleteUserSuccess(data, status) { - console.log('Successful delete user.'); - vm.retrieve(); - } - - function deleteUserFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_user')); - $scope.$emit('raiseError', true); - console.log('Failed to delete user.'); - } - - function listUserSuccess(data, status) { - vm.currentUser = currentUser.get(); - vm.users = data; - } - - function listUserFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_list_user')); - $scope.$emit('raiseError', true); - console.log('Failed to list user:' + data); - } - } - - listUser.$inject = ['$timeout']; - - function listUser($timeout) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/user/list-user.directive.html', - 'link': link, - 'scope': { - 'authMode': '@' - }, - 'controller': ListUserController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - element.find('#txtSearchInput').on('keydown', function(e) { - if($(this).is(':focus') && e.keyCode === 13) { - ctrl.retrieve(); - } else { - $timeout(function() { - if(ctrl.username.length === 0) { - ctrl.retrieve(); - } - }); - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/user/toggle-admin.directive.html b/src/ui/static/resources/js/components/user/toggle-admin.directive.html deleted file mode 100644 index dfaf86cf7..000000000 --- a/src/ui/static/resources/js/components/user/toggle-admin.directive.html +++ /dev/null @@ -1,16 +0,0 @@ - - - \ No newline at end of file diff --git a/src/ui/static/resources/js/components/user/toggle-admin.directive.js b/src/ui/static/resources/js/components/user/toggle-admin.directive.js deleted file mode 100644 index b4d3845ab..000000000 --- a/src/ui/static/resources/js/components/user/toggle-admin.directive.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.user') - .directive('toggleAdmin', toggleAdmin); - - ToggleAdminController.$inject = ['$scope', 'ToggleAdminService', '$filter', 'trFilter']; - - function ToggleAdminController($scope, ToggleAdminService, $filter, trFilter) { - var vm = this; - - vm.isAdmin = (vm.hasAdminRole === 1); - vm.toggle = toggle; - vm.editable = (vm.currentUser.user_id !== Number(vm.userId)); - - function toggle() { - ToggleAdminService(vm.userId, vm.isAdmin ? 0 : 1) - .success(toggleAdminSuccess) - .error(toggleAdminFailed); - } - - function toggleAdminSuccess(data, status) { - console.log('Toggled userId:' + vm.userId + ' to admin:' + vm.isAdmin); - vm.isAdmin = !vm.isAdmin; - } - - function toggleAdminFailed(data, status) { - console.log('Failed to toggle admin:' + data); - vm.isAdmin = !vm.isAdmin; - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_toggle_admin')); - $scope.$emit('raiseError', true); - } - } - - function toggleAdmin() { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/components/user/toggle-admin.directive.html', - 'scope': { - 'hasAdminRole': '=', - 'userId': '@', - 'currentUser': '=' - }, - 'link': link, - 'controller': ToggleAdminController, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - } - } - -})(); diff --git a/src/ui/static/resources/js/components/user/user.module.js b/src/ui/static/resources/js/components/user/user.module.js deleted file mode 100644 index a81aa1614..000000000 --- a/src/ui/static/resources/js/components/user/user.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.user', [ - 'harbor.services.user']); -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/chars-length.validator.js b/src/ui/static/resources/js/components/validator/chars-length.validator.js deleted file mode 100644 index bfab0cd84..000000000 --- a/src/ui/static/resources/js/components/validator/chars-length.validator.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('charsLength', charsLength); - - charsLength.$inject = ['ASCII_CHARS']; - - function charsLength(ASCII_CHARS) { - var directive = { - 'require': 'ngModel', - 'scope': { - min: '@', - max: '@' - }, - 'link': link - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - - ctrl.$validators.charsLength = validator; - - function validator(modelValue, viewValue) { - if(ctrl.$isEmpty(modelValue)) { - return true; - } - - var actualLength = 0; - - if(ASCII_CHARS.test(modelValue)) { - actualLength = modelValue.length; - }else{ - for(var i = 0; i < modelValue.length; i++) { - ASCII_CHARS.test(modelValue[i]) ? actualLength += 1 : actualLength += 2; - } - } - - if(attrs.min && actualLength < attrs.min) { - return false; - } - - if(attrs.max && actualLength > attrs.max) { - return false; - } - - return true; - } - - } - } - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/confirm-password.validator.js b/src/ui/static/resources/js/components/validator/confirm-password.validator.js deleted file mode 100644 index f52050a73..000000000 --- a/src/ui/static/resources/js/components/validator/confirm-password.validator.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('compareTo', compareTo); - - function compareTo() { - var directive = { - 'require' : 'ngModel', - 'scope':{ - 'otherModelValue': '=compareTo' - }, - 'link': link - }; - return directive; - - function link (scope, element, attrs, ctrl) { - - ctrl.$validators.compareTo = validator; - - function validator(modelValue) { - return modelValue === scope.otherModelValue; - } - - scope.$watch("otherModelValue", function(current, origin) { - ctrl.$validate(); - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/email.validator.js b/src/ui/static/resources/js/components/validator/email.validator.js deleted file mode 100644 index c7421bfa8..000000000 --- a/src/ui/static/resources/js/components/validator/email.validator.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('email', email); - - email.$inject = ['EMAIL_REGEXP']; - - function email(EMAIL_REGEXP) { - var directive = { - 'require' : 'ngModel', - 'link': link - }; - return directive; - - function link (scope, element, attrs, ctrl) { - - ctrl.$validators.email = validator; - - function validator(modelValue, viewValue) { - - return EMAIL_REGEXP.test(modelValue); - - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/invalid-chars.validator.js b/src/ui/static/resources/js/components/validator/invalid-chars.validator.js deleted file mode 100644 index 9e36f3096..000000000 --- a/src/ui/static/resources/js/components/validator/invalid-chars.validator.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('invalidChars', invalidChars); - - invalidChars.$inject = ['INVALID_CHARS']; - - function invalidChars(INVALID_CHARS) { - var directive = { - 'require': 'ngModel', - 'link': link - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - - ctrl.$validators.invalidChars = validator; - - function validator(modelValue, viewValue) { - if(ctrl.$isEmpty(modelValue)) { - return true; - } - - for(var i = 0; i < INVALID_CHARS.length; i++) { - if(modelValue.indexOf(INVALID_CHARS[i]) >= 0) { - return false; - } - } - - return true; - } - - } - } - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/password.validator.js b/src/ui/static/resources/js/components/validator/password.validator.js deleted file mode 100644 index 3f67d7257..000000000 --- a/src/ui/static/resources/js/components/validator/password.validator.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('password', password); - - password.$inject = ['PASSWORD_REGEXP']; - - function password(PASSWORD_REGEXP) { - var directive = { - 'require' : 'ngModel', - 'link': link - }; - return directive; - - function link (scope, element, attrs, ctrl) { - - ctrl.$validators.password = validator; - - function validator(modelValue, viewValue) { - - return PASSWORD_REGEXP.test(modelValue); - - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/project-name.validator.js b/src/ui/static/resources/js/components/validator/project-name.validator.js deleted file mode 100644 index a2fcff132..000000000 --- a/src/ui/static/resources/js/components/validator/project-name.validator.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('projectName', projectName); - - projectName.$inject = ['PROJECT_REGEXP']; - - function projectName(PROJECT_REGEXP) { - var directive = { - 'require': 'ngModel', - 'link': link - }; - return directive; - - function link(scope, element, attrs, ctrl) { - ctrl.$validators.projectName = validator; - - function validator(modelValue, viewValue) { - return PROJECT_REGEXP.test(modelValue); - } - } - } - -})(); diff --git a/src/ui/static/resources/js/components/validator/user-exist.validator.js b/src/ui/static/resources/js/components/validator/user-exist.validator.js deleted file mode 100644 index 03d4fae92..000000000 --- a/src/ui/static/resources/js/components/validator/user-exist.validator.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .directive('userExists', userExists); - - userExists.$inject = ['UserExistService']; - - function userExists(UserExistService) { - var directive = { - 'require': 'ngModel', - 'scope': { - 'target': '@' - }, - 'link': link - }; - return directive; - - function link(scope, element, attrs, ctrl) { - - var valid = true; - - ctrl.$validators.userExists = validator; - - function validator(modelValue, viewValue) { - - if(ctrl.$isEmpty(modelValue)) { - return true; - } - - UserExistService(attrs.target, modelValue) - .success(userExistSuccess) - .error(userExistFailed); - - function userExistSuccess(data, status) { - valid = !data; - if(!valid) { - console.log('Model value already exists'); - } - } - - function userExistFailed(data, status) { - console.log('Failed to in retrieval:' + data); - } - - return valid; - } - } - - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/validator.config.js b/src/ui/static/resources/js/components/validator/validator.config.js deleted file mode 100644 index 10148674d..000000000 --- a/src/ui/static/resources/js/components/validator/validator.config.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator') - .constant('INVALID_CHARS', [",","~","#", "$", "%"]) - .constant('PASSWORD_REGEXP', /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{8,20}$/) - .constant('PROJECT_REGEXP', /^[a-z0-9](?:-*[a-z0-9])*(?:[._][a-z0-9](?:-*[a-z0-9])*)*$/) - .constant('EMAIL_REGEXP', /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/) - .constant('ASCII_CHARS', /^[\000-\177]*$/); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/components/validator/validator.module.js b/src/ui/static/resources/js/components/validator/validator.module.js deleted file mode 100644 index 06988ab57..000000000 --- a/src/ui/static/resources/js/components/validator/validator.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.validator', [ - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/harbor.config.js b/src/ui/static/resources/js/harbor.config.js deleted file mode 100644 index fb919b29e..000000000 --- a/src/ui/static/resources/js/harbor.config.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - angular - .module('harbor.app') - .config(function($interpolateProvider){ - $interpolateProvider.startSymbol('//'); - $interpolateProvider.endSymbol('//'); - }) - .config(function($httpProvider) { - //initialize get if not there - if (!$httpProvider.defaults.headers.get) { - $httpProvider.defaults.headers.get = {}; - } - - // Answer edited to include suggestions from comments - // because previous version of code introduced browser-related errors - - //disable IE ajax request caching - $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; - // extra - $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache'; - $httpProvider.defaults.headers.get['Pragma'] = 'no-cache'; - $httpProvider.defaults.headers.common = {'Accept': 'application/json, text/javascript, */*; q=0.01'}; - $httpProvider.interceptors.push('redirectInterceptor'); - }) - .service('redirectInterceptor', RedirectInterceptorService) - .factory('getParameterByName', getParameterByName) - .filter('dateL', localizeDate) - .filter('tr', tr); - - RedirectInterceptorService.$inject = ['$q', '$window', '$location']; - - function RedirectInterceptorService($q, $window, $location) { - return { - 'responseError': function(rejection) { - var url = rejection.config.url; - console.log('url:' + url); - var exclusion = [ - /^\/login$/, - /^\/api\/targets\/ping$/, - /^\/api\/users\/current$/, - /^\/api\/repositories$/, - /^\/api\/projects\/[0-9]+\/members\/current$/ - ]; - var isExcluded = false; - for(var i in exclusion) { - isExcluded = exclusion[i].test(url); - if(isExcluded) { - break; - } - } - if(!isExcluded && rejection.status === 401) { - $window.location.href = '/?last_url=' + encodeURIComponent(location.pathname + '#' + $location.url()); - return; - } - return $q.reject(rejection); - } - }; - } - - function getParameterByName() { - return get; - function get(name, url) { - name = name.replace(/[\[\]]/g, "\\$&"); - var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), - results = regex.exec(url); - if (!results) { - return null; - } - - if (!results[2]) { - return ''; - } - - return decodeURIComponent(results[2].replace(/\+/g, " ")); - } - } - - function localizeDate() { - return filter; - - function filter(input, pattern) { - var d = new Date(input || ''); - if(d.getTime() <= 0) {return '-';} - return moment(d).format(pattern); - } - } - - tr.$inject = ['I18nService']; - - function tr(I18nService) { - return tr; - function tr(label, params) { - var currentLanguage = I18nService().getCurrentLanguage(); - var result = ''; - if(label && label.length > 0){ - result = I18nService().getValue(label, currentLanguage); - } - if(angular.isArray(params)) { - angular.forEach(params, function(value, index) { - result = result.replace('$' + index, params[index]); - }); - } - return result; - } - } - -})(); diff --git a/src/ui/static/resources/js/harbor.constants.js b/src/ui/static/resources/js/harbor.constants.js deleted file mode 100644 index 2e5449842..000000000 --- a/src/ui/static/resources/js/harbor.constants.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.app'); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/harbor.data.js b/src/ui/static/resources/js/harbor.data.js deleted file mode 100644 index 09b82bb22..000000000 --- a/src/ui/static/resources/js/harbor.data.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.app') - .factory('currentUser', currentUser); - - currentUser.$inject = ['$rootScope']; - - function currentUser($rootScope) { - return { - set: function(user) { - $rootScope.user = user; - }, - get: function() { - return $rootScope.user; - }, - unset: function() { - delete $rootScope.user; - } - }; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/harbor.initialize.js b/src/ui/static/resources/js/harbor.initialize.js deleted file mode 100644 index c267bd383..000000000 --- a/src/ui/static/resources/js/harbor.initialize.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.app'); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/harbor.module.js b/src/ui/static/resources/js/harbor.module.js deleted file mode 100644 index 8269b51aa..000000000 --- a/src/ui/static/resources/js/harbor.module.js +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - angular - .module('harbor.app', [ - 'ngMessages', - 'harbor.session', - 'harbor.layout.element.height', - 'harbor.layout.header', - 'harbor.layout.footer', - 'harbor.layout.navigation', - 'harbor.layout.sign.up', - 'harbor.layout.add.new', - 'harbor.layout.account.setting', - 'harbor.layout.change.password', - 'harbor.layout.forgot.password', - 'harbor.layout.reset.password', - 'harbor.layout.index', - 'harbor.layout.dashboard', - 'harbor.layout.project', - 'harbor.layout.admin.option', - 'harbor.layout.search', - 'harbor.services.i18n', - 'harbor.services.project', - 'harbor.services.user', - 'harbor.services.repository', - 'harbor.services.project.member', - 'harbor.services.replication.policy', - 'harbor.services.replication.job', - 'harbor.services.destination', - 'harbor.services.system.info', - 'harbor.summary', - 'harbor.user.log', - 'harbor.top.repository', - 'harbor.optional.menu', - 'harbor.modal.dialog', - 'harbor.sign.in', - 'harbor.search', - 'harbor.project', - 'harbor.details', - 'harbor.repository', - 'harbor.project.member', - 'harbor.user', - 'harbor.log', - 'harbor.validator', - 'harbor.replication', - 'harbor.system.management', - 'harbor.loading.progress', - 'harbor.inline.help', - 'harbor.dismissable.alerts', - 'harbor.paginator' - ]); -})(); diff --git a/src/ui/static/resources/js/layout/account-setting/account-setting.controller.js b/src/ui/static/resources/js/layout/account-setting/account-setting.controller.js deleted file mode 100644 index e6badb070..000000000 --- a/src/ui/static/resources/js/layout/account-setting/account-setting.controller.js +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.account.setting') - .controller('AccountSettingController', AccountSettingController); - - AccountSettingController.$inject = ['ChangePasswordService', 'UpdateUserService', '$filter', 'trFilter', '$scope', '$window', 'currentUser']; - - function AccountSettingController(ChangePasswordService, UpdateUserService, $filter, trFilter, $scope, $window, currentUser) { - - var vm = this; - vm.isOpen = false; - - vm.hasError = false; - vm.errorMessage = ''; - - vm.reset = reset; - vm.confirm = confirm; - vm.updateUser = updateUser; - vm.cancel = cancel; - - $scope.$watch('user', function(current) { - if(current) { - $scope.user = current; - } - }); - - //Error message dialog handler for account setting. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function reset() { - $scope.form.$setUntouched(); - $scope.form.$setPristine(); - vm.hasError = false; - vm.errorMessage = ''; - } - - function confirm() { - $window.location.href = '/dashboard'; - } - - function updateUser(user) { - vm.confirmOnly = true; - vm.action = vm.confirm; - if(user && angular.isDefined(user.username) && angular.isDefined(user.realname)) { - UpdateUserService($scope.user.user_id, user) - .success(updateUserSuccess) - .error(updateUserFailed); - currentUser.set($scope.user); - } - } - - function updateUserSuccess(data, status) { - vm.modalTitle = $filter('tr')('change_profile', []); - vm.modalMessage = $filter('tr')('successful_changed_profile', []); - $scope.$broadcast('showDialog', true); - } - - function updateUserFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - var message; - if(status === 409) { - message = $filter('tr')('email_has_been_taken'); - }else{ - message = $filter('tr')('failed_to_update_user'); - } - $scope.$emit('modalMessage', message); - $scope.$emit('raiseError', true); - console.log('Failed to update user:' + data); - } - - function cancel(form) { - $window.location.href = '/dashboard'; - } - - } - -})(); diff --git a/src/ui/static/resources/js/layout/account-setting/account-setting.module.js b/src/ui/static/resources/js/layout/account-setting/account-setting.module.js deleted file mode 100644 index 3b0d9df8a..000000000 --- a/src/ui/static/resources/js/layout/account-setting/account-setting.module.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.account.setting', [ - 'harbor.services.user']); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/add-new/add-new.controller.js b/src/ui/static/resources/js/layout/add-new/add-new.controller.js deleted file mode 100644 index ce9c8ccd4..000000000 --- a/src/ui/static/resources/js/layout/add-new/add-new.controller.js +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.add.new') - .controller('AddNewController', AddNewController); - - AddNewController.$inject = []; - - function AddNewController() { - var vm = this; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/add-new/add-new.module.js b/src/ui/static/resources/js/layout/add-new/add-new.module.js deleted file mode 100644 index 05e34afac..000000000 --- a/src/ui/static/resources/js/layout/add-new/add-new.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.add.new', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/admin-option/admin-option.config.js b/src/ui/static/resources/js/layout/admin-option/admin-option.config.js deleted file mode 100644 index 78e21a6b0..000000000 --- a/src/ui/static/resources/js/layout/admin-option/admin-option.config.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.admin.option'); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/admin-option/admin-option.controller.js b/src/ui/static/resources/js/layout/admin-option/admin-option.controller.js deleted file mode 100644 index 2a362fa01..000000000 --- a/src/ui/static/resources/js/layout/admin-option/admin-option.controller.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.admin.option') - .controller('AdminOptionController', AdminOptionController); - - AdminOptionController.$inject = ['$scope', '$timeout', '$location']; - - function AdminOptionController($scope, $timeout, $location) { - - $scope.subsSubPane = 296; - - var vm = this; - vm.toggle = false; - vm.target = 'users'; - vm.toggleAdminOption = toggleAdminOption; - - $scope.$on('$locationChangeSuccess', function(e) { - if($location.path() === '') { - vm.target = 'users'; - vm.toggle = false; - }else{ - vm.target = 'system_management'; - vm.toggle = true; - } - }); - - //Message dialog handler for admin-options. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - - $timeout(function() { - $scope.$broadcast('showDialog', true); - }, 350); - } - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - - - function toggleAdminOption(e) { - switch(e.target) { - case 'users': - vm.toggle = false; - break; - case 'system_management': - vm.toggle = true; - break; - } - vm.target = e.target; - } - } - -})(); diff --git a/src/ui/static/resources/js/layout/admin-option/admin-option.module.js b/src/ui/static/resources/js/layout/admin-option/admin-option.module.js deleted file mode 100644 index 7f486a965..000000000 --- a/src/ui/static/resources/js/layout/admin-option/admin-option.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.admin.option', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/change-password/change-password.controller.js b/src/ui/static/resources/js/layout/change-password/change-password.controller.js deleted file mode 100644 index f58e8e9ab..000000000 --- a/src/ui/static/resources/js/layout/change-password/change-password.controller.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.change.password') - .controller('ChangePasswordController', ChangePasswordController); - - ChangePasswordController.$inject = ['ChangePasswordService', 'UpdateUserService', '$filter', 'trFilter', '$scope', '$window']; - - function ChangePasswordController(ChangePasswordService, UpdateUserService, $filter, trFilter, $scope, $window) { - - var vm = this; - vm.isOpen = false; - - vm.hasError = false; - vm.errorMessage = ''; - - vm.reset = reset; - - vm.confirm = confirm; - vm.updatePassword = updatePassword; - vm.cancel = cancel; - - $scope.$watch('user', function(current) { - if(current) { - $scope.user = current; - } - }); - - //Error message dialog handler for changing password. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function reset() { - $scope.form.$setUntouched(); - $scope.form.$setPristine(); - vm.hasError = false; - vm.errorMessage = ''; - } - - function confirm() { - $window.location.href = '/dashboard'; - } - - function updatePassword(user) { - if(user && angular.isDefined(user.oldPassword) && angular.isDefined(user.password)) { - vm.action = vm.confirm; - ChangePasswordService($scope.user.user_id, user.oldPassword, user.password) - .success(changePasswordSuccess) - .error(changePasswordFailed); - } - } - - function changePasswordSuccess(data, status) { - vm.modalTitle = $filter('tr')('change_password', []); - vm.modalMessage = $filter('tr')('successful_changed_password', []); - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - - function changePasswordFailed(data, status) { - - var message; - $scope.$emit('modalTitle', $filter('tr')('error')); - console.log('Failed to change password:' + data); - if(data === 'old_password_is_not_correct') { - message = $filter('tr')('old_password_is_incorrect'); - }else{ - message = $filter('tr')('failed_to_change_password'); - } - - $scope.$emit('modalMessage', message); - $scope.$emit('raiseError', true); - } - - function cancel(form) { - $window.location.href = '/dashboard'; - } - - } - -})(); diff --git a/src/ui/static/resources/js/layout/change-password/change-password.module.js b/src/ui/static/resources/js/layout/change-password/change-password.module.js deleted file mode 100644 index ed7e81c6b..000000000 --- a/src/ui/static/resources/js/layout/change-password/change-password.module.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.change.password', [ - 'harbor.services.user']); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/dashboard/dashboard.controller.js b/src/ui/static/resources/js/layout/dashboard/dashboard.controller.js deleted file mode 100644 index bc5de1578..000000000 --- a/src/ui/static/resources/js/layout/dashboard/dashboard.controller.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.dashboard') - .controller('DashboardController', DashboardController); - - DashboardController.$inject = ['$scope']; - - function DashboardController($scope) { - var vm = this; - vm.customBodyHeight = {'height': '165px'}; - - //Error message dialog handler for dashboard. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/dashboard/dashboard.module.js b/src/ui/static/resources/js/layout/dashboard/dashboard.module.js deleted file mode 100644 index f9f24f9bd..000000000 --- a/src/ui/static/resources/js/layout/dashboard/dashboard.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.dashboard', [ - 'harbor.services.repository' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/details/details.config.js b/src/ui/static/resources/js/layout/details/details.config.js deleted file mode 100644 index cfcacca29..000000000 --- a/src/ui/static/resources/js/layout/details/details.config.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.details') - .filter('name', nameFilter); - - function nameFilter() { - - return filter; - - function filter(input, filterInput, key) { - input = input || []; - var filteredResults = []; - - if (filterInput !== '') { - for(var i = 0; i < input.length; i++) { - var item = input[i]; - if((key === "" && item.indexOf(filterInput) >= 0) || (key !== "" && item[key].indexOf(filterInput) >= 0)) { - filteredResults.push(item); - continue; - } - } - input = filteredResults; - } - return input; - } - } - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/details/details.controller.js b/src/ui/static/resources/js/layout/details/details.controller.js deleted file mode 100644 index 777f627a7..000000000 --- a/src/ui/static/resources/js/layout/details/details.controller.js +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.details') - .controller('DetailsController', DetailsController); - - DetailsController.$inject = ['$scope', '$timeout', '$window']; - - function DetailsController($scope, $timeout, $window) { - var vm = this; - - vm.isPublic = 0; - vm.isProjectMember = false; - - vm.togglePublicity = togglePublicity; - - vm.sectionHeight = {'min-height': '579px'}; - - //Message dialog handler for details. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - - $timeout(function() { - $scope.$broadcast('showDialog', true); - }, 350); - } - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - - $scope.$on('projectChanged', function(e, val) { - if(val) { - $scope.$broadcast('retrieveData', true); - } - }); - - function togglePublicity(e) { - vm.isPublic = e.isPublic; - $window.location='/project?is_public=' + vm.isPublic; - return; - } - } - -})(); diff --git a/src/ui/static/resources/js/layout/details/details.module.js b/src/ui/static/resources/js/layout/details/details.module.js deleted file mode 100644 index e60cd842e..000000000 --- a/src/ui/static/resources/js/layout/details/details.module.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.details', [ - 'harbor.services.project', - 'harbor.services.project.member' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/footer/footer.controller.js b/src/ui/static/resources/js/layout/footer/footer.controller.js deleted file mode 100644 index 5053c544f..000000000 --- a/src/ui/static/resources/js/layout/footer/footer.controller.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.footer') - .controller('FooterController', FooterController); - - function FooterController() { - var vm = this; - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/footer/footer.module.js b/src/ui/static/resources/js/layout/footer/footer.module.js deleted file mode 100644 index ccdc389d4..000000000 --- a/src/ui/static/resources/js/layout/footer/footer.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.footer', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js b/src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js deleted file mode 100644 index 0bc53644a..000000000 --- a/src/ui/static/resources/js/layout/forgot-password/forgot-password.controller.js +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.forgot.password') - .controller('ForgotPasswordController', ForgotPasswordController); - - ForgotPasswordController.$inject = ['SendMailService', '$window', '$scope', '$filter', 'trFilter']; - - function ForgotPasswordController(SendMailService, $window, $scope, $filter, trFilter) { - var vm = this; - - vm.hasError = false; - vm.show = false; - vm.errorMessage = ''; - - vm.reset = reset; - vm.sendMail = sendMail; - - vm.confirm = confirm; - vm.toggleInProgress = false; - - //Error message dialog handler for forgotting password. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function reset(){ - vm.hasError = false; - vm.errorMessage = ''; - } - - function sendMail(user) { - if(user && angular.isDefined(user.email)) { - - vm.action = vm.confirm; - - vm.toggleInProgress = true; - SendMailService(user.email) - .success(sendMailSuccess) - .error(sendMailFailed); - } - } - - function sendMailSuccess(data, status) { - vm.toggleInProgress = false; - vm.modalTitle = $filter('tr')('forgot_password'); - vm.modalMessage = $filter('tr')('mail_has_been_sent'); - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - - function sendMailFailed(data, status) { - vm.toggleInProgress = false; - vm.hasError = true; - vm.errorMessage = data; - - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_send_email')); - $scope.$emit('raiseError', true); - - console.log('Failed to send mail:' + data); - } - - function confirm() { - $window.location.href = '/'; - } - - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js b/src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js deleted file mode 100644 index 7c5ae0dc0..000000000 --- a/src/ui/static/resources/js/layout/forgot-password/forgot-password.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.forgot.password', [ - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/header/header.controller.js b/src/ui/static/resources/js/layout/header/header.controller.js deleted file mode 100644 index bbdf02276..000000000 --- a/src/ui/static/resources/js/layout/header/header.controller.js +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.header') - .controller('HeaderController', HeaderController); - - HeaderController.$inject = ['$scope', '$window', 'getParameterByName', '$location', 'currentUser']; - - function HeaderController($scope, $window, getParameterByName, $location, currentUser) { - var vm = this; - vm.user = currentUser.get(); - - if(location.pathname === '/dashboard') { - vm.defaultUrl = '/dashboard'; - }else{ - vm.defaultUrl = '/'; - } - - $scope.$watch('vm.user', function(current) { - if(current) { - vm.defaultUrl = '/dashboard'; - } - }); - - if($window.location.search) { - vm.searchInput = getParameterByName('q', $window.location.search); - console.log('vm.searchInput at header:' + vm.searchInput); - } - - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/header/header.module.js b/src/ui/static/resources/js/layout/header/header.module.js deleted file mode 100644 index b9c84401d..000000000 --- a/src/ui/static/resources/js/layout/header/header.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.header', [ - 'harbor.services.user', - 'harbor.services.i18n' - ]); -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/index/index.controller.js b/src/ui/static/resources/js/layout/index/index.controller.js deleted file mode 100644 index ef483513e..000000000 --- a/src/ui/static/resources/js/layout/index/index.controller.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.index') - .controller('IndexController', IndexController); - - IndexController.$inject = ['$scope', '$filter', 'trFilter', '$timeout']; - - function IndexController($scope, $filter, trFilter, $timeout) { - - $scope.subsHeight = 110; - $scope.subsSection = 32; - $scope.subsSubPane = 226; - - var vm = this; - - vm.customBodyHeight = {'height': '180px'}; - vm.viewAll = viewAll; - - function viewAll() { - var indexDesc = $filter('tr')('index_desc', []); - var indexDesc1 = $filter('tr')('index_desc_1', []); - var indexDesc2 = $filter('tr')('index_desc_2', []); - var indexDesc3 = $filter('tr')('index_desc_3', []); - var indexDesc4 = $filter('tr')('index_desc_4', []); - var indexDesc5 = $filter('tr')('index_desc_5', []); - var indexDesc6 = $filter('tr')('index_desc_6', []); - - $scope.$emit('modalTitle', $filter('tr')('harbor_intro_title')); - $scope.$emit('modalMessage', '

    '+ - indexDesc + - '

    ' + - '
      ' + - '
    • ▪︎ ' + indexDesc1 + '
    • ' + - '
    • ▪︎ ' + indexDesc2 + '
    • ' + - '
    • ▪︎ ' + indexDesc3 + '
    • ' + - '
    • ▪︎ ' + indexDesc4 + '
    • ' + - '
    • ▪︎ ' + indexDesc5 + '
    • ' + - '
    • ▪︎ ' + indexDesc6 + '
    • ' + - '
    '); - var emitInfo = { - 'contentType': 'text/html', - 'confirmOnly': true, - 'action': function() { - $scope.$broadcast('showDialog', false); - } - }; - $scope.$emit('raiseInfo', emitInfo); - } - - //Message dialog handler for index. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - - $timeout(function() { - $scope.$broadcast('showDialog', true); - }, 350); - } - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - - } - -})(); diff --git a/src/ui/static/resources/js/layout/index/index.module.js b/src/ui/static/resources/js/layout/index/index.module.js deleted file mode 100644 index 167a920fb..000000000 --- a/src/ui/static/resources/js/layout/index/index.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.index', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html b/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html deleted file mode 100644 index ab1641250..000000000 --- a/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.html +++ /dev/null @@ -1,19 +0,0 @@ - - \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js deleted file mode 100644 index ffc293f46..000000000 --- a/src/ui/static/resources/js/layout/navigation/navigation-admin-options.directive.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.navigation') - .directive('navigationAdminOptions', navigationAdminOptions); - - NavigationAdminOptions.$inject = ['$location']; - - function NavigationAdminOptions($location) { - var vm = this; - vm.path = $location.path(); - } - - navigationAdminOptions.$inject = ['I18nService']; - - function navigationAdminOptions(I18nService) { - var directive = { - 'restrict': 'E', - 'templateUrl': '/static/resources/js/layout/navigation/navigation-admin-options.directive.html', - 'scope': { - 'target': '=' - }, - 'link': link, - 'controller': NavigationAdminOptions, - 'controllerAs': 'vm', - 'bindToController': true - }; - return directive; - - function link(scope, element, attrs, ctrl) { - var visited = ctrl.path.substring(1); - console.log('visited:' + visited); - - var lang = I18nService().getCurrentLanguage(); - ctrl.customPos = {}; - - if(lang === 'zh-CN') { - ctrl.customPos = {'position': 'relative', 'left': '14%'}; - } - - if(visited) { - element.find('a[tag="' + visited + '"]').addClass('active'); - }else{ - element.find('a:first').addClass('active'); - } - - element.find('a').on('click', click); - - function click(event) { - element.find('a').removeClass('active'); - $(event.target).addClass('active'); - ctrl.target = $(this).attr('tag'); - scope.$apply(); - } - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/navigation/navigation-details.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-details.directive.js deleted file mode 100644 index b11cc2623..000000000 --- a/src/ui/static/resources/js/layout/navigation/navigation-details.directive.js +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.navigation') - .directive('navigationDetails', navigationDetails); - - NavigationDetailsController.$inject = ['$window', '$location', '$scope', 'getParameterByName']; - - function NavigationDetailsController($window, $location, $scope, getParameterByName) { - var vm = this; - - - vm.projectId = getParameterByName('project_id', $location.absUrl()); - - $scope.$on('$locationChangeSuccess', function() { - vm.projectId = getParameterByName('project_id', $location.absUrl()); - }); - - vm.path = $location.path(); - } - - navigationDetails.$inject = ['I18nService']; - - function navigationDetails(I18nService) { - var directive = { - restrict: 'E', - templateUrl: '/navigation_detail?timestamp=' + new Date().getTime(), - link: link, - scope: { - 'target': '=' - }, - replace: true, - controller: NavigationDetailsController, - controllerAs: 'vm', - bindToController: true - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - - var lang = I18nService().getCurrentLanguage(); - ctrl.customPos = {}; - - if(lang === 'zh-CN') { - ctrl.customPos = {'position': 'relative', 'left': '8%'}; - } - - var visited = ctrl.path.substring(1); - - if(visited) { - element.find('a[tag="' + visited + '"]').addClass('active'); - }else{ - element.find('a:first').addClass('active'); - } - - scope.$watch('vm.target', function(current) { - if(current) { - ctrl.target = current; - element.find('a').removeClass('active'); - element.find('a[tag="' + ctrl.target + '"]').addClass('active'); - } - }); - - element.find('a').on('click', click); - - function click(event) { - element.find('a').removeClass('active'); - $(event.target).addClass('active'); - ctrl.target = $(this).attr('tag'); - scope.$apply(); - } - - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/navigation/navigation-header.directive.js b/src/ui/static/resources/js/layout/navigation/navigation-header.directive.js deleted file mode 100644 index d1655f909..000000000 --- a/src/ui/static/resources/js/layout/navigation/navigation-header.directive.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.navigation') - .directive('navigationHeader', navigationHeader); - - NavigationHeaderController.$inject = ['$window', '$scope', 'currentUser', '$timeout']; - - function NavigationHeaderController($window, $scope, currentUser, $timeout) { - var vm = this; - vm.url = $window.location.pathname; - } - - function navigationHeader() { - var directive = { - restrict: 'E', - templateUrl: '/navigation_header?timestamp=' + new Date().getTime(), - link: link, - scope: true, - controller: NavigationHeaderController, - controllerAs: 'vm', - bindToController: true - }; - - return directive; - - function link(scope, element, attrs, ctrl) { - var visited = ctrl.url; - console.log('visited:' + visited); - if (visited !== '' && visited !== '/') { - element.find('a[href*="' + visited + '"]').addClass('active'); - } - element.find('a').on('click', click); - function click(event) { - element.find('a').removeClass('active'); - $(event.target).not('span').addClass('active'); - } - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/navigation/navigation.module.js b/src/ui/static/resources/js/layout/navigation/navigation.module.js deleted file mode 100644 index c1154f746..000000000 --- a/src/ui/static/resources/js/layout/navigation/navigation.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.navigation', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/project/project.controller.js b/src/ui/static/resources/js/layout/project/project.controller.js deleted file mode 100644 index ea8d595b8..000000000 --- a/src/ui/static/resources/js/layout/project/project.controller.js +++ /dev/null @@ -1,196 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.project') - .controller('ProjectController', ProjectController); - - ProjectController.$inject = ['$scope', 'ListProjectService', 'DeleteProjectService', '$timeout', 'currentUser', 'getRole', '$filter', 'trFilter', 'getParameterByName', '$location']; - - function ProjectController($scope, ListProjectService, DeleteProjectService, $timeout, currentUser, getRole, $filter, trFilter, getParameterByName, $location) { - var vm = this; - - vm.isOpen = false; - vm.projectName = ''; - vm.isPublic = Number(getParameterByName('is_public', $location.absUrl())) || 0; - - vm.page = 1; - vm.pageSize = 15; - - vm.sectionHeight = {'min-height': '579px'}; - - vm.retrieve = retrieve; - vm.showAddProject = showAddProject; - vm.searchProject = searchProject; - vm.showAddButton = showAddButton; - vm.togglePublicity = togglePublicity; - vm.user = currentUser.get(); - vm.getProjectRole = getProjectRole; - - vm.searchProjectByKeyPress = searchProjectByKeyPress; - vm.confirmToDelete = confirmToDelete; - vm.deleteProject = deleteProject; - - - - //Error message dialog handler for project. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $timeout(function() { - $scope.$broadcast('showDialog', true); - }, 350); - } - }); - - $scope.$on('raiseInfo', function(e, val) { - if(val) { - vm.action = function() { - val.action(); - $scope.$broadcast('showDialog', false); - }; - vm.contentType = val.contentType; - vm.confirmOnly = val.confirmOnly; - - $scope.$broadcast('showDialog', true); - } - }); - - - $scope.$watch('vm.page', function(current) { - if(current) { - vm.page = current; - vm.retrieve(); - } - }); - - function retrieve() { - ListProjectService(vm.projectName, vm.isPublic, vm.page, vm.pageSize) - .then(listProjectSuccess) - .catch(listProjectFailed); - } - - function listProjectSuccess(response) { - vm.totalCount = response.headers('X-Total-Count'); - vm.projects = response.data || []; - } - - function getProjectRole(roleId) { - if(roleId !== 0) { - var role = getRole({'key': 'roleId', 'value': roleId}); - return role.name; - } - return ''; - } - - function listProjectFailed(response) { - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_get_project')); - $scope.$emit('raiseError', true); - console.log('Failed to get Project.'); - } - - $scope.$on('addedSuccess', function(e, val) { - vm.retrieve(); - }); - - function showAddProject() { - vm.isOpen = vm.isOpen ? false : true; - } - - function searchProject() { - vm.retrieve(); - } - - function showAddButton() { - return (vm.isPublic === 0); - } - - function togglePublicity(e) { - vm.isPublic = e.isPublic; - vm.isOpen = false; - vm.page = 1; - vm.retrieve(); - } - - function searchProjectByKeyPress($event) { - var keyCode = $event.which || $event.keyCode; - if(keyCode === 13) { - vm.retrieve(); - } else { - $timeout(function() { - if(vm.projectName.length === 0) { - vm.retrieve(); - } - }); - } - } - - function confirmToDelete(projectId, projectName) { - vm.selectedProjectId = projectId; - - $scope.$emit('modalTitle', $filter('tr')('confirm_delete_project_title')); - $scope.$emit('modalMessage', $filter('tr')('confirm_delete_project', [projectName])); - - var emitInfo = { - 'confirmOnly': false, - 'contentType': 'text/plain', - 'action': vm.deleteProject - }; - - $scope.$emit('raiseInfo', emitInfo); - } - - function deleteProject() { - DeleteProjectService(vm.selectedProjectId) - .success(deleteProjectSuccess) - .error(deleteProjectFailed); - } - - function deleteProjectSuccess(data, status) { - console.log('Successful delete project.'); - vm.retrieve(); - } - - function deleteProjectFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - if(status === 412) { - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_project')); - } - if(status === 403) { - $scope.$emit('modalMessage', $filter('tr')('failed_to_delete_project_insuffient_permissions')); - } - $scope.$emit('raiseError', true); - console.log('Failed to delete project.'); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/project/project.module.js b/src/ui/static/resources/js/layout/project/project.module.js deleted file mode 100644 index 82db3c9bb..000000000 --- a/src/ui/static/resources/js/layout/project/project.module.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.project', [ - 'harbor.project.member', - 'harbor.services.project', - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/reset-password/reset-password.controller.js b/src/ui/static/resources/js/layout/reset-password/reset-password.controller.js deleted file mode 100644 index 9f8f6ebce..000000000 --- a/src/ui/static/resources/js/layout/reset-password/reset-password.controller.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.reset.password') - .controller('ResetPasswordController', ResetPasswordController); - - ResetPasswordController.$inject = ['$scope', '$location', 'ResetPasswordService', '$window', 'getParameterByName', '$filter', 'trFilter']; - - function ResetPasswordController($scope, $location, ResetPasswordService, $window, getParameterByName, $filter, trFilter) { - var vm = this; - vm.resetUuid = getParameterByName('reset_uuid', $location.absUrl()); - - vm.reset = reset; - vm.resetPassword = resetPassword; - vm.confirm = confirm; - vm.cancel = cancel; - - vm.hasError = false; - vm.errorMessage = ''; - - //Error message dialog handler for resetting password. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function reset() { - vm.hasError = false; - vm.errorMessage = ''; - } - - function resetPassword(user) { - if(user && angular.isDefined(user.password)) { - - vm.action = vm.confirm; - - console.log('rececived password:' + user.password + ', reset_uuid:' + vm.resetUuid); - ResetPasswordService(vm.resetUuid, user.password) - .success(resetPasswordSuccess) - .error(resetPasswordFailed); - } - } - - function confirm() { - $window.location.href = '/'; - } - - function resetPasswordSuccess(data, status) { - vm.modalTitle = $filter('tr')('reset_password'); - vm.modalMessage = $filter('tr')('successful_reset_password'); - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - - function resetPasswordFailed(data) { - vm.hasError = true; - - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_to_reset_pasword')); - $scope.$emit('raiseError', true); - - console.log('Failed to reset password:' + data); - } - - function cancel() { - $window.location.href = '/'; - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/reset-password/reset-password.module.js b/src/ui/static/resources/js/layout/reset-password/reset-password.module.js deleted file mode 100644 index ce10e0bb6..000000000 --- a/src/ui/static/resources/js/layout/reset-password/reset-password.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.reset.password', [ - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/search/search.controller.js b/src/ui/static/resources/js/layout/search/search.controller.js deleted file mode 100644 index 37ad1d211..000000000 --- a/src/ui/static/resources/js/layout/search/search.controller.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.search') - .controller('SearchController', SearchController); - - SearchController.$inject = ['$location', 'SearchService', '$scope', '$filter', 'trFilter', 'getParameterByName']; - - function SearchController($location, SearchService, $scope, $filter, trFilter, getParameterByName) { - var vm = this; - - vm.q = getParameterByName('q', $location.absUrl()); - console.log('vm.q:' + vm.q); - SearchService(vm.q) - .success(searchSuccess) - .error(searchFailed); - - //Error message dialog handler for search. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function searchSuccess(data, status) { - vm.repository = data['repository']; - vm.project = data['project']; - } - - function searchFailed(data, status) { - - $scope.$emit('modalTitle', $filter('tr')('error')); - $scope.$emit('modalMessage', $filter('tr')('failed_in_search')); - $scope.$emit('raiseError', true); - - console.log('Failed to search:' + data); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/search/search.module.js b/src/ui/static/resources/js/layout/search/search.module.js deleted file mode 100644 index 0e8f0fb7b..000000000 --- a/src/ui/static/resources/js/layout/search/search.module.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.search', []); - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/sign-up/sign-up.controller.js b/src/ui/static/resources/js/layout/sign-up/sign-up.controller.js deleted file mode 100644 index 19ac860ae..000000000 --- a/src/ui/static/resources/js/layout/sign-up/sign-up.controller.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.sign.up') - .controller('SignUpController', SignUpController); - - SignUpController.$inject = ['$scope', 'SignUpService', '$window', '$filter', 'trFilter']; - - function SignUpController($scope, SignUpService, $window, $filter, trFilter) { - var vm = this; - - $scope.user = {}; - vm.signUp = signUp; - vm.confirm = confirm; - - //Error message dialog handler for signing up. - $scope.$on('modalTitle', function(e, val) { - vm.modalTitle = val; - }); - - $scope.$on('modalMessage', function(e, val) { - vm.modalMessage = val; - }); - - $scope.$on('raiseError', function(e, val) { - if(val) { - vm.action = function() { - $scope.$broadcast('showDialog', false); - }; - vm.contentType = 'text/plain'; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - }); - - function signUp(user) { - var userObject = { - 'username': user.username, - 'email': user.email, - 'password': user.password, - 'realname': user.fullName, - 'comment': user.comment - }; - - vm.action = vm.confirm; - - SignUpService(userObject) - .success(signUpSuccess) - .error(signUpFailed); - } - - function signUpSuccess(data, status) { - var title; - var message; - if(vm.targetType) { - title = $filter('tr')('add_new_title'); - message = $filter('tr')('successful_added'); - }else{ - title = $filter('tr')('sign_up'); - message = $filter('tr')('successful_signed_up'); - } - vm.modalTitle = title; - vm.modalMessage = message; - vm.confirmOnly = true; - $scope.$broadcast('showDialog', true); - } - - function signUpFailed(data, status) { - $scope.$emit('modalTitle', $filter('tr')('error')); - var message; - if(vm.targetType) { - message = $filter('tr')('failed_to_add_user'); - }else{ - message = $filter('tr')('failed_to_sign_up'); - } - $scope.$emit('modalMessage', message); - $scope.$emit('raiseError', true); - - console.log('Signed up failed.'); - } - - function confirm() { - if(location.pathname === '/add_new') { - $window.location.href = '/dashboard'; - }else{ - $window.location.href = '/'; - } - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/layout/sign-up/sign-up.module.js b/src/ui/static/resources/js/layout/sign-up/sign-up.module.js deleted file mode 100644 index c038e7789..000000000 --- a/src/ui/static/resources/js/layout/sign-up/sign-up.module.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.layout.sign.up', [ - 'harbor.services.user']); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/destination/services.create-destination.js b/src/ui/static/resources/js/services/destination/services.create-destination.js deleted file mode 100644 index 4104da3cc..000000000 --- a/src/ui/static/resources/js/services/destination/services.create-destination.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('CreateDestinationService', CreateDestinationService); - - CreateDestinationService.$inject = ['$http']; - - function CreateDestinationService($http) { - return createDestination; - function createDestination(name, endpoint, username, password) { - return $http - .post('/api/targets', { - 'name': name, - 'endpoint': endpoint, - 'username': username, - 'password': password - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/services/destination/services.delete-destination.js b/src/ui/static/resources/js/services/destination/services.delete-destination.js deleted file mode 100644 index 6a34585da..000000000 --- a/src/ui/static/resources/js/services/destination/services.delete-destination.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('DeleteDestinationService', DeleteDestinationService); - - DeleteDestinationService.$inject = ['$http']; - - function DeleteDestinationService($http) { - return deleteDestination; - function deleteDestination(targetId) { - return $http - .delete('/api/targets/' + targetId); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/destination/services.destination.module.js b/src/ui/static/resources/js/services/destination/services.destination.module.js deleted file mode 100644 index 919d47734..000000000 --- a/src/ui/static/resources/js/services/destination/services.destination.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination', []); - -})(); diff --git a/src/ui/static/resources/js/services/destination/services.list-destination-policy.js b/src/ui/static/resources/js/services/destination/services.list-destination-policy.js deleted file mode 100644 index 9aae0445c..000000000 --- a/src/ui/static/resources/js/services/destination/services.list-destination-policy.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('ListDestinationPolicyService', ListDestinationPolicyService); - - ListDestinationPolicyService.$inject = ['$http']; - - function ListDestinationPolicyService($http) { - return listDestinationPolicy; - function listDestinationPolicy(targetId) { - return $http - .get('/api/targets/' + targetId + '/policies/'); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/destination/services.list-destination.js b/src/ui/static/resources/js/services/destination/services.list-destination.js deleted file mode 100644 index 14ba9d9b8..000000000 --- a/src/ui/static/resources/js/services/destination/services.list-destination.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('ListDestinationService', ListDestinationService); - - ListDestinationService.$inject = ['$http']; - - function ListDestinationService($http) { - return listDestination; - function listDestination(targetId, name) { - return $http - .get('/api/targets/' + targetId, { - 'params': { - 'name': name - } - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/services/destination/services.ping-destination.js b/src/ui/static/resources/js/services/destination/services.ping-destination.js deleted file mode 100644 index 58a103f66..000000000 --- a/src/ui/static/resources/js/services/destination/services.ping-destination.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('PingDestinationService', PingDestinationService); - - PingDestinationService.$inject = ['$http']; - - function PingDestinationService($http) { - return pingDestination; - function pingDestination(target) { - var payload = {}; - if(target['id']) { - payload = {'id': target['id']}; - }else { - payload = { - 'name': target['name'], - 'endpoint': target['endpoint'], - 'username': target['username'], - 'password': target['password'] - }; - } - - return $http({ - 'method': 'POST', - 'url': '/api/targets/ping', - 'headers': {'Content-Type': 'application/x-www-form-urlencoded'}, - 'transformRequest': function(obj) { - var str = []; - for(var p in obj) { - str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); - } - return str.join("&"); - }, - 'timeout': 30000, - 'data': payload - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/destination/services.update-destination.js b/src/ui/static/resources/js/services/destination/services.update-destination.js deleted file mode 100644 index 1791f4349..000000000 --- a/src/ui/static/resources/js/services/destination/services.update-destination.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.destination') - .factory('UpdateDestinationService', UpdateDestinationService); - - UpdateDestinationService.$inject = ['$http']; - - function UpdateDestinationService($http) { - return updateDestination; - function updateDestination(targetId, target) { - return $http - .put('/api/targets/' + targetId, { - 'name': target.name, - 'endpoint': target.endpoint, - 'username': target.username, - 'password': target.password - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/i18n/locale_messages_en-US.js b/src/ui/static/resources/js/services/i18n/locale_messages_en-US.js deleted file mode 100644 index 66386550b..000000000 --- a/src/ui/static/resources/js/services/i18n/locale_messages_en-US.js +++ /dev/null @@ -1,345 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -var locale_messages = { - 'sign_in': 'Sign In', - 'sign_up': 'Sign Up', - 'forgot_password': 'Forgot Password', - 'login_now': 'Login Now', - 'its_easy_to_get_started': 'It\'s easy to get started ...', - 'icon_label_1': 'Anonymous repository access', - 'icon_label_2': 'Repositories managed by project', - 'icon_label_3': 'Role based access control', - 'why_use_harbor': 'Why use Harbor?', - 'index_desc': 'Project Harbor is an enterprise-class registry server, which extends the open source Docker Registry server by adding the functionality usually required by an enterprise, such as security, control, and management. Harbor is primarily designed to be a private registry - providing the needed security and control that enterprises require. It also helps minimize bandwidth usage, which is helpful to both improve productivity as well as performance.', - 'index_desc_1': 'Security: Keep their intellectual properties within their organizations.', - 'index_desc_2': 'Efficiency: A private registry server is set up within the organization\'s network and can reduce significantly the internet traffic to the public service. ', - 'index_desc_3': 'Access Control: RBAC (Role Based Access Control) is provided. User management can be integrated with existing enterprise identity services like AD/LDAP. ', - 'index_desc_4': 'Audit: All access to the registry are logged and can be used for audit purpose.', - 'index_desc_5': 'GUI: User friendly single-pane-of-glass management console.', - 'index_desc_6': 'Image Replication: Replicate images between instances.', - 'view_all': 'View all...', - 'repositories': 'Repositories', - 'project_repo_name': 'Project/Repository Name', - 'creation_time': 'Creation Time', - 'author': 'Author', - 'username': 'Username', - 'username_is_required': 'Username is required.', - 'username_has_been_taken': 'Username has been taken.', - 'username_is_too_long': 'Username is too long. (maximum 20 characters)', - 'username_contains_illegal_chars': 'Username contains illegal character(s).', - 'email': 'Email', - 'email_desc': 'The Email address will be used for resetting password.', - 'email_is_required': 'Email is required.', - 'email_has_been_taken': 'Email has been taken.', - 'email_content_illegal': 'Email format is illegal.', - 'email_does_not_exist': 'Email does not exist.', - 'email_is_too_long': 'Email is to long. (maximum 50 characters)', - 'full_name': 'Full Name', - 'full_name_desc': 'First name & Last name', - 'full_name_is_required': 'Full name is required.', - 'full_name_is_too_long': 'Full name is too long. (maximum 20 characters)', - 'full_name_contains_illegal_chars': 'Full name contains illegal character(s).', - 'password': 'Password', - 'password_desc': 'At least 8 characters, less than 20 characters with 1 lowercase letter, 1 capital letter and 1 numeric character.', - 'password_is_required': 'Password is required.', - 'password_is_invalid': 'Password is invalid. At least 8 characters, less than 20 characters with 1 lowercase letter, 1 capital letter and 1 numeric character.', - 'confirm_password': 'Confirm Password', - 'password_does_not_match': 'Passwords do not match.', - 'comments': 'Comments', - 'comment_is_too_long': 'Comment is too long. (maximum 20 characters)', - 'forgot_password_description': 'Please input the Email used when you signed up, a reset password Email will be sent to you.', - 'reset_password': 'Reset Password', - 'successful_reset_password': 'Password has been reset successfully.', - 'failed_to_change_password': 'Failed to change password.', - 'summary': 'Summary', - 'projects': 'Projects', - 'public_projects': 'Public Projects', - 'public': 'Public', - 'public_repositories': 'Public Repositories', - 'my_project_count': 'My Projects', - 'my_repo_count': 'My Repositories', - 'public_project_count': 'Public Projects', - 'public_repo_count': 'Public Repositories', - 'total_project_count': 'Total Projects', - 'total_repo_count': 'Total Repositories', - 'top_10_repositories': 'Top 10 Repositories', - 'repository_name': 'Repository Name', - 'size': 'Size', - 'count': 'Downloads', - 'creator': 'Creator', - 'no_top_repositories': 'No data, start with Harbor now!', - 'logs': 'Logs', - 'task_name': 'Task Name', - 'details': 'Details', - 'user': 'User', - 'no_user_logs': 'No data, start with Harbor now!', - 'users': 'Users', - 'my_projects': 'My Projects', - 'project_name': 'Project Name', - 'role': 'Role', - 'publicity': 'Publicity', - 'button_on': 'On', - 'button_off': 'Off', - 'new_project': 'New Project', - 'save': 'Save', - 'cancel': 'Cancel', - 'confirm': 'Confirm', - 'total': 'Total', - 'items': 'item(s)', - 'add_member': 'Add Member', - 'operation': 'Operation', - 'advanced_search': 'Advanced Search', - 'all': 'All', - 'others': 'Others', - 'search': 'Search', - 'duration': 'Duration', - 'from': 'From', - 'to': 'To', - 'timestamp': 'Timestamp', - 'dashboard': 'Dashboard', - 'admin_options': 'Admin Options', - 'account_setting': 'Account Settings', - 'log_out': 'Log Out', - 'registration_time': 'Registration Time', - 'system_management': 'System Management', - 'change_password': 'Change Password', - 'search_result': 'Search Result', - 'old_password': 'Old Password', - 'old_password_is_required': 'Old password is required.', - 'old_password_is_incorrect': 'Old password is incorrect.', - 'new_password_is_required': 'New password is required.', - 'new_password_is_invalid': 'New password is invalid. At least 8 characters, less than 20 characters with 1 lowercase letter, 1 capital letter and 1 numeric character.', - 'new_password': 'New Password', - 'username_already_exist': 'Username already exist.', - 'username_does_not_exist': 'Username does not exist.', - 'username_or_password_is_incorrect': 'Username or password is incorrect', - 'username_and_password_are_required': 'Both username and password are required.', - 'username_email': 'Username/Email', - 'project_name_is_required': 'Project name is required', - 'project_already_exist': 'Project already exist', - 'project_name_is_invalid': 'Project name is invalid, it should be all lowercase and with no space.', - 'project_name_is_too_short': 'Project name is too short, it should be greater than 4 characters.', - 'project_name_is_too_long': 'Project name is too long, it should be less than 30 characters.', - 'search_projects_or_repositories': 'Search projects or repositories', - 'tag': 'Tag', - 'image_details': 'Image Details', - 'pull_command': 'Pull Command', - 'alert_delete_repo_title': 'Confirm Deletion', - 'alert_delete_repo': 'All tags under this repository will be deleted. ' + - 'The space of this repository will be recycled during garbage collection.
    ' + - '
    Delete repository "$0" now?', - 'alert_delete_tag_title': 'Confirm Deletion', - 'alert_delete_tag': 'Note: All tags under this repository will be deleted if they are pointing to this image.

    Delete tag "$0" now?', - 'alert_delete_selected_tag': 'Note: All selected tags under this repository will be deleted if they are pointing to this image.

    Delete selected tags now?', - 'close': 'Close', - 'ok': 'OK', - 'welcome': 'Welcome to Harbor!', - 'continue' : 'Continue', - 'no_projects_add_new_project': 'No projects available now.', - 'no_repositories': 'No repositories found, please use "docker push" to upload images.', - 'failed_to_add_member': 'Project member can not be added, insuffient permissions.', - 'failed_to_change_member': 'Project member can not be changed, insuffient permissions.', - 'failed_to_delete_member': 'Project member can not be deleted, insuffient permissions.', - 'failed_to_delete_project': 'Project contains repositories or replication policies can not be deleted.', - 'failed_to_delete_project_insuffient_permissions': 'Project can not be deleted, insuffient permissions.', - 'confirm_delete_project_title': 'Project Deletion', - 'confirm_delete_project': 'Are you sure to delete the project "$0" ?', - 'confirm_delete_user_title': 'User Deletion', - 'confirm_delete_user': 'Are you sure to delete the user "$0" ?', - 'confirm_delete_policy_title': 'Replication Policy Deletion', - 'confirm_delete_policy': 'Are you sure to delete the replication policy "$0" ?', - 'confirm_delete_destination_title': 'Destination Deletion', - 'confirm_delete_destination': 'Are you sure to delete the destination "$0" ?', - 'replication': 'Replication', - 'name': 'Name', - 'description': 'Description', - 'destination': 'Destination', - 'start_time': 'Start Time', - 'last_start_time': 'Last Start Time', - 'end_time': 'End Time', - 'activation': 'Activation', - 'replication_jobs': 'Replication Jobs', - 'actions': 'Actions', - 'status': 'Status', - 'logs' : 'Logs', - 'enabled': 'Enabled', - 'enable': 'Enable', - 'disabled': 'Disabled', - 'disable': 'Disable', - 'no_replication_policies_add_new': 'No replication policies, please add new policy.', - 'no_replication_policies': 'No replication policies.', - 'no_replication_jobs': 'No replication jobs.', - 'no_destinations': 'No destinations, please add new destination.', - 'name_is_required': 'Name is required.', - 'name_is_too_long': 'Name is too long. (maximum 20 characters)', - 'description_is_too_long': 'Description is too long. ', - 'general_setting': 'General', - 'destination_setting': 'Destination Settings', - 'endpoint': 'Destination URL', - 'endpoint_is_required': 'Destination URL is required.', - 'test_connection': 'Test connection', - 'add_new_destination': 'New Destination', - 'edit_destination': 'Edit Destination', - 'successful_changed_password': 'Password has been changed successfully.', - 'change_profile': 'Change Profile', - 'successful_changed_profile': 'User profile has been changed successfully.', - 'administrator': 'Administrator', - 'popular_repositories': 'Popular Repositories', - 'harbor_intro_title': 'About Harbor', - 'mail_has_been_sent': 'Password resetting Email has been sent.', - 'send': 'Send', - 'successful_signed_up': 'Signed up successfully.', - 'add_new_policy': 'Add New Policy', - 'edit_policy': 'Edit Policy', - 'delete_policy': 'Delete Policy', - 'add_new_title': 'Add User', - 'add_new': 'Add', - 'successful_added': 'New user added successfully.', - 'copyright': 'Copyright', - 'all_rights_reserved': 'All Rights Reserved.', - 'pinging_target': 'Testing connection ...', - 'successful_ping_target': 'Connection tested successfully.', - 'failed_to_ping_target': 'Connetion test failed, please check your settings.', - 'policy_already_exists': 'Policy already exists.', - 'destination_already_exists': 'Destination already exists.', - 'refresh': 'Refresh', - 'select_all': 'Select All', - 'delete_tag': 'Delete Tag', - 'delete_repo': 'Delete Repo', - 'delete_selected_tag': 'Delete Selected Tag(s)', - 'download_log': 'View Logs', - 'edit': 'Edit', - 'delete': 'Delete', - 'transfer': 'Transfer', - 'all': 'All', - 'pending': 'Pending', - 'running': 'Running', - 'finished': 'Finished', - 'canceled': 'Canceled', - 'stopped': 'Stopped', - 'retrying': 'Retrying', - 'error': 'Error', - 'about': 'About', - 'about_harbor': 'About Harbor', - 'current_version': '  $0', - 'current_storage': '  $0 GB available of $1 GB.', - 'default_root_cert': '  $1', - 'download': 'Download', - 'failed_to_get_project_member': 'Failed to get current project member.', - 'failed_to_delete_repo': 'Failed to delete repository.', - 'failed_to_delete_repo_insuffient_permissions': 'Failed to delete repository: insuffient permissions.', - 'failed_to_get_repo': 'Failed to get repositories.', - 'failed_to_get_tag': 'Failed to get tag.', - 'failed_to_get_log': 'Failed to get logs.', - 'failed_to_get_project': 'Failed to get projects.', - 'failed_to_update_user': 'Failed to update user.', - 'failed_to_get_stat': 'Failed to get stat data.', - 'failed_to_get_top_repo': 'Failed to get top repositories.', - 'failed_to_get_user_log': 'Failed to get user logs.', - 'failed_to_send_email': 'Failed to send email.', - 'failed_to_reset_pasword': 'Failed to reset password.', - 'failed_in_search': 'Failed in search.', - 'failed_to_sign_up': 'Failed to sign up.', - 'failed_to_add_user': 'Failed to add user.', - 'failed_to_delete_user': 'Failed to delete user.', - 'failed_to_list_user': 'Failed to list user data.', - 'failed_to_toggle_admin': 'Failed to change admin role.', - 'failed_to_list_destination': 'Failed to list destinations.', - 'failed_to_list_replication': 'Failed to list replication policies.', - 'failed_to_toggle_policy': 'Failed to change status of replication policy.', - 'failed_to_create_replication_policy': 'Failed to create replication policy.', - 'failed_to_get_destination': 'Failed to get destination.', - 'failed_to_get_destination_policies': 'Failed to get policies of the destination.', - 'failed_to_get_replication_policy': 'Failed to get replication policy.', - 'failed_to_update_replication_policy': 'Failed to update replication policy.', - 'failed_to_delete_replication_enabled': 'Cannot delete policy: policy has unfinished job(s) or policy is enabled.', - 'failed_to_delete_replication_policy': 'Failed to delete replication policy.', - 'failed_to_delete_destination': 'Failed to delete destination.', - 'failed_to_create_destination': 'Failed to create destination.', - 'failed_to_update_destination': 'Failed to update destination.', - 'failed_to_toggle_publicity_insuffient_permissions': 'Failed to change project publicity: insuffient permissions.', - 'failed_to_toggle_publicity': 'Failed to change project publicity.', - 'failed_to_sign_in': 'Failed to sign in.', - 'project_does_not_exist': 'Project does not exist.', - 'project_admin': 'Project Admin', - 'developer': 'Developer', - 'guest': 'Guest', - 'inline_help_role_title': 'The Definition of Roles', - 'inline_help_role': 'Project Admin: Project Admin has read/write and member management privileges to the project.
    ' + - 'Developer: Developer has read and write privileges to the project.
    ' + - 'Guest: Guest has read-only privilege for a specified project.', - 'inline_help_publicity_title': 'Publicity of Project', - 'inline_help_publicity': 'When a project is set to public, anyone has read permission to the repositories under this project, and the user does not need to run "docker login" before pulling images under this project.', - 'alert_job_contains_error': 'Found errors in the replication job(s), please check.', - 'found_error_in_replication_job': 'Found $0 error(s).', - 'caution': 'Caution', - 'confirm_to_toggle_enabled_policy_title': 'Enable Policy', - 'confirm_to_toggle_enabled_policy': 'After enabling the replication policy, all repositories under the project will be replicated to the destination registry. Please confirm to continue.', - 'confirm_to_toggle_disabled_policy_title': 'Disable Policy', - 'confirm_to_toggle_disabled_policy': 'After disabling the policy, all unfinished replication jobs of this policy will be stopped and canceled. Please confirm to continue.', - 'begin_date_is_later_than_end_date': 'Begin date should not be later than end date.', - 'configuration': 'Configuration', - 'authentication': 'Authentication', - 'email_settings': 'Email Settings', - 'system_settings': 'System Settings', - 'authentication_mode': 'Authentication Mode', - 'authentication_mode_desc': 'The default authentication mode is db_auth. Set it to ldap_auth when users\' credentials are stored in an LDAP or AD server. Note: this option can only be set once.', - 'self_registration': 'Self Registration', - 'self_registration_desc': 'Determine whether the self-registration is allowed or not. Set this to off to disable a user\'s self-registration in Harbor. This flag has no effect when users are stored in LDAP or AD.', - 'ldap_url': 'LDAP URL', - 'ldap_url_desc': 'The URL of an LDAP/AD server.', - 'ldap_search_dn': 'LDAP Search DN', - 'ldap_search_dn_desc': 'A user\'s DN who has the permission to search the LDAP/AD server. Leave blank if your LDAP/AD server supports anonymous search, otherwise you should configure this DN and LDAP Search Password.', - 'ldap_search_password': 'LDAP Search Password', - 'ldap_search_password_desc': 'The password of the user for LDAP search. Leave blank if your LDAP/AD server supports anonymous search.', - 'ldap_base_dn': 'LDAP Base DN', - 'ldap_base_dn_desc': 'The base DN of a node from which to look up a user for authentication. The search scope includes subtree of the node.', - 'ldap_uid': 'LDAP UID', - 'ldap_uid_desc': 'The attribute used in a search to match a user, it could be uid, cn, email, sAMAccountName or other attributes depending on your LDAP/AD server.', - 'ldap_filter': 'LDAP Filter', - 'ldap_filter_desc': 'Search filter for LDAP/AD, make sure the syntax of the filter is correct.', - 'ldap_connection_timeout': 'LDAP Connection Timeout(sec.)', - 'ldap_scope': 'LDAP Scope', - 'ldap_scope_desc': 'The scope to search for users.(1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE)', - 'email_server': 'Email Server', - 'email_server_desc': 'The mail server to send out emails to reset password.', - 'email_server_port': 'Email Server Port', - 'email_server_port_desc': 'The port of mail server.', - 'email_username': 'Email Username', - 'email_username_desc': 'The user from whom the password reset email is sent. Usually this is a system email address.', - 'email_password': 'Email Password', - 'email_password_desc': 'The password of the user from whom the password reset email is sent.', - 'email_from': 'Email From', - 'email_from_desc': 'The name of the email sender.', - 'email_ssl': 'Email SSL', - 'email_ssl_desc': 'Whether to enable secure mail transmission.', - 'project_creation_restriction': 'Project Creation Restriction', - 'project_creation_restriction_desc': 'The flag to control what users have permission to create projects. Be default everyone can create a project, set to "adminonly" such that only admin can create project.', - 'verify_remote_cert': 'Verify Remote Cert.', - 'verify_remote_cert_desc': 'Determine whether the image replication should verify the certificate of a remote Harbor registry. Set this flag to off when the remote registry uses a self-signed or untrusted certificate.', - 'max_job_workers': 'Max Job Workers', - 'max_job_workers_desc': 'Maximum number of job workers in job service.', - 'please_save_changes': 'Please save changes before leaving this page.', - 'undo': 'Undo', - 'invalid_port_number': 'Invalid port number.', - 'max_job_workers_is_required': 'Max job workers number is required.', - 'timeout_is_required': 'Timeout value is required.', - 'invalid_timeout': 'Invalid timeout value.', - 'ldap_scope_is_required': 'Scope is required.', - 'invalid_ldap_scope': 'Invalid Scope value.', - 'update_configuration_title': 'Update Configuration(s)', - 'successful_update_configuration': 'Configuration(s) updated successfully.', - 'failed_to_update_configuration': 'Failed to update configuration.' -}; \ No newline at end of file diff --git a/src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js b/src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js deleted file mode 100644 index 1797775cb..000000000 --- a/src/ui/static/resources/js/services/i18n/locale_messages_zh-CN.js +++ /dev/null @@ -1,345 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -var locale_messages = { - 'sign_in': '登录', - 'sign_up': '注册', - 'forgot_password': '忘记密码', - 'login_now': '登录', - 'its_easy_to_get_started': '这很容易上手...', - 'icon_label_1': '匿名访问公开镜像仓库', - 'icon_label_2': '基于项目的镜像管理', - 'icon_label_3': '用户角色访问控制', - 'why_use_harbor': '为什么要使用Harbor?', - 'index_desc': 'Harbor是可靠的企业级Registry服务器。企业用户可使用Harbor搭建私有容器Registry服务,提高生产效率和安全度,既可应用于生产环境,也可以在开发环境中使用。', - 'index_desc_1': '安全: 确保知识产权在自己组织内部的管控之下。', - 'index_desc_2': '效率: 搭建组织内部的私有容器Registry服务,可显著降低访问公共Registry服务的网络需求。', - 'index_desc_3': '访问控制: 提供基于角色的访问控制,可集成企业目前拥有的用户管理系统(如:AD/LDAP)。', - 'index_desc_4': '审计: 所有访问Registry服务的操作均被记录,便于日后审计。', - 'index_desc_5': '管理界面: 具有友好易用图形管理界面。', - 'index_desc_6': '镜像复制: 在实例之间复制镜像。', - 'view_all': '显示全部...', - 'repositories': '镜像仓库', - 'project_repo_name': '项目/镜像仓库名称', - 'creation_time': '创建时间', - 'author': '作者', - 'username': '用户名', - 'username_is_required' : '用户名为必填项。', - 'username_has_been_taken' : '用户名已被占用。', - 'username_is_too_long' : '用户名长度超出限制。(最长为20个字符)', - 'username_contains_illegal_chars': '用户名包含不合法的字符。', - 'email': '邮箱', - 'email_desc': '此邮箱将用于重置密码。', - 'email_is_required' : '邮箱为必填项。', - 'email_has_been_taken' : '邮箱已被占用。', - 'email_content_illegal' : '邮箱格式不合法。', - 'email_does_not_exist' : '邮箱不存在。', - 'email_is_too_long': '邮箱名称长度超出限制。(最长为50个字符)', - 'full_name': '全名', - 'full_name_desc': '请输入全名。', - 'full_name_is_required' : '全名为必填项。', - 'full_name_is_too_long' : '全名长度超出限制。(最长为20个字符)', - 'full_name_contains_illegal_chars' : '全名包含不合法的字符。', - 'password': '密码', - 'password_desc': '至少输入 8个字符,最长为20个字符且包含 1个小写字母, 1个大写字母和 1个数字。', - 'password_is_required' : '密码为必填项。', - 'password_is_invalid' : '密码无效。至少输入 8个字符,最长为20个字符且包含 1个小写字母,1个大写字母和 1个数字。', - 'confirm_password': '确认密码', - 'password_does_not_match' : '两次密码输入不一致。', - 'comments': '备注', - 'comment_is_too_long' : '备注长度超出限制。(最长为20个字符)', - 'forgot_password_description': '重置邮件将发送到此邮箱。', - 'reset_password': '重置密码', - 'successful_reset_password': '重置密码成功。', - 'failed_to_change_password': '修改密码失败。', - 'summary': '摘要', - 'projects': '项目', - 'public_projects': '公开项目', - 'public': '公开', - 'public_repositories': '公开镜像仓库', - 'my_project_count': '我的项目', - 'my_repo_count': '我的镜像仓库', - 'public_project_count': '公开项目', - 'public_repo_count': '公开镜像仓库', - 'total_project_count': '全部项目', - 'total_repo_count': '全部镜像仓库', - 'top_10_repositories': 'Top 10 镜像仓库', - 'repository_name': '镜像仓库名', - 'size': '大小', - 'count': '下载次数', - 'creator': '创建者', - 'no_top_repositories': '暂时没有数据。', - 'logs': '日志', - 'task_name': '任务名称', - 'details': '详细信息', - 'user': '用户', - 'no_user_logs': '暂时没有数据。', - 'users': '用户', - 'my_projects': '我的项目', - 'project_name': '项目名称', - 'role': '角色', - 'publicity': '公开', - 'button_on': '是', - 'button_off': '否', - 'new_project': '新增项目', - 'save': '保存', - 'cancel': '取消', - 'confirm': '确认', - 'total': '总计', - 'items': '条记录', - 'add_member': '新增成员', - 'operation': '操作', - 'advanced_search': '高级搜索', - 'all': '全部', - 'others': '其他', - 'search':'搜索', - 'duration': '持续时间', - 'from': '起始', - 'to': '结束', - 'timestamp': '时间戳', - 'dashboard': '控制面板', - 'admin_options': '管理员选项', - 'account_setting': '账户设置', - 'log_out': '注销', - 'registration_time': '注册时间', - 'system_management': '系统管理', - 'change_password': '修改密码', - 'search_result': '搜索结果', - 'old_password': '原密码', - 'old_password_is_required': '原密码为必填项。', - 'old_password_is_incorrect': '原密码不正确。', - 'new_password_is_required': '新密码为必填项。', - 'new_password_is_invalid': '新密码无效。至少输入 8个字符,最长20个字符且包含 1个小写字母,1个大写字母和 1个数字。', - 'new_password': '新密码', - 'username_already_exist': '用户名已存在。', - 'username_does_not_exist': '用户名不存在。', - 'username_or_password_is_incorrect': '用户名或密码不正确。', - 'username_and_password_are_required': '用户名和密码为必填项。', - 'username_email': '用户名/邮箱', - 'project_name_is_required': '项目名称为必填项。', - 'project_already_exist': '项目已存在。', - 'project_name_is_invalid': '项目名称无效。全部为小写字母,且不能包含空格。', - 'project_name_is_too_short': '项目名称长度过短,至少多于4个字符。', - 'project_name_is_too_long': '项目名称长度超出限制,最长30个字符。', - 'search_projects_or_repositories': '搜索项目和镜像资源', - 'tag': '标签', - 'image_details': '镜像明细', - 'pull_command': 'Pull 命令', - 'alert_delete_repo_title': '确认删除', - 'alert_delete_repo': '即将删除镜像仓库下的所有标签,' + - '镜像空间将在垃圾回收过程中释放。
    ' + - '
    是否删除镜像仓库 "$0" ?', - 'alert_delete_tag_title': '确认删除', - 'alert_delete_tag': '注意:此镜像仓库下所有指向该镜像的标签将会被删除。

    删除镜像标签 "$0" ?', - 'alert_delete_selected_tag': '注意:此镜像仓库下选中的指向该镜像的标签将会被删除。

    删除选中的镜像标签?', - 'close': '关闭', - 'ok': '确认', - 'welcome': '欢迎使用Harbor!', - 'continue' : '继续', - 'no_projects_add_new_project': '当前没有项目。', - 'no_repositories': '未发现镜像,请用"docker push"命令上传镜像。', - 'failed_to_add_member': '无法添加项目成员,权限不足。', - 'failed_to_change_member': '无法修改项目成员,权限不足。', - 'failed_to_delete_member': '无法删除项目成员,权限不足。', - 'failed_to_delete_project': '项目包含镜像仓库或复制策略,无法删除。', - 'failed_to_delete_project_insuffient_permissions': '无法删除项目,权限不足。', - 'confirm_delete_project_title': '删除项目', - 'confirm_delete_project': '确认删除项目 "$0" ?', - 'confirm_delete_user_title': '删除用户', - 'confirm_delete_user': '确认删除用户 "$0" ?', - 'confirm_delete_policy_title': '删除复制策略', - 'confirm_delete_policy': '确认删除复制策略 "$0" ?', - 'confirm_delete_destination_title': '删除目标', - 'confirm_delete_destination': '确认删除目标 "$0"?', - 'replication': '复制', - 'name': '名称', - 'description': '描述', - 'destination': '目标', - 'start_time': '起始时间', - 'last_start_time': '上次起始时间', - 'end_time': '结束时间', - 'activation': '活动状态', - 'replication_jobs': '复制任务', - 'actions': '操作', - 'status': '状态', - 'logs': '日志', - 'enabled': '已启用', - 'enable': '启用', - 'disabled': '已停用', - 'disable': '停用', - 'no_replication_policies_add_new': '没有复制策略,请新增复制策略。', - 'no_replication_policies': '没有复制策略。', - 'no_replication_jobs': '没有复制任务。', - 'no_destinations': '没有目标设置,请新增目标。', - 'name_is_required': '名称为必填项', - 'name_is_too_long': '名称长度超出限制。(最长为20个字符)', - 'description_is_too_long': '描述内容长度超出限制。', - 'general_setting': '一般设置', - 'destination_setting': '目标设置', - 'endpoint': '目标URL', - 'endpoint_is_required': '目标URL为必填项。', - 'test_connection': '测试连接', - 'add_new_destination': '新建目标', - 'edit_destination': '编辑目标', - 'successful_changed_password': '修改密码操作成功。', - 'change_profile': '修改账户信息', - 'successful_changed_profile': '修改账户信息操作成功。', - 'administrator': '管理员', - 'popular_repositories': '热门镜像仓库', - 'harbor_intro_title': '关于 Harbor', - 'mail_has_been_sent': '重置密码邮件已发送。', - 'send': '发送', - 'successful_signed_up': '注册成功。', - 'add_new_policy': '新增策略', - 'edit_policy': '修改策略', - 'delete_policy': '删除策略', - 'add_new_title': '新增用户', - 'add_new': '新增', - 'successful_added': '新增用户成功。', - 'copyright': '版权所有', - 'all_rights_reserved': '保留所有权利。', - 'pinging_target': '正在测试连接……', - 'successful_ping_target': '测试连接目标成功。', - 'failed_to_ping_target': '测试连接目标失败,请检查设置。', - 'policy_already_exists': '策略已存在。', - 'destination_already_exists': '目标已存在。', - 'refresh': '刷新', - 'select_all': '全选', - 'delete_tag': '删除镜像标签', - 'delete_repo': '删除镜像仓库', - 'delete_selected_tag': '删除选中镜像标签', - 'download_log': '查看日志', - 'edit': '修改', - 'delete': '删除', - 'all': '全部', - 'transfer': '复制', - 'pending': '等待中', - 'running': '进行中', - 'finished': '已完成', - 'canceled': '已取消', - 'stopped': '已终止', - 'retrying': '重试中', - 'error': '错误', - 'about': '关于', - 'about_harbor': '关于 Harbor', - 'current_version': '  $0', - 'current_storage': '  可用: $0 GB,总共: $1 GB。', - 'default_root_cert': '  $1', - 'download': '下载', - 'failed_to_get_project_member': '无法获取当前项目成员。', - 'failed_to_delete_repo': '无法删除镜像仓库。', - 'failed_to_delete_repo_insuffient_permissions': '无法删除镜像仓库:权限不足。', - 'failed_to_get_repo': '获取镜像仓库数据失败。', - 'failed_to_get_tag': '获取标签数据失败。', - 'failed_to_get_log': '获取日志数据失败。', - 'failed_to_get_project': '获取项目数据失败。', - 'failed_to_update_user': '更新用户信息失败。', - 'failed_to_get_stat': '获取统计数据失败。', - 'failed_to_get_top_repo': '获取热门镜像仓库数据失败。', - 'failed_to_get_user_log': '获取用户日志数据失败。', - 'failed_to_send_email': '发送邮件失败。', - 'failed_to_reset_pasword': '重置邮件失败。', - 'failed_in_search': '搜索操作失败。', - 'failed_to_sign_up': '注册用户失败。', - 'failed_to_add_user': '新增用户失败。', - 'failed_to_delete_user': '删除用户失败。', - 'failed_to_list_user': '获取用户数据失败。', - 'failed_to_toggle_admin': '设置管理员角色失败。', - 'failed_to_list_destination': '获取目标数据失败。', - 'failed_to_list_replication': '获取复制策略数据失败。', - 'failed_to_toggle_policy': '设置复制策略状态失败。', - 'failed_to_create_replication_policy': '创建复制策略失败。', - 'failed_to_get_destination': '获取目标失败。', - 'failed_to_get_destination_policies': '获取目标所关联的策略失败。', - 'failed_to_get_replication_policy': '获取复制策略失败。', - 'failed_to_update_replication_policy': '修改复制策略失败。', - 'failed_to_delete_replication_enabled': '删除复制策略失败: 仍有未完成的任务或策略未停用。', - 'failed_to_delete_replication_policy': '无法删除正在使用的复制策略。', - 'failed_to_delete_destination': '删除目标失败。', - 'failed_to_create_destination': '创建目标失败。', - 'failed_to_update_destination': '修改目标失败。', - 'failed_to_toggle_publicity_insuffient_permissions': '设置项目公开性失败:权限不足。', - 'failed_to_toggle_publicity': '设置项目公开性失败。', - 'failed_to_sign_in': '登录失败。', - 'project_does_not_exist': '项目不存在。', - 'project_admin': '项目管理员', - 'developer': '开发人员', - 'guest': '访客', - 'inline_help_role_title': '角色定义', - 'inline_help_role': '项目管理员: “项目管理员”拥有一个项目的读/写和成员管理的权限。
    '+ - '开发人员: “开发人员” 拥有一个项目的读/写权限。
    ' + - '访客: “访客”拥有特定项目的只读权限。', - 'inline_help_publicity_title': '公开项目', - 'inline_help_publicity': '当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。', - 'alert_job_contains_error': '复制任务中包含错误,请检查。', - 'found_error_in_replication_job': '发现 $0 个错误。', - 'caution': '注意', - 'confirm_to_toggle_enabled_policy_title': '启用策略', - 'confirm_to_toggle_enabled_policy': '启用策略后,该项目下的所有镜像仓库将复制到目标实例。请确认继续。', - 'confirm_to_toggle_disabled_policy_title': '停用策略', - 'confirm_to_toggle_disabled_policy': '停用策略后,所有未完成的复制任务将被终止和取消。请确认继续。', - 'begin_date_is_later_than_end_date': '起始日期不能晚于结束日期。', - 'configuration': '设置', - 'authentication': '认证设置', - 'email_settings': '邮箱设置', - 'system_settings': '系统设置', - 'authentication_mode': '认证模式', - 'authentication_mode_desc': '默认的认证模式是: 数据库认证。 当用户信息存储在LDAP或AD服务器时,应设置为LDAP认证模式。 注意:该选项只能被设置一次。', - 'self_registration': '自注册', - 'self_registration_desc': '确定是否允许或禁止用户自注册。 关闭该项会禁用Harbor用户注册。 当用户数据存储在LDAP或AD时,该选项无效。 ', - 'ldap_url': 'LDAP URL', - 'ldap_url_desc': 'LDAP/AD服务URL。', - 'ldap_search_dn': 'LDAP Search DN', - 'ldap_search_dn_desc': '提供一个拥有检索LDAP/AD权限的用户DN。 如果LDAP/AD允许匿名访问该项可以置空, 否则需提供用户DN和密码。', - 'ldap_search_password': 'LDAP Search 密码', - 'ldap_search_password_desc': '检索LDAP的用户密码。 如果LDAP/AD允许匿名访问该项可以置空。', - 'ldap_base_dn': 'LDAP Base DN', - 'ldap_base_dn_desc': '用于查询认证用户的基本DN节点。 检索范围包含子树节点。', - 'ldap_uid': 'LDAP UID', - 'ldap_uid_desc': '该属性用于检索匹配用户, 可以是uid, cn, Email, sAMAccountName或是其他属性, 取决于LDAP/AD服务。', - 'ldap_filter': 'LDAP 过滤器', - 'ldap_filter_desc': '用于过滤LDAP/AP检索, 请确保正确语法形式。', - 'ldap_connection_timeout': 'LDAP连接超时(秒)', - 'ldap_scope': 'LDAP检索范围', - 'ldap_scope_desc': '指定用户检索范围。(1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE)', - 'email_server': '邮箱服务地址', - 'email_server_desc': '用以发送重置密码的邮箱服务地址。', - 'email_server_port': '邮箱服务端口号', - 'email_server_port_desc': '邮箱服务端口号', - 'email_username': '邮箱用户名', - 'email_username_desc': '发送重置密码邮箱的用户。 通常是系统邮箱地址。', - 'email_password': '邮箱密码', - 'email_password_desc': '发送重置密码邮箱的密码。', - 'email_from': '寄信人', - 'email_from_desc': '邮箱寄信人名。', - 'email_ssl': '邮箱SSL', - 'email_ssl_desc': '是否启用安全邮箱传输。', - 'project_creation_restriction': '项目创建约束', - 'project_creation_restriction_desc': '此标志用于控制用户是否有权限创建项目。 默认允许任何人创建项目, 当设置为"adminonly"只允许管理员创建项目。', - 'verify_remote_cert': '验证远程服务证书', - 'verify_remote_cert_desc': '确定镜像复制是否检查远程Harbor服务证书。 当使用非受信或自签名证书时应该关闭该检查。', - 'max_job_workers': '最大任务调度数', - 'max_job_workers_desc': '任务调度服务最大调度数。', - 'please_save_changes': '请在离开此页之前保存。', - 'undo': '撤销', - 'invalid_port_number': '无效的端口号。', - 'max_job_workers_is_required': '最大任务数为必填项。', - 'timeout_is_required': '超时时间为必填项。', - 'invalid_timeout': '无效的超时时间。', - 'ldap_scope_is_required': '范围值为必填项。', - 'invalid_ldap_scope': '无效的范围值。', - 'update_configuration_title': '修改设置', - 'successful_update_configuration': '修改设置成功。', - 'failed_to_update_configuration': '修改设置失败。' -}; \ No newline at end of file diff --git a/src/ui/static/resources/js/services/i18n/services.i18n.js b/src/ui/static/resources/js/services/i18n/services.i18n.js deleted file mode 100644 index a750eecc1..000000000 --- a/src/ui/static/resources/js/services/i18n/services.i18n.js +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.i18n') - .factory('I18nService', I18nService); - - I18nService.$inject = ['$window']; - - function I18nService($window) { - - var cookieOptions = {'path': '/'}; - - var messages = $.extend(true, {}, eval('locale_messages')); - var defaultLanguage = 'en-US'; - var currentLanguage = defaultLanguage; - var supportLanguages = { - 'en-US': 'English', - 'zh-CN': '简体中文' - }; - var isSupportLanguage = function(language) { - for (var i in supportLanguages) { - if(language === String(i)) { - return true; - } - } - return false; - }; - - - return tr; - function tr() { - - return { - 'setCurrentLanguage': function(language) { - currentLanguage = language; - }, - 'getCurrentLanguage': function() { - return currentLanguage; - }, - 'getLanguageName': function(language) { - if(!angular.isDefined(language) || !isSupportLanguage(language)) { - language = defaultLanguage; - } - return supportLanguages[language]; - }, - 'getSupportLanguages': function() { - return supportLanguages; - }, - 'getValue': function(key) { - return messages[key]; - } - }; - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/i18n/services.i18n.module.js b/src/ui/static/resources/js/services/i18n/services.i18n.module.js deleted file mode 100644 index ddaa9f266..000000000 --- a/src/ui/static/resources/js/services/i18n/services.i18n.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.i18n', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/log/services.list-integrated-log.js b/src/ui/static/resources/js/services/log/services.list-integrated-log.js deleted file mode 100644 index 206bb63b7..000000000 --- a/src/ui/static/resources/js/services/log/services.list-integrated-log.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.log') - .factory('ListIntegratedLogService', ListIntegratedLogService); - - ListIntegratedLogService.$inject = ['$http', '$log']; - - function ListIntegratedLogService($http, $log) { - - return listIntegratedLog; - - function listIntegratedLog(lines) { - $log.info('Get recent logs of the projects which the user is a member of:'); - return $http - .get('/api/logs', { - 'params' : { - 'lines': lines, - } - }); - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/log/services.list-log.js b/src/ui/static/resources/js/services/log/services.list-log.js deleted file mode 100644 index b2c14f13e..000000000 --- a/src/ui/static/resources/js/services/log/services.list-log.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.log') - .factory('ListLogService', ListLogService); - - ListLogService.$inject = ['$http', '$log']; - - function ListLogService($http, $log) { - - return LogResult; - - function LogResult(queryParams, page, pageSize) { - var projectId = queryParams.projectId; - var username = queryParams.username; - var beginTimestamp = queryParams.beginTimestamp; - var endTimestamp = queryParams.endTimestamp; - var keywords = queryParams.keywords; - - return $http - .post('/api/projects/' + projectId + '/logs/filter?page=' + page + '&page_size=' + pageSize, { - 'begin_timestamp' : beginTimestamp, - 'end_timestamp' : endTimestamp, - 'keywords' : keywords, - 'project_id': Number(projectId), - 'username' : username - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/log/services.log.module.js b/src/ui/static/resources/js/services/log/services.log.module.js deleted file mode 100644 index d07727291..000000000 --- a/src/ui/static/resources/js/services/log/services.log.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.log', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.add-project-member.js b/src/ui/static/resources/js/services/project-member/services.add-project-member.js deleted file mode 100644 index a25b9ebfd..000000000 --- a/src/ui/static/resources/js/services/project-member/services.add-project-member.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member') - .factory('AddProjectMemberService', AddProjectMemberService); - - AddProjectMemberService.$inject = ['$http', '$log']; - - function AddProjectMemberService($http, $log) { - - return AddProjectMember; - - function AddProjectMember(projectId, roles, username) { - return $http - .post('/api/projects/' + projectId + '/members/', { - 'roles': [ Number(roles) ], - 'username': username - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.current-project-member.js b/src/ui/static/resources/js/services/project-member/services.current-project-member.js deleted file mode 100644 index 1be51ed92..000000000 --- a/src/ui/static/resources/js/services/project-member/services.current-project-member.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member') - .factory('CurrentProjectMemberService', CurrentProjectMemberService); - - CurrentProjectMemberService.$inject = ['$http', '$log']; - - function CurrentProjectMemberService($http, $log) { - return currentProjectMember; - - function currentProjectMember(projectId) { - return $http - .get('/api/projects/' + projectId + '/members/current'); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.delete-project-member.js b/src/ui/static/resources/js/services/project-member/services.delete-project-member.js deleted file mode 100644 index a1df3da11..000000000 --- a/src/ui/static/resources/js/services/project-member/services.delete-project-member.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member') - .factory('DeleteProjectMemberService', DeleteProjectMemberService); - - DeleteProjectMemberService.$inject = ['$http', '$log']; - - function DeleteProjectMemberService($http, $log) { - - return DeleteProjectMember; - - function DeleteProjectMember(projectId, userId) { - return $http - .delete('/api/projects/' + projectId + '/members/' + userId); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.edit-project-member.js b/src/ui/static/resources/js/services/project-member/services.edit-project-member.js deleted file mode 100644 index c84a239c1..000000000 --- a/src/ui/static/resources/js/services/project-member/services.edit-project-member.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member') - .factory('EditProjectMemberService', EditProjectMemberService); - - EditProjectMemberService.$inject = ['$http', '$log']; - - function EditProjectMemberService($http, $log) { - - return EditProjectMember; - - function EditProjectMember(projectId, userId, roleId) { - return $http - .put('/api/projects/' + projectId + '/members/' + userId, { - 'roles' : [ Number(roleId) ] - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.list-project-member.js b/src/ui/static/resources/js/services/project-member/services.list-project-member.js deleted file mode 100644 index 5e15d8753..000000000 --- a/src/ui/static/resources/js/services/project-member/services.list-project-member.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member') - .service('ListProjectMemberService', ListProjectMemberService); - - ListProjectMemberService.$inject = ['$http', '$log']; - - function ListProjectMemberService($http, $log) { - - return ListProjectMember; - - function ListProjectMember(projectId, queryParams) { - console.log('project_member project_id:' + projectId); - var username = queryParams.username; - return $http - .get('/api/projects/' + projectId + '/members', { - params: { - 'username': username - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project-member/services.project-member.module.js b/src/ui/static/resources/js/services/project-member/services.project-member.module.js deleted file mode 100644 index e2e4bb413..000000000 --- a/src/ui/static/resources/js/services/project-member/services.project-member.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project.member', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.add-project.js b/src/ui/static/resources/js/services/project/services.add-project.js deleted file mode 100644 index cb1986daa..000000000 --- a/src/ui/static/resources/js/services/project/services.add-project.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.project') - .factory('AddProjectService', AddProjectService); - - AddProjectService.$inject = ['$http', '$log']; - - function AddProjectService($http, $log) { - - return AddProject; - - function AddProject(projectName, isPublic) { - return $http - .post('/api/projects', { - 'project_name': projectName, - 'public': isPublic - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.delete-project.js b/src/ui/static/resources/js/services/project/services.delete-project.js deleted file mode 100644 index 4105c8272..000000000 --- a/src/ui/static/resources/js/services/project/services.delete-project.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.project') - .factory('DeleteProjectService', DeleteProjectService); - - DeleteProjectService.$inject = ['$http', '$log']; - - function DeleteProjectService($http, $log) { - - return DeleteProject; - - function DeleteProject(projectId) { - return $http - .delete('/api/projects/' + projectId); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.edit-project.js b/src/ui/static/resources/js/services/project/services.edit-project.js deleted file mode 100644 index cd5e3584e..000000000 --- a/src/ui/static/resources/js/services/project/services.edit-project.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.project') - .factory('EditProjectService', EditProjectService); - - EditProjectService.$inject = ['$http', '$log']; - - function EditProjectService($http, $log) { - - return EditProject; - - function EditProject(projectId, isPublic) { - return $http - .put('/api/projects/' + projectId, { - 'public': isPublic - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.get-project-by-id.js b/src/ui/static/resources/js/services/project/services.get-project-by-id.js deleted file mode 100644 index feb0ef215..000000000 --- a/src/ui/static/resources/js/services/project/services.get-project-by-id.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project') - .factory('GetProjectById', GetProjectById); - - GetProjectById.$inject = ['$http']; - - function GetProjectById($http) { - - return getProject; - - function getProject(id) { - return $http - .get('/api/projects/' + id); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.list-project.js b/src/ui/static/resources/js/services/project/services.list-project.js deleted file mode 100644 index d59d3dd2d..000000000 --- a/src/ui/static/resources/js/services/project/services.list-project.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.project') - .factory('ListProjectService', ListProjectService); - - ListProjectService.$inject = ['$http', '$log']; - - function ListProjectService($http, $log) { - - return ListProject; - - function ListProject(projectName, isPublic, page, pageSize) { - $log.info('list project projectName:' + projectName, ', isPublic:' + isPublic); - return $http - .get('/api/projects', { - 'params' : { - 'is_public': isPublic, - 'project_name': projectName, - 'page': page, - 'page_size': pageSize - } - }); - - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.project.module.js b/src/ui/static/resources/js/services/project/services.project.module.js deleted file mode 100644 index f9a3c54a3..000000000 --- a/src/ui/static/resources/js/services/project/services.project.module.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.project', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.stat-project.js b/src/ui/static/resources/js/services/project/services.stat-project.js deleted file mode 100644 index e471a162f..000000000 --- a/src/ui/static/resources/js/services/project/services.stat-project.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project') - .factory('StatProjectService', StatProjectService); - - StatProjectService.$inject = ['$http', '$log']; - - function StatProjectService($http, $log) { - - return StatProject; - - function StatProject() { - $log.info('statistics projects and repositories'); - return $http - .get('/api/statistics'); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/project/services.toggle-project-publicity.js b/src/ui/static/resources/js/services/project/services.toggle-project-publicity.js deleted file mode 100644 index dfb9f5ccb..000000000 --- a/src/ui/static/resources/js/services/project/services.toggle-project-publicity.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.project') - .factory('ToggleProjectPublicityService', ToggleProjectPublicityService); - - ToggleProjectPublicityService.$inject = ['$http']; - - function ToggleProjectPublicityService($http) { - return toggleProjectPublicity; - function toggleProjectPublicity(projectId, isPublic) { - return $http - .put('/api/projects/' + projectId + '/publicity', { - 'public': isPublic - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-job/services.list-replication-job.js b/src/ui/static/resources/js/services/replication-job/services.list-replication-job.js deleted file mode 100644 index 493c887a3..000000000 --- a/src/ui/static/resources/js/services/replication-job/services.list-replication-job.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.job') - .factory('ListReplicationJobService', ListReplicationJobService); - - ListReplicationJobService.$inject = ['$http']; - - function ListReplicationJobService($http) { - - return listReplicationJob; - - function listReplicationJob(policyId, repository, status, startTime, endTime, page, pageSize) { - return $http - .get('/api/jobs/replication/?page=' + page + '&page_size=' + pageSize, { - 'params': { - 'policy_id': policyId, - 'repository': repository, - 'status': status, - 'start_time': startTime, - 'end_time': endTime - } - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-job/services.replication-job.module.js b/src/ui/static/resources/js/services/replication-job/services.replication-job.module.js deleted file mode 100644 index 9b78fcd45..000000000 --- a/src/ui/static/resources/js/services/replication-job/services.replication-job.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.job', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js deleted file mode 100644 index 40236c2cd..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.create-replication-policy.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy') - .factory('CreateReplicationPolicyService', CreateReplicationPolicyService); - - CreateReplicationPolicyService.$inject = ['$http']; - - function CreateReplicationPolicyService($http) { - return createReplicationPolicy; - - function createReplicationPolicy(policy) { - return $http - .post('/api/policies/replication', { - 'project_id': policy.projectId, - 'target_id': policy.targetId, - 'name': policy.name, - 'enabled': policy.enabled, - 'description': policy.description, - 'cron_str': policy.cronStr, - 'start_time': policy.startTime - }); - } - } - -})(); diff --git a/src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js deleted file mode 100644 index 4f02ed834..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.delete-replication-policy.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy') - .factory('DeleteReplicationPolicyService', DeleteReplicationPolicyService); - - DeleteReplicationPolicyService.$inject = ['$http']; - - function DeleteReplicationPolicyService($http) { - return deleteReplicationPolicy; - - function deleteReplicationPolicy(policyId) { - return $http - .delete('/api/policies/replication/' + policyId); - } - } - -})(); diff --git a/src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js deleted file mode 100644 index dc93aa18b..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.list-replication-policy.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy') - .factory('ListReplicationPolicyService', ListReplicationPolicyService); - - ListReplicationPolicyService.$inject = ['$http']; - - function ListReplicationPolicyService($http) { - - return listReplicationPolicy; - - function listReplicationPolicy(policyId, projectId, name) { - return $http - .get('/api/policies/replication/' + policyId, { - 'params': { - 'project_id': projectId, - 'name': name - } - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js b/src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js deleted file mode 100644 index f01f674b2..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.replication-policy.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js deleted file mode 100644 index 635aa4f6f..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.toggle-replication-policy.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy') - .factory('ToggleReplicationPolicyService', ToggleReplicationPolicyService); - - ToggleReplicationPolicyService.$inject = ['$http']; - - function ToggleReplicationPolicyService($http) { - return toggleReplicationPolicy; - function toggleReplicationPolicy(policyId, enabled) { - return $http - .put('/api/policies/replication/' + policyId + '/enablement', { - 'enabled': enabled - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js b/src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js deleted file mode 100644 index fb49aeeac..000000000 --- a/src/ui/static/resources/js/services/replication-policy/services.update-replication-policy.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.replication.policy') - .factory('UpdateReplicationPolicyService', UpdateReplicationPolicyService); - - UpdateReplicationPolicyService.$inject = ['$http']; - - function UpdateReplicationPolicyService($http) { - return updateReplicationPolicy; - function updateReplicationPolicy(policyId, policy) { - return $http - .put('/api/policies/replication/' + policyId, { - 'name': policy.name, - 'description': policy.description, - 'enabled': policy.enabled, - 'target_id': policy.targetId - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.delete-repository.js b/src/ui/static/resources/js/services/repository/services.delete-repository.js deleted file mode 100644 index 7d2e39ef0..000000000 --- a/src/ui/static/resources/js/services/repository/services.delete-repository.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.repository') - .factory('DeleteRepositoryService', DeleteRepositoryService); - - DeleteRepositoryService.$inject = ['$http', '$log']; - - function DeleteRepositoryService($http, $log) { - - return DeleteRepository; - - function DeleteRepository(repoName, tag) { - var params = (tag === '') ? {'repo_name' : repoName} : {'repo_name': repoName, 'tag': tag}; - return $http - .delete('/api/repositories', { - 'params': params - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.list-manifest.js b/src/ui/static/resources/js/services/repository/services.list-manifest.js deleted file mode 100644 index 6c7f27d37..000000000 --- a/src/ui/static/resources/js/services/repository/services.list-manifest.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.repository') - .factory('ListManifestService', ListManifestService); - - ListManifestService.$inject = ['$http', '$log']; - - function ListManifestService($http, $log) { - return ListManifest; - function ListManifest(repoName, tag) { - return $.ajax({ - 'url': '/api/repositories/manifests', - 'method': 'GET', - 'dataType': 'json', - 'async': false, - 'data': { - 'repo_name': repoName, - 'tag': tag, - 'version': 'v1' - } - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.list-repository.js b/src/ui/static/resources/js/services/repository/services.list-repository.js deleted file mode 100644 index fa911a85c..000000000 --- a/src/ui/static/resources/js/services/repository/services.list-repository.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.repository') - .factory('ListRepositoryService', ListRepositoryService); - - ListRepositoryService.$inject = ['$http', '$log']; - - function ListRepositoryService($http, $log) { - - return ListRepository; - - function ListRepository(projectId, q, page, pageSize) { - $log.info('list repositories:' + projectId + ', q:' + q); - - return $http - .get('/api/repositories?page=' + page + '&page_size=' + pageSize, { - 'params':{ - 'project_id': projectId, - 'q': q - } - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.list-tag.js b/src/ui/static/resources/js/services/repository/services.list-tag.js deleted file mode 100644 index 74abd5026..000000000 --- a/src/ui/static/resources/js/services/repository/services.list-tag.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.repository') - .factory('ListTagService', ListTagService); - - ListTagService.$inject = ['$http', '$log']; - - function ListTagService($http, $log) { - return ListTag; - - function ListTag(repoName) { - return $http - .get('/api/repositories/tags', { - 'params': { - 'repo_name': repoName - } - }); - } - } - - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.list-top-repository.js b/src/ui/static/resources/js/services/repository/services.list-top-repository.js deleted file mode 100644 index 6cd7ba97d..000000000 --- a/src/ui/static/resources/js/services/repository/services.list-top-repository.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.repository') - .factory('ListTopRepositoryService', ListTopRepositoryService); - - ListTopRepositoryService.$inject = ['$http', '$log']; - - function ListTopRepositoryService($http, $log) { - - return listTopRepository; - - function listTopRepository(count) { - $log.info('Get public repositories which are accessed most:'); - return $http - .get('/api/repositories/top', { - 'params' : { - 'count': count, - } - }); - - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/repository/services.repository.module.js b/src/ui/static/resources/js/services/repository/services.repository.module.js deleted file mode 100644 index 4a638d38c..000000000 --- a/src/ui/static/resources/js/services/repository/services.repository.module.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.repository', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/search/services.search.js b/src/ui/static/resources/js/services/search/services.search.js deleted file mode 100644 index 432310eea..000000000 --- a/src/ui/static/resources/js/services/search/services.search.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.search') - .factory('SearchService', SearchService); - - SearchService.$inject = ['$http', '$log']; - - function SearchService($http, $log) { - - return search; - - function search(keywords) { - return $http - .get('/api/search',{ - params: { - 'q': keywords - } - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/search/services.search.module.js b/src/ui/static/resources/js/services/search/services.search.module.js deleted file mode 100644 index d2dbb4680..000000000 --- a/src/ui/static/resources/js/services/search/services.search.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.search', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/system-info/services.system-configuration.js b/src/ui/static/resources/js/services/system-info/services.system-configuration.js deleted file mode 100644 index 8c168cb90..000000000 --- a/src/ui/static/resources/js/services/system-info/services.system-configuration.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - angular.module('harbor.services.system.info') - .service('ConfigurationService', ConfigurationService); - - ConfigurationService.$inject = ['$http', '$q', '$timeout']; - - function ConfigurationService($http, $q, $timeout) { - this.get = get; - this.update = update; - this.pingLDAP = pingLDAP; - - function get() { - return $http.get('/api/configurations'); - } - - function update(updates) { - return $http.put('/api/configurations', updates); - } - - function pingLDAP(ldapConf) { - return $http - .post('/api/ldap/ping', ldapConf); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/system-info/services.system-info.module.js b/src/ui/static/resources/js/services/system-info/services.system-info.module.js deleted file mode 100644 index cc38c1b2d..000000000 --- a/src/ui/static/resources/js/services/system-info/services.system-info.module.js +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular.module('harbor.services.system.info', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/system-info/services.volume-info.js b/src/ui/static/resources/js/services/system-info/services.volume-info.js deleted file mode 100644 index 545db5561..000000000 --- a/src/ui/static/resources/js/services/system-info/services.volume-info.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - 'use strict'; - - angular - .module('harbor.services.system.info') - .factory('GetVolumeInfoService', GetVolumeInfoService); - - GetVolumeInfoService.$inject = ['$http']; - - function GetVolumeInfoService($http) { - return getVolumeInfo; - - function getVolumeInfo(path) { - return $http - .get('/api/systeminfo/volumes'); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.change-password.js b/src/ui/static/resources/js/services/user/services.change-password.js deleted file mode 100644 index 21fc8868c..000000000 --- a/src/ui/static/resources/js/services/user/services.change-password.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('ChangePasswordService', ChangePasswordService); - - ChangePasswordService.$inject = ['$http', '$log']; - - function ChangePasswordService($http, $log) { - - return ChangePassword; - - function ChangePassword(userId, oldPassword, newPassword) { - return $http - .put('/api/users/' + userId + '/password', { - 'old_password': oldPassword, - 'new_password': newPassword - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.current-user.js b/src/ui/static/resources/js/services/user/services.current-user.js deleted file mode 100644 index 577f53dca..000000000 --- a/src/ui/static/resources/js/services/user/services.current-user.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('CurrentUserService', CurrentUserService); - - CurrentUserService.$inject = ['$http']; - - function CurrentUserService($http, $log) { - - return CurrentUser; - - function CurrentUser() { - return $http - .get('/api/users/current'); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.delete-user.js b/src/ui/static/resources/js/services/user/services.delete-user.js deleted file mode 100644 index 85d5dd43a..000000000 --- a/src/ui/static/resources/js/services/user/services.delete-user.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('DeleteUserService', DeleteUserService); - - DeleteUserService.$inject = ['$http', '$log']; - - function DeleteUserService($http, $log) { - - return DeleteUser; - - function DeleteUser(userId) { - return $http - .delete('/api/users/' + userId); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.list-user.js b/src/ui/static/resources/js/services/user/services.list-user.js deleted file mode 100644 index fda39c897..000000000 --- a/src/ui/static/resources/js/services/user/services.list-user.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('ListUserService', ListUserService); - - ListUserService.$inject = ['$http', '$log']; - - function ListUserService($http, $log) { - - return listUser; - - function listUser(username) { - return $http - .get('/api/users', { - 'params' : { - 'username': username - } - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.log-out.js b/src/ui/static/resources/js/services/user/services.log-out.js deleted file mode 100644 index 69bfb4dd3..000000000 --- a/src/ui/static/resources/js/services/user/services.log-out.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('LogOutService', LogOutService); - - LogOutService.$inject = ['$http']; - - function LogOutService($http) { - return logOut; - function logOut() { - return $http - .get('/log_out'); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.reset-password.js b/src/ui/static/resources/js/services/user/services.reset-password.js deleted file mode 100644 index 638f8eaa3..000000000 --- a/src/ui/static/resources/js/services/user/services.reset-password.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('ResetPasswordService', ResetPasswordService); - - ResetPasswordService.$inject = ['$http', '$log']; - - function ResetPasswordService($http, $log) { - return resetPassword; - function resetPassword(uuid, password) { - return $http({ - method: 'POST', - url: '/reset', - headers: {'Content-Type': 'application/x-www-form-urlencoded'}, - transformRequest: function(obj) { - var str = []; - for(var p in obj) { - str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); - } - return str.join("&"); - }, - data: {'reset_uuid': uuid, 'password': password} - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.send-mail.js b/src/ui/static/resources/js/services/user/services.send-mail.js deleted file mode 100644 index dee323131..000000000 --- a/src/ui/static/resources/js/services/user/services.send-mail.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('SendMailService', SendMailService); - - SendMailService.$inject = ['$http', '$log']; - - function SendMailService($http, $log) { - - return SendMail; - - function SendMail(email) { - return $http - .get('/sendEmail', { - 'params': { - 'email': email - } - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.sign-in.js b/src/ui/static/resources/js/services/user/services.sign-in.js deleted file mode 100644 index 05010cc4f..000000000 --- a/src/ui/static/resources/js/services/user/services.sign-in.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('SignInService', SignInService); - - SignInService.$inject = ['$http', '$log']; - - function SignInService($http, $log) { - - return SignIn; - - function SignIn(principal, password) { - return $http({ - method: 'POST', - url: '/login', - headers: {'Content-Type': 'application/x-www-form-urlencoded'}, - transformRequest: function(obj) { - var str = []; - for(var p in obj) { - str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); - } - return str.join("&"); - }, - data: {'principal': principal, 'password': password} - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.sign-up.js b/src/ui/static/resources/js/services/user/services.sign-up.js deleted file mode 100644 index 099e18f45..000000000 --- a/src/ui/static/resources/js/services/user/services.sign-up.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('SignUpService', SignUpService); - - SignUpService.$inject = ['$http', '$log']; - - function SignUpService($http, $log) { - - return SignUp; - - function SignUp(user) { - return $http - .post('/api/users', { - 'username': user.username, - 'email': user.email, - 'password': user.password, - 'realname': user.realname, - 'comment': user.comment - }); - } - } -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.toggle-admin.js b/src/ui/static/resources/js/services/user/services.toggle-admin.js deleted file mode 100644 index 287d7e9ec..000000000 --- a/src/ui/static/resources/js/services/user/services.toggle-admin.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('ToggleAdminService', ToggleAdminService); - - ToggleAdminService.$inject = ['$http']; - - function ToggleAdminService($http) { - - return toggleAdmin; - - function toggleAdmin(userId, enabled) { - return $http - .put('/api/users/' + userId + '/sysadmin', { - 'has_admin_role' : enabled - }); - } - - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.update-user.js b/src/ui/static/resources/js/services/user/services.update-user.js deleted file mode 100644 index 97892f0b1..000000000 --- a/src/ui/static/resources/js/services/user/services.update-user.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('UpdateUserService', UpdateUserService); - - UpdateUserService.$inject = ['$http']; - - function UpdateUserService($http) { - return updateUser; - function updateUser(userId, user) { - return $http - .put('/api/users/' + userId, { - 'username': user.username, - 'email': user.email, - 'realname': user.realname, - 'comment': user.comment - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.user-exist.js b/src/ui/static/resources/js/services/user/services.user-exist.js deleted file mode 100644 index ba8a503e3..000000000 --- a/src/ui/static/resources/js/services/user/services.user-exist.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user') - .factory('UserExistService', UserExistService); - - UserExistService.$inject = ['$http', '$log']; - - function UserExistService($http, $log) { - return userExist; - function userExist(target, value) { - return $.ajax({ - type: 'POST', - url: '/userExists', - async: false, - data: {'target': target, 'value': value} - }); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/services/user/services.user.module.js b/src/ui/static/resources/js/services/user/services.user.module.js deleted file mode 100644 index 36a9b9278..000000000 --- a/src/ui/static/resources/js/services/user/services.user.module.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.services.user', []); - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/session/session.current-user.js b/src/ui/static/resources/js/session/session.current-user.js deleted file mode 100644 index a37525063..000000000 --- a/src/ui/static/resources/js/session/session.current-user.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.session') - .controller('CurrentUserController', CurrentUserController); - - CurrentUserController.$inject = ['$scope', 'CurrentUserService', 'currentUser', '$window', '$document', 'LogOutService']; - - function CurrentUserController($scope, CurrentUserService, currentUser, $window, $document, LogOutService) { - - var vm = this; - - CurrentUserService() - .then(getCurrentUserComplete) - .catch(getCurrentUserFailed); - - function getCurrentUserComplete(response) { - if(angular.isDefined(response)) { - currentUser.set(response.data); - if(location.pathname === '/') { - $window.location.href = '/dashboard'; - } - } - } - - function getCurrentUserFailed(e){ - console.log('Failed to get current user:' + e.statusText); - LogOutService() - .success(logOutSuccess) - .error(logOutFailed); - } - - function logOutSuccess(data, status) { - currentUser.unset(); - } - - function logOutFailed(data, status) { - console.log('Failed to log out:' + data); - } - } - -})(); \ No newline at end of file diff --git a/src/ui/static/resources/js/session/session.module.js b/src/ui/static/resources/js/session/session.module.js deleted file mode 100644 index 8158793bd..000000000 --- a/src/ui/static/resources/js/session/session.module.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (c) 2016 VMware, Inc. All Rights Reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -(function() { - - 'use strict'; - - angular - .module('harbor.session', [ - 'harbor.services.user' - ]); - -})(); \ No newline at end of file diff --git a/src/ui/static/scripts.bundle.js b/src/ui/static/scripts.bundle.js new file mode 100644 index 000000000..970573565 --- /dev/null +++ b/src/ui/static/scripts.bundle.js @@ -0,0 +1,103 @@ +webpackJsonp([1,4],{ + +/***/ 135: +/***/ (function(module, exports) { + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +module.exports = function(src) { + if (typeof execScript !== "undefined") + execScript(src); + else + eval.call(null, src); +} + + +/***/ }), + +/***/ 482: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(135)(__webpack_require__(798)) + +/***/ }), + +/***/ 483: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(135)(__webpack_require__(799)) + +/***/ }), + +/***/ 484: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(135)(__webpack_require__(800)) + +/***/ }), + +/***/ 485: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(135)(__webpack_require__(801)) + +/***/ }), + +/***/ 486: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(135)(__webpack_require__(819)) + +/***/ }), + +/***/ 798: +/***/ (function(module, exports) { + +module.exports = "/*\n\n Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n Code distributed by Google as part of the polymer project is also\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n'use strict';(function(){function c(){function a(){b.C=!0;b.b(f.childNodes)}var b=this;this.a=new Map;this.j=new Map;this.h=new Map;this.m=new Set;this.v=new MutationObserver(this.A.bind(this));this.f=null;this.B=new Set;this.enableFlush=!0;this.C=!1;this.G=this.c(f);window.HTMLImports?window.HTMLImports.whenReady(a):a()}function g(){return h.customElements}function k(a){if(!/^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(a)||-1!==q.indexOf(a))return Error(\"The element name '\"+a+\"' is not valid.\")}function l(a,\nb,d,e){var c=g();a=r.call(a,b,d);(b=c.a.get(b.toLowerCase()))&&c.D(a,b,e);c.c(a);return a}function m(a,b,d,e){b=b.toLowerCase();var c=a.getAttribute(b);e.call(a,b,d);1==a.__$CE_upgraded&&(e=g().a.get(a.localName),d=e.w,(e=e.i)&&0<=d.indexOf(b)&&(d=a.getAttribute(b),d!==c&&e.call(a,b,c,d,null)))}var f=document,h=window;if(g()&&(g().g=function(){},!g().forcePolyfill))return;var q=\"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph\".split(\" \");\nc.prototype.K=function(a,b){function d(a){var b=g[a];if(void 0!==b&&\"function\"!==typeof b)throw Error(c+\" '\"+a+\"' is not a Function\");return b}if(\"function\"!==typeof b)throw new TypeError(\"constructor must be a Constructor\");var e=k(a);if(e)throw e;if(this.a.has(a))throw Error(\"An element with name '\"+a+\"' is already defined\");if(this.j.has(b))throw Error(\"Definition failed for '\"+a+\"': The constructor is already used.\");var c=a,g=b.prototype;if(\"object\"!==typeof g)throw new TypeError(\"Definition failed for '\"+\na+\"': constructor.prototype must be an object\");var e=d(\"connectedCallback\"),h=d(\"disconnectedCallback\"),n=d(\"attributeChangedCallback\");this.a.set(c,{name:a,localName:c,constructor:b,o:e,s:h,i:n,w:n&&b.observedAttributes||[]});this.j.set(b,c);this.C&&this.b(f.childNodes);if(a=this.h.get(c))a.resolve(void 0),this.h.delete(c)};c.prototype.get=function(a){return(a=this.a.get(a))?a.constructor:void 0};c.prototype.L=function(a){var b=k(a);if(b)return Promise.reject(b);if(this.a.has(a))return Promise.resolve();\nif(b=this.h.get(a))return b.M;var d,e=new Promise(function(a){d=a}),b={M:e,resolve:d};this.h.set(a,b);return e};c.prototype.g=function(){this.enableFlush&&(this.l(this.G.takeRecords()),this.A(this.v.takeRecords()),this.m.forEach(function(a){this.l(a.takeRecords())},this))};c.prototype.I=function(a){this.f=a};c.prototype.c=function(a){if(null!=a.__$CE_observer)return a.__$CE_observer;a.__$CE_observer=new MutationObserver(this.l.bind(this));a.__$CE_observer.observe(a,{childList:!0,subtree:!0});this.enableFlush&&\nthis.m.add(a.__$CE_observer);return a.__$CE_observer};c.prototype.J=function(a){null!=a.__$CE_observer&&(a.__$CE_observer.disconnect(),this.enableFlush&&this.m.delete(a.__$CE_observer),a.__$CE_observer=null)};c.prototype.l=function(a){for(var b=0;b=0;a--){for(var u=t[a],i=0;ia;a++){var d=t.importers[a];if(!d.locked)for(var i=0;ia;a++){var l,s=r.normalizedDeps[a],c=v[s],f=y[s];f?l=f.exports:c&&!c.declarative?l=c.esModule:c?(d(c),f=c.module,l=f.exports):l=p(s),f&&f.importers?(f.importers.push(t),t.dependencies.push(f)):t.dependencies.push(null),t.setters[a]&&t.setters[a](l)}}}function i(e){var r,t=v[e];if(t)t.declarative?f(e,[]):t.evaluated||l(t),r=t.module.exports;else if(r=p(e),!r)throw new Error(\"Unable to load dependency \"+e+\".\");return(!t||t.declarative)&&r&&r.__useDefault?r.default:r}function l(r){if(!r.module){var t={},n=r.module={exports:t,id:r.name};if(!r.executingRequire)for(var o=0,a=r.normalizedDeps.length;a>o;o++){var u=r.normalizedDeps[o],d=v[u];d&&l(d)}r.evaluated=!0;var c=r.execute.call(e,function(e){for(var t=0,n=r.deps.length;n>t;t++)if(r.deps[t]==e)return i(r.normalizedDeps[t]);throw new TypeError(\"Module \"+e+\" not declared as a dependency.\")},t,n);void 0!==typeof c&&(n.exports=c),t=n.exports,t&&t.__esModule?r.esModule=t:r.esModule=s(t)}}function s(r){var t={};if((\"object\"==typeof r||\"function\"==typeof r)&&r!==e)if(m)for(var n in r)\"default\"!==n&&c(t,r,n);else{var o=r&&r.hasOwnProperty;for(var n in r)\"default\"===n||o&&!r.hasOwnProperty(n)||(t[n]=r[n])}return t.default=r,x(t,\"__useDefault\",{value:!0}),t}function c(e,r,t){try{var n;(n=Object.getOwnPropertyDescriptor(r,t))&&x(e,t,n)}catch(o){return e[t]=r[t],!1}}function f(r,t){var n=v[r];if(n&&!n.evaluated&&n.declarative){t.push(r);for(var o=0,a=n.normalizedDeps.length;a>o;o++){var u=n.normalizedDeps[o];-1==g.call(t,u)&&(v[u]?f(u,t):p(u))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}function p(e){if(I[e])return I[e];if(\"@node/\"==e.substr(0,6))return I[e]=s(D(e.substr(6)));var r=v[e];if(!r)throw\"Module \"+e+\" not present.\";return a(e),f(e,[]),v[e]=void 0,r.declarative&&x(r.module.exports,\"__esModule\",{value:!0}),I[e]=r.declarative?r.module.exports:r.esModule}var v={},g=Array.prototype.indexOf||function(e){for(var r=0,t=this.length;t>r;r++)if(this[r]===e)return r;return-1},m=!0;try{Object.getOwnPropertyDescriptor({a:0},\"a\")}catch(h){m=!1}var x;!function(){try{Object.defineProperty({},\"a\",{})&&(x=Object.defineProperty)}catch(e){x=function(e,r,t){try{e[r]=t.value||t.get.call(e)}catch(n){}}}}();var y={},D=\"undefined\"!=typeof System&&System._nodeRequire||\"undefined\"!=typeof require&&require.resolve&&\"undefined\"!=typeof process&&require,I={\"@empty\":{}};return function(e,n,o,a){return function(u){u(function(u){for(var d={_nodeRequire:D,register:r,registerDynamic:t,get:p,set:function(e,r){I[e]=r},newModule:function(e){return e}},i=0;i1)for(var i=1;i\"))throw new Error(\"Template must be SVG markup!\");return!0},ClarityIconsApi.prototype.setIconTemplate=function(shapeName,shapeTemplate){var trimmedShapeTemplate=shapeTemplate.trim();this.validateName(shapeName)&&this.validateTemplate(trimmedShapeTemplate)&&(iconShapeSources[shapeName]&&delete iconShapeSources[shapeName],iconShapeSources[shapeName]=trimmedShapeTemplate)},ClarityIconsApi.prototype.setIconAliases=function(templates,shapeName,aliasNames){for(var _i=0,aliasNames_1=aliasNames;_i\\n home\\n\\n \\n \\n\\n \\n \\n \\n ',get\"house\"(){return this.home},cog:'\\n \\n cog\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n ',get\"settings\"(){return this.cog},check:'\\n \\n check\\n \\n \\n ',get\"success\"(){return this.check},times:'\\n \\n times\\n \\n \\n ',get\"close\"(){return this.times},\"exclamation-triangle\":'\\n \\n exclamation-triangle\\n\\n \\n \\n \\n\\n \\n \\n ',get\"warning\"(){return this[\"exclamation-triangle\"]},\"exclamation-circle\":'\\n \\n exclamation-circle\\n\\n \\n \\n \\n\\n \\n \\n ',get\"error\"(){return this[\"exclamation-circle\"]},\"check-circle\":'\\n \\n check-circle\\n\\n \\n \\n\\n \\n \\n ',\"info-circle\":'\\n \\n info-circle\\n\\n \\n \\n \\n\\n \\n\\n \\n ',get\"info\"(){return this[\"info-circle\"]},search:'\\n \\n search\\n \\n \\n \\n ',bars:'\\n \\n bars\\n \\n \\n \\n \\n ',get\"menu\"(){return this.bars},user:'\\n \\n user\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',get\"avatar\"(){return this.user},angle:'\\n \\n angle\\n \\n \\n ',get\"caret\"(){return this.angle},folder:'\\n \\n folder\\n\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n ',get\"directory\"(){return this.folder},bell:'\\n \\n bell\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n \\n ',\nget\"notification\"(){return this.bell},image:'\\n \\n image \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',cloud:'\\n \\n cloud\\n\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ',\"ellipsis-vertical\":'\\n \\n ellipsis-vertical\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n ',get\"ellipses-vertical\"(){return this[\"ellipsis-vertical\"]},\"ellipsis-horizontal\":'\\n \\n ellipsis-horizontal\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n ',get\"ellipses-horizontal\"(){return this[\"ellipsis-horizontal\"]},\"vm-bug\":'\\n \\n vm-bug\\n \\n \\n \\n '});return exports.CoreShapes=coreShapes,module.exports}),$__System.registerDynamic(\"5\",[\"2\",\"3\",\"4\"],!0,function($__require,exports,module){\"use strict\";var clarity_icons_api_1=(this||self,$__require(\"2\")),clarity_icons_element_1=$__require(\"3\"),core_shapes_1=$__require(\"4\"),clarityIcons=clarity_icons_api_1.ClarityIconsApi.instance;return exports.ClarityIcons=clarityIcons,clarityIcons.add(core_shapes_1.CoreShapes),window.hasOwnProperty(\"ClarityIcons\")||(window.ClarityIcons=clarityIcons,customElements.define(\"clr-icon\",clarity_icons_element_1.ClarityIconElement)),module.exports}),$__System.registerDynamic(\"6\",[],!0,function($__require,exports,module){\"use strict\";this||self;return exports.essentialShapes={pencil:'\\n \\n pencil\\n\\n \\n\\n \\n \\n \\n ',get\"edit\"(){return this.pencil},refresh:'\\n \\n refresh\\n \\n \\n ',sync:'\\n \\n sync\\n \\n \\n \\n ',\"view-list\":'\\n \\n view-list\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"view-cards\":'\\n \\n view-cards\\n \\n \\n \\n \\n \\n ',\"view-columns\":'\\n \\n view-columns\\n \\n \\n ',lightbulb:'\\n \\n lightbulb \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',download:'\\n \\n download\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',upload:'\\n \\n upload\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',lock:'\\n \\n lock\\n \\n \\n\\n \\n \\n ',unlock:'\\n \\n unlock\\n\\n \\n \\n\\n \\n \\n ',users:'\\n \\n users\\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n ',\nget\"group\"(){return this.users},\"pop-out\":'\\n \\n pop-out\\n \\n \\n \\n ',filter:'\\n \\n filter\\n\\n \\n \\n\\n \\n ',pin:'\\n \\n pin\\n\\n \\n \\n\\n \\n \\n \\n ',camera:'\\n \\n camera \\n \\n \\n \\n \\n \\n \\n ',\"ellipsis-vertical\":'\\n \\n ellipsis-vertical\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n ',get\"ellipses-vertical\"(){return this[\"ellipsis-vertical\"]},\"ellipsis-horizontal\":'\\n \\n ellipsis-horizontal\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n ',get\"ellipses-horizontal\"(){return this[\"ellipsis-horizontal\"]},\"angle-double\":'\\n \\n angle-double\\n \\n \\n \\n ',get\"collapse\"(){return this[\"angle-double\"]},file:'\\n \\n file\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ',get\"document\"(){return this.file},plus:'\\n \\n plus\\n \\n \\n ',get\"add\"(){return this.plus},ban:'\\n \\n ban\\n \\n \\n ',get\"cancel\"(){return this.ban},\"times-circle\":'\\n \\n times-circle\\n \\n \\n\\n \\n \\n ',get\"remove\"(){return this[\"times-circle\"]},play:'\\n \\n play\\n\\n \\n\\n \\n \\n ',pause:'\\n \\n pause\\n \\n \\n\\n \\n \\n \\n ',\"step-forward\":'\\n \\n step-forward\\n\\n \\n \\n\\n \\n \\n \\n ',stop:'\\n \\n stop\\n\\n \\n\\n \\n \\n ',power:'\\n \\n power\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ',trash:'\\n \\n trash\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n ',\"plus-circle\":'\\n \\n plus-circle \\n \\n \\n \\n ',circle:'\\n \\n circle \\n \\n \\n ',tag:'\\n \\n tag \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',tags:'\\n \\n tags\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',history:'\\n \\n history \\n \\n \\n ',clock:'\\n \\n clock\\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n\\n\\n ',\n\"alarm-clock\":'\\n \\n alarm-clock \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',arrow:'\\n \\n arrow \\n \\n ',\"circle-arrow\":'\\n \\n circle-arrow \\n \\n \\n \\n ',copy:'\\n \\n copy \\n \\n \\n \\n \\n ',eye:'\\n \\n eye-show \\n \\n \\n \\n \\n ',get\"eye-show\"(){return this.eye},\"eye-hide\":'\\n \\n eye-hide \\n \\n \\n \\n \\n \\n \\n ',help:'\\n \\n help \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',logout:'\\n \\n logout \\n \\n \\n \\n \\n ',bank:' \\n bank \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',shield:'\\n \\n shield \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"shield-check\":'\\n \\n shield-check \\n \\n \\n \\n ',\"shield-x\":'\\n \\n shield-x \\n \\n \\n \\n ',floppy:'\\n \\n floppy\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n ',import:'\\n \\n import \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',export:'\\n \\n export \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\n\"upload-cloud\":'\\n \\n upload-cloud \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"download-cloud\":'\\n \\n download-cloud \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',printer:'\\n \\n printer \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',world:'\\n \\n world \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',slider:'\\n \\n slider \\n \\n \\n \\n \\n \\n \\n ',\"happy-face\":'\\n \\n happy-face \\n \\n \\n \\n \\n \\n ',\"neutral-face\":'\\n \\n neutral-face \\n \\n \\n \\n \\n \\n ',\"sad-face\":'\\n \\n sad-face \\n \\n \\n \\n \\n \\n ',clipboard:'\\n \\t\\t\\n clipboard\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',firewall:'\\n \\t\\t\\n firewall\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',list:'\\n \\t\\t\\n list\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',network:'\\n \\t\\t\\n network\\n \\n \\n \\n \\n \\n \\n ',\nredo:'\\n \\t\\t\\n redo\\n \\n \\n ',router:'\\n \\t\\t\\n router\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',scroll:'\\n \\t\\t\\n scroll\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"file-settings\":'\\n \\t\\t\\n file-settings\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',switch:'\\n \\t\\t\\n switch\\n \\n \\n \\n \\n \\n \\n \\n ',tools:'\\n \\t\\t\\n tools\\n \\n \\n \\n \\n \\n \\n ',undo:'\\n \\t\\t\\n undo\\n \\n \\n ',\"window-close\":'\\n \\t\\t\\n window-close\\n \\n \\n ',\"window-max\":'\\n \\t\\t\\n window-max\\n \\n \\n ',\"window-min\":'\\n \\t\\t\\n window-min\\n \\n \\n ',\"window-restore\":'\\n \\t\\t\\n window-restore\\n \\n \\n \\n ',\"zoom-in\":'\\n \\t\\t\\n zoom-in\\n \\n \\n \\n \\n ',\"zoom-out\":'\\n \\t\\t\\n zoom-out\\n \\n \\n \\n \\n '},exports.EssentialShapes=exports.essentialShapes,\"undefined\"!=typeof window&&window.hasOwnProperty(\"ClarityIcons\")&&window.ClarityIcons.add(exports.essentialShapes),module.exports}),$__System.registerDynamic(\"7\",[],!0,function($__require,exports,module){\"use strict\";var socialShapes=(this||self,{\"map-marker\":'\\n \\n map-marker\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n \\n ',get\"map\"(){return this[\"map-marker\"]},share:'\\n \\n share\\n\\n \\n\\n \\n \\n ',star:'\\n \\n star\\n\\n \\n\\n \\n \\n ',\"half-star\":'\\n \\n half-star\\n\\n \\n\\n \\n \\n ',get\"favorite\"(){return this.star},bookmark:'\\n \\n bookmark\\n\\n \\n\\n \\n \\n ',envelope:'\\n \\n envelope\\n\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',\nget\"email\"(){return this.envelope},calendar:'\\n \\n calendar\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n ',get\"date\"(){return this.calendar},event:'\\n \\n event\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',tasks:'\\n \\n tasks\\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ',flag:'\\n \\n flag\\n\\n \\n \\n\\n \\n \\n \\n ',inbox:'\\n \\n inbox \\n \\n \\n \\n \\n \\n ',heart:'\\n \\n heart \\n \\n \\n ',\"heart-broken\":'\\n \\n heart-broken \\n \\n \\n ',\"talk-bubbles\":'\\n \\n talk-bubbles \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',picture:'\\n \\n picture \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',camera:'\\n \\n camera \\n \\n \\n \\n \\n \\n \\n ',\"happy-face\":'\\n \\n happy-face \\n \\n \\n \\n \\n \\n ',\"neutral-face\":'\\n \\n neutral-face \\n \\n \\n \\n \\n \\n ',\"sad-face\":'\\n \\n sad-face \\n \\n \\n \\n \\n \\n '});return exports.SocialShapes=socialShapes,\"undefined\"!=typeof window&&window.hasOwnProperty(\"ClarityIcons\")&&window.ClarityIcons.add(socialShapes),module.exports}),$__System.registerDynamic(\"8\",[],!0,function($__require,exports,module){\n\"use strict\";var technologyShapes=(this||self,{\"line-chart\":'\\n \\n line chart\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n ',get\"analytics\"(){return this[\"line-chart\"]},dashboard:'\\n \\n dashboard\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n ',host:'\\n \\n host\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n ',get\"server\"(){return this.host},storage:'\\n \\n storage\\n\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ',\"bar-chart\":'\\n \\n bar-chart\\n\\n \\n\\n \\n \\n\\n \\n\\n \\n \\n \\n ',cluster:'\\n \\n cluster \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',app:'\\n \\n app\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',building:'\\n \\n building \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\ncpu:'\\n \\n cpu \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n ',memory:'\\n \\n memory \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"data-cluster\":'\\n \\n data-cluster \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"resource-pool\":'\\n \\n resource-pool \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',shield:'\\n \\n shield \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"shield-check\":'\\n \\n shield-check \\n \\n \\n \\n ',\"shield-x\":'\\n \\n shield-x \\n \\n \\n \\n ',import:'\\n \\n import \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',export:'\\n \\n export \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\"upload-cloud\":'\\n \\n upload-cloud \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',\n\"download-cloud\":'\\n \\n download-cloud \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',plugin:'\\n \\n plugin \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',floppy:'\\n \\n floppy\\n \\n\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n \\n\\n \\n \\n ',computer:'\\n \\n computer \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n ',display:'\\n \\n display \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n '});return exports.TechnologyShapes=technologyShapes,\"undefined\"!=typeof window&&window.hasOwnProperty(\"ClarityIcons\")&&window.ClarityIcons.add(technologyShapes),module.exports}),$__System.registerDynamic(\"1\",[\"5\",\"6\",\"7\",\"8\"],!0,function($__require,exports,module){\"use strict\";var index_1=(this||self,$__require(\"5\"));exports.ClarityIcons=index_1.ClarityIcons;var essential_shapes_1=$__require(\"6\"),social_shapes_1=$__require(\"7\"),technology_shapes_1=$__require(\"8\");return index_1.ClarityIcons.add(essential_shapes_1.EssentialShapes),index_1.ClarityIcons.add(social_shapes_1.SocialShapes),index_1.ClarityIcons.add(technology_shapes_1.TechnologyShapes),module.exports})})(function(factory){\"function\"==typeof define&&define.amd?define([],factory):\"object\"==typeof module&&module.exports&&\"function\"==typeof require?module.exports=factory():factory()});" + +/***/ }), + +/***/ 800: +/***/ (function(module, exports) { + +module.exports = "/**\n * core-js 2.4.1\n * https://github.com/zloirock/core-js\n * License: http://rock.mit-license.org\n * © 2016 Denis Pushkarev\n */\n!function(a,b,c){\"use strict\";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p=\"\",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),a.exports=c(288)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J=\"prototype\",K=o(\"_hidden\"),L=o(\"toPrimitive\"),M={}.propertyIsEnumerable,N=l(\"symbol-registry\"),O=l(\"symbols\"),P=l(\"op-symbols\"),Q=Object[J],R=\"function\"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},\"a\",{get:function(){return E(this,\"a\",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&\"symbol\"==typeof G.iterator?function(a){return\"symbol\"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError(\"Symbol is not a constructor!\");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],\"toString\",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,\"propertyIsEnumerable\",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,\"Symbol\",{\"for\":function(a){return f(N,a+=\"\")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+\" is not a symbol!\")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,\"Object\",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return\"[null]\"!=I([a])||\"{}\"!=I({a:a})||\"{}\"!=I(Object(a))})),\"JSON\",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],\"function\"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,\"Symbol\"),m(Math,\"Math\",!0),m(e.JSON,\"JSON\",!0)},function(a,c){var d=a.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j=\"prototype\",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&\"function\"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:\"2.4.0\"};\"number\"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if(\"get\"in c||\"set\"in c)throw TypeError(\"Accessors not supported!\");return\"value\"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+\" is not an object!\");return a}},function(a,b){a.exports=function(a){return\"object\"==typeof a?null!==a:\"function\"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&\"function\"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if(\"function\"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&\"function\"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError(\"Can't convert object to primitive value\")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)(\"src\"),h=\"toString\",i=Function[h],j=(\"\"+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i=\"function\"==typeof c;i&&(f(c,\"name\")||e(c,\"name\",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?\"\"+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return\"function\"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return\"Symbol(\".concat(a===c?\"\":a,\")_\",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if(\"function\"!=typeof a)throw TypeError(a+\" is not a function!\");return a}},function(a,b,c){var d=c(17)(\"meta\"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:\"O\"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return\"symbol\"==typeof a?a:(\"string\"==typeof a?\"S\":\"P\")+a;if(!f(a,d)){if(!i(a))return\"F\";if(!b)return\"E\";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e=\"__core-js_shared__\",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)(\"toStringTag\");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)(\"wks\"),e=c(17),f=c(2).Symbol,g=\"function\"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)(\"Symbol.\"+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});\"_\"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)(\"IE_PROTO\");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(a){return\"String\"==d(a)?a.split(\"\"):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError(\"Can't call method on \"+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)(\"keys\"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return\"Array\"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)(\"IE_PROTO\"),i=function(){},j=\"prototype\",k=function(){var a,b=d(13)(\"iframe\"),c=g.length,e=\"<\",f=\">\";for(b.style.display=\"none\",d(46).appendChild(b),b.src=\"javascript:\",a=b.contentWindow.document,a.open(),a.write(e+\"script\"+f+\"document.F=Object\"+e+\"/script\"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&\"[object Window]\"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat(\"length\",\"prototype\");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),\"Object\",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),\"Object\",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)(\"getOwnPropertyDescriptor\",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),\"Object\",g)}},function(a,b,c){var d=c(6);d(d.S,\"Object\",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)(\"getPrototypeOf\",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)(\"IE_PROTO\"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:\"function\"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)(\"keys\",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)(\"getOwnPropertyNames\",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\"freeze\",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\"seal\",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\"preventExtensions\",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)(\"isFrozen\",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)(\"isSealed\",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)(\"isExtensible\",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,\"Object\",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d=\"abcdefghijklmnopqrst\";return a[c]=7,d.split(\"\").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join(\"\")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,\"Object\",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,\"Object\",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+\": can't set as prototype!\")};a.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,\"__proto__\").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)(\"toStringTag\")]=\"z\",e+\"\"!=\"[object z]\"&&c(16)(Object.prototype,\"toString\",function toString(){return\"[object \"+d(this)+\"]\"},!0)},function(a,b,d){var e=d(32),f=d(23)(\"toStringTag\"),g=\"Arguments\"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?\"Undefined\":null===a?\"Null\":\"string\"==typeof(d=h(b=Object(a),f))?d:g?e(b):\"Object\"==(i=e(b))&&\"function\"==typeof b.callee?\"Arguments\":i}},function(a,b,c){var d=c(6);d(d.P,\"Function\",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;je)return NaN;return parseInt(i,d)}}return+b};if(!o(\" 0o1\")||!o(\"0b1\")||o(\"+0x1\")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&\"function\"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h=\"[\"+g+\"]\",i=\"​…\",j=RegExp(\"^\"+h+h+\"*\"),k=RegExp(h+h+\"*$\"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,\"String\",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,\"\")),2&b&&(a=a.replace(k,\"\")),a};a.exports=l},function(a,b){a.exports=\"\\t\\n\\x0B\\f\\r   ᠎              \\u2028\\u2029\\ufeff\"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k=\"Number.toFixed: incorrect invocation!\",l=\"0\",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b=\"\";--a>=0;)if(\"\"!==b||0===a||0!==j[a]){var c=String(j[a]);b=\"\"===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&(\"0.000\"!==8e-5.toFixed(3)||\"1\"!==.9.toFixed(0)||\"1.25\"!==1.255.toFixed(2)||\"1000000000000000128\"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),\"Number\",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r=\"\",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return\"NaN\";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r=\"-\",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<0?(h=s.length,s=r+(h<=j?\"0.\"+g.call(l,j-h)+s:s.slice(0,h-j)+\".\"+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if(\"number\"!=typeof a&&\"Number\"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c=\"\",f=d(a);if(f<0||f==1/0)throw RangeError(\"Count can't be negative\");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return\"1\"!==h.call(1,c)})||!f(function(){h.call({})})),\"Number\",{toPrecision:function toPrecision(a){var b=g(this,\"Number#toPrecision: incorrect invocation!\");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,\"Number\",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,\"Number\",{isFinite:function isFinite(a){return\"number\"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,\"Number\",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,\"Number\",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,\"Number\",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,\"Number\",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,\"Number\",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),\"Number\",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+\"-0\")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&\"-\"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),\"Number\",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\\-+]?0[xX]/;a.exports=8!==d(f+\"08\")||22!==d(f+\"0x16\")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),\"Math\",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),\"Math\",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),\"Math\",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,\"Math\",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,\"Math\",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,\"Math\",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),\"Math\",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,\"Math\",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return di||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,\"Math\",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),\"Math\",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),\"Math\",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,\"Math\",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),\"String\",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+\" is not a valid code point\");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join(\"\")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,\"String\",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h=k?a?\"\":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h=\"endsWith\",i=\"\"[h];e(e.P+e.F*d(129)(h),\"String\",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError(\"String#\"+c+\" doesn't accept regex!\");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)(\"match\");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:\"RegExp\"==f(a))}},function(a,b,c){var d=c(23)(\"match\");a.exports=function(a){var b=/./;try{\"/./\"[a](b)}catch(c){try{return b[d]=!1,!\"/./\"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g=\"includes\";e(e.P+e.F*d(129)(g),\"String\",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,\"String\",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h=\"startsWith\",i=\"\"[h];e(e.P+e.F*d(129)(h),\"String\",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,\"String\",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)(\"iterator\"),o=!([].keys&&\"next\"in[].keys()),p=\"@@iterator\",q=\"keys\",r=\"values\",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+\" Iterator\",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A(\"entries\"):G:c,I=\"Array\"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)(\"iterator\"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+\" Iterator\")}},function(a,b,c){c(138)(\"anchor\",function(a){return function anchor(b){return a(this,\"a\",\"name\",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/\"/g,h=function(a,b,c,d){var e=String(f(a)),h=\"<\"+b;return\"\"!==c&&(h+=\" \"+c+'=\"'+String(d).replace(g,\""\")+'\"'),h+\">\"+e+\"\"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=\"\"[a]('\"');return b!==b.toLowerCase()||b.split('\"').length>3}),\"String\",c)}},function(a,b,c){c(138)(\"big\",function(a){return function big(){return a(this,\"big\",\"\",\"\")}})},function(a,b,c){c(138)(\"blink\",function(a){return function blink(){return a(this,\"blink\",\"\",\"\")}})},function(a,b,c){c(138)(\"bold\",function(a){return function bold(){return a(this,\"b\",\"\",\"\")}})},function(a,b,c){c(138)(\"fixed\",function(a){return function fixed(){return a(this,\"tt\",\"\",\"\")}})},function(a,b,c){c(138)(\"fontcolor\",function(a){return function fontcolor(b){return a(this,\"font\",\"color\",b)}})},function(a,b,c){c(138)(\"fontsize\",function(a){return function fontsize(b){return a(this,\"font\",\"size\",b)}})},function(a,b,c){c(138)(\"italics\",function(a){return function italics(){return a(this,\"i\",\"\",\"\")}})},function(a,b,c){c(138)(\"link\",function(a){return function link(b){return a(this,\"a\",\"href\",b)}})},function(a,b,c){c(138)(\"small\",function(a){return function small(){return a(this,\"small\",\"\",\"\")}})},function(a,b,c){c(138)(\"strike\",function(a){return function strike(){return a(this,\"strike\",\"\",\"\")}})},function(a,b,c){c(138)(\"sub\",function(a){return function sub(){return a(this,\"sub\",\"\",\"\")}})},function(a,b,c){c(138)(\"sup\",function(a){return function sup(){return a(this,\"sup\",\"\",\"\")}})},function(a,b,c){var d=c(6);d(d.S,\"Array\",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),\"Array\",{from:function from(a){var b,d,f,m,n=g(a),o=\"function\"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a[\"return\"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)(\"iterator\"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)(\"iterator\"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a[\"@@iterator\"]||g[e(a)]}},function(a,b,c){var d=c(23)(\"iterator\"),e=!1;\ntry{var f=[7][d]();f[\"return\"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),\"Array\",{of:function of(){for(var a=0,b=arguments.length,c=new(\"function\"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),\"Array\",{join:function join(a){return g.call(f(this),a===c?\",\":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),\"Array\",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,\"Array\"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;nw;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)(\"species\");a.exports=function(a){var b;return f(a)&&(b=a.constructor,\"function\"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),\"Array\",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),\"Array\",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),\"Array\",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),\"Array\",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),\"Array\",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError(\"Reduce of empty array with no initial value\")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),\"Array\",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),\"Array\",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),\"Array\",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,\"Array\",{copyWithin:c(177)}),c(178)(\"copyWithin\")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)(\"unscopables\"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,\"Array\",{fill:c(180)}),c(178)(\"fill\")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g=\"find\",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,\"Array\",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g=\"findIndex\",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,\"Array\",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,\"Array\",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):\"keys\"==b?f(0,d):\"values\"==b?f(0,a[d]):f(0,[d,a[d]])},\"values\"),g.Arguments=g.Array,e(\"keys\"),e(\"values\"),e(\"entries\")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)(\"Array\")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)(\"species\");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)(\"match\")]=!1,k(n)!=n||k(o)==o||\"/a/i\"!=k(n,\"i\")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,\"RegExp\",k)}d(186)(\"RegExp\")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b=\"\";return a.global&&(b+=\"g\"),a.ignoreCase&&(b+=\"i\"),a.multiline&&(b+=\"m\"),a.unicode&&(b+=\"u\"),a.sticky&&(b+=\"y\"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h=\"toString\",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return\"/a/b\"!=i.call({source:\"a\",flags:\"b\"})})?j(function toString(){var a=e(this);return\"/\".concat(a.source,\"/\",\"flags\"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&\"g\"!=/./g.flags&&c(9).f(RegExp.prototype,\"flags\",{configurable:!0,get:c(188)})},function(a,b,d){d(192)(\"match\",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,\"\"[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=\"\"[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)(\"replace\",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)(\"search\",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)(\"split\",2,function(a,b,e){var f=d(128),g=e,h=[].push,i=\"split\",j=\"length\",k=\"lastIndex\";if(\"c\"==\"abbc\"[i](/(b)*/)[1]||4!=\"test\"[i](/(?:)/,-1)[j]||2!=\"ab\"[i](/(?:ab)*/)[j]||4!=\".\"[i](/(.?)(.?)/)[j]||\".\"[i](/()()/)[j]>1||\"\"[i](/.?/)[j]){var l=/()??/.exec(\"\")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?\"i\":\"\")+(a.multiline?\"m\":\"\")+(a.unicode?\"u\":\"\")+(a.sticky?\"y\":\"\"),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+\"g\");for(l||(e=new RegExp(\"^\"+t.source+\"$(?!\\\\s)\",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o1&&i.index=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test(\"\")||p.push(\"\"):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else\"0\"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t=\"Promise\",u=i.TypeError,v=i.process,w=i[t],v=i.process,x=\"process\"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)(\"species\")]=function(a){a(y,y)};return(x||\"function\"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||\"function\"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u(\"Bad Promise constructor\");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u(\"Promise-chain cycle\")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit(\"unhandledRejection\",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error(\"Unhandled promise rejection\",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit(\"rejectionHandled\",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u(\"Promise can't be resolved itself\");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,\"_h\"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok=\"function\"!=typeof a||a,d.fail=\"function\"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},\"catch\":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)[\"catch\"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+\": incorrect invocation!\");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if(\"function\"!=typeof r)throw TypeError(a+\" is not iterable!\");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)(\"species\");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r=\"onreadystatechange\",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h(\"function\"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},\"process\"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&\"function\"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+\"\",\"*\")},k.addEventListener(\"message\",t,!1)):d=r in j(\"script\")?function(a){i.appendChild(j(\"script\"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j=\"process\"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode(\"\");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)(\"Map\",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?\"_s\":\"size\",r=function(a,b){var c,d=p(b);if(\"F\"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,\"_i\"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},\"delete\":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,\"forEach\");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,\"size\",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,\"F\"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?\"keys\"==b?m(0,d.k):\"values\"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?\"entries\":\"values\",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?\"set\":\"add\",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,\"delete\"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:\"has\"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:\"get\"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:\"add\"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if(\"function\"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y(\"delete\"),y(\"has\"),r&&y(\"get\")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)(\"Set\",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)(\"WeakMap\",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f([\"delete\",\"has\",\"get\",\"set\"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return\"set\"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},\"delete\":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,\"_i\"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{\"delete\":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)[\"delete\"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)(\"WeakSet\",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),\"Reflect\",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),\"Reflect\",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),\"Reflect\",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,\"Reflect\",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,\"Object\",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,\"Reflect\",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,\"value\")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,\"Reflect\",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,\"Reflect\",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,\"Reflect\",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,\"Reflect\",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,\"Reflect\",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,\"Reflect\",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,\"Reflect\",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,\"value\")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,\"Reflect\",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,\"Reflect\",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,\"Date\",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),\"Date\",{toJSON:function toJSON(a){var b=e(this),c=f(b);return\"number\"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:\"0\"+a};d(d.P+d.F*(e(function(){return\"0385-07-25T07:06:39.999Z\"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),\"Date\",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError(\"Invalid time value\");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?\"-\":b>9999?\"+\":\"\";return d+(\"00000\"+Math.abs(b)).slice(d?-6:-4)+\"-\"+g(a.getUTCMonth()+1)+\"-\"+g(a.getUTCDate())+\"T\"+g(a.getUTCHours())+\":\"+g(a.getUTCMinutes())+\":\"+g(a.getUTCSeconds())+\".\"+(c>99?c:\"0\"+g(c))+\"Z\"}})},function(a,b,c){var d=Date.prototype,e=\"Invalid Date\",f=\"toString\",g=d[f],h=d.getTime;new Date(NaN)+\"\"!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)(\"toPrimitive\"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f=\"number\";a.exports=function(a){if(\"string\"!==a&&a!==f&&\"default\"!==a)throw TypeError(\"Incorrect hint\");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s=\"ArrayBuffer\";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;lba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A(\"Wrong offset!\");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,\"_l\"),W(y,I,\"_b\"),W(y,J,\"_l\"),W(y,K,\"_o\")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)(\"Int8\",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V=\"ArrayBuffer\",W=\"Shared\"+V,X=\"BYTES_PER_ELEMENT\",Y=\"prototype\",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E(\"iterator\"),ua=E(\"toStringTag\"),va=D(\"typed_constructor\"),wa=D(\"def_constructor\"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa=\"Wrong length!\",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S(\"Wrong offset!\");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+\" is not a typed array!\")},Ha=function(a,b){if(!(w(a)&&va in a))throw T(\"It is not a typed array constructor!\");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){\nreturn la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,\"_d\");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,\"_d\",{b:g,o:o,l:h,e:i,v:new _(g)});m1?arguments[1]:c)}}),d(178)(\"includes\")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,\"String\",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,\"String\",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?\" \":String(d),l=e(b);if(l<=j||\"\"==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,\"String\",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)(\"trimLeft\",function(a){return function trimLeft(){return a(this,1)}},\"trimStart\")},function(a,b,c){c(81)(\"trimRight\",function(a){return function trimRight(){return a(this,2)}},\"trimEnd\")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,\"RegExp String\",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,\"String\",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+\" is not a regexp!\");var b=String(this),c=\"flags\"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf(\"g\")?c:\"g\"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)(\"asyncIterator\")},function(a,b,c){c(25)(\"observable\")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,\"Object\",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,\"Object\",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,\"Object\",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),\"Object\",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),\"Object\",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),\"Object\",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),\"Object\",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,\"Map\",{toJSON:c(265)(\"Map\")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+\"#toJSON isn't generic\");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,\"Set\",{toJSON:c(265)(\"Set\")})},function(a,b,c){var d=c(6);d(d.S,\"System\",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,\"Error\",{isError:function isError(a){return\"Error\"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,\"Math\",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)(\"metadata\"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||\"symbol\"==typeof a?a:String(a)},o=function(a){f(f.S,\"Reflect\",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e[\"delete\"](a))return!1;if(e.size)return!0;var j=i.get(b);return j[\"delete\"](d),!!j.size||i[\"delete\"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g=\"process\"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)(\"observable\"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&(\"function\"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,\"Observable\",\"_f\")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b=\"function\"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);ag;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)}]),\"undefined\"!=typeof module&&module.exports?module.exports=a:\"function\"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);\n//# sourceMappingURL=shim.min.js.map" + +/***/ }), + +/***/ 801: +/***/ (function(module, exports) { + +module.exports = "// mutationobserver-shim v0.3.2 (github.com/megawac/MutationObserver.js)\n// Authors: Graeme Yeates (github.com/megawac) \nwindow.MutationObserver=window.MutationObserver||function(w){function v(a){this.i=[];this.m=a}function I(a){(function c(){var d=a.takeRecords();d.length&&a.m(d,a);a.h=setTimeout(c,v._period)})()}function p(a){var b={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null},c;for(c in a)b[c]!==w&&a[c]!==w&&(b[c]=a[c]);return b}function J(a,b){var c=C(a,b);return function(d){var f=d.length,n;b.a&&3===a.nodeType&&\na.nodeValue!==c.a&&d.push(new p({type:\"characterData\",target:a,oldValue:c.a}));b.b&&c.b&&A(d,a,c.b,b.f);if(b.c||b.g)n=K(d,a,c,b);if(n||d.length!==f)c=C(a,b)}}function L(a,b){return b.value}function M(a,b){return\"style\"!==b.name?b.value:a.style.cssText}function A(a,b,c,d){for(var f={},n=b.attributes,k,g,x=n.length;x--;)k=n[x],g=k.name,d&&d[g]===w||(D(b,k)!==c[g]&&a.push(p({type:\"attributes\",target:b,attributeName:g,oldValue:c[g],attributeNamespace:k.namespaceURI})),f[g]=!0);for(g in c)f[g]||a.push(p({target:b,\ntype:\"attributes\",attributeName:g,oldValue:c[g]}))}function K(a,b,c,d){function f(b,c,f,k,y){var g=b.length-1;y=-~((g-y)/2);for(var h,l,e;e=b.pop();)h=f[e.j],l=k[e.l],d.c&&y&&Math.abs(e.j-e.l)>=g&&(a.push(p({type:\"childList\",target:c,addedNodes:[h],removedNodes:[h],nextSibling:h.nextSibling,previousSibling:h.previousSibling})),y--),d.b&&l.b&&A(a,h,l.b,d.f),d.a&&3===h.nodeType&&h.nodeValue!==l.a&&a.push(p({type:\"characterData\",target:h,oldValue:l.a})),d.g&&n(h,l)}function n(b,c){for(var g=b.childNodes,\nq=c.c,x=g.length,v=q?q.length:0,h,l,e,m,t,z=0,u=0,r=0;u1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function k(a){C||(C=document.createElement(\"div\").style),C.animationTimingFunction=\"\",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(\"\"==b&&e())throw new TypeError(a+\" is not a valid value for easing\");return b}function l(a){if(\"linear\"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),{start:y,middle:z,end:A}[c[2]]);var d=B[a];return d?d:x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return G;var d=c.delay+a+c.endDelay;return b=Math.min(c.delay+a,d)?I:J}function p(a,b,c,d,e){switch(d){case H:return\"backwards\"==b||\"both\"==b?0:null;case J:return c-e;case I:return\"forwards\"==b||\"both\"==b?a:null;case G:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==H&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==I||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===I&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if(\"normal\"!==a&&\"reverse\"!==a){var e=b;\"alternate-reverse\"===a&&(e+=1),d=\"normal\",e!==1/0&&e%2!==0&&(d=\"reverse\")}return\"normal\"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v=\"backwards|forwards|both|none\".split(\"|\"),w=\"reverse|alternate|alternate-reverse\".split(\"|\"),x=function(a){return a};d.prototype={_setMember:function(b,c){this[\"_\"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember(\"delay\",a)},get delay(){return this._delay},set endDelay(a){this._setMember(\"endDelay\",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember(\"fill\",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterationStart must be a non-negative number, received: \"+timing.iterationStart);this._setMember(\"iterationStart\",a)},get iterationStart(){return this._iterationStart},set duration(a){if(\"auto\"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError(\"duration must be non-negative or auto, received: \"+a);this._setMember(\"duration\",a)},get duration(){return this._duration},set direction(a){this._setMember(\"direction\",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember(\"easing\",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\"iterations must be non-negative, received: \"+a);this._setMember(\"iterations\",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),\"ease-in\":i(.42,0,1,1),\"ease-out\":i(0,0,.58,1),\"ease-in-out\":i(.42,0,.58,1),\"step-start\":j(1,y),\"step-middle\":j(1,z),\"step-end\":j(1,A)},C=null,D=\"\\\\s*(-?\\\\d+\\\\.?\\\\d*|-?\\\\.\\\\d+)\\\\s*\",E=new RegExp(\"cubic-bezier\\\\(\"+D+\",\"+D+\",\"+D+\",\"+D+\"\\\\)\"),F=/steps\\(\\s*(\\d+)\\s*,\\s*(start|middle|end)\\s*\\)/,G=0,H=1,I=2,J=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(c,f),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return\"display\"===a||0===a.lastIndexOf(\"animation\",0)||0===a.lastIndexOf(\"transition\",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in[\"easing\",\"offset\",\"composite\"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e1)throw new TypeError(\"Keyframe offsets must be between 0 and 1.\")}}else if(\"composite\"==d){if(\"add\"==f||\"accumulate\"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\"NotSupportedError\",message:\"add compositing is not supported\"};if(\"replace\"!=f)throw new TypeError(\"Invalid composite mode \"+f+\".\")}else f=\"easing\"==d?a.normalizeEasing(f):\"\"+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing=\"linear\"),c}),g=!0,h=-(1/0),i=0;i=0&&a.offset<=1}),g||c(),d}var h={background:[\"backgroundImage\",\"backgroundPosition\",\"backgroundSize\",\"backgroundRepeat\",\"backgroundAttachment\",\"backgroundOrigin\",\"backgroundClip\",\"backgroundColor\"],border:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderBottom:[\"borderBottomWidth\",\"borderBottomStyle\",\"borderBottomColor\"],borderColor:[\"borderTopColor\",\"borderRightColor\",\"borderBottomColor\",\"borderLeftColor\"],borderLeft:[\"borderLeftWidth\",\"borderLeftStyle\",\"borderLeftColor\"],borderRadius:[\"borderTopLeftRadius\",\"borderTopRightRadius\",\"borderBottomRightRadius\",\"borderBottomLeftRadius\"],borderRight:[\"borderRightWidth\",\"borderRightStyle\",\"borderRightColor\"],borderTop:[\"borderTopWidth\",\"borderTopStyle\",\"borderTopColor\"],borderWidth:[\"borderTopWidth\",\"borderRightWidth\",\"borderBottomWidth\",\"borderLeftWidth\"],flex:[\"flexGrow\",\"flexShrink\",\"flexBasis\"],font:[\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontVariant\",\"fontWeight\",\"lineHeight\"],margin:[\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],padding:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"]},i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),j={thin:\"1px\",medium:\"3px\",thick:\"5px\"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{\"xx-small\":\"60%\",\"x-small\":\"75%\",small:\"89%\",medium:\"100%\",large:\"120%\",\"x-large\":\"150%\",\"xx-large\":\"200%\"},fontWeight:{normal:\"400\",bold:\"700\"},outlineWidth:j,textShadow:{none:\"0px 0px 0px transparent\"},boxShadow:{none:\"0px 0px 0px 0px transparent\"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?\"are\":\"is\",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g=a.applyFrom&&cthis._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(a,b){this._style[a]=b,this._isAnimatedProperty[a]=!0},_clear:function(a){this._style[a]=this._surrogateStyle[a],delete this._isAnimatedProperty[a]}};for(var i in g)d.prototype[i]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(i,i in h);for(var j in document.documentElement.style)j in f||j in g||!function(a){c(d.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(j);a.apply=function(b,c,d){e(b),b.style._set(a.propertyName(c),d)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(d,f),function(a){window.Element.prototype.animate=function(b,c){var d=\"\";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(d),function(a,b){function c(a,b,d){if(\"number\"==typeof a&&\"number\"==typeof b)return a*(1-d)+b*d;if(\"boolean\"==typeof a&&\"boolean\"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,\"paused\"!=this.playState&&\"idle\"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?\"idle\":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?\"pending\":this._paused?\"paused\":this._isFinished?\"finished\":\"running\"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException(\"Unable to rewind negative playback rate animation with infinite duration\",\"InvalidStateError\");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._isFinished=!0,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){\"function\"==typeof b&&\"finish\"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if(\"finish\"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();a.indexOf(this)===-1&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);b!==-1&&a.splice(b,1)}}}(c,d,f),function(a,b,c){function d(a){var b=j;j=[],a1e-4?(w=.5/Math.sqrt(y),x=[(s[2][1]-s[1][2])*w,(s[0][2]-s[2][0])*w,(s[1][0]-s[0][1])*w,.25/w]):s[0][0]>s[1][1]&&s[0][0]>s[2][2]?(w=2*Math.sqrt(1+s[0][0]-s[1][1]-s[2][2]),x=[.25*w,(s[0][1]+s[1][0])/w,(s[0][2]+s[2][0])/w,(s[2][1]-s[1][2])/w]):s[1][1]>s[2][2]?(w=2*Math.sqrt(1+s[1][1]-s[0][0]-s[2][2]),x=[(s[0][1]+s[1][0])/w,.25*w,(s[1][2]+s[2][1])/w,(s[0][2]-s[2][0])/w]):(w=2*Math.sqrt(1+s[2][2]-s[0][0]-s[1][1]),x=[(s[0][2]+s[2][0])/w,(s[1][2]+s[2][1])/w,.25*w,(s[1][0]-s[0][1])/w]),[r,t,u,x,n]}return j}();a.dot=c,a.makeMatrixDecomposition=h}(d,f),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\\s*/,\"\");var c=a(b);if(c)return[c[0],c[1].replace(/^\\s*/,\"\")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||\"\"==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;dd?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;e=1?b:\"visible\"}]}a.addPropertiesHandler(String,c,[\"visibility\"])}(d),function(a,b){function c(a){a=a.trim(),f.fillStyle=\"#000\",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle=\"#fff\",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),\"rgba(\"+b.join(\",\")+\")\"}]}var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=e.height=1;var f=e.getContext(\"2d\");a.addPropertiesHandler(c,d,[\"background-color\",\"border-bottom-color\",\"border-left-color\",\"border-right-color\",\"border-top-color\",\"color\",\"outline-color\",\"text-decoration-color\"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),\"0\"==b&&\"px\".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\\(/g,\"(\");var c={};b=b.replace(a,function(a){return c[a]=null,\"U\"+a});for(var d=\"U(\"+a.source+\")\",e=b.replace(/[-+]?(\\d*\\.)?\\d+/g,\"N\").replace(new RegExp(\"N\"+d,\"g\"),\"D\").replace(/\\s[+-]\\s/g,\"O\").replace(/\\s/g,\"\"),f=[/N\\*(D)/g,/(N|D)[*\\/]N/g,/(N|D)O\\1/g,/\\((N|D)\\)/g],g=0;g1?\"calc(\"+c+\")\":c}]}var f=\"px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc\",g=c.bind(null,new RegExp(f,\"g\")),h=c.bind(null,new RegExp(f+\"|%\",\"g\")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);if(b&&\"\"==b[1])return b[0]},n=a.mergeNestedRepeated.bind(void 0,d,\" \"),o=a.mergeNestedRepeated.bind(void 0,n,\",\");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,[\"background-size\"]),a.addPropertiesHandler(h,d,[\"border-bottom-width\",\"border-image-width\",\"border-left-width\",\"border-right-width\",\"border-top-width\",\"flex-basis\",\"font-size\",\"height\",\"line-height\",\"max-height\",\"max-width\",\"outline-width\",\"width\"]),a.addPropertiesHandler(h,e,[\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"bottom\",\"left\",\"letter-spacing\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"min-height\",\"min-width\",\"outline-offset\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"perspective\",\"right\",\"shape-margin\",\"text-indent\",\"top\",\"vertical-align\",\"word-spacing\"])}(d,f),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return\"auto\"==b||\"auto\"==c?[!0,!1,function(d){var e=d?b:c;if(\"auto\"==e)return\"auto\";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return\"rect(\"+a+\")\"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,\", \");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,[\"clip\"])}(d,f),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(b=b.toLowerCase().trim(),\"none\"==b)return[];for(var c,d=/\\s*(\\w+)\\(([^)]*)\\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(\",\"),j=h[0];if(j.length900||b%100!==0))return b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?\"normal\":700===b?\"bold\":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,[\"font-weight\"])}(d),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&\"\"==e[1]){var f=e[0];if(f[0]=f[0]||\"center\",f[1]=f[1]||\"center\",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return\"object\"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{\"%\":50},{\"%\":50}],i=0,j=!1,k=0;k=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue(\"opacity\"),f=\"0\"==e?\"1\":\"0\";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue(\"opacity\")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(c),b.true=a}({},function(){return this}());\n//# sourceMappingURL=web-animations.min.js.map" + +/***/ }), + +/***/ 905: +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(482); +__webpack_require__(483); +module.exports = __webpack_require__(486); + + +/***/ }) + +},[905]); +//# sourceMappingURL=scripts.bundle.map \ No newline at end of file diff --git a/src/ui/static/scripts.bundle.map b/src/ui/static/scripts.bundle.map new file mode 100644 index 000000000..2bc48d6d8 --- /dev/null +++ b/src/ui/static/scripts.bundle.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./~/script-loader/addScript.js","webpack:///./~/@webcomponents/custom-elements/custom-elements.min.js?2961","webpack:///./~/clarity-icons/clarity-icons.min.js?b90d","webpack:///./~/core-js/client/shim.min.js?18dd","webpack:///./~/mutationobserver-shim/dist/mutationobserver.min.js?7dbc","webpack:///./~/web-animations-js/web-animations.min.js?b751","webpack:///./~/@webcomponents/custom-elements/custom-elements.min.js","webpack:///./~/clarity-icons/clarity-icons.min.js","webpack:///./~/core-js/client/shim.min.js","webpack:///./~/mutationobserver-shim/dist/mutationobserver.min.js","webpack:///./~/web-animations-js/web-animations.min.js"],"names":[],"mappings":"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","file":"scripts.bundle.js","sourcesContent":["/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nmodule.exports = function(src) {\r\n\tif (typeof execScript !== \"undefined\")\r\n\t\texecScript(src);\r\n\telse\r\n\t\teval.call(null, src);\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader/addScript.js\n// module id = 135\n// module chunks = 1","require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/script-loader/addScript.js\")(require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/raw-loader/index.js!/Users/vmware/harbor-clarity/harbor-app/node_modules/@webcomponents/custom-elements/custom-elements.min.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader!./~/@webcomponents/custom-elements/custom-elements.min.js\n// module id = 482\n// module chunks = 1","require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/script-loader/addScript.js\")(require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/raw-loader/index.js!/Users/vmware/harbor-clarity/harbor-app/node_modules/clarity-icons/clarity-icons.min.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader!./~/clarity-icons/clarity-icons.min.js\n// module id = 483\n// module chunks = 1","require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/script-loader/addScript.js\")(require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/raw-loader/index.js!/Users/vmware/harbor-clarity/harbor-app/node_modules/core-js/client/shim.min.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader!./~/core-js/client/shim.min.js\n// module id = 484\n// module chunks = 1","require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/script-loader/addScript.js\")(require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/raw-loader/index.js!/Users/vmware/harbor-clarity/harbor-app/node_modules/mutationobserver-shim/dist/mutationobserver.min.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader!./~/mutationobserver-shim/dist/mutationobserver.min.js\n// module id = 485\n// module chunks = 1","require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/script-loader/addScript.js\")(require(\"!!/Users/vmware/harbor-clarity/harbor-app/node_modules/raw-loader/index.js!/Users/vmware/harbor-clarity/harbor-app/node_modules/web-animations-js/web-animations.min.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/script-loader!./~/web-animations-js/web-animations.min.js\n// module id = 486\n// module chunks = 1","module.exports = \"/*\\n\\n Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\\n This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\\n The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\\n The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\\n Code distributed by Google as part of the polymer project is also\\n subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\\n*/\\n'use strict';(function(){function c(){function a(){b.C=!0;b.b(f.childNodes)}var b=this;this.a=new Map;this.j=new Map;this.h=new Map;this.m=new Set;this.v=new MutationObserver(this.A.bind(this));this.f=null;this.B=new Set;this.enableFlush=!0;this.C=!1;this.G=this.c(f);window.HTMLImports?window.HTMLImports.whenReady(a):a()}function g(){return h.customElements}function k(a){if(!/^[a-z][.0-9_a-z]*-[\\\\-.0-9_a-z]*$/.test(a)||-1!==q.indexOf(a))return Error(\\\"The element name '\\\"+a+\\\"' is not valid.\\\")}function l(a,\\nb,d,e){var c=g();a=r.call(a,b,d);(b=c.a.get(b.toLowerCase()))&&c.D(a,b,e);c.c(a);return a}function m(a,b,d,e){b=b.toLowerCase();var c=a.getAttribute(b);e.call(a,b,d);1==a.__$CE_upgraded&&(e=g().a.get(a.localName),d=e.w,(e=e.i)&&0<=d.indexOf(b)&&(d=a.getAttribute(b),d!==c&&e.call(a,b,c,d,null)))}var f=document,h=window;if(g()&&(g().g=function(){},!g().forcePolyfill))return;var q=\\\"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph\\\".split(\\\" \\\");\\nc.prototype.K=function(a,b){function d(a){var b=g[a];if(void 0!==b&&\\\"function\\\"!==typeof b)throw Error(c+\\\" '\\\"+a+\\\"' is not a Function\\\");return b}if(\\\"function\\\"!==typeof b)throw new TypeError(\\\"constructor must be a Constructor\\\");var e=k(a);if(e)throw e;if(this.a.has(a))throw Error(\\\"An element with name '\\\"+a+\\\"' is already defined\\\");if(this.j.has(b))throw Error(\\\"Definition failed for '\\\"+a+\\\"': The constructor is already used.\\\");var c=a,g=b.prototype;if(\\\"object\\\"!==typeof g)throw new TypeError(\\\"Definition failed for '\\\"+\\na+\\\"': constructor.prototype must be an object\\\");var e=d(\\\"connectedCallback\\\"),h=d(\\\"disconnectedCallback\\\"),n=d(\\\"attributeChangedCallback\\\");this.a.set(c,{name:a,localName:c,constructor:b,o:e,s:h,i:n,w:n&&b.observedAttributes||[]});this.j.set(b,c);this.C&&this.b(f.childNodes);if(a=this.h.get(c))a.resolve(void 0),this.h.delete(c)};c.prototype.get=function(a){return(a=this.a.get(a))?a.constructor:void 0};c.prototype.L=function(a){var b=k(a);if(b)return Promise.reject(b);if(this.a.has(a))return Promise.resolve();\\nif(b=this.h.get(a))return b.M;var d,e=new Promise(function(a){d=a}),b={M:e,resolve:d};this.h.set(a,b);return e};c.prototype.g=function(){this.enableFlush&&(this.l(this.G.takeRecords()),this.A(this.v.takeRecords()),this.m.forEach(function(a){this.l(a.takeRecords())},this))};c.prototype.I=function(a){this.f=a};c.prototype.c=function(a){if(null!=a.__$CE_observer)return a.__$CE_observer;a.__$CE_observer=new MutationObserver(this.l.bind(this));a.__$CE_observer.observe(a,{childList:!0,subtree:!0});this.enableFlush&&\\nthis.m.add(a.__$CE_observer);return a.__$CE_observer};c.prototype.J=function(a){null!=a.__$CE_observer&&(a.__$CE_observer.disconnect(),this.enableFlush&&this.m.delete(a.__$CE_observer),a.__$CE_observer=null)};c.prototype.l=function(a){for(var b=0;bt;t++){var a=e.normalizedDeps[t],u=v[a];if(u&&!u.evaluated){var d=e.groupIndex+(u.declarative!=e.declarative);if(void 0===u.groupIndex||u.groupIndex=0;a--){for(var u=t[a],i=0;ia;a++){var d=t.importers[a];if(!d.locked)for(var i=0;ia;a++){var l,s=r.normalizedDeps[a],c=v[s],f=y[s];f?l=f.exports:c&&!c.declarative?l=c.esModule:c?(d(c),f=c.module,l=f.exports):l=p(s),f&&f.importers?(f.importers.push(t),t.dependencies.push(f)):t.dependencies.push(null),t.setters[a]&&t.setters[a](l)}}}function i(e){var r,t=v[e];if(t)t.declarative?f(e,[]):t.evaluated||l(t),r=t.module.exports;else if(r=p(e),!r)throw new Error(\\\"Unable to load dependency \\\"+e+\\\".\\\");return(!t||t.declarative)&&r&&r.__useDefault?r.default:r}function l(r){if(!r.module){var t={},n=r.module={exports:t,id:r.name};if(!r.executingRequire)for(var o=0,a=r.normalizedDeps.length;a>o;o++){var u=r.normalizedDeps[o],d=v[u];d&&l(d)}r.evaluated=!0;var c=r.execute.call(e,function(e){for(var t=0,n=r.deps.length;n>t;t++)if(r.deps[t]==e)return i(r.normalizedDeps[t]);throw new TypeError(\\\"Module \\\"+e+\\\" not declared as a dependency.\\\")},t,n);void 0!==typeof c&&(n.exports=c),t=n.exports,t&&t.__esModule?r.esModule=t:r.esModule=s(t)}}function s(r){var t={};if((\\\"object\\\"==typeof r||\\\"function\\\"==typeof r)&&r!==e)if(m)for(var n in r)\\\"default\\\"!==n&&c(t,r,n);else{var o=r&&r.hasOwnProperty;for(var n in r)\\\"default\\\"===n||o&&!r.hasOwnProperty(n)||(t[n]=r[n])}return t.default=r,x(t,\\\"__useDefault\\\",{value:!0}),t}function c(e,r,t){try{var n;(n=Object.getOwnPropertyDescriptor(r,t))&&x(e,t,n)}catch(o){return e[t]=r[t],!1}}function f(r,t){var n=v[r];if(n&&!n.evaluated&&n.declarative){t.push(r);for(var o=0,a=n.normalizedDeps.length;a>o;o++){var u=n.normalizedDeps[o];-1==g.call(t,u)&&(v[u]?f(u,t):p(u))}n.evaluated||(n.evaluated=!0,n.module.execute.call(e))}}function p(e){if(I[e])return I[e];if(\\\"@node/\\\"==e.substr(0,6))return I[e]=s(D(e.substr(6)));var r=v[e];if(!r)throw\\\"Module \\\"+e+\\\" not present.\\\";return a(e),f(e,[]),v[e]=void 0,r.declarative&&x(r.module.exports,\\\"__esModule\\\",{value:!0}),I[e]=r.declarative?r.module.exports:r.esModule}var v={},g=Array.prototype.indexOf||function(e){for(var r=0,t=this.length;t>r;r++)if(this[r]===e)return r;return-1},m=!0;try{Object.getOwnPropertyDescriptor({a:0},\\\"a\\\")}catch(h){m=!1}var x;!function(){try{Object.defineProperty({},\\\"a\\\",{})&&(x=Object.defineProperty)}catch(e){x=function(e,r,t){try{e[r]=t.value||t.get.call(e)}catch(n){}}}}();var y={},D=\\\"undefined\\\"!=typeof System&&System._nodeRequire||\\\"undefined\\\"!=typeof require&&require.resolve&&\\\"undefined\\\"!=typeof process&&require,I={\\\"@empty\\\":{}};return function(e,n,o,a){return function(u){u(function(u){for(var d={_nodeRequire:D,register:r,registerDynamic:t,get:p,set:function(e,r){I[e]=r},newModule:function(e){return e}},i=0;i1)for(var i=1;i\\\"))throw new Error(\\\"Template must be SVG markup!\\\");return!0},ClarityIconsApi.prototype.setIconTemplate=function(shapeName,shapeTemplate){var trimmedShapeTemplate=shapeTemplate.trim();this.validateName(shapeName)&&this.validateTemplate(trimmedShapeTemplate)&&(iconShapeSources[shapeName]&&delete iconShapeSources[shapeName],iconShapeSources[shapeName]=trimmedShapeTemplate)},ClarityIconsApi.prototype.setIconAliases=function(templates,shapeName,aliasNames){for(var _i=0,aliasNames_1=aliasNames;_i\\\\n home\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',get\\\"house\\\"(){return this.home},cog:'\\\\n \\\\n cog\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"settings\\\"(){return this.cog},check:'\\\\n \\\\n check\\\\n \\\\n \\\\n ',get\\\"success\\\"(){return this.check},times:'\\\\n \\\\n times\\\\n \\\\n \\\\n ',get\\\"close\\\"(){return this.times},\\\"exclamation-triangle\\\":'\\\\n \\\\n exclamation-triangle\\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',get\\\"warning\\\"(){return this[\\\"exclamation-triangle\\\"]},\\\"exclamation-circle\\\":'\\\\n \\\\n exclamation-circle\\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',get\\\"error\\\"(){return this[\\\"exclamation-circle\\\"]},\\\"check-circle\\\":'\\\\n \\\\n check-circle\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',\\\"info-circle\\\":'\\\\n \\\\n info-circle\\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n ',get\\\"info\\\"(){return this[\\\"info-circle\\\"]},search:'\\\\n \\\\n search\\\\n \\\\n \\\\n \\\\n ',bars:'\\\\n \\\\n bars\\\\n \\\\n \\\\n \\\\n \\\\n ',get\\\"menu\\\"(){return this.bars},user:'\\\\n \\\\n user\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',get\\\"avatar\\\"(){return this.user},angle:'\\\\n \\\\n angle\\\\n \\\\n \\\\n ',get\\\"caret\\\"(){return this.angle},folder:'\\\\n \\\\n folder\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"directory\\\"(){return this.folder},bell:'\\\\n \\\\n bell\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',\\nget\\\"notification\\\"(){return this.bell},image:'\\\\n \\\\n image \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',cloud:'\\\\n \\\\n cloud\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',\\\"ellipsis-vertical\\\":'\\\\n \\\\n ellipsis-vertical\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"ellipses-vertical\\\"(){return this[\\\"ellipsis-vertical\\\"]},\\\"ellipsis-horizontal\\\":'\\\\n \\\\n ellipsis-horizontal\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"ellipses-horizontal\\\"(){return this[\\\"ellipsis-horizontal\\\"]},\\\"vm-bug\\\":'\\\\n \\\\n vm-bug\\\\n \\\\n \\\\n \\\\n '});return exports.CoreShapes=coreShapes,module.exports}),$__System.registerDynamic(\\\"5\\\",[\\\"2\\\",\\\"3\\\",\\\"4\\\"],!0,function($__require,exports,module){\\\"use strict\\\";var clarity_icons_api_1=(this||self,$__require(\\\"2\\\")),clarity_icons_element_1=$__require(\\\"3\\\"),core_shapes_1=$__require(\\\"4\\\"),clarityIcons=clarity_icons_api_1.ClarityIconsApi.instance;return exports.ClarityIcons=clarityIcons,clarityIcons.add(core_shapes_1.CoreShapes),window.hasOwnProperty(\\\"ClarityIcons\\\")||(window.ClarityIcons=clarityIcons,customElements.define(\\\"clr-icon\\\",clarity_icons_element_1.ClarityIconElement)),module.exports}),$__System.registerDynamic(\\\"6\\\",[],!0,function($__require,exports,module){\\\"use strict\\\";this||self;return exports.essentialShapes={pencil:'\\\\n \\\\n pencil\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',get\\\"edit\\\"(){return this.pencil},refresh:'\\\\n \\\\n refresh\\\\n \\\\n \\\\n ',sync:'\\\\n \\\\n sync\\\\n \\\\n \\\\n \\\\n ',\\\"view-list\\\":'\\\\n \\\\n view-list\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"view-cards\\\":'\\\\n \\\\n view-cards\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"view-columns\\\":'\\\\n \\\\n view-columns\\\\n \\\\n \\\\n ',lightbulb:'\\\\n \\\\n lightbulb \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',download:'\\\\n \\\\n download\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',upload:'\\\\n \\\\n upload\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',lock:'\\\\n \\\\n lock\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',unlock:'\\\\n \\\\n unlock\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',users:'\\\\n \\\\n users\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\nget\\\"group\\\"(){return this.users},\\\"pop-out\\\":'\\\\n \\\\n pop-out\\\\n \\\\n \\\\n \\\\n ',filter:'\\\\n \\\\n filter\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n ',pin:'\\\\n \\\\n pin\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',camera:'\\\\n \\\\n camera \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"ellipsis-vertical\\\":'\\\\n \\\\n ellipsis-vertical\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"ellipses-vertical\\\"(){return this[\\\"ellipsis-vertical\\\"]},\\\"ellipsis-horizontal\\\":'\\\\n \\\\n ellipsis-horizontal\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"ellipses-horizontal\\\"(){return this[\\\"ellipsis-horizontal\\\"]},\\\"angle-double\\\":'\\\\n \\\\n angle-double\\\\n \\\\n \\\\n \\\\n ',get\\\"collapse\\\"(){return this[\\\"angle-double\\\"]},file:'\\\\n \\\\n file\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',get\\\"document\\\"(){return this.file},plus:'\\\\n \\\\n plus\\\\n \\\\n \\\\n ',get\\\"add\\\"(){return this.plus},ban:'\\\\n \\\\n ban\\\\n \\\\n \\\\n ',get\\\"cancel\\\"(){return this.ban},\\\"times-circle\\\":'\\\\n \\\\n times-circle\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',get\\\"remove\\\"(){return this[\\\"times-circle\\\"]},play:'\\\\n \\\\n play\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',pause:'\\\\n \\\\n pause\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',\\\"step-forward\\\":'\\\\n \\\\n step-forward\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',stop:'\\\\n \\\\n stop\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',power:'\\\\n \\\\n power\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',trash:'\\\\n \\\\n trash\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',\\\"plus-circle\\\":'\\\\n \\\\n plus-circle \\\\n \\\\n \\\\n \\\\n ',circle:'\\\\n \\\\n circle \\\\n \\\\n \\\\n ',tag:'\\\\n \\\\n tag \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',tags:'\\\\n \\\\n tags\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',history:'\\\\n \\\\n history \\\\n \\\\n \\\\n ',clock:'\\\\n \\\\n clock\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n\\\\n ',\\n\\\"alarm-clock\\\":'\\\\n \\\\n alarm-clock \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',arrow:'\\\\n \\\\n arrow \\\\n \\\\n ',\\\"circle-arrow\\\":'\\\\n \\\\n circle-arrow \\\\n \\\\n \\\\n \\\\n ',copy:'\\\\n \\\\n copy \\\\n \\\\n \\\\n \\\\n \\\\n ',eye:'\\\\n \\\\n eye-show \\\\n \\\\n \\\\n \\\\n \\\\n ',get\\\"eye-show\\\"(){return this.eye},\\\"eye-hide\\\":'\\\\n \\\\n eye-hide \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',help:'\\\\n \\\\n help \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',logout:'\\\\n \\\\n logout \\\\n \\\\n \\\\n \\\\n \\\\n ',bank:' \\\\n bank \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',shield:'\\\\n \\\\n shield \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"shield-check\\\":'\\\\n \\\\n shield-check \\\\n \\\\n \\\\n \\\\n ',\\\"shield-x\\\":'\\\\n \\\\n shield-x \\\\n \\\\n \\\\n \\\\n ',floppy:'\\\\n \\\\n floppy\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',import:'\\\\n \\\\n import \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',export:'\\\\n \\\\n export \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\n\\\"upload-cloud\\\":'\\\\n \\\\n upload-cloud \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"download-cloud\\\":'\\\\n \\\\n download-cloud \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',printer:'\\\\n \\\\n printer \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',world:'\\\\n \\\\n world \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',slider:'\\\\n \\\\n slider \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"happy-face\\\":'\\\\n \\\\n happy-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"neutral-face\\\":'\\\\n \\\\n neutral-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"sad-face\\\":'\\\\n \\\\n sad-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',clipboard:'\\\\n \\\\t\\\\t\\\\n clipboard\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',firewall:'\\\\n \\\\t\\\\t\\\\n firewall\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',list:'\\\\n \\\\t\\\\t\\\\n list\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',network:'\\\\n \\\\t\\\\t\\\\n network\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\nredo:'\\\\n \\\\t\\\\t\\\\n redo\\\\n \\\\n \\\\n ',router:'\\\\n \\\\t\\\\t\\\\n router\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',scroll:'\\\\n \\\\t\\\\t\\\\n scroll\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"file-settings\\\":'\\\\n \\\\t\\\\t\\\\n file-settings\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',switch:'\\\\n \\\\t\\\\t\\\\n switch\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',tools:'\\\\n \\\\t\\\\t\\\\n tools\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',undo:'\\\\n \\\\t\\\\t\\\\n undo\\\\n \\\\n \\\\n ',\\\"window-close\\\":'\\\\n \\\\t\\\\t\\\\n window-close\\\\n \\\\n \\\\n ',\\\"window-max\\\":'\\\\n \\\\t\\\\t\\\\n window-max\\\\n \\\\n \\\\n ',\\\"window-min\\\":'\\\\n \\\\t\\\\t\\\\n window-min\\\\n \\\\n \\\\n ',\\\"window-restore\\\":'\\\\n \\\\t\\\\t\\\\n window-restore\\\\n \\\\n \\\\n \\\\n ',\\\"zoom-in\\\":'\\\\n \\\\t\\\\t\\\\n zoom-in\\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"zoom-out\\\":'\\\\n \\\\t\\\\t\\\\n zoom-out\\\\n \\\\n \\\\n \\\\n \\\\n '},exports.EssentialShapes=exports.essentialShapes,\\\"undefined\\\"!=typeof window&&window.hasOwnProperty(\\\"ClarityIcons\\\")&&window.ClarityIcons.add(exports.essentialShapes),module.exports}),$__System.registerDynamic(\\\"7\\\",[],!0,function($__require,exports,module){\\\"use strict\\\";var socialShapes=(this||self,{\\\"map-marker\\\":'\\\\n \\\\n map-marker\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',get\\\"map\\\"(){return this[\\\"map-marker\\\"]},share:'\\\\n \\\\n share\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',star:'\\\\n \\\\n star\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',\\\"half-star\\\":'\\\\n \\\\n half-star\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',get\\\"favorite\\\"(){return this.star},bookmark:'\\\\n \\\\n bookmark\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n ',envelope:'\\\\n \\\\n envelope\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',\\nget\\\"email\\\"(){return this.envelope},calendar:'\\\\n \\\\n calendar\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',get\\\"date\\\"(){return this.calendar},event:'\\\\n \\\\n event\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',tasks:'\\\\n \\\\n tasks\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',flag:'\\\\n \\\\n flag\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',inbox:'\\\\n \\\\n inbox \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',heart:'\\\\n \\\\n heart \\\\n \\\\n \\\\n ',\\\"heart-broken\\\":'\\\\n \\\\n heart-broken \\\\n \\\\n \\\\n ',\\\"talk-bubbles\\\":'\\\\n \\\\n talk-bubbles \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',picture:'\\\\n \\\\n picture \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',camera:'\\\\n \\\\n camera \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"happy-face\\\":'\\\\n \\\\n happy-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"neutral-face\\\":'\\\\n \\\\n neutral-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"sad-face\\\":'\\\\n \\\\n sad-face \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n '});return exports.SocialShapes=socialShapes,\\\"undefined\\\"!=typeof window&&window.hasOwnProperty(\\\"ClarityIcons\\\")&&window.ClarityIcons.add(socialShapes),module.exports}),$__System.registerDynamic(\\\"8\\\",[],!0,function($__require,exports,module){\\n\\\"use strict\\\";var technologyShapes=(this||self,{\\\"line-chart\\\":'\\\\n \\\\n line chart\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',get\\\"analytics\\\"(){return this[\\\"line-chart\\\"]},dashboard:'\\\\n \\\\n dashboard\\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',host:'\\\\n \\\\n host\\\\n\\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n \\\\n ',get\\\"server\\\"(){return this.host},storage:'\\\\n \\\\n storage\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',\\\"bar-chart\\\":'\\\\n \\\\n bar-chart\\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n \\\\n ',cluster:'\\\\n \\\\n cluster \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',app:'\\\\n \\\\n app\\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',building:'\\\\n \\\\n building \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\ncpu:'\\\\n \\\\n cpu \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n\\\\n \\\\n ',memory:'\\\\n \\\\n memory \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"data-cluster\\\":'\\\\n \\\\n data-cluster \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"resource-pool\\\":'\\\\n \\\\n resource-pool \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',shield:'\\\\n \\\\n shield \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"shield-check\\\":'\\\\n \\\\n shield-check \\\\n \\\\n \\\\n \\\\n ',\\\"shield-x\\\":'\\\\n \\\\n shield-x \\\\n \\\\n \\\\n \\\\n ',import:'\\\\n \\\\n import \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',export:'\\\\n \\\\n export \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\\"upload-cloud\\\":'\\\\n \\\\n upload-cloud \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',\\n\\\"download-cloud\\\":'\\\\n \\\\n download-cloud \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',plugin:'\\\\n \\\\n plugin \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',floppy:'\\\\n \\\\n floppy\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n\\\\n \\\\n \\\\n\\\\n \\\\n \\\\n ',computer:'\\\\n \\\\n computer \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n ',display:'\\\\n \\\\n display \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n \\\\n '});return exports.TechnologyShapes=technologyShapes,\\\"undefined\\\"!=typeof window&&window.hasOwnProperty(\\\"ClarityIcons\\\")&&window.ClarityIcons.add(technologyShapes),module.exports}),$__System.registerDynamic(\\\"1\\\",[\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\"],!0,function($__require,exports,module){\\\"use strict\\\";var index_1=(this||self,$__require(\\\"5\\\"));exports.ClarityIcons=index_1.ClarityIcons;var essential_shapes_1=$__require(\\\"6\\\"),social_shapes_1=$__require(\\\"7\\\"),technology_shapes_1=$__require(\\\"8\\\");return index_1.ClarityIcons.add(essential_shapes_1.EssentialShapes),index_1.ClarityIcons.add(social_shapes_1.SocialShapes),index_1.ClarityIcons.add(technology_shapes_1.TechnologyShapes),module.exports})})(function(factory){\\\"function\\\"==typeof define&&define.amd?define([],factory):\\\"object\\\"==typeof module&&module.exports&&\\\"function\\\"==typeof require?module.exports=factory():factory()});\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/raw-loader!./~/clarity-icons/clarity-icons.min.js\n// module id = 799\n// module chunks = 1","module.exports = \"/**\\n * core-js 2.4.1\\n * https://github.com/zloirock/core-js\\n * License: http://rock.mit-license.org\\n * © 2016 Denis Pushkarev\\n */\\n!function(a,b,c){\\\"use strict\\\";!function(a){function __webpack_require__(c){if(b[c])return b[c].exports;var d=b[c]={exports:{},id:c,loaded:!1};return a[c].call(d.exports,d,d.exports,__webpack_require__),d.loaded=!0,d.exports}var b={};return __webpack_require__.m=a,__webpack_require__.c=b,__webpack_require__.p=\\\"\\\",__webpack_require__(0)}([function(a,b,c){c(1),c(50),c(51),c(52),c(54),c(55),c(58),c(59),c(60),c(61),c(62),c(63),c(64),c(65),c(66),c(68),c(70),c(72),c(74),c(77),c(78),c(79),c(83),c(86),c(87),c(88),c(89),c(91),c(92),c(93),c(94),c(95),c(97),c(99),c(100),c(101),c(103),c(104),c(105),c(107),c(108),c(109),c(111),c(112),c(113),c(114),c(115),c(116),c(117),c(118),c(119),c(120),c(121),c(122),c(123),c(124),c(126),c(130),c(131),c(132),c(133),c(137),c(139),c(140),c(141),c(142),c(143),c(144),c(145),c(146),c(147),c(148),c(149),c(150),c(151),c(152),c(158),c(159),c(161),c(162),c(163),c(167),c(168),c(169),c(170),c(171),c(173),c(174),c(175),c(176),c(179),c(181),c(182),c(183),c(185),c(187),c(189),c(190),c(191),c(193),c(194),c(195),c(196),c(203),c(206),c(207),c(209),c(210),c(211),c(212),c(213),c(214),c(215),c(216),c(217),c(218),c(219),c(220),c(222),c(223),c(224),c(225),c(226),c(227),c(228),c(229),c(231),c(234),c(235),c(237),c(238),c(239),c(240),c(241),c(242),c(243),c(244),c(245),c(246),c(247),c(249),c(250),c(251),c(252),c(253),c(254),c(255),c(256),c(258),c(259),c(261),c(262),c(263),c(264),c(267),c(268),c(269),c(270),c(271),c(272),c(273),c(274),c(276),c(277),c(278),c(279),c(280),c(281),c(282),c(283),c(284),c(285),c(286),c(287),a.exports=c(288)},function(a,b,d){var e=d(2),f=d(3),g=d(4),h=d(6),i=d(16),j=d(20).KEY,k=d(5),l=d(21),m=d(22),n=d(17),o=d(23),p=d(24),q=d(25),r=d(27),s=d(40),t=d(43),u=d(10),v=d(30),w=d(14),x=d(15),y=d(44),z=d(47),A=d(49),B=d(9),C=d(28),D=A.f,E=B.f,F=z.f,G=e.Symbol,H=e.JSON,I=H&&H.stringify,J=\\\"prototype\\\",K=o(\\\"_hidden\\\"),L=o(\\\"toPrimitive\\\"),M={}.propertyIsEnumerable,N=l(\\\"symbol-registry\\\"),O=l(\\\"symbols\\\"),P=l(\\\"op-symbols\\\"),Q=Object[J],R=\\\"function\\\"==typeof G,S=e.QObject,T=!S||!S[J]||!S[J].findChild,U=g&&k(function(){return 7!=y(E({},\\\"a\\\",{get:function(){return E(this,\\\"a\\\",{value:7}).a}})).a})?function(a,b,c){var d=D(Q,b);d&&delete Q[b],E(a,b,c),d&&a!==Q&&E(Q,b,d)}:E,V=function(a){var b=O[a]=y(G[J]);return b._k=a,b},W=R&&\\\"symbol\\\"==typeof G.iterator?function(a){return\\\"symbol\\\"==typeof a}:function(a){return a instanceof G},X=function defineProperty(a,b,c){return a===Q&&X(P,b,c),u(a),b=w(b,!0),u(c),f(O,b)?(c.enumerable?(f(a,K)&&a[K][b]&&(a[K][b]=!1),c=y(c,{enumerable:x(0,!1)})):(f(a,K)||E(a,K,x(1,{})),a[K][b]=!0),U(a,b,c)):E(a,b,c)},Y=function defineProperties(a,b){u(a);for(var c,d=s(b=v(b)),e=0,f=d.length;f>e;)X(a,c=d[e++],b[c]);return a},Z=function create(a,b){return b===c?y(a):Y(y(a),b)},$=function propertyIsEnumerable(a){var b=M.call(this,a=w(a,!0));return!(this===Q&&f(O,a)&&!f(P,a))&&(!(b||!f(this,a)||!f(O,a)||f(this,K)&&this[K][a])||b)},_=function getOwnPropertyDescriptor(a,b){if(a=v(a),b=w(b,!0),a!==Q||!f(O,b)||f(P,b)){var c=D(a,b);return!c||!f(O,b)||f(a,K)&&a[K][b]||(c.enumerable=!0),c}},aa=function getOwnPropertyNames(a){for(var b,c=F(v(a)),d=[],e=0;c.length>e;)f(O,b=c[e++])||b==K||b==j||d.push(b);return d},ba=function getOwnPropertySymbols(a){for(var b,c=a===Q,d=F(c?P:v(a)),e=[],g=0;d.length>g;)!f(O,b=d[g++])||c&&!f(Q,b)||e.push(O[b]);return e};R||(G=function Symbol(){if(this instanceof G)throw TypeError(\\\"Symbol is not a constructor!\\\");var a=n(arguments.length>0?arguments[0]:c),b=function(c){this===Q&&b.call(P,c),f(this,K)&&f(this[K],a)&&(this[K][a]=!1),U(this,a,x(1,c))};return g&&T&&U(Q,a,{configurable:!0,set:b}),V(a)},i(G[J],\\\"toString\\\",function toString(){return this._k}),A.f=_,B.f=X,d(48).f=z.f=aa,d(42).f=$,d(41).f=ba,g&&!d(26)&&i(Q,\\\"propertyIsEnumerable\\\",$,!0),p.f=function(a){return V(o(a))}),h(h.G+h.W+h.F*!R,{Symbol:G});for(var ca=\\\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\\\".split(\\\",\\\"),da=0;ca.length>da;)o(ca[da++]);for(var ca=C(o.store),da=0;ca.length>da;)q(ca[da++]);h(h.S+h.F*!R,\\\"Symbol\\\",{\\\"for\\\":function(a){return f(N,a+=\\\"\\\")?N[a]:N[a]=G(a)},keyFor:function keyFor(a){if(W(a))return r(N,a);throw TypeError(a+\\\" is not a symbol!\\\")},useSetter:function(){T=!0},useSimple:function(){T=!1}}),h(h.S+h.F*!R,\\\"Object\\\",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:_,getOwnPropertyNames:aa,getOwnPropertySymbols:ba}),H&&h(h.S+h.F*(!R||k(function(){var a=G();return\\\"[null]\\\"!=I([a])||\\\"{}\\\"!=I({a:a})||\\\"{}\\\"!=I(Object(a))})),\\\"JSON\\\",{stringify:function stringify(a){if(a!==c&&!W(a)){for(var b,d,e=[a],f=1;arguments.length>f;)e.push(arguments[f++]);return b=e[1],\\\"function\\\"==typeof b&&(d=b),!d&&t(b)||(b=function(a,b){if(d&&(b=d.call(this,a,b)),!W(b))return b}),e[1]=b,I.apply(H,e)}}}),G[J][L]||d(8)(G[J],L,G[J].valueOf),m(G,\\\"Symbol\\\"),m(Math,\\\"Math\\\",!0),m(e.JSON,\\\"JSON\\\",!0)},function(a,c){var d=a.exports=\\\"undefined\\\"!=typeof window&&window.Math==Math?window:\\\"undefined\\\"!=typeof self&&self.Math==Math?self:Function(\\\"return this\\\")();\\\"number\\\"==typeof b&&(b=d)},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b,c){a.exports=!c(5)(function(){return 7!=Object.defineProperty({},\\\"a\\\",{get:function(){return 7}}).a})},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b,d){var e=d(2),f=d(7),g=d(8),h=d(16),i=d(18),j=\\\"prototype\\\",k=function(a,b,d){var l,m,n,o,p=a&k.F,q=a&k.G,r=a&k.S,s=a&k.P,t=a&k.B,u=q?e:r?e[b]||(e[b]={}):(e[b]||{})[j],v=q?f:f[b]||(f[b]={}),w=v[j]||(v[j]={});q&&(d=b);for(l in d)m=!p&&u&&u[l]!==c,n=(m?u:d)[l],o=t&&m?i(n,e):s&&\\\"function\\\"==typeof n?i(Function.call,n):n,u&&h(u,l,n,a&k.U),v[l]!=n&&g(v,l,o),s&&w[l]!=n&&(w[l]=n)};e.core=f,k.F=1,k.G=2,k.S=4,k.P=8,k.B=16,k.W=32,k.U=64,k.R=128,a.exports=k},function(b,c){var d=b.exports={version:\\\"2.4.0\\\"};\\\"number\\\"==typeof a&&(a=d)},function(a,b,c){var d=c(9),e=c(15);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b,c){var d=c(10),e=c(12),f=c(14),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function defineProperty(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if(\\\"get\\\"in c||\\\"set\\\"in c)throw TypeError(\\\"Accessors not supported!\\\");return\\\"value\\\"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(11);a.exports=function(a){if(!d(a))throw TypeError(a+\\\" is not an object!\\\");return a}},function(a,b){a.exports=function(a){return\\\"object\\\"==typeof a?null!==a:\\\"function\\\"==typeof a}},function(a,b,c){a.exports=!c(4)&&!c(5)(function(){return 7!=Object.defineProperty(c(13)(\\\"div\\\"),\\\"a\\\",{get:function(){return 7}}).a})},function(a,b,c){var d=c(11),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b,c){var d=c(11);a.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&\\\"function\\\"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if(\\\"function\\\"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&\\\"function\\\"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError(\\\"Can't convert object to primitive value\\\")}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(2),e=c(8),f=c(3),g=c(17)(\\\"src\\\"),h=\\\"toString\\\",i=Function[h],j=(\\\"\\\"+i).split(h);c(7).inspectSource=function(a){return i.call(a)},(a.exports=function(a,b,c,h){var i=\\\"function\\\"==typeof c;i&&(f(c,\\\"name\\\")||e(c,\\\"name\\\",b)),a[b]!==c&&(i&&(f(c,g)||e(c,g,a[b]?\\\"\\\"+a[b]:j.join(String(b)))),a===d?a[b]=c:h?a[b]?a[b]=c:e(a,b,c):(delete a[b],e(a,b,c)))})(Function.prototype,h,function toString(){return\\\"function\\\"==typeof this&&this[g]||i.call(this)})},function(a,b){var d=0,e=Math.random();a.exports=function(a){return\\\"Symbol(\\\".concat(a===c?\\\"\\\":a,\\\")_\\\",(++d+e).toString(36))}},function(a,b,d){var e=d(19);a.exports=function(a,b,d){if(e(a),b===c)return a;switch(d){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if(\\\"function\\\"!=typeof a)throw TypeError(a+\\\" is not a function!\\\");return a}},function(a,b,c){var d=c(17)(\\\"meta\\\"),e=c(11),f=c(3),g=c(9).f,h=0,i=Object.isExtensible||function(){return!0},j=!c(5)(function(){return i(Object.preventExtensions({}))}),k=function(a){g(a,d,{value:{i:\\\"O\\\"+ ++h,w:{}}})},l=function(a,b){if(!e(a))return\\\"symbol\\\"==typeof a?a:(\\\"string\\\"==typeof a?\\\"S\\\":\\\"P\\\")+a;if(!f(a,d)){if(!i(a))return\\\"F\\\";if(!b)return\\\"E\\\";k(a)}return a[d].i},m=function(a,b){if(!f(a,d)){if(!i(a))return!0;if(!b)return!1;k(a)}return a[d].w},n=function(a){return j&&o.NEED&&i(a)&&!f(a,d)&&k(a),a},o=a.exports={KEY:d,NEED:!1,fastKey:l,getWeak:m,onFreeze:n}},function(a,b,c){var d=c(2),e=\\\"__core-js_shared__\\\",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d=c(9).f,e=c(3),f=c(23)(\\\"toStringTag\\\");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(21)(\\\"wks\\\"),e=c(17),f=c(2).Symbol,g=\\\"function\\\"==typeof f,h=a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)(\\\"Symbol.\\\"+a))};h.store=d},function(a,b,c){b.f=c(23)},function(a,b,c){var d=c(2),e=c(7),f=c(26),g=c(24),h=c(9).f;a.exports=function(a){var b=e.Symbol||(e.Symbol=f?{}:d.Symbol||{});\\\"_\\\"==a.charAt(0)||a in b||h(b,a,{value:g.f(a)})}},function(a,b){a.exports=!1},function(a,b,c){var d=c(28),e=c(30);a.exports=function(a,b){for(var c,f=e(a),g=d(f),h=g.length,i=0;h>i;)if(f[c=g[i++]]===b)return c}},function(a,b,c){var d=c(29),e=c(39);a.exports=Object.keys||function keys(a){return d(a,e)}},function(a,b,c){var d=c(3),e=c(30),f=c(34)(!1),g=c(38)(\\\"IE_PROTO\\\");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(31),e=c(33);a.exports=function(a){return d(e(a))}},function(a,b,c){var d=c(32);a.exports=Object(\\\"z\\\").propertyIsEnumerable(0)?Object:function(a){return\\\"String\\\"==d(a)?a.split(\\\"\\\"):Object(a)}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b){a.exports=function(a){if(a==c)throw TypeError(\\\"Can't call method on \\\"+a);return a}},function(a,b,c){var d=c(30),e=c(35),f=c(37);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if(h=i[k++],h!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(36),e=Math.min;a.exports=function(a){return a>0?e(d(a),9007199254740991):0}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a=+a)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(36),e=Math.max,f=Math.min;a.exports=function(a,b){return a=d(a),a<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(21)(\\\"keys\\\"),e=c(17);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){a.exports=\\\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\\\".split(\\\",\\\")},function(a,b,c){var d=c(28),e=c(41),f=c(42);a.exports=function(a){var b=d(a),c=e.f;if(c)for(var g,h=c(a),i=f.f,j=0;h.length>j;)i.call(a,g=h[j++])&&b.push(g);return b}},function(a,b){b.f=Object.getOwnPropertySymbols},function(a,b){b.f={}.propertyIsEnumerable},function(a,b,c){var d=c(32);a.exports=Array.isArray||function isArray(a){return\\\"Array\\\"==d(a)}},function(a,b,d){var e=d(10),f=d(45),g=d(39),h=d(38)(\\\"IE_PROTO\\\"),i=function(){},j=\\\"prototype\\\",k=function(){var a,b=d(13)(\\\"iframe\\\"),c=g.length,e=\\\"<\\\",f=\\\">\\\";for(b.style.display=\\\"none\\\",d(46).appendChild(b),b.src=\\\"javascript:\\\",a=b.contentWindow.document,a.open(),a.write(e+\\\"script\\\"+f+\\\"document.F=Object\\\"+e+\\\"/script\\\"+f),a.close(),k=a.F;c--;)delete k[j][g[c]];return k()};a.exports=Object.create||function create(a,b){var d;return null!==a?(i[j]=e(a),d=new i,i[j]=null,d[h]=a):d=k(),b===c?d:f(d,b)}},function(a,b,c){var d=c(9),e=c(10),f=c(28);a.exports=c(4)?Object.defineProperties:function defineProperties(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){var d=c(30),e=c(48).f,f={}.toString,g=\\\"object\\\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],h=function(a){try{return e(a)}catch(b){return g.slice()}};a.exports.f=function getOwnPropertyNames(a){return g&&\\\"[object Window]\\\"==f.call(a)?h(a):e(d(a))}},function(a,b,c){var d=c(29),e=c(39).concat(\\\"length\\\",\\\"prototype\\\");b.f=Object.getOwnPropertyNames||function getOwnPropertyNames(a){return d(a,e)}},function(a,b,c){var d=c(42),e=c(15),f=c(30),g=c(14),h=c(3),i=c(12),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function getOwnPropertyDescriptor(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(c){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),\\\"Object\\\",{defineProperty:c(9).f})},function(a,b,c){var d=c(6);d(d.S+d.F*!c(4),\\\"Object\\\",{defineProperties:c(45)})},function(a,b,c){var d=c(30),e=c(49).f;c(53)(\\\"getOwnPropertyDescriptor\\\",function(){return function getOwnPropertyDescriptor(a,b){return e(d(a),b)}})},function(a,b,c){var d=c(6),e=c(7),f=c(5);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),\\\"Object\\\",g)}},function(a,b,c){var d=c(6);d(d.S,\\\"Object\\\",{create:c(44)})},function(a,b,c){var d=c(56),e=c(57);c(53)(\\\"getPrototypeOf\\\",function(){return function getPrototypeOf(a){return e(d(a))}})},function(a,b,c){var d=c(33);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(3),e=c(56),f=c(38)(\\\"IE_PROTO\\\"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return a=e(a),d(a,f)?a[f]:\\\"function\\\"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(56),e=c(28);c(53)(\\\"keys\\\",function(){return function keys(a){return e(d(a))}})},function(a,b,c){c(53)(\\\"getOwnPropertyNames\\\",function(){return c(47).f})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\\\"freeze\\\",function(a){return function freeze(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\\\"seal\\\",function(a){return function seal(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11),e=c(20).onFreeze;c(53)(\\\"preventExtensions\\\",function(a){return function preventExtensions(b){return a&&d(b)?a(e(b)):b}})},function(a,b,c){var d=c(11);c(53)(\\\"isFrozen\\\",function(a){return function isFrozen(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)(\\\"isSealed\\\",function(a){return function isSealed(b){return!d(b)||!!a&&a(b)}})},function(a,b,c){var d=c(11);c(53)(\\\"isExtensible\\\",function(a){return function isExtensible(b){return!!d(b)&&(!a||a(b))}})},function(a,b,c){var d=c(6);d(d.S+d.F,\\\"Object\\\",{assign:c(67)})},function(a,b,c){var d=c(28),e=c(41),f=c(42),g=c(56),h=c(31),i=Object.assign;a.exports=!i||c(5)(function(){var a={},b={},c=Symbol(),d=\\\"abcdefghijklmnopqrst\\\";return a[c]=7,d.split(\\\"\\\").forEach(function(a){b[a]=a}),7!=i({},a)[c]||Object.keys(i({},b)).join(\\\"\\\")!=d})?function assign(a,b){for(var c=g(a),i=arguments.length,j=1,k=e.f,l=f.f;i>j;)for(var m,n=h(arguments[j++]),o=k?d(n).concat(k(n)):d(n),p=o.length,q=0;p>q;)l.call(n,m=o[q++])&&(c[m]=n[m]);return c}:i},function(a,b,c){var d=c(6);d(d.S,\\\"Object\\\",{is:c(69)})},function(a,b){a.exports=Object.is||function is(a,b){return a===b?0!==a||1/a===1/b:a!=a&&b!=b}},function(a,b,c){var d=c(6);d(d.S,\\\"Object\\\",{setPrototypeOf:c(71).set})},function(a,b,d){var e=d(11),f=d(10),g=function(a,b){if(f(a),!e(b)&&null!==b)throw TypeError(b+\\\": can't set as prototype!\\\")};a.exports={set:Object.setPrototypeOf||(\\\"__proto__\\\"in{}?function(a,b,c){try{c=d(18)(Function.call,d(49).f(Object.prototype,\\\"__proto__\\\").set,2),c(a,[]),b=!(a instanceof Array)}catch(e){b=!0}return function setPrototypeOf(a,d){return g(a,d),b?a.__proto__=d:c(a,d),a}}({},!1):c),check:g}},function(a,b,c){var d=c(73),e={};e[c(23)(\\\"toStringTag\\\")]=\\\"z\\\",e+\\\"\\\"!=\\\"[object z]\\\"&&c(16)(Object.prototype,\\\"toString\\\",function toString(){return\\\"[object \\\"+d(this)+\\\"]\\\"},!0)},function(a,b,d){var e=d(32),f=d(23)(\\\"toStringTag\\\"),g=\\\"Arguments\\\"==e(function(){return arguments}()),h=function(a,b){try{return a[b]}catch(c){}};a.exports=function(a){var b,d,i;return a===c?\\\"Undefined\\\":null===a?\\\"Null\\\":\\\"string\\\"==typeof(d=h(b=Object(a),f))?d:g?e(b):\\\"Object\\\"==(i=e(b))&&\\\"function\\\"==typeof b.callee?\\\"Arguments\\\":i}},function(a,b,c){var d=c(6);d(d.P,\\\"Function\\\",{bind:c(75)})},function(a,b,c){var d=c(19),e=c(11),f=c(76),g=[].slice,h={},i=function(a,b,c){if(!(b in h)){for(var d=[],e=0;e2){b=s?b.trim():m(b,3);var c,d,e,f=b.charCodeAt(0);if(43===f||45===f){if(c=b.charCodeAt(2),88===c||120===c)return NaN}else if(48===f){switch(b.charCodeAt(1)){case 66:case 98:d=2,e=49;break;case 79:case 111:d=8,e=55;break;default:return+b}for(var g,i=b.slice(2),j=0,k=i.length;je)return NaN;return parseInt(i,d)}}return+b};if(!o(\\\" 0o1\\\")||!o(\\\"0b1\\\")||o(\\\"+0x1\\\")){o=function Number(a){var b=arguments.length<1?0:a,c=this;return c instanceof o&&(r?i(function(){q.valueOf.call(c)}):f(c)!=n)?g(new p(t(b)),c,o):t(b)};for(var u,v=c(4)?j(p):\\\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\\\".split(\\\",\\\"),w=0;v.length>w;w++)e(p,u=v[w])&&!e(o,u)&&l(o,u,k(p,u));o.prototype=q,q.constructor=o,c(16)(d,n,o)}},function(a,b,c){var d=c(11),e=c(71).set;a.exports=function(a,b,c){var f,g=b.constructor;return g!==c&&\\\"function\\\"==typeof g&&(f=g.prototype)!==c.prototype&&d(f)&&e&&e(a,f),a}},function(a,b,c){var d=c(6),e=c(33),f=c(5),g=c(82),h=\\\"[\\\"+g+\\\"]\\\",i=\\\"​…\\\",j=RegExp(\\\"^\\\"+h+h+\\\"*\\\"),k=RegExp(h+h+\\\"*$\\\"),l=function(a,b,c){var e={},h=f(function(){return!!g[a]()||i[a]()!=i}),j=e[a]=h?b(m):g[a];c&&(e[c]=j),d(d.P+d.F*h,\\\"String\\\",e)},m=l.trim=function(a,b){return a=String(e(a)),1&b&&(a=a.replace(j,\\\"\\\")),2&b&&(a=a.replace(k,\\\"\\\")),a};a.exports=l},function(a,b){a.exports=\\\"\\\\t\\\\n\\\\x0B\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\\ufeff\\\"},function(a,b,c){var d=c(6),e=c(36),f=c(84),g=c(85),h=1..toFixed,i=Math.floor,j=[0,0,0,0,0,0],k=\\\"Number.toFixed: incorrect invocation!\\\",l=\\\"0\\\",m=function(a,b){for(var c=-1,d=b;++c<6;)d+=a*j[c],j[c]=d%1e7,d=i(d/1e7)},n=function(a){for(var b=6,c=0;--b>=0;)c+=j[b],j[b]=i(c/a),c=c%a*1e7},o=function(){for(var a=6,b=\\\"\\\";--a>=0;)if(\\\"\\\"!==b||0===a||0!==j[a]){var c=String(j[a]);b=\\\"\\\"===b?c:b+g.call(l,7-c.length)+c}return b},p=function(a,b,c){return 0===b?c:b%2===1?p(a,b-1,c*a):p(a*a,b/2,c)},q=function(a){for(var b=0,c=a;c>=4096;)b+=12,c/=4096;for(;c>=2;)b+=1,c/=2;return b};d(d.P+d.F*(!!h&&(\\\"0.000\\\"!==8e-5.toFixed(3)||\\\"1\\\"!==.9.toFixed(0)||\\\"1.25\\\"!==1.255.toFixed(2)||\\\"1000000000000000128\\\"!==(0xde0b6b3a7640080).toFixed(0))||!c(5)(function(){h.call({})})),\\\"Number\\\",{toFixed:function toFixed(a){var b,c,d,h,i=f(this,k),j=e(a),r=\\\"\\\",s=l;if(j<0||j>20)throw RangeError(k);if(i!=i)return\\\"NaN\\\";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(r=\\\"-\\\",i=-i),i>1e-21)if(b=q(i*p(2,69,1))-69,c=b<0?i*p(2,-b,1):i/p(2,b,1),c*=4503599627370496,b=52-b,b>0){for(m(0,c),d=j;d>=7;)m(1e7,0),d-=7;for(m(p(10,d,1),0),d=b-1;d>=23;)n(1<<23),d-=23;n(1<0?(h=s.length,s=r+(h<=j?\\\"0.\\\"+g.call(l,j-h)+s:s.slice(0,h-j)+\\\".\\\"+s.slice(h-j))):s=r+s,s}})},function(a,b,c){var d=c(32);a.exports=function(a,b){if(\\\"number\\\"!=typeof a&&\\\"Number\\\"!=d(a))throw TypeError(b);return+a}},function(a,b,c){var d=c(36),e=c(33);a.exports=function repeat(a){var b=String(e(this)),c=\\\"\\\",f=d(a);if(f<0||f==1/0)throw RangeError(\\\"Count can't be negative\\\");for(;f>0;(f>>>=1)&&(b+=b))1&f&&(c+=b);return c}},function(a,b,d){var e=d(6),f=d(5),g=d(84),h=1..toPrecision;e(e.P+e.F*(f(function(){return\\\"1\\\"!==h.call(1,c)})||!f(function(){h.call({})})),\\\"Number\\\",{toPrecision:function toPrecision(a){var b=g(this,\\\"Number#toPrecision: incorrect invocation!\\\");return a===c?h.call(b):h.call(b,a)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Number\\\",{EPSILON:Math.pow(2,-52)})},function(a,b,c){var d=c(6),e=c(2).isFinite;d(d.S,\\\"Number\\\",{isFinite:function isFinite(a){return\\\"number\\\"==typeof a&&e(a)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Number\\\",{isInteger:c(90)})},function(a,b,c){var d=c(11),e=Math.floor;a.exports=function isInteger(a){return!d(a)&&isFinite(a)&&e(a)===a}},function(a,b,c){var d=c(6);d(d.S,\\\"Number\\\",{isNaN:function isNaN(a){return a!=a}})},function(a,b,c){var d=c(6),e=c(90),f=Math.abs;d(d.S,\\\"Number\\\",{isSafeInteger:function isSafeInteger(a){return e(a)&&f(a)<=9007199254740991}})},function(a,b,c){var d=c(6);d(d.S,\\\"Number\\\",{MAX_SAFE_INTEGER:9007199254740991})},function(a,b,c){var d=c(6);d(d.S,\\\"Number\\\",{MIN_SAFE_INTEGER:-9007199254740991})},function(a,b,c){var d=c(6),e=c(96);d(d.S+d.F*(Number.parseFloat!=e),\\\"Number\\\",{parseFloat:e})},function(a,b,c){var d=c(2).parseFloat,e=c(81).trim;a.exports=1/d(c(82)+\\\"-0\\\")!==-(1/0)?function parseFloat(a){var b=e(String(a),3),c=d(b);return 0===c&&\\\"-\\\"==b.charAt(0)?-0:c}:d},function(a,b,c){var d=c(6),e=c(98);d(d.S+d.F*(Number.parseInt!=e),\\\"Number\\\",{parseInt:e})},function(a,b,c){var d=c(2).parseInt,e=c(81).trim,f=c(82),g=/^[\\\\-+]?0[xX]/;a.exports=8!==d(f+\\\"08\\\")||22!==d(f+\\\"0x16\\\")?function parseInt(a,b){var c=e(String(a),3);return d(c,b>>>0||(g.test(c)?16:10))}:d},function(a,b,c){var d=c(6),e=c(98);d(d.G+d.F*(parseInt!=e),{parseInt:e})},function(a,b,c){var d=c(6),e=c(96);d(d.G+d.F*(parseFloat!=e),{parseFloat:e})},function(a,b,c){var d=c(6),e=c(102),f=Math.sqrt,g=Math.acosh;d(d.S+d.F*!(g&&710==Math.floor(g(Number.MAX_VALUE))&&g(1/0)==1/0),\\\"Math\\\",{acosh:function acosh(a){return(a=+a)<1?NaN:a>94906265.62425156?Math.log(a)+Math.LN2:e(a-1+f(a-1)*f(a+1))}})},function(a,b){a.exports=Math.log1p||function log1p(a){return(a=+a)>-1e-8&&a<1e-8?a-a*a/2:Math.log(1+a)}},function(a,b,c){function asinh(a){return isFinite(a=+a)&&0!=a?a<0?-asinh(-a):Math.log(a+Math.sqrt(a*a+1)):a}var d=c(6),e=Math.asinh;d(d.S+d.F*!(e&&1/e(0)>0),\\\"Math\\\",{asinh:asinh})},function(a,b,c){var d=c(6),e=Math.atanh;d(d.S+d.F*!(e&&1/e(-0)<0),\\\"Math\\\",{atanh:function atanh(a){return 0==(a=+a)?a:Math.log((1+a)/(1-a))/2}})},function(a,b,c){var d=c(6),e=c(106);d(d.S,\\\"Math\\\",{cbrt:function cbrt(a){return e(a=+a)*Math.pow(Math.abs(a),1/3)}})},function(a,b){a.exports=Math.sign||function sign(a){return 0==(a=+a)||a!=a?a:a<0?-1:1}},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{clz32:function clz32(a){return(a>>>=0)?31-Math.floor(Math.log(a+.5)*Math.LOG2E):32}})},function(a,b,c){var d=c(6),e=Math.exp;d(d.S,\\\"Math\\\",{cosh:function cosh(a){return(e(a=+a)+e(-a))/2}})},function(a,b,c){var d=c(6),e=c(110);d(d.S+d.F*(e!=Math.expm1),\\\"Math\\\",{expm1:e})},function(a,b){var c=Math.expm1;a.exports=!c||c(10)>22025.465794806718||c(10)<22025.465794806718||c(-2e-17)!=-2e-17?function expm1(a){return 0==(a=+a)?a:a>-1e-6&&a<1e-6?a+a*a/2:Math.exp(a)-1}:c},function(a,b,c){var d=c(6),e=c(106),f=Math.pow,g=f(2,-52),h=f(2,-23),i=f(2,127)*(2-h),j=f(2,-126),k=function(a){return a+1/g-1/g};d(d.S,\\\"Math\\\",{fround:function fround(a){var b,c,d=Math.abs(a),f=e(a);return di||c!=c?f*(1/0):f*c)}})},function(a,b,c){var d=c(6),e=Math.abs;d(d.S,\\\"Math\\\",{hypot:function hypot(a,b){for(var c,d,f=0,g=0,h=arguments.length,i=0;g0?(d=c/i,f+=d*d):f+=c;return i===1/0?1/0:i*Math.sqrt(f)}})},function(a,b,c){var d=c(6),e=Math.imul;d(d.S+d.F*c(5)(function(){return e(4294967295,5)!=-5||2!=e.length}),\\\"Math\\\",{imul:function imul(a,b){var c=65535,d=+a,e=+b,f=c&d,g=c&e;return 0|f*g+((c&d>>>16)*g+f*(c&e>>>16)<<16>>>0)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{log10:function log10(a){return Math.log(a)/Math.LN10}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{log1p:c(102)})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{log2:function log2(a){return Math.log(a)/Math.LN2}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{sign:c(106)})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S+d.F*c(5)(function(){return!Math.sinh(-2e-17)!=-2e-17}),\\\"Math\\\",{sinh:function sinh(a){return Math.abs(a=+a)<1?(e(a)-e(-a))/2:(f(a-1)-f(-a-1))*(Math.E/2)}})},function(a,b,c){var d=c(6),e=c(110),f=Math.exp;d(d.S,\\\"Math\\\",{tanh:function tanh(a){var b=e(a=+a),c=e(-a);return b==1/0?1:c==1/0?-1:(b-c)/(f(a)+f(-a))}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{trunc:function trunc(a){return(a>0?Math.floor:Math.ceil)(a)}})},function(a,b,c){var d=c(6),e=c(37),f=String.fromCharCode,g=String.fromCodePoint;d(d.S+d.F*(!!g&&1!=g.length),\\\"String\\\",{fromCodePoint:function fromCodePoint(a){for(var b,c=[],d=arguments.length,g=0;d>g;){if(b=+arguments[g++],e(b,1114111)!==b)throw RangeError(b+\\\" is not a valid code point\\\");c.push(b<65536?f(b):f(((b-=65536)>>10)+55296,b%1024+56320))}return c.join(\\\"\\\")}})},function(a,b,c){var d=c(6),e=c(30),f=c(35);d(d.S,\\\"String\\\",{raw:function raw(a){for(var b=e(a.raw),c=f(b.length),d=arguments.length,g=[],h=0;c>h;)g.push(String(b[h++])),h=k?a?\\\"\\\":c:(g=i.charCodeAt(j),g<55296||g>56319||j+1===k||(h=i.charCodeAt(j+1))<56320||h>57343?a?i.charAt(j):g:a?i.slice(j,j+2):(g-55296<<10)+(h-56320)+65536)}}},function(a,b,d){var e=d(6),f=d(35),g=d(127),h=\\\"endsWith\\\",i=\\\"\\\"[h];e(e.P+e.F*d(129)(h),\\\"String\\\",{endsWith:function endsWith(a){var b=g(this,a,h),d=arguments.length>1?arguments[1]:c,e=f(b.length),j=d===c?e:Math.min(f(d),e),k=String(a);return i?i.call(b,k,j):b.slice(j-k.length,j)===k}})},function(a,b,c){var d=c(128),e=c(33);a.exports=function(a,b,c){if(d(b))throw TypeError(\\\"String#\\\"+c+\\\" doesn't accept regex!\\\");return String(e(a))}},function(a,b,d){var e=d(11),f=d(32),g=d(23)(\\\"match\\\");a.exports=function(a){var b;return e(a)&&((b=a[g])!==c?!!b:\\\"RegExp\\\"==f(a))}},function(a,b,c){var d=c(23)(\\\"match\\\");a.exports=function(a){var b=/./;try{\\\"/./\\\"[a](b)}catch(c){try{return b[d]=!1,!\\\"/./\\\"[a](b)}catch(e){}}return!0}},function(a,b,d){var e=d(6),f=d(127),g=\\\"includes\\\";e(e.P+e.F*d(129)(g),\\\"String\\\",{includes:function includes(a){return!!~f(this,a,g).indexOf(a,arguments.length>1?arguments[1]:c)}})},function(a,b,c){var d=c(6);d(d.P,\\\"String\\\",{repeat:c(85)})},function(a,b,d){var e=d(6),f=d(35),g=d(127),h=\\\"startsWith\\\",i=\\\"\\\"[h];e(e.P+e.F*d(129)(h),\\\"String\\\",{startsWith:function startsWith(a){var b=g(this,a,h),d=f(Math.min(arguments.length>1?arguments[1]:c,b.length)),e=String(a);return i?i.call(b,e,d):b.slice(d,d+e.length)===e}})},function(a,b,d){var e=d(125)(!0);d(134)(String,\\\"String\\\",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,d=this._i;return d>=b.length?{value:c,done:!0}:(a=e(b,d),this._i+=a.length,{value:a,done:!1})})},function(a,b,d){var e=d(26),f=d(6),g=d(16),h=d(8),i=d(3),j=d(135),k=d(136),l=d(22),m=d(57),n=d(23)(\\\"iterator\\\"),o=!([].keys&&\\\"next\\\"in[].keys()),p=\\\"@@iterator\\\",q=\\\"keys\\\",r=\\\"values\\\",s=function(){return this};a.exports=function(a,b,d,t,u,v,w){k(d,b,t);var x,y,z,A=function(a){if(!o&&a in E)return E[a];switch(a){case q:return function keys(){return new d(this,a)};case r:return function values(){return new d(this,a)}}return function entries(){return new d(this,a)}},B=b+\\\" Iterator\\\",C=u==r,D=!1,E=a.prototype,F=E[n]||E[p]||u&&E[u],G=F||A(u),H=u?C?A(\\\"entries\\\"):G:c,I=\\\"Array\\\"==b?E.entries||F:F;if(I&&(z=m(I.call(new a)),z!==Object.prototype&&(l(z,B,!0),e||i(z,n)||h(z,n,s))),C&&F&&F.name!==r&&(D=!0,G=function values(){return F.call(this)}),e&&!w||!o&&!D&&E[n]||h(E,n,G),j[b]=G,j[B]=s,u)if(x={values:C?G:A(r),keys:v?G:A(q),entries:H},w)for(y in x)y in E||g(E,y,x[y]);else f(f.P+f.F*(o||D),b,x);return x}},function(a,b){a.exports={}},function(a,b,c){var d=c(44),e=c(15),f=c(22),g={};c(8)(g,c(23)(\\\"iterator\\\"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+\\\" Iterator\\\")}},function(a,b,c){c(138)(\\\"anchor\\\",function(a){return function anchor(b){return a(this,\\\"a\\\",\\\"name\\\",b)}})},function(a,b,c){var d=c(6),e=c(5),f=c(33),g=/\\\"/g,h=function(a,b,c,d){var e=String(f(a)),h=\\\"<\\\"+b;return\\\"\\\"!==c&&(h+=\\\" \\\"+c+'=\\\"'+String(d).replace(g,\\\""\\\")+'\\\"'),h+\\\">\\\"+e+\\\"\\\"};a.exports=function(a,b){var c={};c[a]=b(h),d(d.P+d.F*e(function(){var b=\\\"\\\"[a]('\\\"');return b!==b.toLowerCase()||b.split('\\\"').length>3}),\\\"String\\\",c)}},function(a,b,c){c(138)(\\\"big\\\",function(a){return function big(){return a(this,\\\"big\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"blink\\\",function(a){return function blink(){return a(this,\\\"blink\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"bold\\\",function(a){return function bold(){return a(this,\\\"b\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"fixed\\\",function(a){return function fixed(){return a(this,\\\"tt\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"fontcolor\\\",function(a){return function fontcolor(b){return a(this,\\\"font\\\",\\\"color\\\",b)}})},function(a,b,c){c(138)(\\\"fontsize\\\",function(a){return function fontsize(b){return a(this,\\\"font\\\",\\\"size\\\",b)}})},function(a,b,c){c(138)(\\\"italics\\\",function(a){return function italics(){return a(this,\\\"i\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"link\\\",function(a){return function link(b){return a(this,\\\"a\\\",\\\"href\\\",b)}})},function(a,b,c){c(138)(\\\"small\\\",function(a){return function small(){return a(this,\\\"small\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"strike\\\",function(a){return function strike(){return a(this,\\\"strike\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"sub\\\",function(a){return function sub(){return a(this,\\\"sub\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){c(138)(\\\"sup\\\",function(a){return function sup(){return a(this,\\\"sup\\\",\\\"\\\",\\\"\\\")}})},function(a,b,c){var d=c(6);d(d.S,\\\"Array\\\",{isArray:c(43)})},function(a,b,d){var e=d(18),f=d(6),g=d(56),h=d(153),i=d(154),j=d(35),k=d(155),l=d(156);f(f.S+f.F*!d(157)(function(a){Array.from(a)}),\\\"Array\\\",{from:function from(a){var b,d,f,m,n=g(a),o=\\\"function\\\"==typeof this?this:Array,p=arguments.length,q=p>1?arguments[1]:c,r=q!==c,s=0,t=l(n);if(r&&(q=e(q,p>2?arguments[2]:c,2)),t==c||o==Array&&i(t))for(b=j(n.length),d=new o(b);b>s;s++)k(d,s,r?q(n[s],s):n[s]);else for(m=t.call(n),d=new o;!(f=m.next()).done;s++)k(d,s,r?h(m,q,[f.value,s],!0):f.value);return d.length=s,d}})},function(a,b,d){var e=d(10);a.exports=function(a,b,d,f){try{return f?b(e(d)[0],d[1]):b(d)}catch(g){var h=a[\\\"return\\\"];throw h!==c&&e(h.call(a)),g}}},function(a,b,d){var e=d(135),f=d(23)(\\\"iterator\\\"),g=Array.prototype;a.exports=function(a){return a!==c&&(e.Array===a||g[f]===a)}},function(a,b,c){var d=c(9),e=c(15);a.exports=function(a,b,c){b in a?d.f(a,b,e(0,c)):a[b]=c}},function(a,b,d){var e=d(73),f=d(23)(\\\"iterator\\\"),g=d(135);a.exports=d(7).getIteratorMethod=function(a){if(a!=c)return a[f]||a[\\\"@@iterator\\\"]||g[e(a)]}},function(a,b,c){var d=c(23)(\\\"iterator\\\"),e=!1;\\ntry{var f=[7][d]();f[\\\"return\\\"]=function(){e=!0},Array.from(f,function(){throw 2})}catch(g){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(h){}return c}},function(a,b,c){var d=c(6),e=c(155);d(d.S+d.F*c(5)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),\\\"Array\\\",{of:function of(){for(var a=0,b=arguments.length,c=new(\\\"function\\\"==typeof this?this:Array)(b);b>a;)e(c,a,arguments[a++]);return c.length=b,c}})},function(a,b,d){var e=d(6),f=d(30),g=[].join;e(e.P+e.F*(d(31)!=Object||!d(160)(g)),\\\"Array\\\",{join:function join(a){return g.call(f(this),a===c?\\\",\\\":a)}})},function(a,b,c){var d=c(5);a.exports=function(a,b){return!!a&&d(function(){b?a.call(null,function(){},1):a.call(null)})}},function(a,b,d){var e=d(6),f=d(46),g=d(32),h=d(37),i=d(35),j=[].slice;e(e.P+e.F*d(5)(function(){f&&j.call(f)}),\\\"Array\\\",{slice:function slice(a,b){var d=i(this.length),e=g(this);if(b=b===c?d:b,\\\"Array\\\"==e)return j.call(this,a,b);for(var f=h(a,d),k=h(b,d),l=i(k-f),m=Array(l),n=0;nw;w++)if((n||w in t)&&(q=t[w],r=u(q,w,s),a))if(d)x[w]=r;else if(r)switch(a){case 3:return!0;case 5:return q;case 6:return w;case 2:x.push(q)}else if(l)return!1;return m?-1:k||l?l:x}}},function(a,b,c){var d=c(166);a.exports=function(a,b){return new(d(a))(b)}},function(a,b,d){var e=d(11),f=d(43),g=d(23)(\\\"species\\\");a.exports=function(a){var b;return f(a)&&(b=a.constructor,\\\"function\\\"!=typeof b||b!==Array&&!f(b.prototype)||(b=c),e(b)&&(b=b[g],null===b&&(b=c))),b===c?Array:b}},function(a,b,c){var d=c(6),e=c(164)(1);d(d.P+d.F*!c(160)([].map,!0),\\\"Array\\\",{map:function map(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(2);d(d.P+d.F*!c(160)([].filter,!0),\\\"Array\\\",{filter:function filter(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(3);d(d.P+d.F*!c(160)([].some,!0),\\\"Array\\\",{some:function some(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(164)(4);d(d.P+d.F*!c(160)([].every,!0),\\\"Array\\\",{every:function every(a){return e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduce,!0),\\\"Array\\\",{reduce:function reduce(a){return e(this,a,arguments.length,arguments[1],!1)}})},function(a,b,c){var d=c(19),e=c(56),f=c(31),g=c(35);a.exports=function(a,b,c,h,i){d(b);var j=e(a),k=f(j),l=g(j.length),m=i?l-1:0,n=i?-1:1;if(c<2)for(;;){if(m in k){h=k[m],m+=n;break}if(m+=n,i?m<0:l<=m)throw TypeError(\\\"Reduce of empty array with no initial value\\\")}for(;i?m>=0:l>m;m+=n)m in k&&(h=b(h,k[m],m,j));return h}},function(a,b,c){var d=c(6),e=c(172);d(d.P+d.F*!c(160)([].reduceRight,!0),\\\"Array\\\",{reduceRight:function reduceRight(a){return e(this,a,arguments.length,arguments[1],!0)}})},function(a,b,c){var d=c(6),e=c(34)(!1),f=[].indexOf,g=!!f&&1/[1].indexOf(1,-0)<0;d(d.P+d.F*(g||!c(160)(f)),\\\"Array\\\",{indexOf:function indexOf(a){return g?f.apply(this,arguments)||0:e(this,a,arguments[1])}})},function(a,b,c){var d=c(6),e=c(30),f=c(36),g=c(35),h=[].lastIndexOf,i=!!h&&1/[1].lastIndexOf(1,-0)<0;d(d.P+d.F*(i||!c(160)(h)),\\\"Array\\\",{lastIndexOf:function lastIndexOf(a){if(i)return h.apply(this,arguments)||0;var b=e(this),c=g(b.length),d=c-1;for(arguments.length>1&&(d=Math.min(d,f(arguments[1]))),d<0&&(d=c+d);d>=0;d--)if(d in b&&b[d]===a)return d||0;return-1}})},function(a,b,c){var d=c(6);d(d.P,\\\"Array\\\",{copyWithin:c(177)}),c(178)(\\\"copyWithin\\\")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=[].copyWithin||function copyWithin(a,b){var d=e(this),h=g(d.length),i=f(a,h),j=f(b,h),k=arguments.length>2?arguments[2]:c,l=Math.min((k===c?h:f(k,h))-j,h-i),m=1;for(j0;)j in d?d[i]=d[j]:delete d[i],i+=m,j+=m;return d}},function(a,b,d){var e=d(23)(\\\"unscopables\\\"),f=Array.prototype;f[e]==c&&d(8)(f,e,{}),a.exports=function(a){f[e][a]=!0}},function(a,b,c){var d=c(6);d(d.P,\\\"Array\\\",{fill:c(180)}),c(178)(\\\"fill\\\")},function(a,b,d){var e=d(56),f=d(37),g=d(35);a.exports=function fill(a){for(var b=e(this),d=g(b.length),h=arguments.length,i=f(h>1?arguments[1]:c,d),j=h>2?arguments[2]:c,k=j===c?d:f(j,d);k>i;)b[i++]=a;return b}},function(a,b,d){var e=d(6),f=d(164)(5),g=\\\"find\\\",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,\\\"Array\\\",{find:function find(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(6),f=d(164)(6),g=\\\"findIndex\\\",h=!0;g in[]&&Array(1)[g](function(){h=!1}),e(e.P+e.F*h,\\\"Array\\\",{findIndex:function findIndex(a){return f(this,a,arguments.length>1?arguments[1]:c)}}),d(178)(g)},function(a,b,d){var e=d(178),f=d(184),g=d(135),h=d(30);a.exports=d(134)(Array,\\\"Array\\\",function(a,b){this._t=h(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,d=this._i++;return!a||d>=a.length?(this._t=c,f(1)):\\\"keys\\\"==b?f(0,d):\\\"values\\\"==b?f(0,a[d]):f(0,[d,a[d]])},\\\"values\\\"),g.Arguments=g.Array,e(\\\"keys\\\"),e(\\\"values\\\"),e(\\\"entries\\\")},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){c(186)(\\\"Array\\\")},function(a,b,c){var d=c(2),e=c(9),f=c(4),g=c(23)(\\\"species\\\");a.exports=function(a){var b=d[a];f&&b&&!b[g]&&e.f(b,g,{configurable:!0,get:function(){return this}})}},function(a,b,d){var e=d(2),f=d(80),g=d(9).f,h=d(48).f,i=d(128),j=d(188),k=e.RegExp,l=k,m=k.prototype,n=/a/g,o=/a/g,p=new k(n)!==n;if(d(4)&&(!p||d(5)(function(){return o[d(23)(\\\"match\\\")]=!1,k(n)!=n||k(o)==o||\\\"/a/i\\\"!=k(n,\\\"i\\\")}))){k=function RegExp(a,b){var d=this instanceof k,e=i(a),g=b===c;return!d&&e&&a.constructor===k&&g?a:f(p?new l(e&&!g?a.source:a,b):l((e=a instanceof k)?a.source:a,e&&g?j.call(a):b),d?this:m,k)};for(var q=(function(a){a in k||g(k,a,{configurable:!0,get:function(){return l[a]},set:function(b){l[a]=b}})}),r=h(l),s=0;r.length>s;)q(r[s++]);m.constructor=k,k.prototype=m,d(16)(e,\\\"RegExp\\\",k)}d(186)(\\\"RegExp\\\")},function(a,b,c){var d=c(10);a.exports=function(){var a=d(this),b=\\\"\\\";return a.global&&(b+=\\\"g\\\"),a.ignoreCase&&(b+=\\\"i\\\"),a.multiline&&(b+=\\\"m\\\"),a.unicode&&(b+=\\\"u\\\"),a.sticky&&(b+=\\\"y\\\"),b}},function(a,b,d){d(190);var e=d(10),f=d(188),g=d(4),h=\\\"toString\\\",i=/./[h],j=function(a){d(16)(RegExp.prototype,h,a,!0)};d(5)(function(){return\\\"/a/b\\\"!=i.call({source:\\\"a\\\",flags:\\\"b\\\"})})?j(function toString(){var a=e(this);return\\\"/\\\".concat(a.source,\\\"/\\\",\\\"flags\\\"in a?a.flags:!g&&a instanceof RegExp?f.call(a):c)}):i.name!=h&&j(function toString(){return i.call(this)})},function(a,b,c){c(4)&&\\\"g\\\"!=/./g.flags&&c(9).f(RegExp.prototype,\\\"flags\\\",{configurable:!0,get:c(188)})},function(a,b,d){d(192)(\\\"match\\\",1,function(a,b,d){return[function match(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,c){var d=c(8),e=c(16),f=c(5),g=c(33),h=c(23);a.exports=function(a,b,c){var i=h(a),j=c(g,i,\\\"\\\"[a]),k=j[0],l=j[1];f(function(){var b={};return b[i]=function(){return 7},7!=\\\"\\\"[a](b)})&&(e(String.prototype,a,k),d(RegExp.prototype,i,2==b?function(a,b){return l.call(a,this,b)}:function(a){return l.call(a,this)}))}},function(a,b,d){d(192)(\\\"replace\\\",2,function(a,b,d){return[function replace(e,f){var g=a(this),h=e==c?c:e[b];return h!==c?h.call(e,g,f):d.call(String(g),e,f)},d]})},function(a,b,d){d(192)(\\\"search\\\",1,function(a,b,d){return[function search(d){var e=a(this),f=d==c?c:d[b];return f!==c?f.call(d,e):new RegExp(d)[b](String(e))},d]})},function(a,b,d){d(192)(\\\"split\\\",2,function(a,b,e){var f=d(128),g=e,h=[].push,i=\\\"split\\\",j=\\\"length\\\",k=\\\"lastIndex\\\";if(\\\"c\\\"==\\\"abbc\\\"[i](/(b)*/)[1]||4!=\\\"test\\\"[i](/(?:)/,-1)[j]||2!=\\\"ab\\\"[i](/(?:ab)*/)[j]||4!=\\\".\\\"[i](/(.?)(.?)/)[j]||\\\".\\\"[i](/()()/)[j]>1||\\\"\\\"[i](/.?/)[j]){var l=/()??/.exec(\\\"\\\")[1]===c;e=function(a,b){var d=String(this);if(a===c&&0===b)return[];if(!f(a))return g.call(d,a,b);var e,i,m,n,o,p=[],q=(a.ignoreCase?\\\"i\\\":\\\"\\\")+(a.multiline?\\\"m\\\":\\\"\\\")+(a.unicode?\\\"u\\\":\\\"\\\")+(a.sticky?\\\"y\\\":\\\"\\\"),r=0,s=b===c?4294967295:b>>>0,t=new RegExp(a.source,q+\\\"g\\\");for(l||(e=new RegExp(\\\"^\\\"+t.source+\\\"$(?!\\\\\\\\s)\\\",q));(i=t.exec(d))&&(m=i.index+i[0][j],!(m>r&&(p.push(d.slice(r,i.index)),!l&&i[j]>1&&i[0].replace(e,function(){for(o=1;o1&&i.index=s)));)t[k]===i.index&&t[k]++;return r===d[j]?!n&&t.test(\\\"\\\")||p.push(\\\"\\\"):p.push(d.slice(r)),p[j]>s?p.slice(0,s):p}}else\\\"0\\\"[i](c,0)[j]&&(e=function(a,b){return a===c&&0===b?[]:g.call(this,a,b)});return[function split(d,f){var g=a(this),h=d==c?c:d[b];return h!==c?h.call(d,g,f):e.call(String(g),d,f)},e]})},function(a,b,d){var e,f,g,h=d(26),i=d(2),j=d(18),k=d(73),l=d(6),m=d(11),n=d(19),o=d(197),p=d(198),q=d(199),r=d(200).set,s=d(201)(),t=\\\"Promise\\\",u=i.TypeError,v=i.process,w=i[t],v=i.process,x=\\\"process\\\"==k(v),y=function(){},z=!!function(){try{var a=w.resolve(1),b=(a.constructor={})[d(23)(\\\"species\\\")]=function(a){a(y,y)};return(x||\\\"function\\\"==typeof PromiseRejectionEvent)&&a.then(y)instanceof b}catch(c){}}(),A=function(a,b){return a===b||a===w&&b===g},B=function(a){var b;return!(!m(a)||\\\"function\\\"!=typeof(b=a.then))&&b},C=function(a){return A(w,a)?new D(a):new f(a)},D=f=function(a){var b,d;this.promise=new a(function(a,e){if(b!==c||d!==c)throw u(\\\"Bad Promise constructor\\\");b=a,d=e}),this.resolve=n(b),this.reject=n(d)},E=function(a){try{a()}catch(b){return{error:b}}},F=function(a,b){if(!a._n){a._n=!0;var c=a._c;s(function(){for(var d=a._v,e=1==a._s,f=0,g=function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&I(a),a._h=1),g===!0?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(u(\\\"Promise-chain cycle\\\")):(f=B(c))?f.call(c,h,i):h(c)):i(d)}catch(k){i(k)}};c.length>f;)g(c[f++]);a._c=[],a._n=!1,b&&!a._h&&G(a)})}},G=function(a){r.call(i,function(){var b,d,e,f=a._v;if(H(a)&&(b=E(function(){x?v.emit(\\\"unhandledRejection\\\",f,a):(d=i.onunhandledrejection)?d({promise:a,reason:f}):(e=i.console)&&e.error&&e.error(\\\"Unhandled promise rejection\\\",f)}),a._h=x||H(a)?2:1),a._a=c,b)throw b.error})},H=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if(b=c[d++],b.fail||!H(b.promise))return!1;return!0},I=function(a){r.call(i,function(){var b;x?v.emit(\\\"rejectionHandled\\\",a):(b=i.onrejectionhandled)&&b({promise:a,reason:a._v})})},J=function(a){var b=this;b._d||(b._d=!0,b=b._w||b,b._v=a,b._s=2,b._a||(b._a=b._c.slice()),F(b,!0))},K=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw u(\\\"Promise can't be resolved itself\\\");(b=B(a))?s(function(){var d={_w:c,_d:!1};try{b.call(a,j(K,d,1),j(J,d,1))}catch(e){J.call(d,e)}}):(c._v=a,c._s=1,F(c,!1))}catch(d){J.call({_w:c,_d:!1},d)}}};z||(w=function Promise(a){o(this,w,t,\\\"_h\\\"),n(a),e.call(this);try{a(j(K,this,1),j(J,this,1))}catch(b){J.call(this,b)}},e=function Promise(a){this._c=[],this._a=c,this._s=0,this._d=!1,this._v=c,this._h=0,this._n=!1},e.prototype=d(202)(w.prototype,{then:function then(a,b){var d=C(q(this,w));return d.ok=\\\"function\\\"!=typeof a||a,d.fail=\\\"function\\\"==typeof b&&b,d.domain=x?v.domain:c,this._c.push(d),this._a&&this._a.push(d),this._s&&F(this,!1),d.promise},\\\"catch\\\":function(a){return this.then(c,a)}}),D=function(){var a=new e;this.promise=a,this.resolve=j(K,a,1),this.reject=j(J,a,1)}),l(l.G+l.W+l.F*!z,{Promise:w}),d(22)(w,t),d(186)(t),g=d(7)[t],l(l.S+l.F*!z,t,{reject:function reject(a){var b=C(this),c=b.reject;return c(a),b.promise}}),l(l.S+l.F*(h||!z),t,{resolve:function resolve(a){if(a instanceof w&&A(a.constructor,this))return a;var b=C(this),c=b.resolve;return c(a),b.promise}}),l(l.S+l.F*!(z&&d(157)(function(a){w.all(a)[\\\"catch\\\"](y)})),t,{all:function all(a){var b=this,d=C(b),e=d.resolve,f=d.reject,g=E(function(){var d=[],g=0,h=1;p(a,!1,function(a){var i=g++,j=!1;d.push(c),h++,b.resolve(a).then(function(a){j||(j=!0,d[i]=a,--h||e(d))},f)}),--h||e(d)});return g&&f(g.error),d.promise},race:function race(a){var b=this,c=C(b),d=c.reject,e=E(function(){p(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b){a.exports=function(a,b,d,e){if(!(a instanceof b)||e!==c&&e in a)throw TypeError(d+\\\": incorrect invocation!\\\");return a}},function(a,b,c){var d=c(18),e=c(153),f=c(154),g=c(10),h=c(35),i=c(156),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if(\\\"function\\\"!=typeof r)throw TypeError(a+\\\" is not iterable!\\\");if(f(r)){for(n=h(a.length);n>t;t++)if(q=b?s(g(o=a[t])[0],o[1]):s(a[t]),q===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if(q=e(p,s,o.value,b),q===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b,d){var e=d(10),f=d(19),g=d(23)(\\\"species\\\");a.exports=function(a,b){var d,h=e(a).constructor;return h===c||(d=e(h)[g])==c?b:f(d)}},function(a,b,c){var d,e,f,g=c(18),h=c(76),i=c(46),j=c(13),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r=\\\"onreadystatechange\\\",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function setImmediate(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h(\\\"function\\\"==typeof a?a:Function(a),b)},d(p),p},n=function clearImmediate(a){delete q[a]},\\\"process\\\"==c(32)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&\\\"function\\\"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+\\\"\\\",\\\"*\\\")},k.addEventListener(\\\"message\\\",t,!1)):d=r in j(\\\"script\\\")?function(a){i.appendChild(j(\\\"script\\\"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,d){var e=d(2),f=d(200).set,g=e.MutationObserver||e.WebKitMutationObserver,h=e.process,i=e.Promise,j=\\\"process\\\"==d(32)(h);a.exports=function(){var a,b,d,k=function(){var e,f;for(j&&(e=h.domain)&&e.exit();a;){f=a.fn,a=a.next;try{f()}catch(g){throw a?d():b=c,g}}b=c,e&&e.enter()};if(j)d=function(){h.nextTick(k)};else if(g){var l=!0,m=document.createTextNode(\\\"\\\");new g(k).observe(m,{characterData:!0}),d=function(){m.data=l=!l}}else if(i&&i.resolve){var n=i.resolve();d=function(){n.then(k)}}else d=function(){f.call(e,k)};return function(e){var f={fn:e,next:c};b&&(b.next=f),a||(a=f,d()),b=f}}},function(a,b,c){var d=c(16);a.exports=function(a,b,c){for(var e in b)d(a,e,b[e],c);return a}},function(a,b,d){var e=d(204);a.exports=d(205)(\\\"Map\\\",function(a){return function Map(){return a(this,arguments.length>0?arguments[0]:c)}},{get:function get(a){var b=e.getEntry(this,a);return b&&b.v},set:function set(a,b){return e.def(this,0===a?0:a,b)}},e,!0)},function(a,b,d){var e=d(9).f,f=d(44),g=d(202),h=d(18),i=d(197),j=d(33),k=d(198),l=d(134),m=d(184),n=d(186),o=d(4),p=d(20).fastKey,q=o?\\\"_s\\\":\\\"size\\\",r=function(a,b){var c,d=p(b);if(\\\"F\\\"!==d)return a._i[d];for(c=a._f;c;c=c.n)if(c.k==b)return c};a.exports={getConstructor:function(a,b,d,l){var m=a(function(a,e){i(a,m,b,\\\"_i\\\"),a._i=f(null),a._f=c,a._l=c,a[q]=0,e!=c&&k(e,d,a[l],a)});return g(m.prototype,{clear:function clear(){for(var a=this,b=a._i,d=a._f;d;d=d.n)d.r=!0,d.p&&(d.p=d.p.n=c),delete b[d.i];a._f=a._l=c,a[q]=0},\\\"delete\\\":function(a){var b=this,c=r(b,a);if(c){var d=c.n,e=c.p;delete b._i[c.i],c.r=!0,e&&(e.n=d),d&&(d.p=e),b._f==c&&(b._f=d),b._l==c&&(b._l=e),b[q]--}return!!c},forEach:function forEach(a){i(this,m,\\\"forEach\\\");for(var b,d=h(a,arguments.length>1?arguments[1]:c,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!r(this,a)}}),o&&e(m.prototype,\\\"size\\\",{get:function(){return j(this[q])}}),m},def:function(a,b,d){var e,f,g=r(a,b);return g?g.v=d:(a._l=g={i:f=p(b,!0),k:b,v:d,p:e=a._l,n:c,r:!1},a._f||(a._f=g),e&&(e.n=g),a[q]++,\\\"F\\\"!==f&&(a._i[f]=g)),a},getEntry:r,setStrong:function(a,b,d){l(a,b,function(a,b){this._t=a,this._k=b,this._l=c},function(){for(var a=this,b=a._k,d=a._l;d&&d.r;)d=d.p;return a._t&&(a._l=d=d?d.n:a._t._f)?\\\"keys\\\"==b?m(0,d.k):\\\"values\\\"==b?m(0,d.v):m(0,[d.k,d.v]):(a._t=c,m(1))},d?\\\"entries\\\":\\\"values\\\",!d,!0),n(b)}}},function(a,b,d){var e=d(2),f=d(6),g=d(16),h=d(202),i=d(20),j=d(198),k=d(197),l=d(11),m=d(5),n=d(157),o=d(22),p=d(80);a.exports=function(a,b,d,q,r,s){var t=e[a],u=t,v=r?\\\"set\\\":\\\"add\\\",w=u&&u.prototype,x={},y=function(a){var b=w[a];g(w,a,\\\"delete\\\"==a?function(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:\\\"has\\\"==a?function has(a){return!(s&&!l(a))&&b.call(this,0===a?0:a)}:\\\"get\\\"==a?function get(a){return s&&!l(a)?c:b.call(this,0===a?0:a)}:\\\"add\\\"==a?function add(a){return b.call(this,0===a?0:a),this}:function set(a,c){return b.call(this,0===a?0:a,c),this})};if(\\\"function\\\"==typeof u&&(s||w.forEach&&!m(function(){(new u).entries().next()}))){var z=new u,A=z[v](s?{}:-0,1)!=z,B=m(function(){z.has(1)}),C=n(function(a){new u(a)}),D=!s&&m(function(){for(var a=new u,b=5;b--;)a[v](b,b);return!a.has(-0)});C||(u=b(function(b,d){k(b,u,a);var e=p(new t,b,u);return d!=c&&j(d,r,e[v],e),e}),u.prototype=w,w.constructor=u),(B||D)&&(y(\\\"delete\\\"),y(\\\"has\\\"),r&&y(\\\"get\\\")),(D||A)&&y(v),s&&w.clear&&delete w.clear}else u=q.getConstructor(b,a,r,v),h(u.prototype,d),i.NEED=!0;return o(u,a),x[a]=u,f(f.G+f.W+f.F*(u!=t),x),s||q.setStrong(u,a,r),u}},function(a,b,d){var e=d(204);a.exports=d(205)(\\\"Set\\\",function(a){return function Set(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a=0===a?0:a,a)}},e)},function(a,b,d){var e,f=d(164)(0),g=d(16),h=d(20),i=d(67),j=d(208),k=d(11),l=h.getWeak,m=Object.isExtensible,n=j.ufstore,o={},p=function(a){return function WeakMap(){return a(this,arguments.length>0?arguments[0]:c)}},q={get:function get(a){if(k(a)){var b=l(a);return b===!0?n(this).get(a):b?b[this._i]:c}},set:function set(a,b){return j.def(this,a,b)}},r=a.exports=d(205)(\\\"WeakMap\\\",p,q,j,!0,!0);7!=(new r).set((Object.freeze||Object)(o),7).get(o)&&(e=j.getConstructor(p),i(e.prototype,q),h.NEED=!0,f([\\\"delete\\\",\\\"has\\\",\\\"get\\\",\\\"set\\\"],function(a){var b=r.prototype,c=b[a];g(b,a,function(b,d){if(k(b)&&!m(b)){this._f||(this._f=new e);var f=this._f[a](b,d);return\\\"set\\\"==a?this:f}return c.call(this,b,d)})}))},function(a,b,d){var e=d(202),f=d(20).getWeak,g=d(10),h=d(11),i=d(197),j=d(198),k=d(164),l=d(3),m=k(5),n=k(6),o=0,p=function(a){return a._l||(a._l=new q)},q=function(){this.a=[]},r=function(a,b){return m(a.a,function(a){return a[0]===b})};q.prototype={get:function(a){var b=r(this,a);if(b)return b[1]},has:function(a){return!!r(this,a)},set:function(a,b){var c=r(this,a);c?c[1]=b:this.a.push([a,b])},\\\"delete\\\":function(a){var b=n(this.a,function(b){return b[0]===a});return~b&&this.a.splice(b,1),!!~b}},a.exports={getConstructor:function(a,b,d,g){var k=a(function(a,e){i(a,k,b,\\\"_i\\\"),a._i=o++,a._l=c,e!=c&&j(e,d,a[g],a)});return e(k.prototype,{\\\"delete\\\":function(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this)[\\\"delete\\\"](a):b&&l(b,this._i)&&delete b[this._i]},has:function has(a){if(!h(a))return!1;var b=f(a);return b===!0?p(this).has(a):b&&l(b,this._i)}}),k},def:function(a,b,c){var d=f(g(b),!0);return d===!0?p(a).set(b,c):d[a._i]=c,a},ufstore:p}},function(a,b,d){var e=d(208);d(205)(\\\"WeakSet\\\",function(a){return function WeakSet(){return a(this,arguments.length>0?arguments[0]:c)}},{add:function add(a){return e.def(this,a,!0)}},e,!1,!0)},function(a,b,c){var d=c(6),e=c(19),f=c(10),g=(c(2).Reflect||{}).apply,h=Function.apply;d(d.S+d.F*!c(5)(function(){g(function(){})}),\\\"Reflect\\\",{apply:function apply(a,b,c){var d=e(a),i=f(c);return g?g(d,b,i):h.call(d,b,i)}})},function(a,b,c){var d=c(6),e=c(44),f=c(19),g=c(10),h=c(11),i=c(5),j=c(75),k=(c(2).Reflect||{}).construct,l=i(function(){function F(){}return!(k(function(){},[],F)instanceof F)}),m=!i(function(){k(function(){})});d(d.S+d.F*(l||m),\\\"Reflect\\\",{construct:function construct(a,b){f(a),g(b);var c=arguments.length<3?a:f(arguments[2]);if(m&&!l)return k(a,b,c);if(a==c){switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3])}var d=[null];return d.push.apply(d,b),new(j.apply(a,d))}var i=c.prototype,n=e(h(i)?i:Object.prototype),o=Function.apply.call(a,n,b);return h(o)?o:n}})},function(a,b,c){var d=c(9),e=c(6),f=c(10),g=c(14);e(e.S+e.F*c(5)(function(){Reflect.defineProperty(d.f({},1,{value:1}),1,{value:2})}),\\\"Reflect\\\",{defineProperty:function defineProperty(a,b,c){f(a),b=g(b,!0),f(c);try{return d.f(a,b,c),!0}catch(e){return!1}}})},function(a,b,c){var d=c(6),e=c(49).f,f=c(10);d(d.S,\\\"Reflect\\\",{deleteProperty:function deleteProperty(a,b){var c=e(f(a),b);return!(c&&!c.configurable)&&delete a[b]}})},function(a,b,d){var e=d(6),f=d(10),g=function(a){this._t=f(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};d(136)(g,\\\"Object\\\",function(){var a,b=this,d=b._k;do if(b._i>=d.length)return{value:c,done:!0};while(!((a=d[b._i++])in b._t));return{value:a,done:!1}}),e(e.S,\\\"Reflect\\\",{enumerate:function enumerate(a){return new g(a)}})},function(a,b,d){function get(a,b){var d,h,k=arguments.length<3?a:arguments[2];return j(a)===k?a[b]:(d=e.f(a,b))?g(d,\\\"value\\\")?d.value:d.get!==c?d.get.call(k):c:i(h=f(a))?get(h,b,k):void 0}var e=d(49),f=d(57),g=d(3),h=d(6),i=d(11),j=d(10);h(h.S,\\\"Reflect\\\",{get:get})},function(a,b,c){var d=c(49),e=c(6),f=c(10);e(e.S,\\\"Reflect\\\",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return d.f(f(a),b)}})},function(a,b,c){var d=c(6),e=c(57),f=c(10);d(d.S,\\\"Reflect\\\",{getPrototypeOf:function getPrototypeOf(a){return e(f(a))}})},function(a,b,c){var d=c(6);d(d.S,\\\"Reflect\\\",{has:function has(a,b){return b in a}})},function(a,b,c){var d=c(6),e=c(10),f=Object.isExtensible;d(d.S,\\\"Reflect\\\",{isExtensible:function isExtensible(a){return e(a),!f||f(a)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Reflect\\\",{ownKeys:c(221)})},function(a,b,c){var d=c(48),e=c(41),f=c(10),g=c(2).Reflect;a.exports=g&&g.ownKeys||function ownKeys(a){var b=d.f(f(a)),c=e.f;return c?b.concat(c(a)):b}},function(a,b,c){var d=c(6),e=c(10),f=Object.preventExtensions;d(d.S,\\\"Reflect\\\",{preventExtensions:function preventExtensions(a){e(a);try{return f&&f(a),!0}catch(b){return!1}}})},function(a,b,d){function set(a,b,d){var i,m,n=arguments.length<4?a:arguments[3],o=f.f(k(a),b);if(!o){if(l(m=g(a)))return set(m,b,d,n);o=j(0)}return h(o,\\\"value\\\")?!(o.writable===!1||!l(n))&&(i=f.f(n,b)||j(0),i.value=d,e.f(n,b,i),!0):o.set!==c&&(o.set.call(n,d),!0)}var e=d(9),f=d(49),g=d(57),h=d(3),i=d(6),j=d(15),k=d(10),l=d(11);i(i.S,\\\"Reflect\\\",{set:set})},function(a,b,c){var d=c(6),e=c(71);e&&d(d.S,\\\"Reflect\\\",{setPrototypeOf:function setPrototypeOf(a,b){e.check(a,b);try{return e.set(a,b),!0}catch(c){return!1}}})},function(a,b,c){var d=c(6);d(d.S,\\\"Date\\\",{now:function(){return(new Date).getTime()}})},function(a,b,c){var d=c(6),e=c(56),f=c(14);d(d.P+d.F*c(5)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),\\\"Date\\\",{toJSON:function toJSON(a){var b=e(this),c=f(b);return\\\"number\\\"!=typeof c||isFinite(c)?b.toISOString():null}})},function(a,b,c){var d=c(6),e=c(5),f=Date.prototype.getTime,g=function(a){return a>9?a:\\\"0\\\"+a};d(d.P+d.F*(e(function(){return\\\"0385-07-25T07:06:39.999Z\\\"!=new Date(-5e13-1).toISOString()})||!e(function(){new Date(NaN).toISOString()})),\\\"Date\\\",{toISOString:function toISOString(){if(!isFinite(f.call(this)))throw RangeError(\\\"Invalid time value\\\");var a=this,b=a.getUTCFullYear(),c=a.getUTCMilliseconds(),d=b<0?\\\"-\\\":b>9999?\\\"+\\\":\\\"\\\";return d+(\\\"00000\\\"+Math.abs(b)).slice(d?-6:-4)+\\\"-\\\"+g(a.getUTCMonth()+1)+\\\"-\\\"+g(a.getUTCDate())+\\\"T\\\"+g(a.getUTCHours())+\\\":\\\"+g(a.getUTCMinutes())+\\\":\\\"+g(a.getUTCSeconds())+\\\".\\\"+(c>99?c:\\\"0\\\"+g(c))+\\\"Z\\\"}})},function(a,b,c){var d=Date.prototype,e=\\\"Invalid Date\\\",f=\\\"toString\\\",g=d[f],h=d.getTime;new Date(NaN)+\\\"\\\"!=e&&c(16)(d,f,function toString(){var a=h.call(this);return a===a?g.call(this):e})},function(a,b,c){var d=c(23)(\\\"toPrimitive\\\"),e=Date.prototype;d in e||c(8)(e,d,c(230))},function(a,b,c){var d=c(10),e=c(14),f=\\\"number\\\";a.exports=function(a){if(\\\"string\\\"!==a&&a!==f&&\\\"default\\\"!==a)throw TypeError(\\\"Incorrect hint\\\");return e(d(this),a!=f)}},function(a,b,d){var e=d(6),f=d(232),g=d(233),h=d(10),i=d(37),j=d(35),k=d(11),l=d(2).ArrayBuffer,m=d(199),n=g.ArrayBuffer,o=g.DataView,p=f.ABV&&l.isView,q=n.prototype.slice,r=f.VIEW,s=\\\"ArrayBuffer\\\";e(e.G+e.W+e.F*(l!==n),{ArrayBuffer:n}),e(e.S+e.F*!f.CONSTR,s,{isView:function isView(a){return p&&p(a)||k(a)&&r in a}}),e(e.P+e.U+e.F*d(5)(function(){return!new n(2).slice(1,c).byteLength}),s,{slice:function slice(a,b){if(q!==c&&b===c)return q.call(h(this),a);for(var d=h(this).byteLength,e=i(a,d),f=i(b===c?d:b,d),g=new(m(this,n))(j(f-e)),k=new o(this),l=new o(g),p=0;e>1,k=23===b?E(2,-24)-E(2,-77):0,l=0,m=a<0||0===a&&1/a<0?1:0;for(a=D(a),a!=a||a===B?(e=a!=a?1:0,d=i):(d=F(G(a)/H),a*(f=E(2,-d))<1&&(d--,f*=2),a+=d+j>=1?k/f:k*E(2,1-j),a*f>=2&&(d++,f/=2),d+j>=i?(e=0,d=i):d+j>=1?(e=(a*f-1)*E(2,b),d+=j):(e=a*E(2,j-1)*E(2,b),d=0));b>=8;g[l++]=255&e,e/=256,b-=8);for(d=d<0;g[l++]=255&d,d/=256,h-=8);return g[--l]|=128*m,g},P=function(a,b,c){var d,e=8*c-b-1,f=(1<>1,h=e-7,i=c-1,j=a[i--],k=127&j;for(j>>=7;h>0;k=256*k+a[i],i--,h-=8);for(d=k&(1<<-h)-1,k>>=-h,h+=b;h>0;d=256*d+a[i],i--,h-=8);if(0===k)k=1-g;else{if(k===f)return d?NaN:j?-B:B;d+=E(2,b),k-=g}return(j?-1:1)*d*E(2,k-b)},Q=function(a){return a[3]<<24|a[2]<<16|a[1]<<8|a[0]},R=function(a){return[255&a]},S=function(a){return[255&a,a>>8&255]},T=function(a){return[255&a,a>>8&255,a>>16&255,a>>24&255]},U=function(a){return O(a,52,8)},V=function(a){return O(a,23,4)},W=function(a,b,c){p(a[u],b,{get:function(){return this[c]}})},X=function(a,b,c,d){var e=+c,f=m(e);if(e!=f||f<0||f+b>a[M])throw A(w);var g=a[L]._b,h=f+a[N],i=g.slice(h,h+b);return d?i:i.reverse()},Y=function(a,b,c,d,e,f){var g=+c,h=m(g);if(g!=h||h<0||h+b>a[M])throw A(w);for(var i=a[L]._b,j=h+a[N],k=d(+e),l=0;lba;)($=aa[ba++])in x||i(x,$,C[$]);g||(_.constructor=x)}var ca=new y(new x(2)),da=y[u].setInt8;ca.setInt8(0,2147483648),ca.setInt8(1,2147483649),!ca.getInt8(0)&&ca.getInt8(1)||j(y[u],{setInt8:function setInt8(a,b){da.call(this,a,b<<24>>24)},setUint8:function setUint8(a,b){da.call(this,a,b<<24>>24)}},!0)}else x=function ArrayBuffer(a){var b=Z(this,a);this._b=q.call(Array(b),0),this[M]=b},y=function DataView(a,b,d){l(this,y,t),l(a,x,t);var e=a[M],f=m(b);if(f<0||f>e)throw A(\\\"Wrong offset!\\\");if(d=d===c?e-f:n(d),f+d>e)throw A(v);this[L]=a,this[N]=f,this[M]=d},f&&(W(x,J,\\\"_l\\\"),W(y,I,\\\"_b\\\"),W(y,J,\\\"_l\\\"),W(y,K,\\\"_o\\\")),j(y[u],{getInt8:function getInt8(a){return X(this,1,a)[0]<<24>>24},getUint8:function getUint8(a){return X(this,1,a)[0]},getInt16:function getInt16(a){var b=X(this,2,a,arguments[1]);return(b[1]<<8|b[0])<<16>>16},getUint16:function getUint16(a){var b=X(this,2,a,arguments[1]);return b[1]<<8|b[0]},getInt32:function getInt32(a){return Q(X(this,4,a,arguments[1]))},getUint32:function getUint32(a){return Q(X(this,4,a,arguments[1]))>>>0},getFloat32:function getFloat32(a){return P(X(this,4,a,arguments[1]),23,4)},getFloat64:function getFloat64(a){return P(X(this,8,a,arguments[1]),52,8)},setInt8:function setInt8(a,b){Y(this,1,a,R,b)},setUint8:function setUint8(a,b){Y(this,1,a,R,b)},setInt16:function setInt16(a,b){Y(this,2,a,S,b,arguments[2])},setUint16:function setUint16(a,b){Y(this,2,a,S,b,arguments[2])},setInt32:function setInt32(a,b){Y(this,4,a,T,b,arguments[2])},setUint32:function setUint32(a,b){Y(this,4,a,T,b,arguments[2])},setFloat32:function setFloat32(a,b){Y(this,4,a,V,b,arguments[2])},setFloat64:function setFloat64(a,b){Y(this,8,a,U,b,arguments[2])}});r(x,s),r(y,t),i(y[u],h.VIEW,!0),b[s]=x,b[t]=y},function(a,b,c){var d=c(6);d(d.G+d.W+d.F*!c(232).ABV,{DataView:c(233).DataView})},function(a,b,c){c(236)(\\\"Int8\\\",1,function(a){return function Int8Array(b,c,d){return a(this,b,c,d)}})},function(a,b,d){if(d(4)){var e=d(26),f=d(2),g=d(5),h=d(6),i=d(232),j=d(233),k=d(18),l=d(197),m=d(15),n=d(8),o=d(202),p=d(36),q=d(35),r=d(37),s=d(14),t=d(3),u=d(69),v=d(73),w=d(11),x=d(56),y=d(154),z=d(44),A=d(57),B=d(48).f,C=d(156),D=d(17),E=d(23),F=d(164),G=d(34),H=d(199),I=d(183),J=d(135),K=d(157),L=d(186),M=d(180),N=d(177),O=d(9),P=d(49),Q=O.f,R=P.f,S=f.RangeError,T=f.TypeError,U=f.Uint8Array,V=\\\"ArrayBuffer\\\",W=\\\"Shared\\\"+V,X=\\\"BYTES_PER_ELEMENT\\\",Y=\\\"prototype\\\",Z=Array[Y],$=j.ArrayBuffer,_=j.DataView,aa=F(0),ba=F(2),ca=F(3),da=F(4),ea=F(5),fa=F(6),ga=G(!0),ha=G(!1),ia=I.values,ja=I.keys,ka=I.entries,la=Z.lastIndexOf,ma=Z.reduce,na=Z.reduceRight,oa=Z.join,pa=Z.sort,qa=Z.slice,ra=Z.toString,sa=Z.toLocaleString,ta=E(\\\"iterator\\\"),ua=E(\\\"toStringTag\\\"),va=D(\\\"typed_constructor\\\"),wa=D(\\\"def_constructor\\\"),xa=i.CONSTR,ya=i.TYPED,za=i.VIEW,Aa=\\\"Wrong length!\\\",Ba=F(1,function(a,b){return Ha(H(a,a[wa]),b)}),Ca=g(function(){return 1===new U(new Uint16Array([1]).buffer)[0]}),Da=!!U&&!!U[Y].set&&g(function(){new U(1).set({})}),Ea=function(a,b){if(a===c)throw T(Aa);var d=+a,e=q(a);if(b&&!u(d,e))throw S(Aa);return e},Fa=function(a,b){var c=p(a);if(c<0||c%b)throw S(\\\"Wrong offset!\\\");return c},Ga=function(a){if(w(a)&&ya in a)return a;throw T(a+\\\" is not a typed array!\\\")},Ha=function(a,b){if(!(w(a)&&va in a))throw T(\\\"It is not a typed array constructor!\\\");return new a(b)},Ia=function(a,b){return Ja(H(a,a[wa]),b)},Ja=function(a,b){for(var c=0,d=b.length,e=Ha(a,d);d>c;)e[c]=b[c++];return e},Ka=function(a,b,c){Q(a,b,{get:function(){return this._d[c]}})},La=function from(a){var b,d,e,f,g,h,i=x(a),j=arguments.length,l=j>1?arguments[1]:c,m=l!==c,n=C(i);if(n!=c&&!y(n)){for(h=n.call(i),e=[],b=0;!(g=h.next()).done;b++)e.push(g.value);i=e}for(m&&j>2&&(l=k(l,arguments[2],2)),b=0,d=q(i.length),f=Ha(this,d);d>b;b++)f[b]=m?l(i[b],b):i[b];return f},Ma=function of(){for(var a=0,b=arguments.length,c=Ha(this,b);b>a;)c[a]=arguments[a++];return c},Na=!!U&&g(function(){sa.call(new U(1))}),Oa=function toLocaleString(){return sa.apply(Na?qa.call(Ga(this)):Ga(this),arguments)},Pa={copyWithin:function copyWithin(a,b){return N.call(Ga(this),a,b,arguments.length>2?arguments[2]:c)},every:function every(a){return da(Ga(this),a,arguments.length>1?arguments[1]:c)},fill:function fill(a){return M.apply(Ga(this),arguments)},filter:function filter(a){return Ia(this,ba(Ga(this),a,arguments.length>1?arguments[1]:c))},find:function find(a){return ea(Ga(this),a,arguments.length>1?arguments[1]:c)},findIndex:function findIndex(a){return fa(Ga(this),a,arguments.length>1?arguments[1]:c)},forEach:function forEach(a){aa(Ga(this),a,arguments.length>1?arguments[1]:c)},indexOf:function indexOf(a){return ha(Ga(this),a,arguments.length>1?arguments[1]:c)},includes:function includes(a){return ga(Ga(this),a,arguments.length>1?arguments[1]:c)},join:function join(a){return oa.apply(Ga(this),arguments)},lastIndexOf:function lastIndexOf(a){\\nreturn la.apply(Ga(this),arguments)},map:function map(a){return Ba(Ga(this),a,arguments.length>1?arguments[1]:c)},reduce:function reduce(a){return ma.apply(Ga(this),arguments)},reduceRight:function reduceRight(a){return na.apply(Ga(this),arguments)},reverse:function reverse(){for(var a,b=this,c=Ga(b).length,d=Math.floor(c/2),e=0;e1?arguments[1]:c)},sort:function sort(a){return pa.call(Ga(this),a)},subarray:function subarray(a,b){var d=Ga(this),e=d.length,f=r(a,e);return new(H(d,d[wa]))(d.buffer,d.byteOffset+f*d.BYTES_PER_ELEMENT,q((b===c?e:r(b,e))-f))}},Qa=function slice(a,b){return Ia(this,qa.call(Ga(this),a,b))},Ra=function set(a){Ga(this);var b=Fa(arguments[1],1),c=this.length,d=x(a),e=q(d.length),f=0;if(e+b>c)throw S(Aa);for(;f255?255:255&d),e.v[p](c*b+e.o,d,Ca)},E=function(a,b){Q(a,b,{get:function(){return C(this,b)},set:function(a){return D(this,b,a)},enumerable:!0})};u?(r=d(function(a,d,e,f){l(a,r,k,\\\"_d\\\");var g,h,i,j,m=0,o=0;if(w(d)){if(!(d instanceof $||(j=v(d))==V||j==W))return ya in d?Ja(r,d):La.call(r,d);g=d,o=Fa(e,b);var p=d.byteLength;if(f===c){if(p%b)throw S(Aa);if(h=p-o,h<0)throw S(Aa)}else if(h=q(f)*b,h+o>p)throw S(Aa);i=h/b}else i=Ea(d,!0),h=i*b,g=new $(h);for(n(a,\\\"_d\\\",{b:g,o:o,l:h,e:i,v:new _(g)});m1?arguments[1]:c)}}),d(178)(\\\"includes\\\")},function(a,b,c){var d=c(6),e=c(125)(!0);d(d.P,\\\"String\\\",{at:function at(a){return e(this,a)}})},function(a,b,d){var e=d(6),f=d(248);e(e.P,\\\"String\\\",{padStart:function padStart(a){return f(this,a,arguments.length>1?arguments[1]:c,!0)}})},function(a,b,d){var e=d(35),f=d(85),g=d(33);a.exports=function(a,b,d,h){var i=String(g(a)),j=i.length,k=d===c?\\\" \\\":String(d),l=e(b);if(l<=j||\\\"\\\"==k)return i;var m=l-j,n=f.call(k,Math.ceil(m/k.length));return n.length>m&&(n=n.slice(0,m)),h?n+i:i+n}},function(a,b,d){var e=d(6),f=d(248);e(e.P,\\\"String\\\",{padEnd:function padEnd(a){return f(this,a,arguments.length>1?arguments[1]:c,!1)}})},function(a,b,c){c(81)(\\\"trimLeft\\\",function(a){return function trimLeft(){return a(this,1)}},\\\"trimStart\\\")},function(a,b,c){c(81)(\\\"trimRight\\\",function(a){return function trimRight(){return a(this,2)}},\\\"trimEnd\\\")},function(a,b,c){var d=c(6),e=c(33),f=c(35),g=c(128),h=c(188),i=RegExp.prototype,j=function(a,b){this._r=a,this._s=b};c(136)(j,\\\"RegExp String\\\",function next(){var a=this._r.exec(this._s);return{value:a,done:null===a}}),d(d.P,\\\"String\\\",{matchAll:function matchAll(a){if(e(this),!g(a))throw TypeError(a+\\\" is not a regexp!\\\");var b=String(this),c=\\\"flags\\\"in i?String(a.flags):h.call(a),d=new RegExp(a.source,~c.indexOf(\\\"g\\\")?c:\\\"g\\\"+c);return d.lastIndex=f(a.lastIndex),new j(d,b)}})},function(a,b,c){c(25)(\\\"asyncIterator\\\")},function(a,b,c){c(25)(\\\"observable\\\")},function(a,b,c){var d=c(6),e=c(221),f=c(30),g=c(49),h=c(155);d(d.S,\\\"Object\\\",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(a){for(var b,c=f(a),d=g.f,i=e(c),j={},k=0;i.length>k;)h(j,b=i[k++],d(c,b));return j}})},function(a,b,c){var d=c(6),e=c(257)(!1);d(d.S,\\\"Object\\\",{values:function values(a){return e(a)}})},function(a,b,c){var d=c(28),e=c(30),f=c(42).f;a.exports=function(a){return function(b){for(var c,g=e(b),h=d(g),i=h.length,j=0,k=[];i>j;)f.call(g,c=h[j++])&&k.push(a?[c,g[c]]:g[c]);return k}}},function(a,b,c){var d=c(6),e=c(257)(!0);d(d.S,\\\"Object\\\",{entries:function entries(a){return e(a)}})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),\\\"Object\\\",{__defineGetter__:function __defineGetter__(a,b){g.f(e(this),a,{get:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){a.exports=c(26)||!c(5)(function(){var a=Math.random();__defineSetter__.call(null,a,function(){}),delete c(2)[a]})},function(a,b,c){var d=c(6),e=c(56),f=c(19),g=c(9);c(4)&&d(d.P+c(260),\\\"Object\\\",{__defineSetter__:function __defineSetter__(a,b){g.f(e(this),a,{set:f(b),enumerable:!0,configurable:!0})}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),\\\"Object\\\",{__lookupGetter__:function __lookupGetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.get;while(c=g(c))}})},function(a,b,c){var d=c(6),e=c(56),f=c(14),g=c(57),h=c(49).f;c(4)&&d(d.P+c(260),\\\"Object\\\",{__lookupSetter__:function __lookupSetter__(a){var b,c=e(this),d=f(a,!0);do if(b=h(c,d))return b.set;while(c=g(c))}})},function(a,b,c){var d=c(6);d(d.P+d.R,\\\"Map\\\",{toJSON:c(265)(\\\"Map\\\")})},function(a,b,c){var d=c(73),e=c(266);a.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+\\\"#toJSON isn't generic\\\");return e(this)}}},function(a,b,c){var d=c(198);a.exports=function(a,b){var c=[];return d(a,!1,c.push,c,b),c}},function(a,b,c){var d=c(6);d(d.P+d.R,\\\"Set\\\",{toJSON:c(265)(\\\"Set\\\")})},function(a,b,c){var d=c(6);d(d.S,\\\"System\\\",{global:c(2)})},function(a,b,c){var d=c(6),e=c(32);d(d.S,\\\"Error\\\",{isError:function isError(a){return\\\"Error\\\"===e(a)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{iaddh:function iaddh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f+(d>>>0)+((e&g|(e|g)&~(e+g>>>0))>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{isubh:function isubh(a,b,c,d){var e=a>>>0,f=b>>>0,g=c>>>0;return f-(d>>>0)-((~e&g|~(e^g)&e-g>>>0)>>>31)|0}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{imulh:function imulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>16,i=e>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>16)+((f*i>>>0)+(j&c)>>16)}})},function(a,b,c){var d=c(6);d(d.S,\\\"Math\\\",{umulh:function umulh(a,b){var c=65535,d=+a,e=+b,f=d&c,g=e&c,h=d>>>16,i=e>>>16,j=(h*g>>>0)+(f*g>>>16);return h*i+(j>>>16)+((f*i>>>0)+(j&c)>>>16)}})},function(a,b,c){var d=c(275),e=c(10),f=d.key,g=d.set;d.exp({defineMetadata:function defineMetadata(a,b,c,d){g(a,b,e(c),f(d))}})},function(a,b,d){var e=d(203),f=d(6),g=d(21)(\\\"metadata\\\"),h=g.store||(g.store=new(d(207))),i=function(a,b,d){var f=h.get(a);if(!f){if(!d)return c;h.set(a,f=new e)}var g=f.get(b);if(!g){if(!d)return c;f.set(b,g=new e)}return g},j=function(a,b,d){var e=i(b,d,!1);return e!==c&&e.has(a)},k=function(a,b,d){var e=i(b,d,!1);return e===c?c:e.get(a)},l=function(a,b,c,d){i(c,d,!0).set(a,b)},m=function(a,b){var c=i(a,b,!1),d=[];return c&&c.forEach(function(a,b){d.push(b)}),d},n=function(a){return a===c||\\\"symbol\\\"==typeof a?a:String(a)},o=function(a){f(f.S,\\\"Reflect\\\",a)};a.exports={store:h,map:i,has:j,get:k,set:l,keys:m,key:n,exp:o}},function(a,b,d){var e=d(275),f=d(10),g=e.key,h=e.map,i=e.store;e.exp({deleteMetadata:function deleteMetadata(a,b){var d=arguments.length<3?c:g(arguments[2]),e=h(f(b),d,!1);if(e===c||!e[\\\"delete\\\"](a))return!1;if(e.size)return!0;var j=i.get(b);return j[\\\"delete\\\"](d),!!j.size||i[\\\"delete\\\"](b)}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.get,j=e.key,k=function(a,b,d){var e=h(a,b,d);if(e)return i(a,b,d);var f=g(b);return null!==f?k(a,f,d):c};e.exp({getMetadata:function getMetadata(a,b){return k(a,f(b),arguments.length<3?c:j(arguments[2]))}})},function(a,b,d){var e=d(206),f=d(266),g=d(275),h=d(10),i=d(57),j=g.keys,k=g.key,l=function(a,b){var c=j(a,b),d=i(a);if(null===d)return c;var g=l(d,b);return g.length?c.length?f(new e(c.concat(g))):g:c};g.exp({getMetadataKeys:function getMetadataKeys(a){return l(h(a),arguments.length<2?c:k(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.get,h=e.key;e.exp({getOwnMetadata:function getOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.keys,h=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(a){return g(f(a),arguments.length<2?c:h(arguments[1]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(57),h=e.has,i=e.key,j=function(a,b,c){var d=h(a,b,c);if(d)return!0;var e=g(b);return null!==e&&j(a,e,c)};e.exp({hasMetadata:function hasMetadata(a,b){return j(a,f(b),arguments.length<3?c:i(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=e.has,h=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(a,b){return g(a,f(b),arguments.length<3?c:h(arguments[2]))}})},function(a,b,d){var e=d(275),f=d(10),g=d(19),h=e.key,i=e.set;e.exp({metadata:function metadata(a,b){return function decorator(d,e){i(a,b,(e!==c?f:g)(d),h(e))}}})},function(a,b,c){var d=c(6),e=c(201)(),f=c(2).process,g=\\\"process\\\"==c(32)(f);d(d.G,{asap:function asap(a){var b=g&&f.domain;e(b?b.bind(a):a)}})},function(a,b,d){var e=d(6),f=d(2),g=d(7),h=d(201)(),i=d(23)(\\\"observable\\\"),j=d(19),k=d(10),l=d(197),m=d(202),n=d(8),o=d(198),p=o.RETURN,q=function(a){return null==a?c:j(a)},r=function(a){var b=a._c;b&&(a._c=c,b())},s=function(a){return a._o===c},t=function(a){s(a)||(a._o=c,r(a))},u=function(a,b){k(a),this._c=c,this._o=a,a=new v(this);try{var d=b(a),e=d;null!=d&&(\\\"function\\\"==typeof d.unsubscribe?d=function(){e.unsubscribe()}:j(d),this._c=d)}catch(f){return void a.error(f)}s(this)&&r(this)};u.prototype=m({},{unsubscribe:function unsubscribe(){t(this)}});var v=function(a){this._s=a};v.prototype=m({},{next:function next(a){var b=this._s;if(!s(b)){var c=b._o;try{var d=q(c.next);if(d)return d.call(c,a)}catch(e){try{t(b)}finally{throw e}}}},error:function error(a){var b=this._s;if(s(b))throw a;var d=b._o;b._o=c;try{var e=q(d.error);if(!e)throw a;a=e.call(d,a)}catch(f){try{r(b)}finally{throw f}}return r(b),a},complete:function complete(a){var b=this._s;if(!s(b)){var d=b._o;b._o=c;try{var e=q(d.complete);a=e?e.call(d,a):c}catch(f){try{r(b)}finally{throw f}}return r(b),a}}});var w=function Observable(a){l(this,w,\\\"Observable\\\",\\\"_f\\\")._f=j(a)};m(w.prototype,{subscribe:function subscribe(a){return new u(a,this._f)},forEach:function forEach(a){var b=this;return new(g.Promise||f.Promise)(function(c,d){j(a);var e=b.subscribe({next:function(b){try{return a(b)}catch(c){d(c),e.unsubscribe()}},error:d,complete:c})})}}),m(w,{from:function from(a){var b=\\\"function\\\"==typeof this?this:w,c=q(k(a)[i]);if(c){var d=k(c.call(a));return d.constructor===b?d:new b(function(a){return d.subscribe(a)})}return new b(function(b){var c=!1;return h(function(){if(!c){try{if(o(a,!1,function(a){if(b.next(a),c)return p})===p)return}catch(d){if(c)throw d;return void b.error(d)}b.complete()}}),function(){c=!0}})},of:function of(){for(var a=0,b=arguments.length,c=Array(b);ag;)(c[g]=arguments[g++])===h&&(i=!0);return function(){var d,f=this,g=arguments.length,j=0,k=0;if(!i&&!g)return e(a,c,f);if(d=c.slice(),i)for(;b>j;j++)d[j]===h&&(d[j]=arguments[k++]);for(;g>k;)d.push(arguments[k++]);return e(a,d,f)}}},function(a,b,c){a.exports=c(2)}]),\\\"undefined\\\"!=typeof module&&module.exports?module.exports=a:\\\"function\\\"==typeof define&&define.amd?define(function(){return a}):b.core=a}(1,1);\\n//# sourceMappingURL=shim.min.js.map\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/raw-loader!./~/core-js/client/shim.min.js\n// module id = 800\n// module chunks = 1","module.exports = \"// mutationobserver-shim v0.3.2 (github.com/megawac/MutationObserver.js)\\n// Authors: Graeme Yeates (github.com/megawac) \\nwindow.MutationObserver=window.MutationObserver||function(w){function v(a){this.i=[];this.m=a}function I(a){(function c(){var d=a.takeRecords();d.length&&a.m(d,a);a.h=setTimeout(c,v._period)})()}function p(a){var b={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null},c;for(c in a)b[c]!==w&&a[c]!==w&&(b[c]=a[c]);return b}function J(a,b){var c=C(a,b);return function(d){var f=d.length,n;b.a&&3===a.nodeType&&\\na.nodeValue!==c.a&&d.push(new p({type:\\\"characterData\\\",target:a,oldValue:c.a}));b.b&&c.b&&A(d,a,c.b,b.f);if(b.c||b.g)n=K(d,a,c,b);if(n||d.length!==f)c=C(a,b)}}function L(a,b){return b.value}function M(a,b){return\\\"style\\\"!==b.name?b.value:a.style.cssText}function A(a,b,c,d){for(var f={},n=b.attributes,k,g,x=n.length;x--;)k=n[x],g=k.name,d&&d[g]===w||(D(b,k)!==c[g]&&a.push(p({type:\\\"attributes\\\",target:b,attributeName:g,oldValue:c[g],attributeNamespace:k.namespaceURI})),f[g]=!0);for(g in c)f[g]||a.push(p({target:b,\\ntype:\\\"attributes\\\",attributeName:g,oldValue:c[g]}))}function K(a,b,c,d){function f(b,c,f,k,y){var g=b.length-1;y=-~((g-y)/2);for(var h,l,e;e=b.pop();)h=f[e.j],l=k[e.l],d.c&&y&&Math.abs(e.j-e.l)>=g&&(a.push(p({type:\\\"childList\\\",target:c,addedNodes:[h],removedNodes:[h],nextSibling:h.nextSibling,previousSibling:h.previousSibling})),y--),d.b&&l.b&&A(a,h,l.b,d.f),d.a&&3===h.nodeType&&h.nodeValue!==l.a&&a.push(p({type:\\\"characterData\\\",target:h,oldValue:l.a})),d.g&&n(h,l)}function n(b,c){for(var g=b.childNodes,\\nq=c.c,x=g.length,v=q?q.length:0,h,l,e,m,t,z=0,u=0,r=0;u1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function k(a){C||(C=document.createElement(\\\"div\\\").style),C.animationTimingFunction=\\\"\\\",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(\\\"\\\"==b&&e())throw new TypeError(a+\\\" is not a valid value for easing\\\");return b}function l(a){if(\\\"linear\\\"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),{start:y,middle:z,end:A}[c[2]]);var d=B[a];return d?d:x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return G;var d=c.delay+a+c.endDelay;return b=Math.min(c.delay+a,d)?I:J}function p(a,b,c,d,e){switch(d){case H:return\\\"backwards\\\"==b||\\\"both\\\"==b?0:null;case J:return c-e;case I:return\\\"forwards\\\"==b||\\\"both\\\"==b?a:null;case G:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==H&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==I||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===I&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if(\\\"normal\\\"!==a&&\\\"reverse\\\"!==a){var e=b;\\\"alternate-reverse\\\"===a&&(e+=1),d=\\\"normal\\\",e!==1/0&&e%2!==0&&(d=\\\"reverse\\\")}return\\\"normal\\\"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v=\\\"backwards|forwards|both|none\\\".split(\\\"|\\\"),w=\\\"reverse|alternate|alternate-reverse\\\".split(\\\"|\\\"),x=function(a){return a};d.prototype={_setMember:function(b,c){this[\\\"_\\\"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember(\\\"delay\\\",a)},get delay(){return this._delay},set endDelay(a){this._setMember(\\\"endDelay\\\",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember(\\\"fill\\\",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\\\"iterationStart must be a non-negative number, received: \\\"+timing.iterationStart);this._setMember(\\\"iterationStart\\\",a)},get iterationStart(){return this._iterationStart},set duration(a){if(\\\"auto\\\"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError(\\\"duration must be non-negative or auto, received: \\\"+a);this._setMember(\\\"duration\\\",a)},get duration(){return this._duration},set direction(a){this._setMember(\\\"direction\\\",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember(\\\"easing\\\",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError(\\\"iterations must be non-negative, received: \\\"+a);this._setMember(\\\"iterations\\\",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),\\\"ease-in\\\":i(.42,0,1,1),\\\"ease-out\\\":i(0,0,.58,1),\\\"ease-in-out\\\":i(.42,0,.58,1),\\\"step-start\\\":j(1,y),\\\"step-middle\\\":j(1,z),\\\"step-end\\\":j(1,A)},C=null,D=\\\"\\\\\\\\s*(-?\\\\\\\\d+\\\\\\\\.?\\\\\\\\d*|-?\\\\\\\\.\\\\\\\\d+)\\\\\\\\s*\\\",E=new RegExp(\\\"cubic-bezier\\\\\\\\(\\\"+D+\\\",\\\"+D+\\\",\\\"+D+\\\",\\\"+D+\\\"\\\\\\\\)\\\"),F=/steps\\\\(\\\\s*(\\\\d+)\\\\s*,\\\\s*(start|middle|end)\\\\s*\\\\)/,G=0,H=1,I=2,J=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(c,f),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return\\\"display\\\"===a||0===a.lastIndexOf(\\\"animation\\\",0)||0===a.lastIndexOf(\\\"transition\\\",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in[\\\"easing\\\",\\\"offset\\\",\\\"composite\\\"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e1)throw new TypeError(\\\"Keyframe offsets must be between 0 and 1.\\\")}}else if(\\\"composite\\\"==d){if(\\\"add\\\"==f||\\\"accumulate\\\"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:\\\"NotSupportedError\\\",message:\\\"add compositing is not supported\\\"};if(\\\"replace\\\"!=f)throw new TypeError(\\\"Invalid composite mode \\\"+f+\\\".\\\")}else f=\\\"easing\\\"==d?a.normalizeEasing(f):\\\"\\\"+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing=\\\"linear\\\"),c}),g=!0,h=-(1/0),i=0;i=0&&a.offset<=1}),g||c(),d}var h={background:[\\\"backgroundImage\\\",\\\"backgroundPosition\\\",\\\"backgroundSize\\\",\\\"backgroundRepeat\\\",\\\"backgroundAttachment\\\",\\\"backgroundOrigin\\\",\\\"backgroundClip\\\",\\\"backgroundColor\\\"],border:[\\\"borderTopColor\\\",\\\"borderTopStyle\\\",\\\"borderTopWidth\\\",\\\"borderRightColor\\\",\\\"borderRightStyle\\\",\\\"borderRightWidth\\\",\\\"borderBottomColor\\\",\\\"borderBottomStyle\\\",\\\"borderBottomWidth\\\",\\\"borderLeftColor\\\",\\\"borderLeftStyle\\\",\\\"borderLeftWidth\\\"],borderBottom:[\\\"borderBottomWidth\\\",\\\"borderBottomStyle\\\",\\\"borderBottomColor\\\"],borderColor:[\\\"borderTopColor\\\",\\\"borderRightColor\\\",\\\"borderBottomColor\\\",\\\"borderLeftColor\\\"],borderLeft:[\\\"borderLeftWidth\\\",\\\"borderLeftStyle\\\",\\\"borderLeftColor\\\"],borderRadius:[\\\"borderTopLeftRadius\\\",\\\"borderTopRightRadius\\\",\\\"borderBottomRightRadius\\\",\\\"borderBottomLeftRadius\\\"],borderRight:[\\\"borderRightWidth\\\",\\\"borderRightStyle\\\",\\\"borderRightColor\\\"],borderTop:[\\\"borderTopWidth\\\",\\\"borderTopStyle\\\",\\\"borderTopColor\\\"],borderWidth:[\\\"borderTopWidth\\\",\\\"borderRightWidth\\\",\\\"borderBottomWidth\\\",\\\"borderLeftWidth\\\"],flex:[\\\"flexGrow\\\",\\\"flexShrink\\\",\\\"flexBasis\\\"],font:[\\\"fontFamily\\\",\\\"fontSize\\\",\\\"fontStyle\\\",\\\"fontVariant\\\",\\\"fontWeight\\\",\\\"lineHeight\\\"],margin:[\\\"marginTop\\\",\\\"marginRight\\\",\\\"marginBottom\\\",\\\"marginLeft\\\"],outline:[\\\"outlineColor\\\",\\\"outlineStyle\\\",\\\"outlineWidth\\\"],padding:[\\\"paddingTop\\\",\\\"paddingRight\\\",\\\"paddingBottom\\\",\\\"paddingLeft\\\"]},i=document.createElementNS(\\\"http://www.w3.org/1999/xhtml\\\",\\\"div\\\"),j={thin:\\\"1px\\\",medium:\\\"3px\\\",thick:\\\"5px\\\"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{\\\"xx-small\\\":\\\"60%\\\",\\\"x-small\\\":\\\"75%\\\",small:\\\"89%\\\",medium:\\\"100%\\\",large:\\\"120%\\\",\\\"x-large\\\":\\\"150%\\\",\\\"xx-large\\\":\\\"200%\\\"},fontWeight:{normal:\\\"400\\\",bold:\\\"700\\\"},outlineWidth:j,textShadow:{none:\\\"0px 0px 0px transparent\\\"},boxShadow:{none:\\\"0px 0px 0px 0px transparent\\\"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?\\\"are\\\":\\\"is\\\",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g=a.applyFrom&&cthis._surrogateStyle.length;)this._length--,Object.defineProperty(this,this._length,{configurable:!0,enumerable:!1,value:void 0})},_set:function(a,b){this._style[a]=b,this._isAnimatedProperty[a]=!0},_clear:function(a){this._style[a]=this._surrogateStyle[a],delete this._isAnimatedProperty[a]}};for(var i in g)d.prototype[i]=function(a,b){return function(){var c=this._surrogateStyle[a].apply(this._surrogateStyle,arguments);return b&&(this._isAnimatedProperty[arguments[0]]||this._style[a].apply(this._style,arguments),this._updateIndices()),c}}(i,i in h);for(var j in document.documentElement.style)j in f||j in g||!function(a){c(d.prototype,a,{get:function(){return this._surrogateStyle[a]},set:function(b){this._surrogateStyle[a]=b,this._updateIndices(),this._isAnimatedProperty[a]||(this._style[a]=b)}})}(j);a.apply=function(b,c,d){e(b),b.style._set(a.propertyName(c),d)},a.clear=function(b,c){b._webAnimationsPatchedStyle&&b.style._clear(a.propertyName(c))}}(d,f),function(a){window.Element.prototype.animate=function(b,c){var d=\\\"\\\";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(d),function(a,b){function c(a,b,d){if(\\\"number\\\"==typeof a&&\\\"number\\\"==typeof b)return a*(1-d)+b*d;if(\\\"boolean\\\"==typeof a&&\\\"boolean\\\"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,\\\"paused\\\"!=this.playState&&\\\"idle\\\"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?\\\"idle\\\":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?\\\"pending\\\":this._paused?\\\"paused\\\":this._isFinished?\\\"finished\\\":\\\"running\\\"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException(\\\"Unable to rewind negative playback rate animation with infinite duration\\\",\\\"InvalidStateError\\\");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._isFinished=!0,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){\\\"function\\\"==typeof b&&\\\"finish\\\"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if(\\\"finish\\\"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();a.indexOf(this)===-1&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);b!==-1&&a.splice(b,1)}}}(c,d,f),function(a,b,c){function d(a){var b=j;j=[],a1e-4?(w=.5/Math.sqrt(y),x=[(s[2][1]-s[1][2])*w,(s[0][2]-s[2][0])*w,(s[1][0]-s[0][1])*w,.25/w]):s[0][0]>s[1][1]&&s[0][0]>s[2][2]?(w=2*Math.sqrt(1+s[0][0]-s[1][1]-s[2][2]),x=[.25*w,(s[0][1]+s[1][0])/w,(s[0][2]+s[2][0])/w,(s[2][1]-s[1][2])/w]):s[1][1]>s[2][2]?(w=2*Math.sqrt(1+s[1][1]-s[0][0]-s[2][2]),x=[(s[0][1]+s[1][0])/w,.25*w,(s[1][2]+s[2][1])/w,(s[0][2]-s[2][0])/w]):(w=2*Math.sqrt(1+s[2][2]-s[0][0]-s[1][1]),x=[(s[0][2]+s[2][0])/w,(s[1][2]+s[2][1])/w,.25*w,(s[1][0]-s[0][1])/w]),[r,t,u,x,n]}return j}();a.dot=c,a.makeMatrixDecomposition=h}(d,f),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\\\\s*/,\\\"\\\");var c=a(b);if(c)return[c[0],c[1].replace(/^\\\\s*/,\\\"\\\")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||\\\"\\\"==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;dd?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;e=1?b:\\\"visible\\\"}]}a.addPropertiesHandler(String,c,[\\\"visibility\\\"])}(d),function(a,b){function c(a){a=a.trim(),f.fillStyle=\\\"#000\\\",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle=\\\"#fff\\\",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),\\\"rgba(\\\"+b.join(\\\",\\\")+\\\")\\\"}]}var e=document.createElementNS(\\\"http://www.w3.org/1999/xhtml\\\",\\\"canvas\\\");e.width=e.height=1;var f=e.getContext(\\\"2d\\\");a.addPropertiesHandler(c,d,[\\\"background-color\\\",\\\"border-bottom-color\\\",\\\"border-left-color\\\",\\\"border-right-color\\\",\\\"border-top-color\\\",\\\"color\\\",\\\"outline-color\\\",\\\"text-decoration-color\\\"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),\\\"0\\\"==b&&\\\"px\\\".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\\\\(/g,\\\"(\\\");var c={};b=b.replace(a,function(a){return c[a]=null,\\\"U\\\"+a});for(var d=\\\"U(\\\"+a.source+\\\")\\\",e=b.replace(/[-+]?(\\\\d*\\\\.)?\\\\d+/g,\\\"N\\\").replace(new RegExp(\\\"N\\\"+d,\\\"g\\\"),\\\"D\\\").replace(/\\\\s[+-]\\\\s/g,\\\"O\\\").replace(/\\\\s/g,\\\"\\\"),f=[/N\\\\*(D)/g,/(N|D)[*\\\\/]N/g,/(N|D)O\\\\1/g,/\\\\((N|D)\\\\)/g],g=0;g1?\\\"calc(\\\"+c+\\\")\\\":c}]}var f=\\\"px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc\\\",g=c.bind(null,new RegExp(f,\\\"g\\\")),h=c.bind(null,new RegExp(f+\\\"|%\\\",\\\"g\\\")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);if(b&&\\\"\\\"==b[1])return b[0]},n=a.mergeNestedRepeated.bind(void 0,d,\\\" \\\"),o=a.mergeNestedRepeated.bind(void 0,n,\\\",\\\");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,[\\\"background-size\\\"]),a.addPropertiesHandler(h,d,[\\\"border-bottom-width\\\",\\\"border-image-width\\\",\\\"border-left-width\\\",\\\"border-right-width\\\",\\\"border-top-width\\\",\\\"flex-basis\\\",\\\"font-size\\\",\\\"height\\\",\\\"line-height\\\",\\\"max-height\\\",\\\"max-width\\\",\\\"outline-width\\\",\\\"width\\\"]),a.addPropertiesHandler(h,e,[\\\"border-bottom-left-radius\\\",\\\"border-bottom-right-radius\\\",\\\"border-top-left-radius\\\",\\\"border-top-right-radius\\\",\\\"bottom\\\",\\\"left\\\",\\\"letter-spacing\\\",\\\"margin-bottom\\\",\\\"margin-left\\\",\\\"margin-right\\\",\\\"margin-top\\\",\\\"min-height\\\",\\\"min-width\\\",\\\"outline-offset\\\",\\\"padding-bottom\\\",\\\"padding-left\\\",\\\"padding-right\\\",\\\"padding-top\\\",\\\"perspective\\\",\\\"right\\\",\\\"shape-margin\\\",\\\"text-indent\\\",\\\"top\\\",\\\"vertical-align\\\",\\\"word-spacing\\\"])}(d,f),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\\\\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\\\\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return\\\"auto\\\"==b||\\\"auto\\\"==c?[!0,!1,function(d){var e=d?b:c;if(\\\"auto\\\"==e)return\\\"auto\\\";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return\\\"rect(\\\"+a+\\\")\\\"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,\\\", \\\");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,[\\\"clip\\\"])}(d,f),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(b=b.toLowerCase().trim(),\\\"none\\\"==b)return[];for(var c,d=/\\\\s*(\\\\w+)\\\\(([^)]*)\\\\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(\\\",\\\"),j=h[0];if(j.length900||b%100!==0))return b}function c(b){return b=100*Math.round(b/100),b=a.clamp(100,900,b),400===b?\\\"normal\\\":700===b?\\\"bold\\\":String(b)}function d(a,b){return[a,b,c]}a.addPropertiesHandler(b,d,[\\\"font-weight\\\"])}(d),function(a){function b(a){var b={};for(var c in a)b[c]=-a[c];return b}function c(b){return a.consumeToken(/^(left|center|right|top|bottom)\\\\b/i,b)||a.consumeLengthOrPercent(b)}function d(b,d){var e=a.consumeRepeated(c,/^/,d);if(e&&\\\"\\\"==e[1]){var f=e[0];if(f[0]=f[0]||\\\"center\\\",f[1]=f[1]||\\\"center\\\",3==b&&(f[2]=f[2]||{px:0}),f.length==b){if(/top|bottom/.test(f[0])||/left|right/.test(f[1])){var h=f[0];f[0]=f[1],f[1]=h}if(/left|right|center|Object/.test(f[0])&&/top|bottom|center|Object/.test(f[1]))return f.map(function(a){return\\\"object\\\"==typeof a?a:g[a]})}}}function e(d){var e=a.consumeRepeated(c,/^/,d);if(e){for(var f=e[0],h=[{\\\"%\\\":50},{\\\"%\\\":50}],i=0,j=!1,k=0;k=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue(\\\"opacity\\\"),f=\\\"0\\\"==e?\\\"1\\\":\\\"0\\\";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue(\\\"opacity\\\")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(c),b.true=a}({},function(){return this}());\\n//# sourceMappingURL=web-animations.min.js.map\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/raw-loader!./~/web-animations-js/web-animations.min.js\n// module id = 819\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/src/ui/static/styles.bundle.js b/src/ui/static/styles.bundle.js new file mode 100644 index 000000000..21468d2ce --- /dev/null +++ b/src/ui/static/styles.bundle.js @@ -0,0 +1,450 @@ +webpackJsonp([2,4],{ + +/***/ 276: +/***/ (function(module, exports) { + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +module.exports = function() { + var list = []; + + // return the list of modules as css string + list.toString = function toString() { + var result = []; + for(var i = 0; i < this.length; i++) { + var item = this[i]; + if(item[2]) { + result.push("@media " + item[2] + "{" + item[1] + "}"); + } else { + result.push(item[1]); + } + } + return result.join(""); + }; + + // import a list of modules into the list + list.i = function(modules, mediaQuery) { + if(typeof modules === "string") + modules = [[null, modules, ""]]; + var alreadyImportedModules = {}; + for(var i = 0; i < this.length; i++) { + var id = this[i][0]; + if(typeof id === "number") + alreadyImportedModules[id] = true; + } + for(i = 0; i < modules.length; i++) { + var item = modules[i]; + // skip already imported module + // this implementation is not 100% perfect for weird media query combinations + // when a module is imported multiple times with different media queries. + // I hope this will never occur (Hey this way we have smaller bundles) + if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { + if(mediaQuery && !item[2]) { + item[2] = mediaQuery; + } else if(mediaQuery) { + item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; + } + list.push(item); + } + } + }; + return list; +}; + + +/***/ }), + +/***/ 290: +/***/ (function(module, exports) { + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var stylesInDom = {}, + memoize = function(fn) { + var memo; + return function () { + if (typeof memo === "undefined") memo = fn.apply(this, arguments); + return memo; + }; + }, + isOldIE = memoize(function() { + return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase()); + }), + getHeadElement = memoize(function () { + return document.head || document.getElementsByTagName("head")[0]; + }), + singletonElement = null, + singletonCounter = 0, + styleElementsInsertedAtTop = []; + +module.exports = function(list, options) { + if(typeof DEBUG !== "undefined" && DEBUG) { + if(typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); + } + + options = options || {}; + // Force single-tag solution on IE6-9, which has a hard limit on the # of + + + could become: + + +
    + +
    + + Note the use of @polyfill in the comment above a ShadowDOM specific style + declaration. This is a directive to the styling shim to use the selector + in comments in lieu of the next selector when running under polyfill. +*/ +var ShadowCss = (function () { + function ShadowCss() { + this.strictStyling = true; + } + /** + * @param {?} cssText + * @param {?} selector + * @param {?=} hostSelector + * @return {?} + */ + ShadowCss.prototype.shimCssText = function (cssText, selector, hostSelector) { + if (hostSelector === void 0) { hostSelector = ''; } + var /** @type {?} */ sourceMappingUrl = extractSourceMappingUrl(cssText); + cssText = stripComments(cssText); + cssText = this._insertDirectives(cssText); + return this._scopeCssText(cssText, selector, hostSelector) + sourceMappingUrl; + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._insertDirectives = function (cssText) { + cssText = this._insertPolyfillDirectivesInCssText(cssText); + return this._insertPolyfillRulesInCssText(cssText); + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._insertPolyfillDirectivesInCssText = function (cssText) { + // Difference with webcomponents.js: does not handle comments + return cssText.replace(_cssContentNextSelectorRe, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i - 0] = arguments[_i]; + } + return m[2] + '{'; + }); + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._insertPolyfillRulesInCssText = function (cssText) { + // Difference with webcomponents.js: does not handle comments + return cssText.replace(_cssContentRuleRe, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i - 0] = arguments[_i]; + } + var /** @type {?} */ rule = m[0].replace(m[1], '').replace(m[2], ''); + return m[4] + rule; + }); + }; + /** + * @param {?} cssText + * @param {?} scopeSelector + * @param {?} hostSelector + * @return {?} + */ + ShadowCss.prototype._scopeCssText = function (cssText, scopeSelector, hostSelector) { + var /** @type {?} */ unscopedRules = this._extractUnscopedRulesFromCssText(cssText); + // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively + cssText = this._insertPolyfillHostInCssText(cssText); + cssText = this._convertColonHost(cssText); + cssText = this._convertColonHostContext(cssText); + cssText = this._convertShadowDOMSelectors(cssText); + if (scopeSelector) { + cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector); + } + cssText = cssText + '\n' + unscopedRules; + return cssText.trim(); + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._extractUnscopedRulesFromCssText = function (cssText) { + // Difference with webcomponents.js: does not handle comments + var /** @type {?} */ r = ''; + var /** @type {?} */ m; + _cssContentUnscopedRuleRe.lastIndex = 0; + while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) { + var /** @type {?} */ rule = m[0].replace(m[2], '').replace(m[1], m[4]); + r += rule + '\n\n'; + } + return r; + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._convertColonHost = function (cssText) { + return this._convertColonRule(cssText, _cssColonHostRe, this._colonHostPartReplacer); + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._convertColonHostContext = function (cssText) { + return this._convertColonRule(cssText, _cssColonHostContextRe, this._colonHostContextPartReplacer); + }; + /** + * @param {?} cssText + * @param {?} regExp + * @param {?} partReplacer + * @return {?} + */ + ShadowCss.prototype._convertColonRule = function (cssText, regExp, partReplacer) { + // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule + return cssText.replace(regExp, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i - 0] = arguments[_i]; + } + if (m[2]) { + var /** @type {?} */ parts = m[2].split(','); + var /** @type {?} */ r = []; + for (var /** @type {?} */ i = 0; i < parts.length; i++) { + var /** @type {?} */ p = parts[i].trim(); + if (!p) + break; + r.push(partReplacer(_polyfillHostNoCombinator, p, m[3])); + } + return r.join(','); + } + else { + return _polyfillHostNoCombinator + m[3]; + } + }); + }; + /** + * @param {?} host + * @param {?} part + * @param {?} suffix + * @return {?} + */ + ShadowCss.prototype._colonHostContextPartReplacer = function (host, part, suffix) { + if (part.indexOf(_polyfillHost) > -1) { + return this._colonHostPartReplacer(host, part, suffix); + } + else { + return host + part + suffix + ', ' + part + ' ' + host + suffix; + } + }; + /** + * @param {?} host + * @param {?} part + * @param {?} suffix + * @return {?} + */ + ShadowCss.prototype._colonHostPartReplacer = function (host, part, suffix) { + return host + part.replace(_polyfillHost, '') + suffix; + }; + /** + * @param {?} cssText + * @return {?} + */ + ShadowCss.prototype._convertShadowDOMSelectors = function (cssText) { + return _shadowDOMSelectorsRe.reduce(function (result, pattern) { return result.replace(pattern, ' '); }, cssText); + }; + /** + * @param {?} cssText + * @param {?} scopeSelector + * @param {?} hostSelector + * @return {?} + */ + ShadowCss.prototype._scopeSelectors = function (cssText, scopeSelector, hostSelector) { + var _this = this; + return processRules(cssText, function (rule) { + var /** @type {?} */ selector = rule.selector; + var /** @type {?} */ content = rule.content; + if (rule.selector[0] != '@') { + selector = + _this._scopeSelector(rule.selector, scopeSelector, hostSelector, _this.strictStyling); + } + else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') || + rule.selector.startsWith('@page') || rule.selector.startsWith('@document')) { + content = _this._scopeSelectors(rule.content, scopeSelector, hostSelector); + } + return new CssRule(selector, content); + }); + }; + /** + * @param {?} selector + * @param {?} scopeSelector + * @param {?} hostSelector + * @param {?} strict + * @return {?} + */ + ShadowCss.prototype._scopeSelector = function (selector, scopeSelector, hostSelector, strict) { + var _this = this; + return selector.split(',') + .map(function (part) { return part.trim().split(_shadowDeepSelectors); }) + .map(function (deepParts) { + var shallowPart = deepParts[0], otherParts = deepParts.slice(1); + var /** @type {?} */ applyScope = function (shallowPart) { + if (_this._selectorNeedsScoping(shallowPart, scopeSelector)) { + return strict ? + _this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) : + _this._applySelectorScope(shallowPart, scopeSelector, hostSelector); + } + else { + return shallowPart; + } + }; + return [applyScope(shallowPart)].concat(otherParts).join(' '); + }) + .join(', '); + }; + /** + * @param {?} selector + * @param {?} scopeSelector + * @return {?} + */ + ShadowCss.prototype._selectorNeedsScoping = function (selector, scopeSelector) { + var /** @type {?} */ re = this._makeScopeMatcher(scopeSelector); + return !re.test(selector); + }; + /** + * @param {?} scopeSelector + * @return {?} + */ + ShadowCss.prototype._makeScopeMatcher = function (scopeSelector) { + var /** @type {?} */ lre = /\[/g; + var /** @type {?} */ rre = /\]/g; + scopeSelector = scopeSelector.replace(lre, '\\[').replace(rre, '\\]'); + return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm'); + }; + /** + * @param {?} selector + * @param {?} scopeSelector + * @param {?} hostSelector + * @return {?} + */ + ShadowCss.prototype._applySelectorScope = function (selector, scopeSelector, hostSelector) { + // Difference from webcomponents.js: scopeSelector could not be an array + return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector); + }; + /** + * @param {?} selector + * @param {?} scopeSelector + * @param {?} hostSelector + * @return {?} + */ + ShadowCss.prototype._applySimpleSelectorScope = function (selector, scopeSelector, hostSelector) { + // In Android browser, the lastIndex is not reset when the regex is used in String.replace() + _polyfillHostRe.lastIndex = 0; + if (_polyfillHostRe.test(selector)) { + var /** @type {?} */ replaceBy_1 = this.strictStyling ? "[" + hostSelector + "]" : scopeSelector; + return selector + .replace(_polyfillHostNoCombinatorRe, function (hnc, selector) { + return selector.replace(/([^:]*)(:*)(.*)/, function (_, before, colon, after) { + return before + replaceBy_1 + colon + after; + }); + }) + .replace(_polyfillHostRe, replaceBy_1 + ' '); + } + return scopeSelector + ' ' + selector; + }; + /** + * @param {?} selector + * @param {?} scopeSelector + * @param {?} hostSelector + * @return {?} + */ + ShadowCss.prototype._applyStrictSelectorScope = function (selector, scopeSelector, hostSelector) { + var _this = this; + var /** @type {?} */ isRe = /\[is=([^\]]*)\]/g; + scopeSelector = scopeSelector.replace(isRe, function (_) { + var parts = []; + for (var _i = 1; _i < arguments.length; _i++) { + parts[_i - 1] = arguments[_i]; + } + return parts[0]; + }); + var /** @type {?} */ attrName = '[' + scopeSelector + ']'; + var /** @type {?} */ _scopeSelectorPart = function (p) { + var /** @type {?} */ scopedP = p.trim(); + if (!scopedP) { + return ''; + } + if (p.indexOf(_polyfillHostNoCombinator) > -1) { + scopedP = _this._applySimpleSelectorScope(p, scopeSelector, hostSelector); + } + else { + // remove :host since it should be unnecessary + var /** @type {?} */ t = p.replace(_polyfillHostRe, ''); + if (t.length > 0) { + var /** @type {?} */ matches = t.match(/([^:]*)(:*)(.*)/); + if (matches) { + scopedP = matches[1] + attrName + matches[2] + matches[3]; + } + } + } + return scopedP; + }; + var /** @type {?} */ safeContent = new SafeSelector(selector); + selector = safeContent.content(); + var /** @type {?} */ scopedSelector = ''; + var /** @type {?} */ startIndex = 0; + var /** @type {?} */ res; + var /** @type {?} */ sep = /( |>|\+|~(?!=))\s*/g; + var /** @type {?} */ scopeAfter = selector.indexOf(_polyfillHostNoCombinator); + while ((res = sep.exec(selector)) !== null) { + var /** @type {?} */ separator = res[1]; + var /** @type {?} */ part = selector.slice(startIndex, res.index).trim(); + // if a selector appears before :host-context it should not be shimmed as it + // matches on ancestor elements and not on elements in the host's shadow + var /** @type {?} */ scopedPart = startIndex >= scopeAfter ? _scopeSelectorPart(part) : part; + scopedSelector += scopedPart + " " + separator + " "; + startIndex = sep.lastIndex; + } + scopedSelector += _scopeSelectorPart(selector.substring(startIndex)); + // replace the placeholders with their original values + return safeContent.restore(scopedSelector); + }; + /** + * @param {?} selector + * @return {?} + */ + ShadowCss.prototype._insertPolyfillHostInCssText = function (selector) { + return selector.replace(_colonHostContextRe, _polyfillHostContext) + .replace(_colonHostRe, _polyfillHost); + }; + return ShadowCss; +}()); +function ShadowCss_tsickle_Closure_declarations() { + /** @type {?} */ + ShadowCss.prototype.strictStyling; +} +var SafeSelector = (function () { + /** + * @param {?} selector + */ + function SafeSelector(selector) { + var _this = this; + this.placeholders = []; + this.index = 0; + // Replaces attribute selectors with placeholders. + // The WS in [attr="va lue"] would otherwise be interpreted as a selector separator. + selector = selector.replace(/(\[[^\]]*\])/g, function (_, keep) { + var replaceBy = "__ph-" + _this.index + "__"; + _this.placeholders.push(keep); + _this.index++; + return replaceBy; + }); + // Replaces the expression in `:nth-child(2n + 1)` with a placeholder. + // WS and "+" would otherwise be interpreted as selector separators. + this._content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, function (_, pseudo, exp) { + var replaceBy = "__ph-" + _this.index + "__"; + _this.placeholders.push(exp); + _this.index++; + return pseudo + replaceBy; + }); + } + ; + /** + * @param {?} content + * @return {?} + */ + SafeSelector.prototype.restore = function (content) { + var _this = this; + return content.replace(/__ph-(\d+)__/g, function (ph, index) { return _this.placeholders[+index]; }); + }; + /** + * @return {?} + */ + SafeSelector.prototype.content = function () { return this._content; }; + return SafeSelector; +}()); +function SafeSelector_tsickle_Closure_declarations() { + /** @type {?} */ + SafeSelector.prototype.placeholders; + /** @type {?} */ + SafeSelector.prototype.index; + /** @type {?} */ + SafeSelector.prototype._content; +} +var /** @type {?} */ _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim; +var /** @type {?} */ _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; +var /** @type {?} */ _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; +var /** @type {?} */ _polyfillHost = '-shadowcsshost'; +// note: :host-context pre-processed to -shadowcsshostcontext. +var /** @type {?} */ _polyfillHostContext = '-shadowcsscontext'; +var /** @type {?} */ _parenSuffix = ')(?:\\((' + + '(?:\\([^)(]*\\)|[^)(]*)+?' + + ')\\))?([^,{]*)'; +var /** @type {?} */ _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim'); +var /** @type {?} */ _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim'); +var /** @type {?} */ _polyfillHostNoCombinator = _polyfillHost + '-no-combinator'; +var /** @type {?} */ _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/; +var /** @type {?} */ _shadowDOMSelectorsRe = [ + /::shadow/g, + /::content/g, + // Deprecated selectors + /\/shadow-deep\//g, + /\/shadow\//g, +]; +var /** @type {?} */ _shadowDeepSelectors = /(?:>>>)|(?:\/deep\/)/g; +var /** @type {?} */ _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$'; +var /** @type {?} */ _polyfillHostRe = /-shadowcsshost/gim; +var /** @type {?} */ _colonHostRe = /:host/gim; +var /** @type {?} */ _colonHostContextRe = /:host-context/gim; +var /** @type {?} */ _commentRe = /\/\*\s*[\s\S]*?\*\//g; +/** + * @param {?} input + * @return {?} + */ +function stripComments(input) { + return input.replace(_commentRe, ''); +} +// all comments except inline source mapping +var /** @type {?} */ _sourceMappingUrlRe = /\/\*\s*#\s*sourceMappingURL=[\s\S]+?\*\//; +/** + * @param {?} input + * @return {?} + */ +function extractSourceMappingUrl(input) { + var /** @type {?} */ matcher = input.match(_sourceMappingUrlRe); + return matcher ? matcher[0] : ''; +} +var /** @type {?} */ _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g; +var /** @type {?} */ _curlyRe = /([{}])/g; +var /** @type {?} */ OPEN_CURLY = '{'; +var /** @type {?} */ CLOSE_CURLY = '}'; +var /** @type {?} */ BLOCK_PLACEHOLDER = '%BLOCK%'; +var CssRule = (function () { + /** + * @param {?} selector + * @param {?} content + */ + function CssRule(selector, content) { + this.selector = selector; + this.content = content; + } + return CssRule; +}()); +function CssRule_tsickle_Closure_declarations() { + /** @type {?} */ + CssRule.prototype.selector; + /** @type {?} */ + CssRule.prototype.content; +} +/** + * @param {?} input + * @param {?} ruleCallback + * @return {?} + */ +function processRules(input, ruleCallback) { + var /** @type {?} */ inputWithEscapedBlocks = escapeBlocks(input); + var /** @type {?} */ nextBlockIndex = 0; + return inputWithEscapedBlocks.escapedString.replace(_ruleRe, function () { + var m = []; + for (var _i = 0; _i < arguments.length; _i++) { + m[_i - 0] = arguments[_i]; + } + var /** @type {?} */ selector = m[2]; + var /** @type {?} */ content = ''; + var /** @type {?} */ suffix = m[4]; + var /** @type {?} */ contentPrefix = ''; + if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) { + content = inputWithEscapedBlocks.blocks[nextBlockIndex++]; + suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1); + contentPrefix = '{'; + } + var /** @type {?} */ rule = ruleCallback(new CssRule(selector, content)); + return "" + m[1] + rule.selector + m[3] + contentPrefix + rule.content + suffix; + }); +} +var StringWithEscapedBlocks = (function () { + /** + * @param {?} escapedString + * @param {?} blocks + */ + function StringWithEscapedBlocks(escapedString, blocks) { + this.escapedString = escapedString; + this.blocks = blocks; + } + return StringWithEscapedBlocks; +}()); +function StringWithEscapedBlocks_tsickle_Closure_declarations() { + /** @type {?} */ + StringWithEscapedBlocks.prototype.escapedString; + /** @type {?} */ + StringWithEscapedBlocks.prototype.blocks; +} +/** + * @param {?} input + * @return {?} + */ +function escapeBlocks(input) { + var /** @type {?} */ inputParts = input.split(_curlyRe); + var /** @type {?} */ resultParts = []; + var /** @type {?} */ escapedBlocks = []; + var /** @type {?} */ bracketCount = 0; + var /** @type {?} */ currentBlockParts = []; + for (var /** @type {?} */ partIndex = 0; partIndex < inputParts.length; partIndex++) { + var /** @type {?} */ part = inputParts[partIndex]; + if (part == CLOSE_CURLY) { + bracketCount--; + } + if (bracketCount > 0) { + currentBlockParts.push(part); + } + else { + if (currentBlockParts.length > 0) { + escapedBlocks.push(currentBlockParts.join('')); + resultParts.push(BLOCK_PLACEHOLDER); + currentBlockParts = []; + } + resultParts.push(part); + } + if (part == OPEN_CURLY) { + bracketCount++; + } + } + if (currentBlockParts.length > 0) { + escapedBlocks.push(currentBlockParts.join('')); + resultParts.push(BLOCK_PLACEHOLDER); + } + return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks); +} +//# sourceMappingURL=shadow_css.js.map + +/***/ }), +/* 530 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* unused harmony export VERSION */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * @stable + */ +var /** @type {?} */ VERSION = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["Version"]('2.4.1'); +//# sourceMappingURL=version.js.map + +/***/ }), +/* 531 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__compile_metadata__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__compiler_util_identifier_util__ = __webpack_require__(42); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__identifiers__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__output_output_ast__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util__ = __webpack_require__(76); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CompilePipe; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + +var CompilePipe = (function () { + /** + * @param {?} view + * @param {?} meta + */ + function CompilePipe(view, meta) { + var _this = this; + this.view = view; + this.meta = meta; + this._purePipeProxyCount = 0; + this.instance = __WEBPACK_IMPORTED_MODULE_3__output_output_ast__["e" /* THIS_EXPR */].prop("_pipe_" + meta.name + "_" + view.pipeCount++); + var deps = this.meta.type.diDeps.map(function (diDep) { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compile_metadata__["j" /* tokenReference */])(diDep.token) === __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__identifiers__["e" /* resolveIdentifier */])(__WEBPACK_IMPORTED_MODULE_2__identifiers__["b" /* Identifiers */].ChangeDetectorRef)) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util__["c" /* getPropertyInView */])(__WEBPACK_IMPORTED_MODULE_3__output_output_ast__["e" /* THIS_EXPR */].prop('ref'), _this.view, _this.view.componentView); + } + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util__["b" /* injectFromViewParentInjector */])(view, diDep.token, false); + }); + this.view.fields.push(new __WEBPACK_IMPORTED_MODULE_3__output_output_ast__["c" /* ClassField */](this.instance.name, __WEBPACK_IMPORTED_MODULE_3__output_output_ast__["d" /* importType */](this.meta.type))); + this.view.createMethod.resetDebugInfo(null, null); + this.view.createMethod.addStmt(__WEBPACK_IMPORTED_MODULE_3__output_output_ast__["e" /* THIS_EXPR */].prop(this.instance.name) + .set(__WEBPACK_IMPORTED_MODULE_3__output_output_ast__["g" /* importExpr */](this.meta.type).instantiate(deps)) + .toStmt()); + } + /** + * @param {?} view + * @param {?} name + * @param {?} args + * @return {?} + */ + CompilePipe.call = function (view, name, args) { + var /** @type {?} */ compView = view.componentView; + var /** @type {?} */ meta = _findPipeMeta(compView, name); + var /** @type {?} */ pipe; + if (meta.pure) { + // pure pipes live on the component view + pipe = compView.purePipes.get(name); + if (!pipe) { + pipe = new CompilePipe(compView, meta); + compView.purePipes.set(name, pipe); + compView.pipes.push(pipe); + } + } + else { + // Non pure pipes live on the view that called it + pipe = new CompilePipe(view, meta); + view.pipes.push(pipe); + } + return pipe._call(view, args); + }; + Object.defineProperty(CompilePipe.prototype, "pure", { + /** + * @return {?} + */ + get: function () { return this.meta.pure; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} callingView + * @param {?} args + * @return {?} + */ + CompilePipe.prototype._call = function (callingView, args) { + if (this.meta.pure) { + // PurePipeProxies live on the view that called them. + var /** @type {?} */ purePipeProxyInstance = __WEBPACK_IMPORTED_MODULE_3__output_output_ast__["e" /* THIS_EXPR */].prop(this.instance.name + "_" + this._purePipeProxyCount++); + var /** @type {?} */ pipeInstanceSeenFromPureProxy = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util__["c" /* getPropertyInView */])(this.instance, callingView, this.view); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compiler_util_identifier_util__["c" /* createPureProxy */])(pipeInstanceSeenFromPureProxy.prop('transform') + .callMethod(__WEBPACK_IMPORTED_MODULE_3__output_output_ast__["O" /* BuiltinMethod */].Bind, [pipeInstanceSeenFromPureProxy]), args.length, purePipeProxyInstance, { fields: callingView.fields, ctorStmts: callingView.createMethod }); + return __WEBPACK_IMPORTED_MODULE_3__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_2__identifiers__["b" /* Identifiers */].castByValue)) + .callFn([purePipeProxyInstance, pipeInstanceSeenFromPureProxy.prop('transform')]) + .callFn(args); + } + else { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__util__["c" /* getPropertyInView */])(this.instance, callingView, this.view).callMethod('transform', args); + } + }; + return CompilePipe; +}()); +function CompilePipe_tsickle_Closure_declarations() { + /** @type {?} */ + CompilePipe.prototype.instance; + /** @type {?} */ + CompilePipe.prototype._purePipeProxyCount; + /** @type {?} */ + CompilePipe.prototype.view; + /** @type {?} */ + CompilePipe.prototype.meta; +} +/** + * @param {?} view + * @param {?} name + * @return {?} + */ +function _findPipeMeta(view, name) { + var /** @type {?} */ pipeMeta = null; + for (var /** @type {?} */ i = view.pipeMetas.length - 1; i >= 0; i--) { + var /** @type {?} */ localPipeMeta = view.pipeMetas[i]; + if (localPipeMeta.name == name) { + pipeMeta = localPipeMeta; + break; + } + } + if (!pipeMeta) { + throw new Error("Illegal state: Could not find pipe " + name + " although the parser should have detected this error!"); + } + return pipeMeta; +} +//# sourceMappingURL=compile_pipe.js.map + +/***/ }), +/* 532 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__compiler_util_expression_converter__ = __webpack_require__(101); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__compiler_util_identifier_util__ = __webpack_require__(42); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directive_wrapper_compiler__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__identifiers__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__output_output_ast__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__compile_method__ = __webpack_require__(204); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util__ = __webpack_require__(76); +/* harmony export (immutable) */ __webpack_exports__["a"] = bindOutputs; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + +/** + * @param {?} boundEvents + * @param {?} directives + * @param {?} compileElement + * @param {?} bindToRenderer + * @return {?} + */ +function bindOutputs(boundEvents, directives, compileElement, bindToRenderer) { + var /** @type {?} */ usedEvents = collectEvents(boundEvents, directives); + if (!usedEvents.size) { + return false; + } + if (bindToRenderer) { + subscribeToRenderEvents(usedEvents, compileElement); + } + subscribeToDirectiveEvents(usedEvents, directives, compileElement); + generateHandleEventMethod(boundEvents, directives, compileElement); + return true; +} +/** + * @param {?} boundEvents + * @param {?} directives + * @return {?} + */ +function collectEvents(boundEvents, directives) { + var /** @type {?} */ usedEvents = new Map(); + boundEvents.forEach(function (event) { usedEvents.set(event.fullName, event); }); + directives.forEach(function (dirAst) { + dirAst.hostEvents.forEach(function (event) { usedEvents.set(event.fullName, event); }); + }); + return usedEvents; +} +/** + * @param {?} usedEvents + * @param {?} compileElement + * @return {?} + */ +function subscribeToRenderEvents(usedEvents, compileElement) { + var /** @type {?} */ eventAndTargetExprs = []; + usedEvents.forEach(function (event) { + if (!event.phase) { + eventAndTargetExprs.push(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["f" /* literal */](event.name), __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["f" /* literal */](event.target)); + } + }); + if (eventAndTargetExprs.length) { + var /** @type {?} */ disposableVar = __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["a" /* variable */]("disposable_" + compileElement.view.disposables.length); + compileElement.view.disposables.push(disposableVar); + compileElement.view.createMethod.addStmt(disposableVar + .set(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_3__identifiers__["b" /* Identifiers */].subscribeToRenderElement)).callFn([ + __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["e" /* THIS_EXPR */], compileElement.renderNode, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compiler_util_identifier_util__["a" /* createInlineArray */])(eventAndTargetExprs), + handleEventExpr(compileElement) + ])) + .toDeclStmt(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["M" /* FUNCTION_TYPE */], [__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["k" /* StmtModifier */].Private])); + } +} +/** + * @param {?} usedEvents + * @param {?} directives + * @param {?} compileElement + * @return {?} + */ +function subscribeToDirectiveEvents(usedEvents, directives, compileElement) { + var /** @type {?} */ usedEventNames = Array.from(usedEvents.keys()); + directives.forEach(function (dirAst) { + var /** @type {?} */ dirWrapper = compileElement.directiveWrapperInstance.get(dirAst.directive.type.reference); + compileElement.view.createMethod.addStmts(__WEBPACK_IMPORTED_MODULE_2__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */].subscribe(dirAst.directive, dirAst.hostProperties, usedEventNames, dirWrapper, __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["e" /* THIS_EXPR */], handleEventExpr(compileElement))); + }); +} +/** + * @param {?} boundEvents + * @param {?} directives + * @param {?} compileElement + * @return {?} + */ +function generateHandleEventMethod(boundEvents, directives, compileElement) { + var /** @type {?} */ hasComponentHostListener = directives.some(function (dirAst) { return dirAst.hostEvents.some(function (event) { return dirAst.directive.isComponent; }); }); + var /** @type {?} */ markPathToRootStart = hasComponentHostListener ? compileElement.compViewExpr : __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["e" /* THIS_EXPR */]; + var /** @type {?} */ handleEventStmts = new __WEBPACK_IMPORTED_MODULE_5__compile_method__["a" /* CompileMethod */](compileElement.view); + handleEventStmts.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); + handleEventStmts.push(markPathToRootStart.callMethod('markPathToRootAsCheckOnce', []).toStmt()); + var /** @type {?} */ eventNameVar = __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["a" /* variable */]('eventName'); + var /** @type {?} */ resultVar = __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["a" /* variable */]('result'); + handleEventStmts.push(resultVar.set(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["f" /* literal */](true)).toDeclStmt(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["s" /* BOOL_TYPE */])); + directives.forEach(function (dirAst, dirIdx) { + var /** @type {?} */ dirWrapper = compileElement.directiveWrapperInstance.get(dirAst.directive.type.reference); + if (dirAst.hostEvents.length > 0) { + handleEventStmts.push(resultVar + .set(__WEBPACK_IMPORTED_MODULE_2__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */] + .handleEvent(dirAst.hostEvents, dirWrapper, eventNameVar, __WEBPACK_IMPORTED_MODULE_0__compiler_util_expression_converter__["d" /* EventHandlerVars */].event) + .and(resultVar)) + .toStmt()); + } + }); + boundEvents.forEach(function (renderEvent, renderEventIdx) { + var /** @type {?} */ evalResult = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compiler_util_expression_converter__["c" /* convertActionBinding */])(compileElement.view, compileElement.view, compileElement.view.componentContext, renderEvent.handler, "sub_" + renderEventIdx); + var /** @type {?} */ trueStmts = evalResult.stmts; + if (evalResult.preventDefault) { + trueStmts.push(resultVar.set(evalResult.preventDefault.and(resultVar)).toStmt()); + } + // TODO(tbosch): convert this into a `switch` once our OutputAst supports it. + handleEventStmts.push(new __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["u" /* IfStmt */](eventNameVar.equals(__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["f" /* literal */](renderEvent.fullName)), trueStmts)); + }); + handleEventStmts.push(new __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["t" /* ReturnStatement */](resultVar)); + compileElement.view.methods.push(new __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["q" /* ClassMethod */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util__["d" /* getHandleEventMethodName */])(compileElement.nodeIndex), [ + new __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["o" /* FnParam */](eventNameVar.name, __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["r" /* STRING_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_0__compiler_util_expression_converter__["d" /* EventHandlerVars */].event.name, __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["m" /* DYNAMIC_TYPE */]) + ], handleEventStmts.finish(), __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["s" /* BOOL_TYPE */])); +} +/** + * @param {?} compileElement + * @return {?} + */ +function handleEventExpr(compileElement) { + var /** @type {?} */ handleEventMethodName = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__util__["d" /* getHandleEventMethodName */])(compileElement.nodeIndex); + return __WEBPACK_IMPORTED_MODULE_4__output_output_ast__["e" /* THIS_EXPR */].callMethod('eventHandler', [__WEBPACK_IMPORTED_MODULE_4__output_output_ast__["e" /* THIS_EXPR */].prop(handleEventMethodName)]); +} +//# sourceMappingURL=event_binder.js.map + +/***/ }), +/* 533 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__directive_wrapper_compiler__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__output_output_ast__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__private_import_core__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__template_parser_template_ast__ = __webpack_require__(44); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(148); +/* harmony export (immutable) */ __webpack_exports__["b"] = bindDirectiveAfterContentLifecycleCallbacks; +/* harmony export (immutable) */ __webpack_exports__["c"] = bindDirectiveAfterViewLifecycleCallbacks; +/* harmony export (immutable) */ __webpack_exports__["d"] = bindDirectiveWrapperLifecycleCallbacks; +/* harmony export (immutable) */ __webpack_exports__["e"] = bindInjectableDestroyLifecycleCallbacks; +/* harmony export (immutable) */ __webpack_exports__["a"] = bindPipeDestroyLifecycleCallbacks; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + +var /** @type {?} */ STATE_IS_NEVER_CHECKED = __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["e" /* THIS_EXPR */].prop('numberOfChecks').identical(new __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["N" /* LiteralExpr */](0)); +var /** @type {?} */ NOT_THROW_ON_CHANGES = __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["v" /* not */](__WEBPACK_IMPORTED_MODULE_4__constants__["g" /* DetectChangesVars */].throwOnChange); +/** + * @param {?} directiveMeta + * @param {?} directiveInstance + * @param {?} compileElement + * @return {?} + */ +function bindDirectiveAfterContentLifecycleCallbacks(directiveMeta, directiveInstance, compileElement) { + var /** @type {?} */ view = compileElement.view; + var /** @type {?} */ lifecycleHooks = directiveMeta.type.lifecycleHooks; + var /** @type {?} */ afterContentLifecycleCallbacksMethod = view.afterContentLifecycleCallbacksMethod; + afterContentLifecycleCallbacksMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); + if (lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].AfterContentInit) !== -1) { + afterContentLifecycleCallbacksMethod.addStmt(new __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["u" /* IfStmt */](STATE_IS_NEVER_CHECKED, [directiveInstance.callMethod('ngAfterContentInit', []).toStmt()])); + } + if (lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].AfterContentChecked) !== -1) { + afterContentLifecycleCallbacksMethod.addStmt(directiveInstance.callMethod('ngAfterContentChecked', []).toStmt()); + } +} +/** + * @param {?} directiveMeta + * @param {?} directiveInstance + * @param {?} compileElement + * @return {?} + */ +function bindDirectiveAfterViewLifecycleCallbacks(directiveMeta, directiveInstance, compileElement) { + var /** @type {?} */ view = compileElement.view; + var /** @type {?} */ lifecycleHooks = directiveMeta.type.lifecycleHooks; + var /** @type {?} */ afterViewLifecycleCallbacksMethod = view.afterViewLifecycleCallbacksMethod; + afterViewLifecycleCallbacksMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); + if (lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].AfterViewInit) !== -1) { + afterViewLifecycleCallbacksMethod.addStmt(new __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["u" /* IfStmt */](STATE_IS_NEVER_CHECKED, [directiveInstance.callMethod('ngAfterViewInit', []).toStmt()])); + } + if (lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].AfterViewChecked) !== -1) { + afterViewLifecycleCallbacksMethod.addStmt(directiveInstance.callMethod('ngAfterViewChecked', []).toStmt()); + } +} +/** + * @param {?} dir + * @param {?} directiveWrapperIntance + * @param {?} compileElement + * @return {?} + */ +function bindDirectiveWrapperLifecycleCallbacks(dir, directiveWrapperIntance, compileElement) { + compileElement.view.destroyMethod.addStmts(__WEBPACK_IMPORTED_MODULE_0__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */].ngOnDestroy(dir.directive, directiveWrapperIntance)); + compileElement.view.detachMethod.addStmts(__WEBPACK_IMPORTED_MODULE_0__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */].ngOnDetach(dir.hostProperties, directiveWrapperIntance, __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["e" /* THIS_EXPR */], compileElement.compViewExpr || __WEBPACK_IMPORTED_MODULE_1__output_output_ast__["e" /* THIS_EXPR */], compileElement.renderNode)); +} +/** + * @param {?} provider + * @param {?} providerInstance + * @param {?} compileElement + * @return {?} + */ +function bindInjectableDestroyLifecycleCallbacks(provider, providerInstance, compileElement) { + var /** @type {?} */ onDestroyMethod = compileElement.view.destroyMethod; + onDestroyMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); + if (provider.providerType !== __WEBPACK_IMPORTED_MODULE_3__template_parser_template_ast__["c" /* ProviderAstType */].Directive && + provider.providerType !== __WEBPACK_IMPORTED_MODULE_3__template_parser_template_ast__["c" /* ProviderAstType */].Component && + provider.lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].OnDestroy) !== -1) { + onDestroyMethod.addStmt(providerInstance.callMethod('ngOnDestroy', []).toStmt()); + } +} +/** + * @param {?} pipeMeta + * @param {?} pipeInstance + * @param {?} view + * @return {?} + */ +function bindPipeDestroyLifecycleCallbacks(pipeMeta, pipeInstance, view) { + var /** @type {?} */ onDestroyMethod = view.destroyMethod; + if (pipeMeta.type.lifecycleHooks.indexOf(__WEBPACK_IMPORTED_MODULE_2__private_import_core__["G" /* LifecycleHooks */].OnDestroy) !== -1) { + onDestroyMethod.addStmt(pipeInstance.callMethod('ngOnDestroy', []).toStmt()); + } +} +//# sourceMappingURL=lifecycle_binder.js.map + +/***/ }), +/* 534 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__compiler_util_binding_util__ = __webpack_require__(299); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__compiler_util_expression_converter__ = __webpack_require__(101); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__compiler_util_identifier_util__ = __webpack_require__(42); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compiler_util_render_util__ = __webpack_require__(300); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__directive_wrapper_compiler__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__identifiers__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__output_output_ast__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__private_import_core__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__ = __webpack_require__(44); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__constants__ = __webpack_require__(148); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util__ = __webpack_require__(76); +/* harmony export (immutable) */ __webpack_exports__["a"] = bindRenderText; +/* harmony export (immutable) */ __webpack_exports__["b"] = bindRenderInputs; +/* harmony export (immutable) */ __webpack_exports__["d"] = bindDirectiveHostProps; +/* harmony export (immutable) */ __webpack_exports__["c"] = bindDirectiveInputs; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + +/** + * @param {?} boundText + * @param {?} compileNode + * @param {?} view + * @return {?} + */ +function bindRenderText(boundText, compileNode, view) { + var /** @type {?} */ valueField = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compiler_util_binding_util__["a" /* createCheckBindingField */])(view); + var /** @type {?} */ evalResult = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compiler_util_expression_converter__["b" /* convertPropertyBinding */])(view, view, view.componentContext, boundText.value, valueField.bindingId); + if (!evalResult) { + return null; + } + view.detectChangesRenderPropertiesMethod.resetDebugInfo(compileNode.nodeIndex, boundText); + view.detectChangesRenderPropertiesMethod.addStmts(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compiler_util_binding_util__["b" /* createCheckBindingStmt */])(evalResult, valueField.expression, __WEBPACK_IMPORTED_MODULE_9__constants__["g" /* DetectChangesVars */].throwOnChange, [__WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */].prop('renderer') + .callMethod('setText', [compileNode.renderNode, evalResult.currValExpr]) + .toStmt()])); +} +/** + * @param {?} boundProps + * @param {?} boundOutputs + * @param {?} hasEvents + * @param {?} compileElement + * @return {?} + */ +function bindRenderInputs(boundProps, boundOutputs, hasEvents, compileElement) { + var /** @type {?} */ view = compileElement.view; + var /** @type {?} */ renderNode = compileElement.renderNode; + boundProps.forEach(function (boundProp) { + var /** @type {?} */ bindingField = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compiler_util_binding_util__["a" /* createCheckBindingField */])(view); + view.detectChangesRenderPropertiesMethod.resetDebugInfo(compileElement.nodeIndex, boundProp); + var /** @type {?} */ evalResult = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compiler_util_expression_converter__["b" /* convertPropertyBinding */])(view, view, compileElement.view.componentContext, boundProp.value, bindingField.bindingId); + if (!evalResult) { + return; + } + var /** @type {?} */ checkBindingStmts = []; + var /** @type {?} */ compileMethod = view.detectChangesRenderPropertiesMethod; + switch (boundProp.type) { + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Property: + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Attribute: + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Class: + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Style: + checkBindingStmts.push.apply(checkBindingStmts, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__compiler_util_render_util__["b" /* writeToRenderer */])(__WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], boundProp, renderNode, evalResult.currValExpr, view.genConfig.logBindingUpdate)); + break; + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Animation: + compileMethod = view.animationBindingsMethod; + var _a = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__compiler_util_render_util__["a" /* triggerAnimation */])(__WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], boundProp, boundOutputs, (hasEvents ? __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */].prop(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__util__["d" /* getHandleEventMethodName */])(compileElement.nodeIndex)) : + __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].noop))) + .callMethod(__WEBPACK_IMPORTED_MODULE_6__output_output_ast__["O" /* BuiltinMethod */].Bind, [__WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */]]), compileElement.renderNode, evalResult.currValExpr, bindingField.expression), updateStmts = _a.updateStmts, detachStmts = _a.detachStmts; + checkBindingStmts.push.apply(checkBindingStmts, updateStmts); + view.detachMethod.addStmts(detachStmts); + break; + } + compileMethod.addStmts(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compiler_util_binding_util__["b" /* createCheckBindingStmt */])(evalResult, bindingField.expression, __WEBPACK_IMPORTED_MODULE_9__constants__["g" /* DetectChangesVars */].throwOnChange, checkBindingStmts)); + }); +} +/** + * @param {?} directiveAst + * @param {?} directiveWrapperInstance + * @param {?} compileElement + * @param {?} elementName + * @param {?} schemaRegistry + * @return {?} + */ +function bindDirectiveHostProps(directiveAst, directiveWrapperInstance, compileElement, elementName, schemaRegistry) { + // We need to provide the SecurityContext for properties that could need sanitization. + var /** @type {?} */ runtimeSecurityCtxExprs = directiveAst.hostProperties.filter(function (boundProp) { return boundProp.needsRuntimeSecurityContext; }) + .map(function (boundProp) { + var /** @type {?} */ ctx; + switch (boundProp.type) { + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Property: + ctx = schemaRegistry.securityContext(elementName, boundProp.name, false); + break; + case __WEBPACK_IMPORTED_MODULE_8__template_parser_template_ast__["f" /* PropertyBindingType */].Attribute: + ctx = schemaRegistry.securityContext(elementName, boundProp.name, true); + break; + default: + throw new Error("Illegal state: Only property / attribute bindings can have an unknown security context! Binding " + boundProp.name); + } + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__compiler_util_identifier_util__["d" /* createEnumExpression */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].SecurityContext, ctx); + }); + compileElement.view.detectChangesRenderPropertiesMethod.addStmts(__WEBPACK_IMPORTED_MODULE_4__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */].checkHost(directiveAst.hostProperties, directiveWrapperInstance, __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], compileElement.compViewExpr || __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], compileElement.renderNode, __WEBPACK_IMPORTED_MODULE_9__constants__["g" /* DetectChangesVars */].throwOnChange, runtimeSecurityCtxExprs)); +} +/** + * @param {?} directiveAst + * @param {?} directiveWrapperInstance + * @param {?} dirIndex + * @param {?} compileElement + * @return {?} + */ +function bindDirectiveInputs(directiveAst, directiveWrapperInstance, dirIndex, compileElement) { + var /** @type {?} */ view = compileElement.view; + var /** @type {?} */ detectChangesInInputsMethod = view.detectChangesInInputsMethod; + detectChangesInInputsMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst); + directiveAst.inputs.forEach(function (input, inputIdx) { + // Note: We can't use `fields.length` here, as we are not adding a field! + var /** @type {?} */ bindingId = compileElement.nodeIndex + "_" + dirIndex + "_" + inputIdx; + detectChangesInInputsMethod.resetDebugInfo(compileElement.nodeIndex, input); + var /** @type {?} */ evalResult = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compiler_util_expression_converter__["b" /* convertPropertyBinding */])(view, view, view.componentContext, input.value, bindingId); + if (!evalResult) { + return; + } + detectChangesInInputsMethod.addStmts(evalResult.stmts); + detectChangesInInputsMethod.addStmt(directiveWrapperInstance + .callMethod("check_" + input.directiveName, [ + evalResult.currValExpr, __WEBPACK_IMPORTED_MODULE_9__constants__["g" /* DetectChangesVars */].throwOnChange, + evalResult.forceUpdate || __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["f" /* literal */](false) + ]) + .toStmt()); + }); + var /** @type {?} */ isOnPushComp = directiveAst.directive.isComponent && + !__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_7__private_import_core__["E" /* isDefaultChangeDetectionStrategy */])(directiveAst.directive.changeDetection); + var /** @type {?} */ directiveDetectChangesExpr = __WEBPACK_IMPORTED_MODULE_4__directive_wrapper_compiler__["b" /* DirectiveWrapperExpressions */].ngDoCheck(directiveWrapperInstance, __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["e" /* THIS_EXPR */], compileElement.renderNode, __WEBPACK_IMPORTED_MODULE_9__constants__["g" /* DetectChangesVars */].throwOnChange); + var /** @type {?} */ directiveDetectChangesStmt = isOnPushComp ? + new __WEBPACK_IMPORTED_MODULE_6__output_output_ast__["u" /* IfStmt */](directiveDetectChangesExpr, [compileElement.compViewExpr.callMethod('markAsCheckOnce', []).toStmt()]) : + directiveDetectChangesExpr.toStmt(); + detectChangesInInputsMethod.addStmt(directiveDetectChangesStmt); +} +//# sourceMappingURL=property_binder.js.map + +/***/ }), +/* 535 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__compile_metadata__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__template_parser_template_ast__ = __webpack_require__(44); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__event_binder__ = __webpack_require__(532); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__ = __webpack_require__(533); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__property_binder__ = __webpack_require__(534); +/* harmony export (immutable) */ __webpack_exports__["a"] = bindView; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + +/** + * @param {?} view + * @param {?} parsedTemplate + * @param {?} schemaRegistry + * @return {?} + */ +function bindView(view, parsedTemplate, schemaRegistry) { + var /** @type {?} */ visitor = new ViewBinderVisitor(view, schemaRegistry); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__template_parser_template_ast__["a" /* templateVisitAll */])(visitor, parsedTemplate); + view.pipes.forEach(function (pipe) { __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["a" /* bindPipeDestroyLifecycleCallbacks */])(pipe.meta, pipe.instance, pipe.view); }); +} +var ViewBinderVisitor = (function () { + /** + * @param {?} view + * @param {?} _schemaRegistry + */ + function ViewBinderVisitor(view, _schemaRegistry) { + this.view = view; + this._schemaRegistry = _schemaRegistry; + this._nodeIndex = 0; + } + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBinderVisitor.prototype.visitBoundText = function (ast, parent) { + var /** @type {?} */ node = this.view.nodes[this._nodeIndex++]; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__property_binder__["a" /* bindRenderText */])(ast, node, this.view); + return null; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBinderVisitor.prototype.visitText = function (ast, parent) { + this._nodeIndex++; + return null; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBinderVisitor.prototype.visitNgContent = function (ast, parent) { return null; }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBinderVisitor.prototype.visitElement = function (ast, parent) { + var _this = this; + var /** @type {?} */ compileElement = (this.view.nodes[this._nodeIndex++]); + var /** @type {?} */ hasEvents = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__event_binder__["a" /* bindOutputs */])(ast.outputs, ast.directives, compileElement, true); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__property_binder__["b" /* bindRenderInputs */])(ast.inputs, ast.outputs, hasEvents, compileElement); + ast.directives.forEach(function (directiveAst, dirIndex) { + var /** @type {?} */ directiveWrapperInstance = compileElement.directiveWrapperInstance.get(directiveAst.directive.type.reference); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__property_binder__["c" /* bindDirectiveInputs */])(directiveAst, directiveWrapperInstance, dirIndex, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__property_binder__["d" /* bindDirectiveHostProps */])(directiveAst, directiveWrapperInstance, compileElement, ast.name, _this._schemaRegistry); + }); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__template_parser_template_ast__["a" /* templateVisitAll */])(this, ast.children, compileElement); + // afterContent and afterView lifecycles need to be called bottom up + // so that children are notified before parents + ast.directives.forEach(function (directiveAst) { + var /** @type {?} */ directiveInstance = compileElement.instances.get(directiveAst.directive.type.reference); + var /** @type {?} */ directiveWrapperInstance = compileElement.directiveWrapperInstance.get(directiveAst.directive.type.reference); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["b" /* bindDirectiveAfterContentLifecycleCallbacks */])(directiveAst.directive, directiveInstance, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["c" /* bindDirectiveAfterViewLifecycleCallbacks */])(directiveAst.directive, directiveInstance, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["d" /* bindDirectiveWrapperLifecycleCallbacks */])(directiveAst, directiveWrapperInstance, compileElement); + }); + ast.providers.forEach(function (providerAst) { + var /** @type {?} */ providerInstance = compileElement.instances.get(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compile_metadata__["j" /* tokenReference */])(providerAst.token)); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["e" /* bindInjectableDestroyLifecycleCallbacks */])(providerAst, providerInstance, compileElement); + }); + return null; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBinderVisitor.prototype.visitEmbeddedTemplate = function (ast, parent) { + var /** @type {?} */ compileElement = (this.view.nodes[this._nodeIndex++]); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__event_binder__["a" /* bindOutputs */])(ast.outputs, ast.directives, compileElement, false); + ast.directives.forEach(function (directiveAst, dirIndex) { + var /** @type {?} */ directiveInstance = compileElement.instances.get(directiveAst.directive.type.reference); + var /** @type {?} */ directiveWrapperInstance = compileElement.directiveWrapperInstance.get(directiveAst.directive.type.reference); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__property_binder__["c" /* bindDirectiveInputs */])(directiveAst, directiveWrapperInstance, dirIndex, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["b" /* bindDirectiveAfterContentLifecycleCallbacks */])(directiveAst.directive, directiveInstance, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["c" /* bindDirectiveAfterViewLifecycleCallbacks */])(directiveAst.directive, directiveInstance, compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["d" /* bindDirectiveWrapperLifecycleCallbacks */])(directiveAst, directiveWrapperInstance, compileElement); + }); + ast.providers.forEach(function (providerAst) { + var /** @type {?} */ providerInstance = compileElement.instances.get(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__compile_metadata__["j" /* tokenReference */])(providerAst.token)); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__lifecycle_binder__["e" /* bindInjectableDestroyLifecycleCallbacks */])(providerAst, providerInstance, compileElement); + }); + bindView(compileElement.embeddedView, ast.children, this._schemaRegistry); + return null; + }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBinderVisitor.prototype.visitAttr = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBinderVisitor.prototype.visitDirective = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} eventTargetAndNames + * @return {?} + */ + ViewBinderVisitor.prototype.visitEvent = function (ast, eventTargetAndNames) { + return null; + }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBinderVisitor.prototype.visitReference = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBinderVisitor.prototype.visitVariable = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + ViewBinderVisitor.prototype.visitDirectiveProperty = function (ast, context) { return null; }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + ViewBinderVisitor.prototype.visitElementProperty = function (ast, context) { return null; }; + return ViewBinderVisitor; +}()); +function ViewBinderVisitor_tsickle_Closure_declarations() { + /** @type {?} */ + ViewBinderVisitor.prototype._nodeIndex; + /** @type {?} */ + ViewBinderVisitor.prototype.view; + /** @type {?} */ + ViewBinderVisitor.prototype._schemaRegistry; +} +//# sourceMappingURL=view_binder.js.map + +/***/ }), +/* 536 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__compile_metadata__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__compiler_util_expression_converter__ = __webpack_require__(101); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compiler_util_identifier_util__ = __webpack_require__(42); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__facade_lang__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__identifiers__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__output_class_builder__ = __webpack_require__(200); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__output_output_ast__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__private_import_core__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__template_parser_template_ast__ = __webpack_require__(44); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__compile_element__ = __webpack_require__(315); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__compile_view__ = __webpack_require__(317); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__constants__ = __webpack_require__(148); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__deps__ = __webpack_require__(205); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__util__ = __webpack_require__(76); +/* harmony export (immutable) */ __webpack_exports__["a"] = buildView; +/* harmony export (immutable) */ __webpack_exports__["b"] = finishView; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + + + + +var /** @type {?} */ IMPLICIT_TEMPLATE_VAR = '\$implicit'; +var /** @type {?} */ CLASS_ATTR = 'class'; +var /** @type {?} */ STYLE_ATTR = 'style'; +var /** @type {?} */ NG_CONTAINER_TAG = 'ng-container'; +var /** @type {?} */ parentRenderNodeVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('parentRenderNode'); +var /** @type {?} */ rootSelectorVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('rootSelector'); +/** + * @param {?} view + * @param {?} template + * @param {?} targetDependencies + * @return {?} + */ +function buildView(view, template, targetDependencies) { + var /** @type {?} */ builderVisitor = new ViewBuilderVisitor(view, targetDependencies); + var /** @type {?} */ parentEl = view.declarationElement.isNull() ? view.declarationElement : view.declarationElement.parent; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__template_parser_template_ast__["a" /* templateVisitAll */])(builderVisitor, template, parentEl); + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].EMBEDDED || view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].HOST) { + view.lastRenderNode = builderVisitor.getOrCreateLastRenderNode(); + } + return builderVisitor.nestedViewCount; +} +/** + * @param {?} view + * @param {?} targetStatements + * @return {?} + */ +function finishView(view, targetStatements) { + view.afterNodes(); + createViewTopLevelStmts(view, targetStatements); + view.nodes.forEach(function (node) { + if (node instanceof __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */] && node.hasEmbeddedView) { + finishView(node.embeddedView, targetStatements); + } + }); +} +var ViewBuilderVisitor = (function () { + /** + * @param {?} view + * @param {?} targetDependencies + */ + function ViewBuilderVisitor(view, targetDependencies) { + this.view = view; + this.targetDependencies = targetDependencies; + this.nestedViewCount = 0; + } + /** + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype._isRootNode = function (parent) { return parent.view !== this.view; }; + /** + * @param {?} node + * @return {?} + */ + ViewBuilderVisitor.prototype._addRootNodeAndProject = function (node) { + var /** @type {?} */ projectedNode = _getOuterContainerOrSelf(node); + var /** @type {?} */ parent = projectedNode.parent; + var /** @type {?} */ ngContentIndex = ((projectedNode.sourceAst)).ngContentIndex; + var /** @type {?} */ viewContainer = (node instanceof __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */] && node.hasViewContainer) ? node.viewContainer : null; + if (this._isRootNode(parent)) { + if (this.view.viewType !== __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + this.view.rootNodes.push(new __WEBPACK_IMPORTED_MODULE_11__compile_view__["b" /* CompileViewRootNode */](viewContainer ? __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].ViewContainer : __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].Node, viewContainer || node.renderNode)); + } + } + else if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(parent.component) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(ngContentIndex)) { + parent.addContentNode(ngContentIndex, new __WEBPACK_IMPORTED_MODULE_11__compile_view__["b" /* CompileViewRootNode */](viewContainer ? __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].ViewContainer : __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].Node, viewContainer || node.renderNode)); + } + }; + /** + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype._getParentRenderNode = function (parent) { + parent = _getOuterContainerParentOrSelf(parent); + if (this._isRootNode(parent)) { + if (this.view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + return parentRenderNodeVar; + } + else { + // root node of an embedded/host view + return __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]; + } + } + else { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(parent.component) && + parent.component.template.encapsulation !== __WEBPACK_IMPORTED_MODULE_0__angular_core__["ViewEncapsulation"].Native ? + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */] : + parent.renderNode; + } + }; + /** + * @return {?} + */ + ViewBuilderVisitor.prototype.getOrCreateLastRenderNode = function () { + var /** @type {?} */ view = this.view; + if (view.rootNodes.length === 0 || + view.rootNodes[view.rootNodes.length - 1].type !== __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].Node) { + var /** @type {?} */ fieldName = "_el_" + view.nodes.length; + view.fields.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["c" /* ClassField */](fieldName, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](view.genConfig.renderTypes.renderElement))); + view.createMethod.addStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName) + .set(__WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.callMethod('createTemplateAnchor', [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */], __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]])) + .toStmt()); + view.rootNodes.push(new __WEBPACK_IMPORTED_MODULE_11__compile_view__["b" /* CompileViewRootNode */](__WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].Node, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName))); + } + return view.rootNodes[view.rootNodes.length - 1].expr; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype.visitBoundText = function (ast, parent) { + return this._visitText(ast, '', parent); + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype.visitText = function (ast, parent) { + return this._visitText(ast, ast.value, parent); + }; + /** + * @param {?} ast + * @param {?} value + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype._visitText = function (ast, value, parent) { + var /** @type {?} */ fieldName = "_text_" + this.view.nodes.length; + this.view.fields.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["c" /* ClassField */](fieldName, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](this.view.genConfig.renderTypes.renderText))); + var /** @type {?} */ renderNode = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName); + var /** @type {?} */ compileNode = new __WEBPACK_IMPORTED_MODULE_10__compile_element__["b" /* CompileNode */](parent, this.view, this.view.nodes.length, renderNode, ast); + var /** @type {?} */ createRenderNode = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName) + .set(__WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.callMethod('createText', [ + this._getParentRenderNode(parent), __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](value), + this.view.createMethod.resetDebugInfoExpr(this.view.nodes.length, ast) + ])) + .toStmt(); + this.view.nodes.push(compileNode); + this.view.createMethod.addStmt(createRenderNode); + this._addRootNodeAndProject(compileNode); + return renderNode; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype.visitNgContent = function (ast, parent) { + // the projected nodes originate from a different view, so we don't + // have debug information for them... + this.view.createMethod.resetDebugInfo(null, ast); + var /** @type {?} */ parentRenderNode = this._getParentRenderNode(parent); + if (parentRenderNode !== __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]) { + this.view.createMethod.addStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].callMethod('projectNodes', [parentRenderNode, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](ast.index)]) + .toStmt()); + } + else if (this._isRootNode(parent)) { + if (this.view.viewType !== __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + // store root nodes only for embedded/host views + this.view.rootNodes.push(new __WEBPACK_IMPORTED_MODULE_11__compile_view__["b" /* CompileViewRootNode */](__WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].NgContent, null, ast.index)); + } + } + else { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(parent.component) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(ast.ngContentIndex)) { + parent.addContentNode(ast.ngContentIndex, new __WEBPACK_IMPORTED_MODULE_11__compile_view__["b" /* CompileViewRootNode */](__WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].NgContent, null, ast.index)); + } + } + return null; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype.visitElement = function (ast, parent) { + var /** @type {?} */ nodeIndex = this.view.nodes.length; + var /** @type {?} */ createRenderNodeExpr; + var /** @type {?} */ debugContextExpr = this.view.createMethod.resetDebugInfoExpr(nodeIndex, ast); + var /** @type {?} */ directives = ast.directives.map(function (directiveAst) { return directiveAst.directive; }); + var /** @type {?} */ component = directives.find(function (directive) { return directive.isComponent; }); + if (ast.name === NG_CONTAINER_TAG) { + createRenderNodeExpr = __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.callMethod('createTemplateAnchor', [this._getParentRenderNode(parent), debugContextExpr]); + } + else { + var /** @type {?} */ htmlAttrs = _readHtmlAttrs(ast.attrs); + var /** @type {?} */ attrNameAndValues = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__compiler_util_identifier_util__["a" /* createInlineArray */])(_mergeHtmlAndDirectiveAttrs(htmlAttrs, directives).map(function (v) { return __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](v); })); + if (nodeIndex === 0 && this.view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].HOST) { + createRenderNodeExpr = + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].selectOrCreateRenderHostElement)).callFn([ + __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](ast.name), attrNameAndValues, rootSelectorVar, + debugContextExpr + ]); + } + else { + createRenderNodeExpr = + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].createRenderElement)).callFn([ + __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer, this._getParentRenderNode(parent), __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](ast.name), + attrNameAndValues, debugContextExpr + ]); + } + } + var /** @type {?} */ fieldName = "_el_" + nodeIndex; + this.view.fields.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["c" /* ClassField */](fieldName, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](this.view.genConfig.renderTypes.renderElement))); + this.view.createMethod.addStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName).set(createRenderNodeExpr).toStmt()); + var /** @type {?} */ renderNode = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName); + var /** @type {?} */ compileElement = new __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */](parent, this.view, nodeIndex, renderNode, ast, component, directives, ast.providers, ast.hasViewContainer, false, ast.references); + this.view.nodes.push(compileElement); + var /** @type {?} */ compViewExpr = null; + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(component)) { + var /** @type {?} */ nestedComponentIdentifier = { reference: null }; + this.targetDependencies.push(new __WEBPACK_IMPORTED_MODULE_13__deps__["a" /* ViewClassDependency */](component.type, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__util__["a" /* getViewClassName */])(component, 0), nestedComponentIdentifier)); + compViewExpr = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop("compView_" + nodeIndex); // fix highlighting: ` + this.view.fields.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["c" /* ClassField */](compViewExpr.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].AppView), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](component.type)]))); + this.view.viewChildren.push(compViewExpr); + compileElement.setComponentView(compViewExpr); + this.view.createMethod.addStmt(compViewExpr + .set(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](nestedComponentIdentifier).instantiate([ + __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].viewUtils, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */], __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](nodeIndex), renderNode + ])) + .toStmt()); + } + compileElement.beforeChildren(); + this._addRootNodeAndProject(compileElement); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9__template_parser_template_ast__["a" /* templateVisitAll */])(this, ast.children, compileElement); + compileElement.afterChildren(this.view.nodes.length - nodeIndex - 1); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(compViewExpr)) { + this.view.createMethod.addStmt(compViewExpr.callMethod('create', [compileElement.getComponent()]).toStmt()); + } + return null; + }; + /** + * @param {?} ast + * @param {?} parent + * @return {?} + */ + ViewBuilderVisitor.prototype.visitEmbeddedTemplate = function (ast, parent) { + var /** @type {?} */ nodeIndex = this.view.nodes.length; + var /** @type {?} */ fieldName = "_anchor_" + nodeIndex; + this.view.fields.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["c" /* ClassField */](fieldName, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](this.view.genConfig.renderTypes.renderComment))); + this.view.createMethod.addStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName) + .set(__WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.callMethod('createTemplateAnchor', [ + this._getParentRenderNode(parent), + this.view.createMethod.resetDebugInfoExpr(nodeIndex, ast) + ])) + .toStmt()); + var /** @type {?} */ renderNode = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop(fieldName); + var /** @type {?} */ templateVariableBindings = ast.variables.map(function (varAst) { return [varAst.value.length > 0 ? varAst.value : IMPLICIT_TEMPLATE_VAR, varAst.name]; }); + var /** @type {?} */ directives = ast.directives.map(function (directiveAst) { return directiveAst.directive; }); + var /** @type {?} */ compileElement = new __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */](parent, this.view, nodeIndex, renderNode, ast, null, directives, ast.providers, ast.hasViewContainer, true, ast.references); + this.view.nodes.push(compileElement); + this.nestedViewCount++; + var /** @type {?} */ embeddedView = new __WEBPACK_IMPORTED_MODULE_11__compile_view__["a" /* CompileView */](this.view.component, this.view.genConfig, this.view.pipeMetas, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */], this.view.animations, this.view.viewIndex + this.nestedViewCount, compileElement, templateVariableBindings, this.targetDependencies); + this.nestedViewCount += buildView(embeddedView, ast.children, this.targetDependencies); + compileElement.beforeChildren(); + this._addRootNodeAndProject(compileElement); + compileElement.afterChildren(0); + return null; + }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBuilderVisitor.prototype.visitAttr = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBuilderVisitor.prototype.visitDirective = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} eventTargetAndNames + * @return {?} + */ + ViewBuilderVisitor.prototype.visitEvent = function (ast, eventTargetAndNames) { + return null; + }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBuilderVisitor.prototype.visitReference = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} ctx + * @return {?} + */ + ViewBuilderVisitor.prototype.visitVariable = function (ast, ctx) { return null; }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + ViewBuilderVisitor.prototype.visitDirectiveProperty = function (ast, context) { return null; }; + /** + * @param {?} ast + * @param {?} context + * @return {?} + */ + ViewBuilderVisitor.prototype.visitElementProperty = function (ast, context) { return null; }; + return ViewBuilderVisitor; +}()); +function ViewBuilderVisitor_tsickle_Closure_declarations() { + /** @type {?} */ + ViewBuilderVisitor.prototype.nestedViewCount; + /** @type {?} */ + ViewBuilderVisitor.prototype.view; + /** @type {?} */ + ViewBuilderVisitor.prototype.targetDependencies; +} +/** + * Walks up the nodes while the direct parent is a container. + * * + * Returns the outer container or the node itself when it is not a direct child of a container. + * * + * @param {?} node + * @return {?} + */ +function _getOuterContainerOrSelf(node) { + var /** @type {?} */ view = node.view; + while (_isNgContainer(node.parent, view)) { + node = node.parent; + } + return node; +} +/** + * Walks up the nodes while they are container and returns the first parent which is not. + * * + * Returns the parent of the outer container or the node itself when it is not a container. + * * + * @param {?} el + * @return {?} + */ +function _getOuterContainerParentOrSelf(el) { + var /** @type {?} */ view = el.view; + while (_isNgContainer(el, view)) { + el = el.parent; + } + return el; +} +/** + * @param {?} node + * @param {?} view + * @return {?} + */ +function _isNgContainer(node, view) { + return !node.isNull() && ((node.sourceAst)).name === NG_CONTAINER_TAG && + node.view === view; +} +/** + * @param {?} declaredHtmlAttrs + * @param {?} directives + * @return {?} + */ +function _mergeHtmlAndDirectiveAttrs(declaredHtmlAttrs, directives) { + var /** @type {?} */ mapResult = {}; + Object.keys(declaredHtmlAttrs).forEach(function (key) { mapResult[key] = declaredHtmlAttrs[key]; }); + directives.forEach(function (directiveMeta) { + Object.keys(directiveMeta.hostAttributes).forEach(function (name) { + var /** @type {?} */ value = directiveMeta.hostAttributes[name]; + var /** @type {?} */ prevValue = mapResult[name]; + mapResult[name] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(prevValue) ? mergeAttributeValue(name, prevValue, value) : value; + }); + }); + var /** @type {?} */ arrResult = []; + // Note: We need to sort to get a defined output order + // for tests and for caching generated artifacts... + Object.keys(mapResult).sort().forEach(function (attrName) { arrResult.push(attrName, mapResult[attrName]); }); + return arrResult; +} +/** + * @param {?} attrs + * @return {?} + */ +function _readHtmlAttrs(attrs) { + var /** @type {?} */ htmlAttrs = {}; + attrs.forEach(function (ast) { htmlAttrs[ast.name] = ast.value; }); + return htmlAttrs; +} +/** + * @param {?} attrName + * @param {?} attrValue1 + * @param {?} attrValue2 + * @return {?} + */ +function mergeAttributeValue(attrName, attrValue1, attrValue2) { + if (attrName == CLASS_ATTR || attrName == STYLE_ATTR) { + return attrValue1 + " " + attrValue2; + } + else { + return attrValue2; + } +} +/** + * @param {?} view + * @param {?} targetStatements + * @return {?} + */ +function createViewTopLevelStmts(view, targetStatements) { + var /** @type {?} */ nodeDebugInfosVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]; + if (view.genConfig.genDebugInfo) { + nodeDebugInfosVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]("nodeDebugInfos_" + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compile_metadata__["a" /* identifierName */])(view.component.type) + view.viewIndex); // fix + // highlighting: + // ` + targetStatements.push(((nodeDebugInfosVar)) + .set(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["h" /* literalArr */](view.nodes.map(createStaticNodeDebugInfo), new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["i" /* ArrayType */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].StaticNodeDebugInfo)), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["j" /* TypeModifier */].Const]))) + .toDeclStmt(null, [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["k" /* StmtModifier */].Final])); + } + var /** @type {?} */ renderCompTypeVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]("renderType_" + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compile_metadata__["a" /* identifierName */])(view.component.type)); // fix highlighting: ` + if (view.viewIndex === 0) { + var /** @type {?} */ templateUrlInfo = void 0; + if (view.component.template.templateUrl == __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compile_metadata__["i" /* identifierModuleUrl */])(view.component.type)) { + templateUrlInfo = + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compile_metadata__["i" /* identifierModuleUrl */])(view.component.type) + " class " + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__compile_metadata__["a" /* identifierName */])(view.component.type) + " - inline template"; + } + else { + templateUrlInfo = view.component.template.templateUrl; + } + targetStatements.push(renderCompTypeVar + .set(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].createRenderComponentType)).callFn([ + view.genConfig.genDebugInfo ? __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](templateUrlInfo) : __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](''), + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](view.component.template.ngContentSelectors.length), + __WEBPACK_IMPORTED_MODULE_12__constants__["b" /* ViewEncapsulationEnum */].fromValue(view.component.template.encapsulation), + view.styles, + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["l" /* literalMap */](view.animations.map(function (entry) { return [entry.name, entry.fnExp]; })), + ])) + .toDeclStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].RenderComponentType)))); + } + var /** @type {?} */ viewClass = createViewClass(view, renderCompTypeVar, nodeDebugInfosVar); + targetStatements.push(viewClass); +} +/** + * @param {?} node + * @return {?} + */ +function createStaticNodeDebugInfo(node) { + var /** @type {?} */ compileElement = node instanceof __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */] ? node : null; + var /** @type {?} */ providerTokens = []; + var /** @type {?} */ componentToken = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]; + var /** @type {?} */ varTokenEntries = []; + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(compileElement)) { + providerTokens = compileElement.getProviderTokens(); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(compileElement.component)) { + componentToken = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__compiler_util_identifier_util__["b" /* createDiTokenExpression */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["c" /* identifierToken */])(compileElement.component.type)); + } + Object.keys(compileElement.referenceTokens).forEach(function (varName) { + var /** @type {?} */ token = compileElement.referenceTokens[varName]; + varTokenEntries.push([varName, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__facade_lang__["c" /* isPresent */])(token) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__compiler_util_identifier_util__["b" /* createDiTokenExpression */])(token) : __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]]); + }); + } + return __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].StaticNodeDebugInfo)) + .instantiate([ + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["h" /* literalArr */](providerTokens, new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["i" /* ArrayType */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */], [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["j" /* TypeModifier */].Const])), + componentToken, + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["l" /* literalMap */](varTokenEntries, new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["n" /* MapType */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */], [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["j" /* TypeModifier */].Const])) + ], __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].StaticNodeDebugInfo), null, [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["j" /* TypeModifier */].Const])); +} +/** + * @param {?} view + * @param {?} renderCompTypeVar + * @param {?} nodeDebugInfosVar + * @return {?} + */ +function createViewClass(view, renderCompTypeVar, nodeDebugInfosVar) { + var /** @type {?} */ viewConstructorArgs = [ + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].viewUtils.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].ViewUtils))), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentView.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].AppView), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]])), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentIndex.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["p" /* NUMBER_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentElement.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]) + ]; + var /** @type {?} */ superConstructorArgs = [ + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */](view.className), renderCompTypeVar, __WEBPACK_IMPORTED_MODULE_12__constants__["d" /* ViewTypeEnum */].fromValue(view.viewType), + __WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].viewUtils, __WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentView, __WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentIndex, + __WEBPACK_IMPORTED_MODULE_12__constants__["c" /* ViewConstructorVars */].parentElement, + __WEBPACK_IMPORTED_MODULE_12__constants__["e" /* ChangeDetectorStatusEnum */].fromValue(getChangeDetectionMode(view)) + ]; + if (view.genConfig.genDebugInfo) { + superConstructorArgs.push(nodeDebugInfosVar); + } + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].EMBEDDED) { + viewConstructorArgs.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */]('declaredViewContainer', __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].ViewContainer)))); + superConstructorArgs.push(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('declaredViewContainer')); + } + var /** @type {?} */ viewMethods = [ + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('createInternal', [new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](rootSelectorVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["r" /* STRING_TYPE */])], generateCreateMethod(view), __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].ComponentRef), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]])), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('injectorGetInternal', [ + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["f" /* InjectMethodVars */].token.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]), + // Note: Can't use o.INT_TYPE here as the method in AppView uses number + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["f" /* InjectMethodVars */].requestNodeIndex.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["p" /* NUMBER_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["f" /* InjectMethodVars */].notFoundResult.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]) + ], addReturnValuefNotEmpty(view.injectorGetMethod.finish(), __WEBPACK_IMPORTED_MODULE_12__constants__["f" /* InjectMethodVars */].notFoundResult), __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('detectChangesInternal', [new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].throwOnChange.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["s" /* BOOL_TYPE */])], generateDetectChangesMethod(view)), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('dirtyParentQueriesInternal', [], view.dirtyParentQueriesMethod.finish()), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('destroyInternal', [], generateDestroyMethod(view)), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('detachInternal', [], view.detachMethod.finish()), + generateVisitRootNodesMethod(view), generateVisitProjectableNodesMethod(view), + generateCreateEmbeddedViewsMethod(view) + ].filter(function (method) { return method.body.length > 0; }); + var /** @type {?} */ superClass = view.genConfig.genDebugInfo ? __WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].DebugAppView : __WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].AppView; + var /** @type {?} */ viewClass = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__output_class_builder__["a" /* createClassStmt */])({ + name: view.className, + parent: __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(superClass), [getContextType(view)]), + parentArgs: superConstructorArgs, + ctorParams: viewConstructorArgs, + builders: [{ methods: viewMethods }, view] + }); + return viewClass; +} +/** + * @param {?} view + * @return {?} + */ +function generateDestroyMethod(view) { + var /** @type {?} */ stmts = []; + view.viewContainers.forEach(function (viewContainer) { + stmts.push(viewContainer.callMethod('destroyNestedViews', []).toStmt()); + }); + view.viewChildren.forEach(function (viewChild) { stmts.push(viewChild.callMethod('destroy', []).toStmt()); }); + stmts.push.apply(stmts, view.destroyMethod.finish()); + return stmts; +} +/** + * @param {?} view + * @return {?} + */ +function generateCreateMethod(view) { + var /** @type {?} */ parentRenderNodeExpr = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]; + var /** @type {?} */ parentRenderNodeStmts = []; + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + parentRenderNodeExpr = + __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.callMethod('createViewRoot', [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].prop('parentElement')]); + parentRenderNodeStmts = + [parentRenderNodeVar.set(parentRenderNodeExpr) + .toDeclStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](view.genConfig.renderTypes.renderNode), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["k" /* StmtModifier */].Final])]; + } + var /** @type {?} */ resultExpr; + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].HOST) { + var /** @type {?} */ hostEl = (view.nodes[0]); + resultExpr = + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["g" /* importExpr */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].ComponentRef_), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]]).instantiate([ + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](hostEl.nodeIndex), __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */], hostEl.renderNode, hostEl.getComponent() + ]); + } + else { + resultExpr = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]; + } + var /** @type {?} */ allNodesExpr = __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].renderer.cast(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]) + .prop('directRenderer') + .conditional(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */], __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["h" /* literalArr */](view.nodes.map(function (node) { return node.renderNode; }))); + return parentRenderNodeStmts.concat(view.createMethod.finish(), [ + __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */] + .callMethod('init', [ + view.lastRenderNode, + allNodesExpr, + view.disposables.length ? __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["h" /* literalArr */](view.disposables) : __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */], + ]) + .toStmt(), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["t" /* ReturnStatement */](resultExpr) + ]); +} +/** + * @param {?} view + * @return {?} + */ +function generateDetectChangesMethod(view) { + var /** @type {?} */ stmts = []; + if (view.animationBindingsMethod.isEmpty() && view.detectChangesInInputsMethod.isEmpty() && + view.updateContentQueriesMethod.isEmpty() && + view.afterContentLifecycleCallbacksMethod.isEmpty() && + view.detectChangesRenderPropertiesMethod.isEmpty() && + view.updateViewQueriesMethod.isEmpty() && view.afterViewLifecycleCallbacksMethod.isEmpty() && + view.viewContainers.length === 0 && view.viewChildren.length === 0) { + return stmts; + } + stmts.push.apply(stmts, view.animationBindingsMethod.finish()); + stmts.push.apply(stmts, view.detectChangesInInputsMethod.finish()); + view.viewContainers.forEach(function (viewContainer) { + stmts.push(viewContainer.callMethod('detectChangesInNestedViews', [__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].throwOnChange]) + .toStmt()); + }); + var /** @type {?} */ afterContentStmts = view.updateContentQueriesMethod.finish().concat(view.afterContentLifecycleCallbacksMethod.finish()); + if (afterContentStmts.length > 0) { + stmts.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["u" /* IfStmt */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["v" /* not */](__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].throwOnChange), afterContentStmts)); + } + stmts.push.apply(stmts, view.detectChangesRenderPropertiesMethod.finish()); + view.viewChildren.forEach(function (viewChild) { + stmts.push(viewChild.callMethod('internalDetectChanges', [__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].throwOnChange]).toStmt()); + }); + var /** @type {?} */ afterViewStmts = view.updateViewQueriesMethod.finish().concat(view.afterViewLifecycleCallbacksMethod.finish()); + if (afterViewStmts.length > 0) { + stmts.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["u" /* IfStmt */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["v" /* not */](__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].throwOnChange), afterViewStmts)); + } + var /** @type {?} */ varStmts = []; + var /** @type {?} */ readVars = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["w" /* findReadVarNames */](stmts); + if (readVars.has(__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].changed.name)) { + varStmts.push(__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].changed.set(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](true)).toDeclStmt(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["s" /* BOOL_TYPE */])); + } + if (readVars.has(__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].changes.name)) { + varStmts.push(__WEBPACK_IMPORTED_MODULE_12__constants__["g" /* DetectChangesVars */].changes.set(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */]) + .toDeclStmt(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["n" /* MapType */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].SimpleChange))))); + } + varStmts.push.apply(varStmts, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__compiler_util_expression_converter__["a" /* createSharedBindingVariablesIfNeeded */])(stmts)); + return varStmts.concat(stmts); +} +/** + * @param {?} statements + * @param {?} value + * @return {?} + */ +function addReturnValuefNotEmpty(statements, value) { + if (statements.length > 0) { + return statements.concat([new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["t" /* ReturnStatement */](value)]); + } + else { + return statements; + } +} +/** + * @param {?} view + * @return {?} + */ +function getContextType(view) { + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + return __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](view.component.type); + } + return __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]; +} +/** + * @param {?} view + * @return {?} + */ +function getChangeDetectionMode(view) { + var /** @type {?} */ mode; + if (view.viewType === __WEBPACK_IMPORTED_MODULE_8__private_import_core__["n" /* ViewType */].COMPONENT) { + mode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__private_import_core__["E" /* isDefaultChangeDetectionStrategy */])(view.component.changeDetection) ? + __WEBPACK_IMPORTED_MODULE_8__private_import_core__["r" /* ChangeDetectorStatus */].CheckAlways : + __WEBPACK_IMPORTED_MODULE_8__private_import_core__["r" /* ChangeDetectorStatus */].CheckOnce; + } + else { + mode = __WEBPACK_IMPORTED_MODULE_8__private_import_core__["r" /* ChangeDetectorStatus */].CheckAlways; + } + return mode; +} +/** + * @param {?} view + * @return {?} + */ +function generateVisitRootNodesMethod(view) { + var /** @type {?} */ cbVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('cb'); + var /** @type {?} */ ctxVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('ctx'); + var /** @type {?} */ stmts = generateVisitNodesStmts(view.rootNodes, cbVar, ctxVar); + return new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('visitRootNodesInternal', [new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](cbVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]), new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](ctxVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */])], stmts); +} +/** + * @param {?} view + * @return {?} + */ +function generateVisitProjectableNodesMethod(view) { + var /** @type {?} */ nodeIndexVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('nodeIndex'); + var /** @type {?} */ ngContentIndexVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('ngContentIndex'); + var /** @type {?} */ cbVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('cb'); + var /** @type {?} */ ctxVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('ctx'); + var /** @type {?} */ stmts = []; + view.nodes.forEach(function (node) { + if (node instanceof __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */] && node.component) { + node.contentNodesByNgContentIndex.forEach(function (projectedNodes, ngContentIndex) { + stmts.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["u" /* IfStmt */](nodeIndexVar.equals(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](node.nodeIndex)) + .and(ngContentIndexVar.equals(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](ngContentIndex))), generateVisitNodesStmts(projectedNodes, cbVar, ctxVar))); + }); + } + }); + return new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('visitProjectableNodesInternal', [ + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](nodeIndexVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["p" /* NUMBER_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](ngContentIndexVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["p" /* NUMBER_TYPE */]), + new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](cbVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]), new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](ctxVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]) + ], stmts); +} +/** + * @param {?} nodes + * @param {?} cb + * @param {?} ctx + * @return {?} + */ +function generateVisitNodesStmts(nodes, cb, ctx) { + var /** @type {?} */ stmts = []; + nodes.forEach(function (node) { + switch (node.type) { + case __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].Node: + stmts.push(cb.callFn([node.expr, ctx]).toStmt()); + break; + case __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].ViewContainer: + stmts.push(cb.callFn([node.expr.prop('nativeElement'), ctx]).toStmt()); + stmts.push(node.expr.callMethod('visitNestedViewRootNodes', [cb, ctx]).toStmt()); + break; + case __WEBPACK_IMPORTED_MODULE_11__compile_view__["c" /* CompileViewRootNodeType */].NgContent: + stmts.push(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */].callMethod('visitProjectedNodes', [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](node.ngContentIndex), cb, ctx]) + .toStmt()); + break; + } + }); + return stmts; +} +/** + * @param {?} view + * @return {?} + */ +function generateCreateEmbeddedViewsMethod(view) { + var /** @type {?} */ nodeIndexVar = __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["a" /* variable */]('nodeIndex'); + var /** @type {?} */ stmts = []; + view.nodes.forEach(function (node) { + if (node instanceof __WEBPACK_IMPORTED_MODULE_10__compile_element__["a" /* CompileElement */]) { + if (node.embeddedView) { + var /** @type {?} */ parentNodeIndex = node.isRootElement() ? null : node.parent.nodeIndex; + stmts.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["u" /* IfStmt */](nodeIndexVar.equals(__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](node.nodeIndex)), [new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["t" /* ReturnStatement */](node.embeddedView.classExpr.instantiate([ + __WEBPACK_IMPORTED_MODULE_12__constants__["a" /* ViewProperties */].viewUtils, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["e" /* THIS_EXPR */], __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["f" /* literal */](node.nodeIndex), node.renderNode, + node.viewContainer + ]))])); + } + } + }); + if (stmts.length > 0) { + stmts.push(new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["t" /* ReturnStatement */](__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["b" /* NULL_EXPR */])); + } + return new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["q" /* ClassMethod */]('createEmbeddedViewInternal', [new __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["o" /* FnParam */](nodeIndexVar.name, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["p" /* NUMBER_TYPE */])], stmts, __WEBPACK_IMPORTED_MODULE_7__output_output_ast__["d" /* importType */](__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__identifiers__["a" /* createIdentifier */])(__WEBPACK_IMPORTED_MODULE_5__identifiers__["b" /* Identifiers */].AppView), [__WEBPACK_IMPORTED_MODULE_7__output_output_ast__["m" /* DYNAMIC_TYPE */]])); +} +//# sourceMappingURL=view_builder.js.map + +/***/ }), +/* 537 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimationKeyframe; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var AnimationKeyframe = (function () { + /** + * @param {?} offset + * @param {?} styles + */ + function AnimationKeyframe(offset, styles) { + this.offset = offset; + this.styles = styles; + } + return AnimationKeyframe; +}()); +function AnimationKeyframe_tsickle_Closure_declarations() { + /** @type {?} */ + AnimationKeyframe.prototype.offset; + /** @type {?} */ + AnimationKeyframe.prototype.styles; +} +//# sourceMappingURL=animation_keyframe.js.map + +/***/ }), +/* 538 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_collection__ = __webpack_require__(112); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_lang__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__animation_constants__ = __webpack_require__(318); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__metadata__ = __webpack_require__(323); +/* harmony export (immutable) */ __webpack_exports__["a"] = prepareFinalAnimationStyles; +/* harmony export (immutable) */ __webpack_exports__["b"] = balanceAnimationKeyframes; +/* harmony export (immutable) */ __webpack_exports__["d"] = clearStyles; +/* harmony export (immutable) */ __webpack_exports__["f"] = collectAndResolveStyles; +/* harmony export (immutable) */ __webpack_exports__["e"] = renderStyles; +/* harmony export (immutable) */ __webpack_exports__["c"] = flattenStyles; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + +/** + * @param {?} previousStyles + * @param {?} newStyles + * @param {?=} nullValue + * @return {?} + */ +function prepareFinalAnimationStyles(previousStyles, newStyles, nullValue) { + if (nullValue === void 0) { nullValue = null; } + var /** @type {?} */ finalStyles = {}; + Object.keys(newStyles).forEach(function (prop) { + var /** @type {?} */ value = newStyles[prop]; + finalStyles[prop] = value == __WEBPACK_IMPORTED_MODULE_3__metadata__["a" /* AUTO_STYLE */] ? nullValue : value.toString(); + }); + Object.keys(previousStyles).forEach(function (prop) { + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["b" /* isPresent */])(finalStyles[prop])) { + finalStyles[prop] = nullValue; + } + }); + return finalStyles; +} +/** + * @param {?} collectedStyles + * @param {?} finalStateStyles + * @param {?} keyframes + * @return {?} + */ +function balanceAnimationKeyframes(collectedStyles, finalStateStyles, keyframes) { + var /** @type {?} */ limit = keyframes.length - 1; + var /** @type {?} */ firstKeyframe = keyframes[0]; + // phase 1: copy all the styles from the first keyframe into the lookup map + var /** @type {?} */ flatenedFirstKeyframeStyles = flattenStyles(firstKeyframe.styles.styles); + var /** @type {?} */ extraFirstKeyframeStyles = {}; + var /** @type {?} */ hasExtraFirstStyles = false; + Object.keys(collectedStyles).forEach(function (prop) { + var /** @type {?} */ value = (collectedStyles[prop]); + // if the style is already defined in the first keyframe then + // we do not replace it. + if (!flatenedFirstKeyframeStyles[prop]) { + flatenedFirstKeyframeStyles[prop] = value; + extraFirstKeyframeStyles[prop] = value; + hasExtraFirstStyles = true; + } + }); + var /** @type {?} */ keyframeCollectedStyles = __WEBPACK_IMPORTED_MODULE_0__facade_collection__["a" /* StringMapWrapper */].merge({}, flatenedFirstKeyframeStyles); + // phase 2: normalize the final keyframe + var /** @type {?} */ finalKeyframe = keyframes[limit]; + finalKeyframe.styles.styles.unshift(finalStateStyles); + var /** @type {?} */ flatenedFinalKeyframeStyles = flattenStyles(finalKeyframe.styles.styles); + var /** @type {?} */ extraFinalKeyframeStyles = {}; + var /** @type {?} */ hasExtraFinalStyles = false; + Object.keys(keyframeCollectedStyles).forEach(function (prop) { + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["b" /* isPresent */])(flatenedFinalKeyframeStyles[prop])) { + extraFinalKeyframeStyles[prop] = __WEBPACK_IMPORTED_MODULE_3__metadata__["a" /* AUTO_STYLE */]; + hasExtraFinalStyles = true; + } + }); + if (hasExtraFinalStyles) { + finalKeyframe.styles.styles.push(extraFinalKeyframeStyles); + } + Object.keys(flatenedFinalKeyframeStyles).forEach(function (prop) { + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["b" /* isPresent */])(flatenedFirstKeyframeStyles[prop])) { + extraFirstKeyframeStyles[prop] = __WEBPACK_IMPORTED_MODULE_3__metadata__["a" /* AUTO_STYLE */]; + hasExtraFirstStyles = true; + } + }); + if (hasExtraFirstStyles) { + firstKeyframe.styles.styles.push(extraFirstKeyframeStyles); + } + collectAndResolveStyles(collectedStyles, [finalStateStyles]); + return keyframes; +} +/** + * @param {?} styles + * @return {?} + */ +function clearStyles(styles) { + var /** @type {?} */ finalStyles = {}; + Object.keys(styles).forEach(function (key) { finalStyles[key] = null; }); + return finalStyles; +} +/** + * @param {?} collection + * @param {?} styles + * @return {?} + */ +function collectAndResolveStyles(collection, styles) { + return styles.map(function (entry) { + var /** @type {?} */ stylesObj = {}; + Object.keys(entry).forEach(function (prop) { + var /** @type {?} */ value = entry[prop]; + if (value == __WEBPACK_IMPORTED_MODULE_2__animation_constants__["d" /* FILL_STYLE_FLAG */]) { + value = collection[prop]; + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["b" /* isPresent */])(value)) { + value = __WEBPACK_IMPORTED_MODULE_3__metadata__["a" /* AUTO_STYLE */]; + } + } + collection[prop] = value; + stylesObj[prop] = value; + }); + return stylesObj; + }); +} +/** + * @param {?} element + * @param {?} renderer + * @param {?} styles + * @return {?} + */ +function renderStyles(element, renderer, styles) { + Object.keys(styles).forEach(function (prop) { renderer.setElementStyle(element, prop, styles[prop]); }); +} +/** + * @param {?} styles + * @return {?} + */ +function flattenStyles(styles) { + var /** @type {?} */ finalStyles = {}; + styles.forEach(function (entry) { + Object.keys(entry).forEach(function (prop) { finalStyles[prop] = (entry[prop]); }); + }); + return finalStyles; +} +//# sourceMappingURL=animation_style_util.js.map + +/***/ }), +/* 539 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimationStyles; }); +/** + * @license undefined + * Copyright Google Inc. All Rights Reserved. + * * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var AnimationStyles = (function () { + /** + * @param {?} styles + */ + function AnimationStyles(styles) { + this.styles = styles; + } + return AnimationStyles; +}()); +function AnimationStyles_tsickle_Closure_declarations() { + /** @type {?} */ + AnimationStyles.prototype.styles; +} +//# sourceMappingURL=animation_styles.js.map + +/***/ }), +/* 540 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animation_transition_event__ = __webpack_require__(322); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimationTransition; }); + +var AnimationTransition = (function () { + /** + * @param {?} _player + * @param {?} _fromState + * @param {?} _toState + * @param {?} _totalTime + */ + function AnimationTransition(_player, _fromState, _toState, _totalTime) { + this._player = _player; + this._fromState = _fromState; + this._toState = _toState; + this._totalTime = _totalTime; + } + /** + * @param {?} phaseName + * @return {?} + */ + AnimationTransition.prototype._createEvent = function (phaseName) { + return new __WEBPACK_IMPORTED_MODULE_0__animation_transition_event__["a" /* AnimationTransitionEvent */]({ + fromState: this._fromState, + toState: this._toState, + totalTime: this._totalTime, + phaseName: phaseName + }); + }; + /** + * @param {?} callback + * @return {?} + */ + AnimationTransition.prototype.onStart = function (callback) { + var _this = this; + var /** @type {?} */ fn = (Zone.current.wrap(function () { return callback(_this._createEvent('start')); }, 'player.onStart')); + this._player.onStart(fn); + }; + /** + * @param {?} callback + * @return {?} + */ + AnimationTransition.prototype.onDone = function (callback) { + var _this = this; + var /** @type {?} */ fn = (Zone.current.wrap(function () { return callback(_this._createEvent('done')); }, 'player.onDone')); + this._player.onDone(fn); + }; + return AnimationTransition; +}()); +function AnimationTransition_tsickle_Closure_declarations() { + /** @type {?} */ + AnimationTransition.prototype._player; + /** @type {?} */ + AnimationTransition.prototype._fromState; + /** @type {?} */ + AnimationTransition.prototype._toState; + /** @type {?} */ + AnimationTransition.prototype._totalTime; +} +//# sourceMappingURL=animation_transition.js.map + +/***/ }), +/* 541 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_lang__ = __webpack_require__(5); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ViewAnimationMap; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +var ViewAnimationMap = (function () { + function ViewAnimationMap() { + this._map = new Map(); + this._allPlayers = []; + } + /** + * @param {?} element + * @param {?} animationName + * @return {?} + */ + ViewAnimationMap.prototype.find = function (element, animationName) { + var /** @type {?} */ playersByAnimation = this._map.get(element); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(playersByAnimation)) { + return playersByAnimation[animationName]; + } + }; + /** + * @param {?} element + * @return {?} + */ + ViewAnimationMap.prototype.findAllPlayersByElement = function (element) { + var /** @type {?} */ el = this._map.get(element); + return el ? Object.keys(el).map(function (k) { return el[k]; }) : []; + }; + /** + * @param {?} element + * @param {?} animationName + * @param {?} player + * @return {?} + */ + ViewAnimationMap.prototype.set = function (element, animationName, player) { + var /** @type {?} */ playersByAnimation = this._map.get(element); + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(playersByAnimation)) { + playersByAnimation = {}; + } + var /** @type {?} */ existingEntry = playersByAnimation[animationName]; + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(existingEntry)) { + this.remove(element, animationName); + } + playersByAnimation[animationName] = player; + this._allPlayers.push(player); + this._map.set(element, playersByAnimation); + }; + /** + * @return {?} + */ + ViewAnimationMap.prototype.getAllPlayers = function () { return this._allPlayers; }; + /** + * @param {?} element + * @param {?} animationName + * @param {?=} targetPlayer + * @return {?} + */ + ViewAnimationMap.prototype.remove = function (element, animationName, targetPlayer) { + if (targetPlayer === void 0) { targetPlayer = null; } + var /** @type {?} */ playersByAnimation = this._map.get(element); + if (playersByAnimation) { + var /** @type {?} */ player = playersByAnimation[animationName]; + if (!targetPlayer || player === targetPlayer) { + delete playersByAnimation[animationName]; + var /** @type {?} */ index = this._allPlayers.indexOf(player); + this._allPlayers.splice(index, 1); + if (Object.keys(playersByAnimation).length === 0) { + this._map.delete(element); + } + } + } + }; + return ViewAnimationMap; +}()); +function ViewAnimationMap_tsickle_Closure_declarations() { + /** @type {?} */ + ViewAnimationMap.prototype._map; + /** @type {?} */ + ViewAnimationMap.prototype._allPlayers; +} +//# sourceMappingURL=view_animation_map.js.map + +/***/ }), +/* 542 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animation_animation_queue__ = __webpack_require__(320); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__application_init__ = __webpack_require__(207); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__application_ref__ = __webpack_require__(208); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__application_tokens__ = __webpack_require__(149); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__change_detection_change_detection__ = __webpack_require__(150); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__i18n_tokens__ = __webpack_require__(331); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__linker_compiler__ = __webpack_require__(113); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__linker_view_utils__ = __webpack_require__(156); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__metadata__ = __webpack_require__(339); +/* unused harmony export _iterableDiffersFactory */ +/* unused harmony export _keyValueDiffersFactory */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ApplicationModule; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + +/** + * @return {?} + */ +function _iterableDiffersFactory() { + return __WEBPACK_IMPORTED_MODULE_4__change_detection_change_detection__["c" /* defaultIterableDiffers */]; +} +/** + * @return {?} + */ +function _keyValueDiffersFactory() { + return __WEBPACK_IMPORTED_MODULE_4__change_detection_change_detection__["d" /* defaultKeyValueDiffers */]; +} +/** + * This module includes the providers of @angular/core that are needed + * to bootstrap components via `ApplicationRef`. + * * + */ +var ApplicationModule = (function () { + function ApplicationModule() { + } + ApplicationModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_8__metadata__["y" /* NgModule */], args: [{ + providers: [ + __WEBPACK_IMPORTED_MODULE_2__application_ref__["k" /* ApplicationRef_ */], + { provide: __WEBPACK_IMPORTED_MODULE_2__application_ref__["f" /* ApplicationRef */], useExisting: __WEBPACK_IMPORTED_MODULE_2__application_ref__["k" /* ApplicationRef_ */] }, + __WEBPACK_IMPORTED_MODULE_1__application_init__["b" /* ApplicationInitStatus */], + __WEBPACK_IMPORTED_MODULE_6__linker_compiler__["b" /* Compiler */], + __WEBPACK_IMPORTED_MODULE_3__application_tokens__["e" /* APP_ID_RANDOM_PROVIDER */], + __WEBPACK_IMPORTED_MODULE_7__linker_view_utils__["ViewUtils"], + __WEBPACK_IMPORTED_MODULE_0__animation_animation_queue__["a" /* AnimationQueue */], + { provide: __WEBPACK_IMPORTED_MODULE_4__change_detection_change_detection__["e" /* IterableDiffers */], useFactory: _iterableDiffersFactory }, + { provide: __WEBPACK_IMPORTED_MODULE_4__change_detection_change_detection__["f" /* KeyValueDiffers */], useFactory: _keyValueDiffersFactory }, + { provide: __WEBPACK_IMPORTED_MODULE_5__i18n_tokens__["c" /* LOCALE_ID */], useValue: 'en-US' }, + ] + },] }, + ]; + /** @nocollapse */ + ApplicationModule.ctorParameters = function () { return []; }; + return ApplicationModule; +}()); +function ApplicationModule_tsickle_Closure_declarations() { + /** @type {?} */ + ApplicationModule.decorators; + /** + * @nocollapse + * @type {?} + */ + ApplicationModule.ctorParameters; +} +//# sourceMappingURL=application_module.js.map + +/***/ }), +/* 543 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__ = __webpack_require__(150); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["j"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["k"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["l"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["m"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @module + * @description + * Change detection enables data binding in Angular. + */ + +//# sourceMappingURL=change_detection.js.map + +/***/ }), +/* 544 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__metadata__ = __webpack_require__(339); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "P", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "V", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["j"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "W", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["k"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "X", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["l"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Y", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["m"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Z", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["n"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_0", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["o"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_1", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["p"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_2", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["q"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_3", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["r"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_4", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["s"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_5", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["t"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_6", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["u"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_7", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["v"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_8", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["w"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_9", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["x"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_10", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["y"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_11", function() { return __WEBPACK_IMPORTED_MODULE_0__metadata__["z"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__version__ = __webpack_require__(345); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_12", function() { return __WEBPACK_IMPORTED_MODULE_1__version__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_13", function() { return __WEBPACK_IMPORTED_MODULE_1__version__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(561); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_14", function() { return __WEBPACK_IMPORTED_MODULE_2__util__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__di__ = __webpack_require__(37); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_15", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_16", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_17", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_18", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_19", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_20", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_21", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_22", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_23", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_24", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["j"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_25", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["k"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_26", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["l"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_27", function() { return __WEBPACK_IMPORTED_MODULE_3__di__["m"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__application_ref__ = __webpack_require__(208); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_4__application_ref__["j"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__application_tokens__ = __webpack_require__(149); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_5__application_tokens__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_5__application_tokens__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_5__application_tokens__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_5__application_tokens__["d"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__application_init__ = __webpack_require__(207); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_6__application_init__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_6__application_init__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__zone__ = __webpack_require__(562); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_28", function() { return __WEBPACK_IMPORTED_MODULE_7__zone__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__render__ = __webpack_require__(560); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_29", function() { return __WEBPACK_IMPORTED_MODULE_8__render__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_30", function() { return __WEBPACK_IMPORTED_MODULE_8__render__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_31", function() { return __WEBPACK_IMPORTED_MODULE_8__render__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__linker__ = __webpack_require__(548); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_32", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_33", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_34", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_35", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_36", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_37", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_38", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_39", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_40", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_41", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["j"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_42", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["k"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_43", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["l"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_44", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["m"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_45", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["n"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_46", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["o"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_47", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["p"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_48", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["q"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_49", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["r"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_50", function() { return __WEBPACK_IMPORTED_MODULE_9__linker__["s"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__debug_debug_node__ = __webpack_require__(328); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_10__debug_debug_node__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_10__debug_debug_node__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return __WEBPACK_IMPORTED_MODULE_10__debug_debug_node__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return __WEBPACK_IMPORTED_MODULE_10__debug_debug_node__["d"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__testability_testability__ = __webpack_require__(220); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return __WEBPACK_IMPORTED_MODULE_11__testability_testability__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return __WEBPACK_IMPORTED_MODULE_11__testability_testability__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return __WEBPACK_IMPORTED_MODULE_11__testability_testability__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__change_detection__ = __webpack_require__(543); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_51", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_52", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_53", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_54", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_55", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_56", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_57", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_58", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_59", function() { return __WEBPACK_IMPORTED_MODULE_12__change_detection__["i"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__platform_core_providers__ = __webpack_require__(558); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_60", function() { return __WEBPACK_IMPORTED_MODULE_13__platform_core_providers__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__i18n_tokens__ = __webpack_require__(331); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return __WEBPACK_IMPORTED_MODULE_14__i18n_tokens__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return __WEBPACK_IMPORTED_MODULE_14__i18n_tokens__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return __WEBPACK_IMPORTED_MODULE_14__i18n_tokens__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__application_module__ = __webpack_require__(542); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return __WEBPACK_IMPORTED_MODULE_15__application_module__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__profile_profile__ = __webpack_require__(157); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return __WEBPACK_IMPORTED_MODULE_16__profile_profile__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return __WEBPACK_IMPORTED_MODULE_16__profile_profile__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return __WEBPACK_IMPORTED_MODULE_16__profile_profile__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return __WEBPACK_IMPORTED_MODULE_16__profile_profile__["d"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__type__ = __webpack_require__(221); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return __WEBPACK_IMPORTED_MODULE_17__type__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__facade_async__ = __webpack_require__(215); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return __WEBPACK_IMPORTED_MODULE_18__facade_async__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__error_handler__ = __webpack_require__(330); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return __WEBPACK_IMPORTED_MODULE_19__error_handler__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__core_private_export__ = __webpack_require__(545); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_61", function() { return __WEBPACK_IMPORTED_MODULE_20__core_private_export__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__animation_metadata__ = __webpack_require__(323); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_62", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_63", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_64", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_65", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_66", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["e"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_67", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["f"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_68", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["g"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_69", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["h"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_70", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["i"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_71", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["j"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_72", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["k"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_73", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["l"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_74", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["m"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_75", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["n"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_76", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["o"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_77", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["p"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_78", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["q"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_79", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["r"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_80", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["s"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "_81", function() { return __WEBPACK_IMPORTED_MODULE_21__animation_metadata__["t"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__animation_animation_transition_event__ = __webpack_require__(322); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return __WEBPACK_IMPORTED_MODULE_22__animation_animation_transition_event__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__animation_animation_player__ = __webpack_require__(206); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return __WEBPACK_IMPORTED_MODULE_23__animation_animation_player__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__security__ = __webpack_require__(344); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return __WEBPACK_IMPORTED_MODULE_24__security__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return __WEBPACK_IMPORTED_MODULE_24__security__["b"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @module + * @description + * Entry point from which you should import all public core APIs. + */ + + + + + + + + + + + + + + + + + + + + + + + + + +//# sourceMappingURL=core.js.map + +/***/ }), +/* 545 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animation_animation_constants__ = __webpack_require__(318); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animation_animation_group_player__ = __webpack_require__(319); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__animation_animation_keyframe__ = __webpack_require__(537); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__animation_animation_player__ = __webpack_require__(206); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__animation_animation_sequence_player__ = __webpack_require__(321); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__ = __webpack_require__(538); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__animation_animation_styles__ = __webpack_require__(539); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__animation_animation_transition__ = __webpack_require__(540); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__application_tokens__ = __webpack_require__(149); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__change_detection_change_detection_util__ = __webpack_require__(151); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__change_detection_constants__ = __webpack_require__(152); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__console__ = __webpack_require__(210); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__debug_debug_renderer__ = __webpack_require__(546); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__di_reflective_provider__ = __webpack_require__(214); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__linker_compiler__ = __webpack_require__(113); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__linker_component_factory__ = __webpack_require__(216); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__linker_component_factory_resolver__ = __webpack_require__(153); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__linker_debug_context__ = __webpack_require__(332); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__linker_ng_module_factory__ = __webpack_require__(334); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__linker_ng_module_factory_loader__ = __webpack_require__(335); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__linker_template_ref__ = __webpack_require__(336); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__linker_view__ = __webpack_require__(553); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__linker_view_container__ = __webpack_require__(554); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__linker_view_type__ = __webpack_require__(155); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__linker_view_utils__ = __webpack_require__(156); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__metadata_lifecycle_hooks__ = __webpack_require__(340); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__metadata_view__ = __webpack_require__(341); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__reflection_reflection__ = __webpack_require__(217); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__reflection_reflection_capabilities__ = __webpack_require__(342); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__reflection_reflector_reader__ = __webpack_require__(218); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__render_api__ = __webpack_require__(219); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__util_decorators__ = __webpack_require__(90); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__util_lang__ = __webpack_require__(222); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __core_private__; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var /** @type {?} */ __core_private__ = { + isDefaultChangeDetectionStrategy: __WEBPACK_IMPORTED_MODULE_10__change_detection_constants__["a" /* isDefaultChangeDetectionStrategy */], + ChangeDetectorStatus: __WEBPACK_IMPORTED_MODULE_10__change_detection_constants__["b" /* ChangeDetectorStatus */], + constructDependencies: __WEBPACK_IMPORTED_MODULE_13__di_reflective_provider__["a" /* constructDependencies */], + LifecycleHooks: __WEBPACK_IMPORTED_MODULE_25__metadata_lifecycle_hooks__["a" /* LifecycleHooks */], + LIFECYCLE_HOOKS_VALUES: __WEBPACK_IMPORTED_MODULE_25__metadata_lifecycle_hooks__["b" /* LIFECYCLE_HOOKS_VALUES */], + ReflectorReader: __WEBPACK_IMPORTED_MODULE_29__reflection_reflector_reader__["a" /* ReflectorReader */], + CodegenComponentFactoryResolver: __WEBPACK_IMPORTED_MODULE_16__linker_component_factory_resolver__["a" /* CodegenComponentFactoryResolver */], + ComponentRef_: __WEBPACK_IMPORTED_MODULE_15__linker_component_factory__["a" /* ComponentRef_ */], + ViewContainer: __WEBPACK_IMPORTED_MODULE_22__linker_view_container__["a" /* ViewContainer */], + AppView: __WEBPACK_IMPORTED_MODULE_21__linker_view__["a" /* AppView */], + DebugAppView: __WEBPACK_IMPORTED_MODULE_21__linker_view__["b" /* DebugAppView */], + NgModuleInjector: __WEBPACK_IMPORTED_MODULE_18__linker_ng_module_factory__["a" /* NgModuleInjector */], + registerModuleFactory: __WEBPACK_IMPORTED_MODULE_19__linker_ng_module_factory_loader__["a" /* registerModuleFactory */], + ViewType: __WEBPACK_IMPORTED_MODULE_23__linker_view_type__["a" /* ViewType */], + view_utils: __WEBPACK_IMPORTED_MODULE_24__linker_view_utils__, + ViewMetadata: __WEBPACK_IMPORTED_MODULE_26__metadata_view__["a" /* ViewMetadata */], + DebugContext: __WEBPACK_IMPORTED_MODULE_17__linker_debug_context__["a" /* DebugContext */], + StaticNodeDebugInfo: __WEBPACK_IMPORTED_MODULE_17__linker_debug_context__["b" /* StaticNodeDebugInfo */], + devModeEqual: __WEBPACK_IMPORTED_MODULE_9__change_detection_change_detection_util__["a" /* devModeEqual */], + UNINITIALIZED: __WEBPACK_IMPORTED_MODULE_9__change_detection_change_detection_util__["b" /* UNINITIALIZED */], + ValueUnwrapper: __WEBPACK_IMPORTED_MODULE_9__change_detection_change_detection_util__["c" /* ValueUnwrapper */], + RenderDebugInfo: __WEBPACK_IMPORTED_MODULE_30__render_api__["a" /* RenderDebugInfo */], + TemplateRef_: __WEBPACK_IMPORTED_MODULE_20__linker_template_ref__["a" /* TemplateRef_ */], + ReflectionCapabilities: __WEBPACK_IMPORTED_MODULE_28__reflection_reflection_capabilities__["a" /* ReflectionCapabilities */], + makeDecorator: __WEBPACK_IMPORTED_MODULE_31__util_decorators__["a" /* makeDecorator */], + DebugDomRootRenderer: __WEBPACK_IMPORTED_MODULE_12__debug_debug_renderer__["a" /* DebugDomRootRenderer */], + Console: __WEBPACK_IMPORTED_MODULE_11__console__["a" /* Console */], + reflector: __WEBPACK_IMPORTED_MODULE_27__reflection_reflection__["a" /* reflector */], + Reflector: __WEBPACK_IMPORTED_MODULE_27__reflection_reflection__["b" /* Reflector */], + NoOpAnimationPlayer: __WEBPACK_IMPORTED_MODULE_3__animation_animation_player__["b" /* NoOpAnimationPlayer */], + AnimationPlayer: __WEBPACK_IMPORTED_MODULE_3__animation_animation_player__["a" /* AnimationPlayer */], + AnimationSequencePlayer: __WEBPACK_IMPORTED_MODULE_4__animation_animation_sequence_player__["a" /* AnimationSequencePlayer */], + AnimationGroupPlayer: __WEBPACK_IMPORTED_MODULE_1__animation_animation_group_player__["a" /* AnimationGroupPlayer */], + AnimationKeyframe: __WEBPACK_IMPORTED_MODULE_2__animation_animation_keyframe__["a" /* AnimationKeyframe */], + prepareFinalAnimationStyles: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["a" /* prepareFinalAnimationStyles */], + balanceAnimationKeyframes: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["b" /* balanceAnimationKeyframes */], + flattenStyles: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["c" /* flattenStyles */], + clearStyles: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["d" /* clearStyles */], + renderStyles: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["e" /* renderStyles */], + collectAndResolveStyles: __WEBPACK_IMPORTED_MODULE_5__animation_animation_style_util__["f" /* collectAndResolveStyles */], + APP_ID_RANDOM_PROVIDER: __WEBPACK_IMPORTED_MODULE_8__application_tokens__["e" /* APP_ID_RANDOM_PROVIDER */], + AnimationStyles: __WEBPACK_IMPORTED_MODULE_6__animation_animation_styles__["a" /* AnimationStyles */], + ANY_STATE: __WEBPACK_IMPORTED_MODULE_0__animation_animation_constants__["a" /* ANY_STATE */], + DEFAULT_STATE: __WEBPACK_IMPORTED_MODULE_0__animation_animation_constants__["b" /* DEFAULT_STATE */], + EMPTY_STATE: __WEBPACK_IMPORTED_MODULE_0__animation_animation_constants__["c" /* EMPTY_STATE */], + FILL_STYLE_FLAG: __WEBPACK_IMPORTED_MODULE_0__animation_animation_constants__["d" /* FILL_STYLE_FLAG */], + ComponentStillLoadingError: __WEBPACK_IMPORTED_MODULE_14__linker_compiler__["a" /* ComponentStillLoadingError */], + isPromise: __WEBPACK_IMPORTED_MODULE_32__util_lang__["a" /* isPromise */], + AnimationTransition: __WEBPACK_IMPORTED_MODULE_7__animation_animation_transition__["a" /* AnimationTransition */] +}; +//# sourceMappingURL=core_private_export.js.map + +/***/ }), +/* 546 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_lang__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__debug_node__ = __webpack_require__(328); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DebugDomRootRenderer; }); +/* unused harmony export DebugDomRenderer */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +var DebugDomRootRenderer = (function () { + /** + * @param {?} _delegate + */ + function DebugDomRootRenderer(_delegate) { + this._delegate = _delegate; + } + /** + * @param {?} componentProto + * @return {?} + */ + DebugDomRootRenderer.prototype.renderComponent = function (componentProto) { + return new DebugDomRenderer(this._delegate.renderComponent(componentProto)); + }; + return DebugDomRootRenderer; +}()); +function DebugDomRootRenderer_tsickle_Closure_declarations() { + /** @type {?} */ + DebugDomRootRenderer.prototype._delegate; +} +var DebugDomRenderer = (function () { + /** + * @param {?} _delegate + */ + function DebugDomRenderer(_delegate) { + this._delegate = _delegate; + } + /** + * @param {?} selectorOrNode + * @param {?=} debugInfo + * @return {?} + */ + DebugDomRenderer.prototype.selectRootElement = function (selectorOrNode, debugInfo) { + var /** @type {?} */ nativeEl = this._delegate.selectRootElement(selectorOrNode, debugInfo); + var /** @type {?} */ debugEl = new __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */](nativeEl, null, debugInfo); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["e" /* indexDebugNode */])(debugEl); + return nativeEl; + }; + /** + * @param {?} parentElement + * @param {?} name + * @param {?=} debugInfo + * @return {?} + */ + DebugDomRenderer.prototype.createElement = function (parentElement, name, debugInfo) { + var /** @type {?} */ nativeEl = this._delegate.createElement(parentElement, name, debugInfo); + var /** @type {?} */ debugEl = new __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */](nativeEl, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(parentElement), debugInfo); + debugEl.name = name; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["e" /* indexDebugNode */])(debugEl); + return nativeEl; + }; + /** + * @param {?} hostElement + * @return {?} + */ + DebugDomRenderer.prototype.createViewRoot = function (hostElement) { return this._delegate.createViewRoot(hostElement); }; + /** + * @param {?} parentElement + * @param {?=} debugInfo + * @return {?} + */ + DebugDomRenderer.prototype.createTemplateAnchor = function (parentElement, debugInfo) { + var /** @type {?} */ comment = this._delegate.createTemplateAnchor(parentElement, debugInfo); + var /** @type {?} */ debugEl = new __WEBPACK_IMPORTED_MODULE_1__debug_node__["b" /* DebugNode */](comment, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(parentElement), debugInfo); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["e" /* indexDebugNode */])(debugEl); + return comment; + }; + /** + * @param {?} parentElement + * @param {?} value + * @param {?=} debugInfo + * @return {?} + */ + DebugDomRenderer.prototype.createText = function (parentElement, value, debugInfo) { + var /** @type {?} */ text = this._delegate.createText(parentElement, value, debugInfo); + var /** @type {?} */ debugEl = new __WEBPACK_IMPORTED_MODULE_1__debug_node__["b" /* DebugNode */](text, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(parentElement), debugInfo); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["e" /* indexDebugNode */])(debugEl); + return text; + }; + /** + * @param {?} parentElement + * @param {?} nodes + * @return {?} + */ + DebugDomRenderer.prototype.projectNodes = function (parentElement, nodes) { + var /** @type {?} */ debugParent = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(parentElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugParent) && debugParent instanceof __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */]) { + var /** @type {?} */ debugElement_1 = debugParent; + nodes.forEach(function (node) { debugElement_1.addChild(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(node)); }); + } + this._delegate.projectNodes(parentElement, nodes); + }; + /** + * @param {?} node + * @param {?} viewRootNodes + * @return {?} + */ + DebugDomRenderer.prototype.attachViewAfter = function (node, viewRootNodes) { + var /** @type {?} */ debugNode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(node); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugNode)) { + var /** @type {?} */ debugParent = debugNode.parent; + if (viewRootNodes.length > 0 && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugParent)) { + var /** @type {?} */ debugViewRootNodes_1 = []; + viewRootNodes.forEach(function (rootNode) { return debugViewRootNodes_1.push(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(rootNode)); }); + debugParent.insertChildrenAfter(debugNode, debugViewRootNodes_1); + } + } + this._delegate.attachViewAfter(node, viewRootNodes); + }; + /** + * @param {?} viewRootNodes + * @return {?} + */ + DebugDomRenderer.prototype.detachView = function (viewRootNodes) { + viewRootNodes.forEach(function (node) { + var /** @type {?} */ debugNode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(node); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugNode) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugNode.parent)) { + debugNode.parent.removeChild(debugNode); + } + }); + this._delegate.detachView(viewRootNodes); + }; + /** + * @param {?} hostElement + * @param {?} viewAllNodes + * @return {?} + */ + DebugDomRenderer.prototype.destroyView = function (hostElement, viewAllNodes) { + viewAllNodes = viewAllNodes || []; + viewAllNodes.forEach(function (node) { __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["f" /* removeDebugNodeFromIndex */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(node)); }); + this._delegate.destroyView(hostElement, viewAllNodes); + }; + /** + * @param {?} renderElement + * @param {?} name + * @param {?} callback + * @return {?} + */ + DebugDomRenderer.prototype.listen = function (renderElement, name, callback) { + var /** @type {?} */ debugEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(renderElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugEl)) { + debugEl.listeners.push(new __WEBPACK_IMPORTED_MODULE_1__debug_node__["g" /* EventListener */](name, callback)); + } + return this._delegate.listen(renderElement, name, callback); + }; + /** + * @param {?} target + * @param {?} name + * @param {?} callback + * @return {?} + */ + DebugDomRenderer.prototype.listenGlobal = function (target, name, callback) { + return this._delegate.listenGlobal(target, name, callback); + }; + /** + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + DebugDomRenderer.prototype.setElementProperty = function (renderElement, propertyName, propertyValue) { + var /** @type {?} */ debugEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(renderElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugEl) && debugEl instanceof __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */]) { + debugEl.properties[propertyName] = propertyValue; + } + this._delegate.setElementProperty(renderElement, propertyName, propertyValue); + }; + /** + * @param {?} renderElement + * @param {?} attributeName + * @param {?} attributeValue + * @return {?} + */ + DebugDomRenderer.prototype.setElementAttribute = function (renderElement, attributeName, attributeValue) { + var /** @type {?} */ debugEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(renderElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugEl) && debugEl instanceof __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */]) { + debugEl.attributes[attributeName] = attributeValue; + } + this._delegate.setElementAttribute(renderElement, attributeName, attributeValue); + }; + /** + * @param {?} renderElement + * @param {?} propertyName + * @param {?} propertyValue + * @return {?} + */ + DebugDomRenderer.prototype.setBindingDebugInfo = function (renderElement, propertyName, propertyValue) { + this._delegate.setBindingDebugInfo(renderElement, propertyName, propertyValue); + }; + /** + * @param {?} renderElement + * @param {?} className + * @param {?} isAdd + * @return {?} + */ + DebugDomRenderer.prototype.setElementClass = function (renderElement, className, isAdd) { + var /** @type {?} */ debugEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(renderElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugEl) && debugEl instanceof __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */]) { + debugEl.classes[className] = isAdd; + } + this._delegate.setElementClass(renderElement, className, isAdd); + }; + /** + * @param {?} renderElement + * @param {?} styleName + * @param {?} styleValue + * @return {?} + */ + DebugDomRenderer.prototype.setElementStyle = function (renderElement, styleName, styleValue) { + var /** @type {?} */ debugEl = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__debug_node__["d" /* getDebugNode */])(renderElement); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_lang__["b" /* isPresent */])(debugEl) && debugEl instanceof __WEBPACK_IMPORTED_MODULE_1__debug_node__["a" /* DebugElement */]) { + debugEl.styles[styleName] = styleValue; + } + this._delegate.setElementStyle(renderElement, styleName, styleValue); + }; + /** + * @param {?} renderElement + * @param {?} methodName + * @param {?=} args + * @return {?} + */ + DebugDomRenderer.prototype.invokeElementMethod = function (renderElement, methodName, args) { + this._delegate.invokeElementMethod(renderElement, methodName, args); + }; + /** + * @param {?} renderNode + * @param {?} text + * @return {?} + */ + DebugDomRenderer.prototype.setText = function (renderNode, text) { this._delegate.setText(renderNode, text); }; + /** + * @param {?} element + * @param {?} startingStyles + * @param {?} keyframes + * @param {?} duration + * @param {?} delay + * @param {?} easing + * @param {?=} previousPlayers + * @return {?} + */ + DebugDomRenderer.prototype.animate = function (element, startingStyles, keyframes, duration, delay, easing, previousPlayers) { + if (previousPlayers === void 0) { previousPlayers = []; } + return this._delegate.animate(element, startingStyles, keyframes, duration, delay, easing, previousPlayers); + }; + return DebugDomRenderer; +}()); +function DebugDomRenderer_tsickle_Closure_declarations() { + /** @type {?} */ + DebugDomRenderer.prototype._delegate; +} +//# sourceMappingURL=debug_renderer.js.map + +/***/ }), +/* 547 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_errors__ = __webpack_require__(32); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__injector__ = __webpack_require__(110); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__metadata__ = __webpack_require__(111); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reflective_errors__ = __webpack_require__(329); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__reflective_key__ = __webpack_require__(213); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__reflective_provider__ = __webpack_require__(214); +/* unused harmony export ReflectiveProtoInjectorInlineStrategy */ +/* unused harmony export ReflectiveProtoInjectorDynamicStrategy */ +/* unused harmony export ReflectiveProtoInjector */ +/* unused harmony export ReflectiveInjectorInlineStrategy */ +/* unused harmony export ReflectiveInjectorDynamicStrategy */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ReflectiveInjector; }); +/* unused harmony export ReflectiveInjector_ */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + +// Threshold for the dynamic version +var /** @type {?} */ _MAX_CONSTRUCTION_COUNTER = 10; +var /** @type {?} */ UNDEFINED = new Object(); +var ReflectiveProtoInjectorInlineStrategy = (function () { + /** + * @param {?} protoEI + * @param {?} providers + */ + function ReflectiveProtoInjectorInlineStrategy(protoEI, providers) { + this.provider0 = null; + this.provider1 = null; + this.provider2 = null; + this.provider3 = null; + this.provider4 = null; + this.provider5 = null; + this.provider6 = null; + this.provider7 = null; + this.provider8 = null; + this.provider9 = null; + this.keyId0 = null; + this.keyId1 = null; + this.keyId2 = null; + this.keyId3 = null; + this.keyId4 = null; + this.keyId5 = null; + this.keyId6 = null; + this.keyId7 = null; + this.keyId8 = null; + this.keyId9 = null; + var length = providers.length; + if (length > 0) { + this.provider0 = providers[0]; + this.keyId0 = providers[0].key.id; + } + if (length > 1) { + this.provider1 = providers[1]; + this.keyId1 = providers[1].key.id; + } + if (length > 2) { + this.provider2 = providers[2]; + this.keyId2 = providers[2].key.id; + } + if (length > 3) { + this.provider3 = providers[3]; + this.keyId3 = providers[3].key.id; + } + if (length > 4) { + this.provider4 = providers[4]; + this.keyId4 = providers[4].key.id; + } + if (length > 5) { + this.provider5 = providers[5]; + this.keyId5 = providers[5].key.id; + } + if (length > 6) { + this.provider6 = providers[6]; + this.keyId6 = providers[6].key.id; + } + if (length > 7) { + this.provider7 = providers[7]; + this.keyId7 = providers[7].key.id; + } + if (length > 8) { + this.provider8 = providers[8]; + this.keyId8 = providers[8].key.id; + } + if (length > 9) { + this.provider9 = providers[9]; + this.keyId9 = providers[9].key.id; + } + } + /** + * @param {?} index + * @return {?} + */ + ReflectiveProtoInjectorInlineStrategy.prototype.getProviderAtIndex = function (index) { + if (index == 0) + return this.provider0; + if (index == 1) + return this.provider1; + if (index == 2) + return this.provider2; + if (index == 3) + return this.provider3; + if (index == 4) + return this.provider4; + if (index == 5) + return this.provider5; + if (index == 6) + return this.provider6; + if (index == 7) + return this.provider7; + if (index == 8) + return this.provider8; + if (index == 9) + return this.provider9; + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["d" /* OutOfBoundsError */](index); + }; + /** + * @param {?} injector + * @return {?} + */ + ReflectiveProtoInjectorInlineStrategy.prototype.createInjectorStrategy = function (injector) { + return new ReflectiveInjectorInlineStrategy(injector, this); + }; + return ReflectiveProtoInjectorInlineStrategy; +}()); +function ReflectiveProtoInjectorInlineStrategy_tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider0; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider1; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider2; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider3; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider4; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider5; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider6; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider7; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider8; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.provider9; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId0; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId1; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId2; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId3; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId4; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId5; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId6; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId7; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId8; + /** @type {?} */ + ReflectiveProtoInjectorInlineStrategy.prototype.keyId9; +} +var ReflectiveProtoInjectorDynamicStrategy = (function () { + /** + * @param {?} protoInj + * @param {?} providers + */ + function ReflectiveProtoInjectorDynamicStrategy(protoInj, providers) { + this.providers = providers; + var len = providers.length; + this.keyIds = new Array(len); + for (var i = 0; i < len; i++) { + this.keyIds[i] = providers[i].key.id; + } + } + /** + * @param {?} index + * @return {?} + */ + ReflectiveProtoInjectorDynamicStrategy.prototype.getProviderAtIndex = function (index) { + if (index < 0 || index >= this.providers.length) { + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["d" /* OutOfBoundsError */](index); + } + return this.providers[index]; + }; + /** + * @param {?} ei + * @return {?} + */ + ReflectiveProtoInjectorDynamicStrategy.prototype.createInjectorStrategy = function (ei) { + return new ReflectiveInjectorDynamicStrategy(this, ei); + }; + return ReflectiveProtoInjectorDynamicStrategy; +}()); +function ReflectiveProtoInjectorDynamicStrategy_tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveProtoInjectorDynamicStrategy.prototype.keyIds; + /** @type {?} */ + ReflectiveProtoInjectorDynamicStrategy.prototype.providers; +} +var ReflectiveProtoInjector = (function () { + /** + * @param {?} providers + */ + function ReflectiveProtoInjector(providers) { + this.numberOfProviders = providers.length; + this._strategy = providers.length > _MAX_CONSTRUCTION_COUNTER ? + new ReflectiveProtoInjectorDynamicStrategy(this, providers) : + new ReflectiveProtoInjectorInlineStrategy(this, providers); + } + /** + * @param {?} providers + * @return {?} + */ + ReflectiveProtoInjector.fromResolvedProviders = function (providers) { + return new ReflectiveProtoInjector(providers); + }; + /** + * @param {?} index + * @return {?} + */ + ReflectiveProtoInjector.prototype.getProviderAtIndex = function (index) { + return this._strategy.getProviderAtIndex(index); + }; + return ReflectiveProtoInjector; +}()); +function ReflectiveProtoInjector_tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveProtoInjector.prototype._strategy; + /** @type {?} */ + ReflectiveProtoInjector.prototype.numberOfProviders; +} +var ReflectiveInjectorInlineStrategy = (function () { + /** + * @param {?} injector + * @param {?} protoStrategy + */ + function ReflectiveInjectorInlineStrategy(injector, protoStrategy) { + this.injector = injector; + this.protoStrategy = protoStrategy; + this.obj0 = UNDEFINED; + this.obj1 = UNDEFINED; + this.obj2 = UNDEFINED; + this.obj3 = UNDEFINED; + this.obj4 = UNDEFINED; + this.obj5 = UNDEFINED; + this.obj6 = UNDEFINED; + this.obj7 = UNDEFINED; + this.obj8 = UNDEFINED; + this.obj9 = UNDEFINED; + } + /** + * @return {?} + */ + ReflectiveInjectorInlineStrategy.prototype.resetConstructionCounter = function () { this.injector._constructionCounter = 0; }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjectorInlineStrategy.prototype.instantiateProvider = function (provider) { + return this.injector._new(provider); + }; + /** + * @param {?} keyId + * @return {?} + */ + ReflectiveInjectorInlineStrategy.prototype.getObjByKeyId = function (keyId) { + var /** @type {?} */ p = this.protoStrategy; + var /** @type {?} */ inj = this.injector; + if (p.keyId0 === keyId) { + if (this.obj0 === UNDEFINED) { + this.obj0 = inj._new(p.provider0); + } + return this.obj0; + } + if (p.keyId1 === keyId) { + if (this.obj1 === UNDEFINED) { + this.obj1 = inj._new(p.provider1); + } + return this.obj1; + } + if (p.keyId2 === keyId) { + if (this.obj2 === UNDEFINED) { + this.obj2 = inj._new(p.provider2); + } + return this.obj2; + } + if (p.keyId3 === keyId) { + if (this.obj3 === UNDEFINED) { + this.obj3 = inj._new(p.provider3); + } + return this.obj3; + } + if (p.keyId4 === keyId) { + if (this.obj4 === UNDEFINED) { + this.obj4 = inj._new(p.provider4); + } + return this.obj4; + } + if (p.keyId5 === keyId) { + if (this.obj5 === UNDEFINED) { + this.obj5 = inj._new(p.provider5); + } + return this.obj5; + } + if (p.keyId6 === keyId) { + if (this.obj6 === UNDEFINED) { + this.obj6 = inj._new(p.provider6); + } + return this.obj6; + } + if (p.keyId7 === keyId) { + if (this.obj7 === UNDEFINED) { + this.obj7 = inj._new(p.provider7); + } + return this.obj7; + } + if (p.keyId8 === keyId) { + if (this.obj8 === UNDEFINED) { + this.obj8 = inj._new(p.provider8); + } + return this.obj8; + } + if (p.keyId9 === keyId) { + if (this.obj9 === UNDEFINED) { + this.obj9 = inj._new(p.provider9); + } + return this.obj9; + } + return UNDEFINED; + }; + /** + * @param {?} index + * @return {?} + */ + ReflectiveInjectorInlineStrategy.prototype.getObjAtIndex = function (index) { + if (index == 0) + return this.obj0; + if (index == 1) + return this.obj1; + if (index == 2) + return this.obj2; + if (index == 3) + return this.obj3; + if (index == 4) + return this.obj4; + if (index == 5) + return this.obj5; + if (index == 6) + return this.obj6; + if (index == 7) + return this.obj7; + if (index == 8) + return this.obj8; + if (index == 9) + return this.obj9; + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["d" /* OutOfBoundsError */](index); + }; + /** + * @return {?} + */ + ReflectiveInjectorInlineStrategy.prototype.getMaxNumberOfObjects = function () { return _MAX_CONSTRUCTION_COUNTER; }; + return ReflectiveInjectorInlineStrategy; +}()); +function ReflectiveInjectorInlineStrategy_tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj0; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj1; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj2; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj3; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj4; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj5; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj6; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj7; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj8; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.obj9; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.injector; + /** @type {?} */ + ReflectiveInjectorInlineStrategy.prototype.protoStrategy; +} +var ReflectiveInjectorDynamicStrategy = (function () { + /** + * @param {?} protoStrategy + * @param {?} injector + */ + function ReflectiveInjectorDynamicStrategy(protoStrategy, injector) { + this.protoStrategy = protoStrategy; + this.injector = injector; + this.objs = new Array(protoStrategy.providers.length).fill(UNDEFINED); + } + /** + * @return {?} + */ + ReflectiveInjectorDynamicStrategy.prototype.resetConstructionCounter = function () { this.injector._constructionCounter = 0; }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjectorDynamicStrategy.prototype.instantiateProvider = function (provider) { + return this.injector._new(provider); + }; + /** + * @param {?} keyId + * @return {?} + */ + ReflectiveInjectorDynamicStrategy.prototype.getObjByKeyId = function (keyId) { + var /** @type {?} */ p = this.protoStrategy; + for (var /** @type {?} */ i = 0; i < p.keyIds.length; i++) { + if (p.keyIds[i] === keyId) { + if (this.objs[i] === UNDEFINED) { + this.objs[i] = this.injector._new(p.providers[i]); + } + return this.objs[i]; + } + } + return UNDEFINED; + }; + /** + * @param {?} index + * @return {?} + */ + ReflectiveInjectorDynamicStrategy.prototype.getObjAtIndex = function (index) { + if (index < 0 || index >= this.objs.length) { + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["d" /* OutOfBoundsError */](index); + } + return this.objs[index]; + }; + /** + * @return {?} + */ + ReflectiveInjectorDynamicStrategy.prototype.getMaxNumberOfObjects = function () { return this.objs.length; }; + return ReflectiveInjectorDynamicStrategy; +}()); +function ReflectiveInjectorDynamicStrategy_tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveInjectorDynamicStrategy.prototype.objs; + /** @type {?} */ + ReflectiveInjectorDynamicStrategy.prototype.protoStrategy; + /** @type {?} */ + ReflectiveInjectorDynamicStrategy.prototype.injector; +} +/** + * A ReflectiveDependency injection container used for instantiating objects and resolving + * dependencies. + * * + * An `Injector` is a replacement for a `new` operator, which can automatically resolve the + * constructor dependencies. + * * + * In typical use, application code asks for the dependencies in the constructor and they are + * resolved by the `Injector`. + * * + * ### Example ([live demo](http://plnkr.co/edit/jzjec0?p=preview)) + * * + * The following example creates an `Injector` configured to create `Engine` and `Car`. + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]); + * var car = injector.get(Car); + * expect(car instanceof Car).toBe(true); + * expect(car.engine instanceof Engine).toBe(true); + * ``` + * * + * Notice, we don't use the `new` operator because we explicitly want to have the `Injector` + * resolve all of the object's dependencies automatically. + * * + * @abstract + */ +var ReflectiveInjector = (function () { + function ReflectiveInjector() { + } + /** + * Turns an array of provider definitions into an array of resolved providers. + * * + * A resolution is a process of flattening multiple nested arrays and converting individual + * providers into an array of {@link ResolvedReflectiveProvider}s. + * * + * ### Example ([live demo](http://plnkr.co/edit/AiXTHi?p=preview)) + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var providers = ReflectiveInjector.resolve([Car, [[Engine]]]); + * * + * expect(providers.length).toEqual(2); + * * + * expect(providers[0] instanceof ResolvedReflectiveProvider).toBe(true); + * expect(providers[0].key.displayName).toBe("Car"); + * expect(providers[0].dependencies.length).toEqual(1); + * expect(providers[0].factory).toBeDefined(); + * * + * expect(providers[1].key.displayName).toBe("Engine"); + * }); + * ``` + * * + * See {@link ReflectiveInjector#fromResolvedProviders} for more info. + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.resolve = function (providers) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_5__reflective_provider__["c" /* resolveReflectiveProviders */])(providers); + }; + /** + * Resolves an array of providers and creates an injector from those providers. + * * + * The passed-in providers can be an array of `Type`, {@link Provider}, + * or a recursive array of more providers. + * * + * ### Example ([live demo](http://plnkr.co/edit/ePOccA?p=preview)) + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]); + * expect(injector.get(Car) instanceof Car).toBe(true); + * ``` + * * + * This function is slower than the corresponding `fromResolvedProviders` + * because it needs to resolve the passed-in providers first. + * See {@link Injector#resolve} and {@link Injector#fromResolvedProviders}. + * @param {?} providers + * @param {?=} parent + * @return {?} + */ + ReflectiveInjector.resolveAndCreate = function (providers, parent) { + if (parent === void 0) { parent = null; } + var /** @type {?} */ ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers); + return ReflectiveInjector.fromResolvedProviders(ResolvedReflectiveProviders, parent); + }; + /** + * Creates an injector from previously resolved providers. + * * + * This API is the recommended way to construct injectors in performance-sensitive parts. + * * + * ### Example ([live demo](http://plnkr.co/edit/KrSMci?p=preview)) + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var providers = ReflectiveInjector.resolve([Car, Engine]); + * var injector = ReflectiveInjector.fromResolvedProviders(providers); + * expect(injector.get(Car) instanceof Car).toBe(true); + * ``` + * @param {?} providers + * @param {?=} parent + * @return {?} + */ + ReflectiveInjector.fromResolvedProviders = function (providers, parent) { + if (parent === void 0) { parent = null; } + return new ReflectiveInjector_(ReflectiveProtoInjector.fromResolvedProviders(providers), parent); + }; + Object.defineProperty(ReflectiveInjector.prototype, "parent", { + /** + * Parent of this injector. + * * + * + * * + * ### Example ([live demo](http://plnkr.co/edit/eosMGo?p=preview)) + * * + * ```typescript + * var parent = ReflectiveInjector.resolveAndCreate([]); + * var child = parent.resolveAndCreateChild([]); + * expect(child.parent).toBe(parent); + * ``` + * @return {?} + */ + get: function () { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_errors__["b" /* unimplemented */])(); }, + enumerable: true, + configurable: true + }); + /** + * Resolves an array of providers and creates a child injector from those providers. + * * + * + * * + * The passed-in providers can be an array of `Type`, {@link Provider}, + * or a recursive array of more providers. + * * + * ### Example ([live demo](http://plnkr.co/edit/opB3T4?p=preview)) + * * + * ```typescript + * class ParentProvider {} + * class ChildProvider {} + * * + * var parent = ReflectiveInjector.resolveAndCreate([ParentProvider]); + * var child = parent.resolveAndCreateChild([ChildProvider]); + * * + * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true); + * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true); + * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider)); + * ``` + * * + * This function is slower than the corresponding `createChildFromResolved` + * because it needs to resolve the passed-in providers first. + * See {@link Injector#resolve} and {@link Injector#createChildFromResolved}. + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.prototype.resolveAndCreateChild = function (providers) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_errors__["b" /* unimplemented */])(); }; + /** + * Creates a child injector from previously resolved providers. + * * + * + * * + * This API is the recommended way to construct injectors in performance-sensitive parts. + * * + * ### Example ([live demo](http://plnkr.co/edit/VhyfjN?p=preview)) + * * + * ```typescript + * class ParentProvider {} + * class ChildProvider {} + * * + * var parentProviders = ReflectiveInjector.resolve([ParentProvider]); + * var childProviders = ReflectiveInjector.resolve([ChildProvider]); + * * + * var parent = ReflectiveInjector.fromResolvedProviders(parentProviders); + * var child = parent.createChildFromResolved(childProviders); + * * + * expect(child.get(ParentProvider) instanceof ParentProvider).toBe(true); + * expect(child.get(ChildProvider) instanceof ChildProvider).toBe(true); + * expect(child.get(ParentProvider)).toBe(parent.get(ParentProvider)); + * ``` + * @param {?} providers + * @return {?} + */ + ReflectiveInjector.prototype.createChildFromResolved = function (providers) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_errors__["b" /* unimplemented */])(); + }; + /** + * Resolves a provider and instantiates an object in the context of the injector. + * * + * The created object does not get cached by the injector. + * * + * ### Example ([live demo](http://plnkr.co/edit/yvVXoB?p=preview)) + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var injector = ReflectiveInjector.resolveAndCreate([Engine]); + * * + * var car = injector.resolveAndInstantiate(Car); + * expect(car.engine).toBe(injector.get(Engine)); + * expect(car).not.toBe(injector.resolveAndInstantiate(Car)); + * ``` + * @param {?} provider + * @return {?} + */ + ReflectiveInjector.prototype.resolveAndInstantiate = function (provider) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_errors__["b" /* unimplemented */])(); }; + /** + * Instantiates an object using a resolved provider in the context of the injector. + * * + * The created object does not get cached by the injector. + * * + * ### Example ([live demo](http://plnkr.co/edit/ptCImQ?p=preview)) + * * + * ```typescript + * class Engine { + * } + * * + * class Car { + * constructor(public engine:Engine) {} + * } + * * + * var injector = ReflectiveInjector.resolveAndCreate([Engine]); + * var carProvider = ReflectiveInjector.resolve([Car])[0]; + * var car = injector.instantiateResolved(carProvider); + * expect(car.engine).toBe(injector.get(Engine)); + * expect(car).not.toBe(injector.instantiateResolved(carProvider)); + * ``` + * @param {?} provider + * @return {?} + */ + ReflectiveInjector.prototype.instantiateResolved = function (provider) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__facade_errors__["b" /* unimplemented */])(); }; + /** + * @abstract + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + ReflectiveInjector.prototype.get = function (token, notFoundValue) { }; + return ReflectiveInjector; +}()); +var ReflectiveInjector_ = (function () { + /** + * Private + * @param {?} _proto + * @param {?=} _parent + */ + function ReflectiveInjector_(_proto /* ProtoInjector */, _parent) { + if (_parent === void 0) { _parent = null; } + /** @internal */ + this._constructionCounter = 0; + this._proto = _proto; + this._parent = _parent; + this._strategy = _proto._strategy.createInjectorStrategy(this); + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = __WEBPACK_IMPORTED_MODULE_1__injector__["b" /* THROW_IF_NOT_FOUND */]; } + return this._getByKey(__WEBPACK_IMPORTED_MODULE_4__reflective_key__["a" /* ReflectiveKey */].get(token), null, null, notFoundValue); + }; + /** + * @param {?} index + * @return {?} + */ + ReflectiveInjector_.prototype.getAt = function (index) { return this._strategy.getObjAtIndex(index); }; + Object.defineProperty(ReflectiveInjector_.prototype, "parent", { + /** + * @return {?} + */ + get: function () { return this._parent; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ReflectiveInjector_.prototype, "internalStrategy", { + /** + * Internal. Do not use. + * We return `any` not to export the InjectorStrategy type. + * @return {?} + */ + get: function () { return this._strategy; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} providers + * @return {?} + */ + ReflectiveInjector_.prototype.resolveAndCreateChild = function (providers) { + var /** @type {?} */ ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers); + return this.createChildFromResolved(ResolvedReflectiveProviders); + }; + /** + * @param {?} providers + * @return {?} + */ + ReflectiveInjector_.prototype.createChildFromResolved = function (providers) { + var /** @type {?} */ proto = new ReflectiveProtoInjector(providers); + var /** @type {?} */ inj = new ReflectiveInjector_(proto); + inj._parent = this; + return inj; + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype.resolveAndInstantiate = function (provider) { + return this.instantiateResolved(ReflectiveInjector.resolve([provider])[0]); + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype.instantiateResolved = function (provider) { + return this._instantiateProvider(provider); + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype._new = function (provider) { + if (this._constructionCounter++ > this._strategy.getMaxNumberOfObjects()) { + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["e" /* CyclicDependencyError */](this, provider.key); + } + return this._instantiateProvider(provider); + }; + /** + * @param {?} provider + * @return {?} + */ + ReflectiveInjector_.prototype._instantiateProvider = function (provider) { + if (provider.multiProvider) { + var /** @type {?} */ res = new Array(provider.resolvedFactories.length); + for (var /** @type {?} */ i = 0; i < provider.resolvedFactories.length; ++i) { + res[i] = this._instantiate(provider, provider.resolvedFactories[i]); + } + return res; + } + else { + return this._instantiate(provider, provider.resolvedFactories[0]); + } + }; + /** + * @param {?} provider + * @param {?} ResolvedReflectiveFactory + * @return {?} + */ + ReflectiveInjector_.prototype._instantiate = function (provider, ResolvedReflectiveFactory) { + var /** @type {?} */ factory = ResolvedReflectiveFactory.factory; + var /** @type {?} */ deps = ResolvedReflectiveFactory.dependencies; + var /** @type {?} */ length = deps.length; + var /** @type {?} */ d0; + var /** @type {?} */ d1; + var /** @type {?} */ d2; + var /** @type {?} */ d3; + var /** @type {?} */ d4; + var /** @type {?} */ d5; + var /** @type {?} */ d6; + var /** @type {?} */ d7; + var /** @type {?} */ d8; + var /** @type {?} */ d9; + var /** @type {?} */ d10; + var /** @type {?} */ d11; + var /** @type {?} */ d12; + var /** @type {?} */ d13; + var /** @type {?} */ d14; + var /** @type {?} */ d15; + var /** @type {?} */ d16; + var /** @type {?} */ d17; + var /** @type {?} */ d18; + var /** @type {?} */ d19; + try { + d0 = length > 0 ? this._getByReflectiveDependency(provider, deps[0]) : null; + d1 = length > 1 ? this._getByReflectiveDependency(provider, deps[1]) : null; + d2 = length > 2 ? this._getByReflectiveDependency(provider, deps[2]) : null; + d3 = length > 3 ? this._getByReflectiveDependency(provider, deps[3]) : null; + d4 = length > 4 ? this._getByReflectiveDependency(provider, deps[4]) : null; + d5 = length > 5 ? this._getByReflectiveDependency(provider, deps[5]) : null; + d6 = length > 6 ? this._getByReflectiveDependency(provider, deps[6]) : null; + d7 = length > 7 ? this._getByReflectiveDependency(provider, deps[7]) : null; + d8 = length > 8 ? this._getByReflectiveDependency(provider, deps[8]) : null; + d9 = length > 9 ? this._getByReflectiveDependency(provider, deps[9]) : null; + d10 = length > 10 ? this._getByReflectiveDependency(provider, deps[10]) : null; + d11 = length > 11 ? this._getByReflectiveDependency(provider, deps[11]) : null; + d12 = length > 12 ? this._getByReflectiveDependency(provider, deps[12]) : null; + d13 = length > 13 ? this._getByReflectiveDependency(provider, deps[13]) : null; + d14 = length > 14 ? this._getByReflectiveDependency(provider, deps[14]) : null; + d15 = length > 15 ? this._getByReflectiveDependency(provider, deps[15]) : null; + d16 = length > 16 ? this._getByReflectiveDependency(provider, deps[16]) : null; + d17 = length > 17 ? this._getByReflectiveDependency(provider, deps[17]) : null; + d18 = length > 18 ? this._getByReflectiveDependency(provider, deps[18]) : null; + d19 = length > 19 ? this._getByReflectiveDependency(provider, deps[19]) : null; + } + catch (e) { + if (e instanceof __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["f" /* AbstractProviderError */] || e instanceof __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["g" /* InstantiationError */]) { + e.addKey(this, provider.key); + } + throw e; + } + var /** @type {?} */ obj; + try { + switch (length) { + case 0: + obj = factory(); + break; + case 1: + obj = factory(d0); + break; + case 2: + obj = factory(d0, d1); + break; + case 3: + obj = factory(d0, d1, d2); + break; + case 4: + obj = factory(d0, d1, d2, d3); + break; + case 5: + obj = factory(d0, d1, d2, d3, d4); + break; + case 6: + obj = factory(d0, d1, d2, d3, d4, d5); + break; + case 7: + obj = factory(d0, d1, d2, d3, d4, d5, d6); + break; + case 8: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7); + break; + case 9: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8); + break; + case 10: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9); + break; + case 11: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10); + break; + case 12: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11); + break; + case 13: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12); + break; + case 14: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13); + break; + case 15: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14); + break; + case 16: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15); + break; + case 17: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16); + break; + case 18: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17); + break; + case 19: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18); + break; + case 20: + obj = factory(d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15, d16, d17, d18, d19); + break; + default: + throw new Error("Cannot instantiate '" + provider.key.displayName + "' because it has more than 20 dependencies"); + } + } + catch (e) { + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["g" /* InstantiationError */](this, e, e.stack, provider.key); + } + return obj; + }; + /** + * @param {?} provider + * @param {?} dep + * @return {?} + */ + ReflectiveInjector_.prototype._getByReflectiveDependency = function (provider, dep) { + return this._getByKey(dep.key, dep.lowerBoundVisibility, dep.upperBoundVisibility, dep.optional ? null : __WEBPACK_IMPORTED_MODULE_1__injector__["b" /* THROW_IF_NOT_FOUND */]); + }; + /** + * @param {?} key + * @param {?} lowerBoundVisibility + * @param {?} upperBoundVisibility + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._getByKey = function (key, lowerBoundVisibility, upperBoundVisibility, notFoundValue) { + if (key === INJECTOR_KEY) { + return this; + } + if (upperBoundVisibility instanceof __WEBPACK_IMPORTED_MODULE_2__metadata__["d" /* Self */]) { + return this._getByKeySelf(key, notFoundValue); + } + else { + return this._getByKeyDefault(key, notFoundValue, lowerBoundVisibility); + } + }; + /** + * @param {?} key + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._throwOrNull = function (key, notFoundValue) { + if (notFoundValue !== __WEBPACK_IMPORTED_MODULE_1__injector__["b" /* THROW_IF_NOT_FOUND */]) { + return notFoundValue; + } + else { + throw new __WEBPACK_IMPORTED_MODULE_3__reflective_errors__["h" /* NoProviderError */](this, key); + } + }; + /** + * @param {?} key + * @param {?} notFoundValue + * @return {?} + */ + ReflectiveInjector_.prototype._getByKeySelf = function (key, notFoundValue) { + var /** @type {?} */ obj = this._strategy.getObjByKeyId(key.id); + return (obj !== UNDEFINED) ? obj : this._throwOrNull(key, notFoundValue); + }; + /** + * @param {?} key + * @param {?} notFoundValue + * @param {?} lowerBoundVisibility + * @return {?} + */ + ReflectiveInjector_.prototype._getByKeyDefault = function (key, notFoundValue, lowerBoundVisibility) { + var /** @type {?} */ inj; + if (lowerBoundVisibility instanceof __WEBPACK_IMPORTED_MODULE_2__metadata__["f" /* SkipSelf */]) { + inj = this._parent; + } + else { + inj = this; + } + while (inj instanceof ReflectiveInjector_) { + var /** @type {?} */ inj_ = (inj); + var /** @type {?} */ obj = inj_._strategy.getObjByKeyId(key.id); + if (obj !== UNDEFINED) + return obj; + inj = inj_._parent; + } + if (inj !== null) { + return inj.get(key.token, notFoundValue); + } + else { + return this._throwOrNull(key, notFoundValue); + } + }; + Object.defineProperty(ReflectiveInjector_.prototype, "displayName", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ providers = _mapProviders(this, function (b) { return ' "' + b.key.displayName + '" '; }) + .join(', '); + return "ReflectiveInjector(providers: [" + providers + "])"; + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + ReflectiveInjector_.prototype.toString = function () { return this.displayName; }; + return ReflectiveInjector_; +}()); +function ReflectiveInjector__tsickle_Closure_declarations() { + /** @type {?} */ + ReflectiveInjector_.prototype._strategy; + /** @type {?} */ + ReflectiveInjector_.prototype._constructionCounter; + /** @type {?} */ + ReflectiveInjector_.prototype._proto; + /** @type {?} */ + ReflectiveInjector_.prototype._parent; +} +var /** @type {?} */ INJECTOR_KEY = __WEBPACK_IMPORTED_MODULE_4__reflective_key__["a" /* ReflectiveKey */].get(__WEBPACK_IMPORTED_MODULE_1__injector__["a" /* Injector */]); +/** + * @param {?} injector + * @param {?} fn + * @return {?} + */ +function _mapProviders(injector, fn) { + var /** @type {?} */ res = new Array(injector._proto.numberOfProviders); + for (var /** @type {?} */ i = 0; i < injector._proto.numberOfProviders; ++i) { + res[i] = fn(injector._proto.getProviderAtIndex(i)); + } + return res; +} +//# sourceMappingURL=reflective_injector.js.map + +/***/ }), +/* 548 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__linker_compiler__ = __webpack_require__(113); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__linker_compiler__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__linker_compiler__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__linker_compiler__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__linker_compiler__["e"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__linker_component_factory__ = __webpack_require__(216); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_1__linker_component_factory__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_1__linker_component_factory__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__linker_component_factory_resolver__ = __webpack_require__(153); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_2__linker_component_factory_resolver__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__linker_element_ref__ = __webpack_require__(154); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_3__linker_element_ref__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__linker_ng_module_factory__ = __webpack_require__(334); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_4__linker_ng_module_factory__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_4__linker_ng_module_factory__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__linker_ng_module_factory_loader__ = __webpack_require__(335); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_5__linker_ng_module_factory_loader__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_5__linker_ng_module_factory_loader__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__linker_query_list__ = __webpack_require__(551); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_6__linker_query_list__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__linker_system_js_ng_module_factory_loader__ = __webpack_require__(552); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_7__linker_system_js_ng_module_factory_loader__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_7__linker_system_js_ng_module_factory_loader__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__linker_template_ref__ = __webpack_require__(336); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_8__linker_template_ref__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__linker_view_container_ref__ = __webpack_require__(337); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_9__linker_view_container_ref__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__linker_view_ref__ = __webpack_require__(338); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_10__linker_view_ref__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return __WEBPACK_IMPORTED_MODULE_10__linker_view_ref__["c"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +// Public API for compiler + + + + + + + + + + + +//# sourceMappingURL=linker.js.map + +/***/ }), +/* 549 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animation_animation_group_player__ = __webpack_require__(319); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animation_animation_sequence_player__ = __webpack_require__(321); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__animation_view_animation_map__ = __webpack_require__(541); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimationViewContext; }); + + + +var AnimationViewContext = (function () { + /** + * @param {?} _animationQueue + */ + function AnimationViewContext(_animationQueue) { + this._animationQueue = _animationQueue; + this._players = new __WEBPACK_IMPORTED_MODULE_2__animation_view_animation_map__["a" /* ViewAnimationMap */](); + } + /** + * @param {?} callback + * @return {?} + */ + AnimationViewContext.prototype.onAllActiveAnimationsDone = function (callback) { + var /** @type {?} */ activeAnimationPlayers = this._players.getAllPlayers(); + // we check for the length to avoid having GroupAnimationPlayer + // issue an unnecessary microtask when zero players are passed in + if (activeAnimationPlayers.length) { + new __WEBPACK_IMPORTED_MODULE_0__animation_animation_group_player__["a" /* AnimationGroupPlayer */](activeAnimationPlayers).onDone(function () { return callback(); }); + } + else { + callback(); + } + }; + /** + * @param {?} element + * @param {?} animationName + * @param {?} player + * @return {?} + */ + AnimationViewContext.prototype.queueAnimation = function (element, animationName, player) { + var _this = this; + this._animationQueue.enqueue(player); + this._players.set(element, animationName, player); + player.onDone(function () { return _this._players.remove(element, animationName, player); }); + }; + /** + * @param {?} element + * @param {?=} animationName + * @return {?} + */ + AnimationViewContext.prototype.getAnimationPlayers = function (element, animationName) { + if (animationName === void 0) { animationName = null; } + var /** @type {?} */ players = []; + if (animationName) { + var /** @type {?} */ currentPlayer = this._players.find(element, animationName); + if (currentPlayer) { + _recursePlayers(currentPlayer, players); + } + } + else { + this._players.findAllPlayersByElement(element).forEach(function (player) { return _recursePlayers(player, players); }); + } + return players; + }; + return AnimationViewContext; +}()); +function AnimationViewContext_tsickle_Closure_declarations() { + /** @type {?} */ + AnimationViewContext.prototype._players; + /** @type {?} */ + AnimationViewContext.prototype._animationQueue; +} +/** + * @param {?} player + * @param {?} collectedPlayers + * @return {?} + */ +function _recursePlayers(player, collectedPlayers) { + if ((player instanceof __WEBPACK_IMPORTED_MODULE_0__animation_animation_group_player__["a" /* AnimationGroupPlayer */]) || (player instanceof __WEBPACK_IMPORTED_MODULE_1__animation_animation_sequence_player__["a" /* AnimationSequencePlayer */])) { + player.players.forEach(function (player) { return _recursePlayers(player, collectedPlayers); }); + } + else { + collectedPlayers.push(player); + } +} +//# sourceMappingURL=animation_view_context.js.map + +/***/ }), +/* 550 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__di_injector__ = __webpack_require__(110); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ElementInjector; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; + +var ElementInjector = (function (_super) { + __extends(ElementInjector, _super); + /** + * @param {?} _view + * @param {?} _nodeIndex + */ + function ElementInjector(_view, _nodeIndex) { + _super.call(this); + this._view = _view; + this._nodeIndex = _nodeIndex; + } + /** + * @param {?} token + * @param {?=} notFoundValue + * @return {?} + */ + ElementInjector.prototype.get = function (token, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = __WEBPACK_IMPORTED_MODULE_0__di_injector__["b" /* THROW_IF_NOT_FOUND */]; } + return this._view.injectorGet(token, this._nodeIndex, notFoundValue); + }; + return ElementInjector; +}(__WEBPACK_IMPORTED_MODULE_0__di_injector__["a" /* Injector */])); +function ElementInjector_tsickle_Closure_declarations() { + /** @type {?} */ + ElementInjector.prototype._view; + /** @type {?} */ + ElementInjector.prototype._nodeIndex; +} +//# sourceMappingURL=element_injector.js.map + +/***/ }), +/* 551 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_async__ = __webpack_require__(215); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_collection__ = __webpack_require__(112); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__facade_lang__ = __webpack_require__(5); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return QueryList; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + +/** + * An unmodifiable list of items that Angular keeps up to date when the state + * of the application changes. + * * + * The type of object that {@link Query} and {@link ViewQueryMetadata} provide. + * * + * Implements an iterable interface, therefore it can be used in both ES6 + * javascript `for (var i of items)` loops as well as in Angular templates with + * `*ngFor="let i of myList"`. + * * + * Changes can be observed by subscribing to the changes `Observable`. + * * + * NOTE: In the future this class will implement an `Observable` interface. + * * + * ### Example ([live demo](http://plnkr.co/edit/RX8sJnQYl9FWuSCWme5z?p=preview)) + * ```typescript + * class Container { + * @ViewChildren(Item) items:QueryList; + * } + * ``` + */ +var QueryList = (function () { + function QueryList() { + this._dirty = true; + this._results = []; + this._emitter = new __WEBPACK_IMPORTED_MODULE_0__facade_async__["a" /* EventEmitter */](); + } + Object.defineProperty(QueryList.prototype, "changes", { + /** + * @return {?} + */ + get: function () { return this._emitter; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "length", { + /** + * @return {?} + */ + get: function () { return this._results.length; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "first", { + /** + * @return {?} + */ + get: function () { return this._results[0]; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(QueryList.prototype, "last", { + /** + * @return {?} + */ + get: function () { return this._results[this.length - 1]; }, + enumerable: true, + configurable: true + }); + /** + * See + * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.map = function (fn) { return this._results.map(fn); }; + /** + * See + * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.filter = function (fn) { + return this._results.filter(fn); + }; + /** + * See + * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.find = function (fn) { return this._results.find(fn); }; + /** + * See + * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) + * @param {?} fn + * @param {?} init + * @return {?} + */ + QueryList.prototype.reduce = function (fn, init) { + return this._results.reduce(fn, init); + }; + /** + * See + * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.forEach = function (fn) { this._results.forEach(fn); }; + /** + * See + * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) + * @param {?} fn + * @return {?} + */ + QueryList.prototype.some = function (fn) { + return this._results.some(fn); + }; + /** + * @return {?} + */ + QueryList.prototype.toArray = function () { return this._results.slice(); }; + /** + * @return {?} + */ + QueryList.prototype[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["e" /* getSymbolIterator */])()] = function () { return ((this._results))[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["e" /* getSymbolIterator */])()](); }; + /** + * @return {?} + */ + QueryList.prototype.toString = function () { return this._results.toString(); }; + /** + * @param {?} res + * @return {?} + */ + QueryList.prototype.reset = function (res) { + this._results = __WEBPACK_IMPORTED_MODULE_1__facade_collection__["e" /* ListWrapper */].flatten(res); + this._dirty = false; + }; + /** + * @return {?} + */ + QueryList.prototype.notifyOnChanges = function () { this._emitter.emit(this); }; + /** + * internal + * @return {?} + */ + QueryList.prototype.setDirty = function () { this._dirty = true; }; + Object.defineProperty(QueryList.prototype, "dirty", { + /** + * internal + * @return {?} + */ + get: function () { return this._dirty; }, + enumerable: true, + configurable: true + }); + return QueryList; +}()); +function QueryList_tsickle_Closure_declarations() { + /** @type {?} */ + QueryList.prototype._dirty; + /** @type {?} */ + QueryList.prototype._results; + /** @type {?} */ + QueryList.prototype._emitter; +} +//# sourceMappingURL=query_list.js.map + +/***/ }), +/* 552 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__di__ = __webpack_require__(37); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__compiler__ = __webpack_require__(113); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SystemJsNgModuleLoaderConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SystemJsNgModuleLoader; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +var /** @type {?} */ _SEPARATOR = '#'; +var /** @type {?} */ FACTORY_CLASS_SUFFIX = 'NgFactory'; +/** + * Configuration for SystemJsNgModuleLoader. + * token. + * * + * @abstract + */ +var SystemJsNgModuleLoaderConfig = (function () { + function SystemJsNgModuleLoaderConfig() { + } + return SystemJsNgModuleLoaderConfig; +}()); +function SystemJsNgModuleLoaderConfig_tsickle_Closure_declarations() { + /** + * Prefix to add when computing the name of the factory module for a given module name. + * @type {?} + */ + SystemJsNgModuleLoaderConfig.prototype.factoryPathPrefix; + /** + * Suffix to add when computing the name of the factory module for a given module name. + * @type {?} + */ + SystemJsNgModuleLoaderConfig.prototype.factoryPathSuffix; +} +var /** @type {?} */ DEFAULT_CONFIG = { + factoryPathPrefix: '', + factoryPathSuffix: '.ngfactory', +}; +/** + * NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory + */ +var SystemJsNgModuleLoader = (function () { + /** + * @param {?} _compiler + * @param {?=} config + */ + function SystemJsNgModuleLoader(_compiler, config) { + this._compiler = _compiler; + this._config = config || DEFAULT_CONFIG; + } + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.load = function (path) { + var /** @type {?} */ offlineMode = this._compiler instanceof __WEBPACK_IMPORTED_MODULE_1__compiler__["b" /* Compiler */]; + return offlineMode ? this.loadFactory(path) : this.loadAndCompile(path); + }; + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.loadAndCompile = function (path) { + var _this = this; + var _a = path.split(_SEPARATOR), module = _a[0], exportName = _a[1]; + if (exportName === undefined) { + exportName = 'default'; + } + return __webpack_require__(477)(module) + .then(function (module) { return module[exportName]; }) + .then(function (type) { return checkNotEmpty(type, module, exportName); }) + .then(function (type) { return _this._compiler.compileModuleAsync(type); }); + }; + /** + * @param {?} path + * @return {?} + */ + SystemJsNgModuleLoader.prototype.loadFactory = function (path) { + var _a = path.split(_SEPARATOR), module = _a[0], exportName = _a[1]; + var /** @type {?} */ factoryClassSuffix = FACTORY_CLASS_SUFFIX; + if (exportName === undefined) { + exportName = 'default'; + factoryClassSuffix = ''; + } + return __webpack_require__(477)(this._config.factoryPathPrefix + module + this._config.factoryPathSuffix) + .then(function (module) { return module[exportName + factoryClassSuffix]; }) + .then(function (factory) { return checkNotEmpty(factory, module, exportName); }); + }; + SystemJsNgModuleLoader.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__di__["j" /* Injectable */] }, + ]; + /** @nocollapse */ + SystemJsNgModuleLoader.ctorParameters = function () { return [ + { type: __WEBPACK_IMPORTED_MODULE_1__compiler__["b" /* Compiler */], }, + { type: SystemJsNgModuleLoaderConfig, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__di__["i" /* Optional */] },] }, + ]; }; + return SystemJsNgModuleLoader; +}()); +function SystemJsNgModuleLoader_tsickle_Closure_declarations() { + /** @type {?} */ + SystemJsNgModuleLoader.decorators; + /** + * @nocollapse + * @type {?} + */ + SystemJsNgModuleLoader.ctorParameters; + /** @type {?} */ + SystemJsNgModuleLoader.prototype._config; + /** @type {?} */ + SystemJsNgModuleLoader.prototype._compiler; +} +/** + * @param {?} value + * @param {?} modulePath + * @param {?} exportName + * @return {?} + */ +function checkNotEmpty(value, modulePath, exportName) { + if (!value) { + throw new Error("Cannot find '" + exportName + "' in '" + modulePath + "'"); + } + return value; +} +//# sourceMappingURL=system_js_ng_module_factory_loader.js.map + +/***/ }), +/* 553 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__ = __webpack_require__(150); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__di_injector__ = __webpack_require__(110); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__facade_lang__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__profile_profile__ = __webpack_require__(157); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__animation_view_context__ = __webpack_require__(549); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__debug_context__ = __webpack_require__(332); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__element_injector__ = __webpack_require__(550); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__errors__ = __webpack_require__(333); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__view_ref__ = __webpack_require__(338); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__view_type__ = __webpack_require__(155); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__view_utils__ = __webpack_require__(156); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AppView; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DebugAppView; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; + + + + + + + + + + + +var /** @type {?} */ _scope_check = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__profile_profile__["a" /* wtfCreateScope */])("AppView#check(ascii id)"); +/** + * @experimental + */ +var /** @type {?} */ EMPTY_CONTEXT = new Object(); +var /** @type {?} */ UNDEFINED = new Object(); +/** + * Cost of making objects: http://jsperf.com/instantiate-size-of-object + * * + * @abstract + */ +var AppView = (function () { + /** + * @param {?} clazz + * @param {?} componentType + * @param {?} type + * @param {?} viewUtils + * @param {?} parentView + * @param {?} parentIndex + * @param {?} parentElement + * @param {?} cdMode + * @param {?=} declaredViewContainer + */ + function AppView(clazz, componentType, type, viewUtils, parentView, parentIndex, parentElement, cdMode, declaredViewContainer) { + if (declaredViewContainer === void 0) { declaredViewContainer = null; } + this.clazz = clazz; + this.componentType = componentType; + this.type = type; + this.viewUtils = viewUtils; + this.parentView = parentView; + this.parentIndex = parentIndex; + this.parentElement = parentElement; + this.cdMode = cdMode; + this.declaredViewContainer = declaredViewContainer; + this.numberOfChecks = 0; + this.ref = new __WEBPACK_IMPORTED_MODULE_8__view_ref__["a" /* ViewRef_ */](this, viewUtils.animationQueue); + if (type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].COMPONENT || type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].HOST) { + this.renderer = viewUtils.renderComponent(componentType); + } + else { + this.renderer = parentView.renderer; + } + this._directRenderer = this.renderer.directRenderer; + } + Object.defineProperty(AppView.prototype, "animationContext", { + /** + * @return {?} + */ + get: function () { + if (!this._animationContext) { + this._animationContext = new __WEBPACK_IMPORTED_MODULE_4__animation_view_context__["a" /* AnimationViewContext */](this.viewUtils.animationQueue); + } + return this._animationContext; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AppView.prototype, "destroyed", { + /** + * @return {?} + */ + get: function () { return this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Destroyed; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} context + * @return {?} + */ + AppView.prototype.create = function (context) { + this.context = context; + return this.createInternal(null); + }; + /** + * @param {?} rootSelectorOrNode + * @param {?} hostInjector + * @param {?} projectableNodes + * @return {?} + */ + AppView.prototype.createHostView = function (rootSelectorOrNode, hostInjector, projectableNodes) { + this.context = (EMPTY_CONTEXT); + this._hasExternalHostElement = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["b" /* isPresent */])(rootSelectorOrNode); + this._hostInjector = hostInjector; + this._hostProjectableNodes = projectableNodes; + return this.createInternal(rootSelectorOrNode); + }; + /** + * Overwritten by implementations. + * Returns the ComponentRef for the host element for ViewType.HOST. + * @param {?} rootSelectorOrNode + * @return {?} + */ + AppView.prototype.createInternal = function (rootSelectorOrNode) { return null; }; + /** + * Overwritten by implementations. + * @param {?} templateNodeIndex + * @return {?} + */ + AppView.prototype.createEmbeddedViewInternal = function (templateNodeIndex) { return null; }; + /** + * @param {?} lastRootNode + * @param {?} allNodes + * @param {?} disposables + * @return {?} + */ + AppView.prototype.init = function (lastRootNode, allNodes, disposables) { + this.lastRootNode = lastRootNode; + this.allNodes = allNodes; + this.disposables = disposables; + if (this.type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].COMPONENT) { + this.dirtyParentQueriesInternal(); + } + }; + /** + * @param {?} token + * @param {?} nodeIndex + * @param {?=} notFoundValue + * @return {?} + */ + AppView.prototype.injectorGet = function (token, nodeIndex, notFoundValue) { + if (notFoundValue === void 0) { notFoundValue = __WEBPACK_IMPORTED_MODULE_1__di_injector__["b" /* THROW_IF_NOT_FOUND */]; } + var /** @type {?} */ result = UNDEFINED; + var /** @type {?} */ view = this; + while (result === UNDEFINED) { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["b" /* isPresent */])(nodeIndex)) { + result = view.injectorGetInternal(token, nodeIndex, UNDEFINED); + } + if (result === UNDEFINED && view.type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].HOST) { + result = view._hostInjector.get(token, notFoundValue); + } + nodeIndex = view.parentIndex; + view = view.parentView; + } + return result; + }; + /** + * Overwritten by implementations + * @param {?} token + * @param {?} nodeIndex + * @param {?} notFoundResult + * @return {?} + */ + AppView.prototype.injectorGetInternal = function (token, nodeIndex, notFoundResult) { + return notFoundResult; + }; + /** + * @param {?} nodeIndex + * @return {?} + */ + AppView.prototype.injector = function (nodeIndex) { return new __WEBPACK_IMPORTED_MODULE_6__element_injector__["a" /* ElementInjector */](this, nodeIndex); }; + /** + * @return {?} + */ + AppView.prototype.detachAndDestroy = function () { + if (this.viewContainer) { + this.viewContainer.detachView(this.viewContainer.nestedViews.indexOf(this)); + } + else if (this.appRef) { + this.appRef.detachView(this.ref); + } + else if (this._hasExternalHostElement) { + this.detach(); + } + this.destroy(); + }; + /** + * @return {?} + */ + AppView.prototype.destroy = function () { + var _this = this; + if (this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Destroyed) { + return; + } + var /** @type {?} */ hostElement = this.type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].COMPONENT ? this.parentElement : null; + if (this.disposables) { + for (var /** @type {?} */ i = 0; i < this.disposables.length; i++) { + this.disposables[i](); + } + } + this.destroyInternal(); + this.dirtyParentQueriesInternal(); + if (this._animationContext) { + this._animationContext.onAllActiveAnimationsDone(function () { return _this.renderer.destroyView(hostElement, _this.allNodes); }); + } + else { + this.renderer.destroyView(hostElement, this.allNodes); + } + this.cdMode = __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Destroyed; + }; + /** + * Overwritten by implementations + * @return {?} + */ + AppView.prototype.destroyInternal = function () { }; + /** + * Overwritten by implementations + * @return {?} + */ + AppView.prototype.detachInternal = function () { }; + /** + * @return {?} + */ + AppView.prototype.detach = function () { + var _this = this; + this.detachInternal(); + if (this._animationContext) { + this._animationContext.onAllActiveAnimationsDone(function () { return _this._renderDetach(); }); + } + else { + this._renderDetach(); + } + if (this.declaredViewContainer && this.declaredViewContainer !== this.viewContainer && + this.declaredViewContainer.projectedViews) { + var /** @type {?} */ projectedViews = this.declaredViewContainer.projectedViews; + var /** @type {?} */ index = projectedViews.indexOf(this); + // perf: pop is faster than splice! + if (index >= projectedViews.length - 1) { + projectedViews.pop(); + } + else { + projectedViews.splice(index, 1); + } + } + this.appRef = null; + this.viewContainer = null; + this.dirtyParentQueriesInternal(); + }; + /** + * @return {?} + */ + AppView.prototype._renderDetach = function () { + if (this._directRenderer) { + this.visitRootNodesInternal(this._directRenderer.remove, null); + } + else { + this.renderer.detachView(this.flatRootNodes); + } + }; + /** + * @param {?} appRef + * @return {?} + */ + AppView.prototype.attachToAppRef = function (appRef) { + if (this.viewContainer) { + throw new Error('This view is already attached to a ViewContainer!'); + } + this.appRef = appRef; + this.dirtyParentQueriesInternal(); + }; + /** + * @param {?} viewContainer + * @param {?} prevView + * @return {?} + */ + AppView.prototype.attachAfter = function (viewContainer, prevView) { + if (this.appRef) { + throw new Error('This view is already attached directly to the ApplicationRef!'); + } + this._renderAttach(viewContainer, prevView); + this.viewContainer = viewContainer; + if (this.declaredViewContainer && this.declaredViewContainer !== viewContainer) { + if (!this.declaredViewContainer.projectedViews) { + this.declaredViewContainer.projectedViews = []; + } + this.declaredViewContainer.projectedViews.push(this); + } + this.dirtyParentQueriesInternal(); + }; + /** + * @param {?} viewContainer + * @param {?} prevView + * @return {?} + */ + AppView.prototype.moveAfter = function (viewContainer, prevView) { + this._renderAttach(viewContainer, prevView); + this.dirtyParentQueriesInternal(); + }; + /** + * @param {?} viewContainer + * @param {?} prevView + * @return {?} + */ + AppView.prototype._renderAttach = function (viewContainer, prevView) { + var /** @type {?} */ prevNode = prevView ? prevView.lastRootNode : viewContainer.nativeElement; + if (this._directRenderer) { + var /** @type {?} */ nextSibling = this._directRenderer.nextSibling(prevNode); + if (nextSibling) { + this.visitRootNodesInternal(this._directRenderer.insertBefore, nextSibling); + } + else { + var /** @type {?} */ parentElement = this._directRenderer.parentElement(prevNode); + if (parentElement) { + this.visitRootNodesInternal(this._directRenderer.appendChild, parentElement); + } + } + } + else { + this.renderer.attachViewAfter(prevNode, this.flatRootNodes); + } + }; + Object.defineProperty(AppView.prototype, "changeDetectorRef", { + /** + * @return {?} + */ + get: function () { return this.ref; }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AppView.prototype, "flatRootNodes", { + /** + * @return {?} + */ + get: function () { + var /** @type {?} */ nodes = []; + this.visitRootNodesInternal(__WEBPACK_IMPORTED_MODULE_10__view_utils__["addToArray"], nodes); + return nodes; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} parentElement + * @param {?} ngContentIndex + * @return {?} + */ + AppView.prototype.projectNodes = function (parentElement, ngContentIndex) { + if (this._directRenderer) { + this.visitProjectedNodes(ngContentIndex, this._directRenderer.appendChild, parentElement); + } + else { + var /** @type {?} */ nodes = []; + this.visitProjectedNodes(ngContentIndex, __WEBPACK_IMPORTED_MODULE_10__view_utils__["addToArray"], nodes); + this.renderer.projectNodes(parentElement, nodes); + } + }; + /** + * @param {?} ngContentIndex + * @param {?} cb + * @param {?} c + * @return {?} + */ + AppView.prototype.visitProjectedNodes = function (ngContentIndex, cb, c) { + switch (this.type) { + case __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].EMBEDDED: + this.parentView.visitProjectedNodes(ngContentIndex, cb, c); + break; + case __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].COMPONENT: + if (this.parentView.type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].HOST) { + var /** @type {?} */ nodes = this.parentView._hostProjectableNodes[ngContentIndex] || []; + for (var /** @type {?} */ i = 0; i < nodes.length; i++) { + cb(nodes[i], c); + } + } + else { + this.parentView.visitProjectableNodesInternal(this.parentIndex, ngContentIndex, cb, c); + } + break; + } + }; + /** + * Overwritten by implementations + * @param {?} cb + * @param {?} c + * @return {?} + */ + AppView.prototype.visitRootNodesInternal = function (cb, c) { }; + /** + * Overwritten by implementations + * @param {?} nodeIndex + * @param {?} ngContentIndex + * @param {?} cb + * @param {?} c + * @return {?} + */ + AppView.prototype.visitProjectableNodesInternal = function (nodeIndex, ngContentIndex, cb, c) { }; + /** + * Overwritten by implementations + * @return {?} + */ + AppView.prototype.dirtyParentQueriesInternal = function () { }; + /** + * @param {?} throwOnChange + * @return {?} + */ + AppView.prototype.internalDetectChanges = function (throwOnChange) { + if (this.cdMode !== __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Detached) { + this.detectChanges(throwOnChange); + } + }; + /** + * @param {?} throwOnChange + * @return {?} + */ + AppView.prototype.detectChanges = function (throwOnChange) { + var /** @type {?} */ s = _scope_check(this.clazz); + if (this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Checked || + this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Errored) + return; + if (this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Destroyed) { + this.throwDestroyedError('detectChanges'); + } + this.detectChangesInternal(throwOnChange); + if (this.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].CheckOnce) + this.cdMode = __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Checked; + this.numberOfChecks++; + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__profile_profile__["b" /* wtfLeave */])(s); + }; + /** + * Overwritten by implementations + * @param {?} throwOnChange + * @return {?} + */ + AppView.prototype.detectChangesInternal = function (throwOnChange) { }; + /** + * @return {?} + */ + AppView.prototype.markAsCheckOnce = function () { this.cdMode = __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].CheckOnce; }; + /** + * @return {?} + */ + AppView.prototype.markPathToRootAsCheckOnce = function () { + var /** @type {?} */ c = this; + while (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["b" /* isPresent */])(c) && c.cdMode !== __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Detached) { + if (c.cdMode === __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Checked) { + c.cdMode = __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].CheckOnce; + } + if (c.type === __WEBPACK_IMPORTED_MODULE_9__view_type__["a" /* ViewType */].COMPONENT) { + c = c.parentView; + } + else { + c = c.viewContainer ? c.viewContainer.parentView : null; + } + } + }; + /** + * @param {?} cb + * @return {?} + */ + AppView.prototype.eventHandler = function (cb) { + return cb; + }; + /** + * @param {?} details + * @return {?} + */ + AppView.prototype.throwDestroyedError = function (details) { throw new __WEBPACK_IMPORTED_MODULE_7__errors__["b" /* ViewDestroyedError */](details); }; + return AppView; +}()); +function AppView_tsickle_Closure_declarations() { + /** @type {?} */ + AppView.prototype.ref; + /** @type {?} */ + AppView.prototype.lastRootNode; + /** @type {?} */ + AppView.prototype.allNodes; + /** @type {?} */ + AppView.prototype.disposables; + /** @type {?} */ + AppView.prototype.viewContainer; + /** @type {?} */ + AppView.prototype.appRef; + /** @type {?} */ + AppView.prototype.numberOfChecks; + /** @type {?} */ + AppView.prototype.renderer; + /** @type {?} */ + AppView.prototype._hasExternalHostElement; + /** @type {?} */ + AppView.prototype._hostInjector; + /** @type {?} */ + AppView.prototype._hostProjectableNodes; + /** @type {?} */ + AppView.prototype._animationContext; + /** @type {?} */ + AppView.prototype._directRenderer; + /** @type {?} */ + AppView.prototype.context; + /** @type {?} */ + AppView.prototype.clazz; + /** @type {?} */ + AppView.prototype.componentType; + /** @type {?} */ + AppView.prototype.type; + /** @type {?} */ + AppView.prototype.viewUtils; + /** @type {?} */ + AppView.prototype.parentView; + /** @type {?} */ + AppView.prototype.parentIndex; + /** @type {?} */ + AppView.prototype.parentElement; + /** @type {?} */ + AppView.prototype.cdMode; + /** @type {?} */ + AppView.prototype.declaredViewContainer; +} +var DebugAppView = (function (_super) { + __extends(DebugAppView, _super); + /** + * @param {?} clazz + * @param {?} componentType + * @param {?} type + * @param {?} viewUtils + * @param {?} parentView + * @param {?} parentIndex + * @param {?} parentNode + * @param {?} cdMode + * @param {?} staticNodeDebugInfos + * @param {?=} declaredViewContainer + */ + function DebugAppView(clazz, componentType, type, viewUtils, parentView, parentIndex, parentNode, cdMode, staticNodeDebugInfos, declaredViewContainer) { + if (declaredViewContainer === void 0) { declaredViewContainer = null; } + _super.call(this, clazz, componentType, type, viewUtils, parentView, parentIndex, parentNode, cdMode, declaredViewContainer); + this.staticNodeDebugInfos = staticNodeDebugInfos; + this._currentDebugContext = null; + } + /** + * @param {?} context + * @return {?} + */ + DebugAppView.prototype.create = function (context) { + this._resetDebug(); + try { + return _super.prototype.create.call(this, context); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @param {?} rootSelectorOrNode + * @param {?} injector + * @param {?=} projectableNodes + * @return {?} + */ + DebugAppView.prototype.createHostView = function (rootSelectorOrNode, injector, projectableNodes) { + if (projectableNodes === void 0) { projectableNodes = null; } + this._resetDebug(); + try { + return _super.prototype.createHostView.call(this, rootSelectorOrNode, injector, projectableNodes); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @param {?} token + * @param {?} nodeIndex + * @param {?=} notFoundResult + * @return {?} + */ + DebugAppView.prototype.injectorGet = function (token, nodeIndex, notFoundResult) { + this._resetDebug(); + try { + return _super.prototype.injectorGet.call(this, token, nodeIndex, notFoundResult); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @return {?} + */ + DebugAppView.prototype.detach = function () { + this._resetDebug(); + try { + _super.prototype.detach.call(this); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @return {?} + */ + DebugAppView.prototype.destroy = function () { + this._resetDebug(); + try { + _super.prototype.destroy.call(this); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @param {?} throwOnChange + * @return {?} + */ + DebugAppView.prototype.detectChanges = function (throwOnChange) { + this._resetDebug(); + try { + _super.prototype.detectChanges.call(this, throwOnChange); + } + catch (e) { + this._rethrowWithContext(e); + throw e; + } + }; + /** + * @return {?} + */ + DebugAppView.prototype._resetDebug = function () { this._currentDebugContext = null; }; + /** + * @param {?} nodeIndex + * @param {?} rowNum + * @param {?} colNum + * @return {?} + */ + DebugAppView.prototype.debug = function (nodeIndex, rowNum, colNum) { + return this._currentDebugContext = new __WEBPACK_IMPORTED_MODULE_5__debug_context__["a" /* DebugContext */](this, nodeIndex, rowNum, colNum); + }; + /** + * @param {?} e + * @return {?} + */ + DebugAppView.prototype._rethrowWithContext = function (e) { + if (!(e instanceof __WEBPACK_IMPORTED_MODULE_7__errors__["c" /* ViewWrappedError */])) { + if (!(e instanceof __WEBPACK_IMPORTED_MODULE_7__errors__["a" /* ExpressionChangedAfterItHasBeenCheckedError */])) { + this.cdMode = __WEBPACK_IMPORTED_MODULE_0__change_detection_change_detection__["b" /* ChangeDetectorStatus */].Errored; + } + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__facade_lang__["b" /* isPresent */])(this._currentDebugContext)) { + throw new __WEBPACK_IMPORTED_MODULE_7__errors__["c" /* ViewWrappedError */](e, this._currentDebugContext); + } + } + }; + /** + * @param {?} cb + * @return {?} + */ + DebugAppView.prototype.eventHandler = function (cb) { + var _this = this; + var /** @type {?} */ superHandler = _super.prototype.eventHandler.call(this, cb); + return function (eventName, event) { + _this._resetDebug(); + try { + return superHandler.call(_this, eventName, event); + } + catch (e) { + _this._rethrowWithContext(e); + throw e; + } + }; + }; + return DebugAppView; +}(AppView)); +function DebugAppView_tsickle_Closure_declarations() { + /** @type {?} */ + DebugAppView.prototype._currentDebugContext; + /** @type {?} */ + DebugAppView.prototype.staticNodeDebugInfos; +} +//# sourceMappingURL=view.js.map + +/***/ }), +/* 554 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__element_ref__ = __webpack_require__(154); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__view_container_ref__ = __webpack_require__(337); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__view_type__ = __webpack_require__(155); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ViewContainer; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + +/** + * A ViewContainer is created for elements that have a ViewContainerRef + * to keep track of the nested views. + */ +var ViewContainer = (function () { + /** + * @param {?} index + * @param {?} parentIndex + * @param {?} parentView + * @param {?} nativeElement + */ + function ViewContainer(index, parentIndex, parentView, nativeElement) { + this.index = index; + this.parentIndex = parentIndex; + this.parentView = parentView; + this.nativeElement = nativeElement; + } + Object.defineProperty(ViewContainer.prototype, "elementRef", { + /** + * @return {?} + */ + get: function () { return new __WEBPACK_IMPORTED_MODULE_0__element_ref__["a" /* ElementRef */](this.nativeElement); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewContainer.prototype, "vcRef", { + /** + * @return {?} + */ + get: function () { return new __WEBPACK_IMPORTED_MODULE_1__view_container_ref__["a" /* ViewContainerRef_ */](this); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewContainer.prototype, "parentInjector", { + /** + * @return {?} + */ + get: function () { return this.parentView.injector(this.parentIndex); }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ViewContainer.prototype, "injector", { + /** + * @return {?} + */ + get: function () { return this.parentView.injector(this.index); }, + enumerable: true, + configurable: true + }); + /** + * @param {?} throwOnChange + * @return {?} + */ + ViewContainer.prototype.detectChangesInNestedViews = function (throwOnChange) { + if (this.nestedViews) { + for (var /** @type {?} */ i = 0; i < this.nestedViews.length; i++) { + this.nestedViews[i].detectChanges(throwOnChange); + } + } + }; + /** + * @return {?} + */ + ViewContainer.prototype.destroyNestedViews = function () { + if (this.nestedViews) { + for (var /** @type {?} */ i = 0; i < this.nestedViews.length; i++) { + this.nestedViews[i].destroy(); + } + } + }; + /** + * @param {?} cb + * @param {?} c + * @return {?} + */ + ViewContainer.prototype.visitNestedViewRootNodes = function (cb, c) { + if (this.nestedViews) { + for (var /** @type {?} */ i = 0; i < this.nestedViews.length; i++) { + this.nestedViews[i].visitRootNodesInternal(cb, c); + } + } + }; + /** + * @param {?} nestedViewClass + * @param {?} callback + * @return {?} + */ + ViewContainer.prototype.mapNestedViews = function (nestedViewClass, callback) { + var /** @type {?} */ result = []; + if (this.nestedViews) { + for (var /** @type {?} */ i = 0; i < this.nestedViews.length; i++) { + var /** @type {?} */ nestedView = this.nestedViews[i]; + if (nestedView.clazz === nestedViewClass) { + result.push(callback(nestedView)); + } + } + } + if (this.projectedViews) { + for (var /** @type {?} */ i = 0; i < this.projectedViews.length; i++) { + var /** @type {?} */ projectedView = this.projectedViews[i]; + if (projectedView.clazz === nestedViewClass) { + result.push(callback(projectedView)); + } + } + } + return result; + }; + /** + * @param {?} view + * @param {?} currentIndex + * @return {?} + */ + ViewContainer.prototype.moveView = function (view, currentIndex) { + var /** @type {?} */ previousIndex = this.nestedViews.indexOf(view); + if (view.type === __WEBPACK_IMPORTED_MODULE_2__view_type__["a" /* ViewType */].COMPONENT) { + throw new Error("Component views can't be moved!"); + } + var /** @type {?} */ nestedViews = this.nestedViews; + if (nestedViews == null) { + nestedViews = []; + this.nestedViews = nestedViews; + } + nestedViews.splice(previousIndex, 1); + nestedViews.splice(currentIndex, 0, view); + var /** @type {?} */ prevView = currentIndex > 0 ? nestedViews[currentIndex - 1] : null; + view.moveAfter(this, prevView); + }; + /** + * @param {?} view + * @param {?} viewIndex + * @return {?} + */ + ViewContainer.prototype.attachView = function (view, viewIndex) { + if (view.type === __WEBPACK_IMPORTED_MODULE_2__view_type__["a" /* ViewType */].COMPONENT) { + throw new Error("Component views can't be moved!"); + } + var /** @type {?} */ nestedViews = this.nestedViews; + if (nestedViews == null) { + nestedViews = []; + this.nestedViews = nestedViews; + } + // perf: array.push is faster than array.splice! + if (viewIndex >= nestedViews.length) { + nestedViews.push(view); + } + else { + nestedViews.splice(viewIndex, 0, view); + } + var /** @type {?} */ prevView = viewIndex > 0 ? nestedViews[viewIndex - 1] : null; + view.attachAfter(this, prevView); + }; + /** + * @param {?} viewIndex + * @return {?} + */ + ViewContainer.prototype.detachView = function (viewIndex) { + var /** @type {?} */ view = this.nestedViews[viewIndex]; + // perf: array.pop is faster than array.splice! + if (viewIndex >= this.nestedViews.length - 1) { + this.nestedViews.pop(); + } + else { + this.nestedViews.splice(viewIndex, 1); + } + if (view.type === __WEBPACK_IMPORTED_MODULE_2__view_type__["a" /* ViewType */].COMPONENT) { + throw new Error("Component views can't be moved!"); + } + view.detach(); + return view; + }; + return ViewContainer; +}()); +function ViewContainer_tsickle_Closure_declarations() { + /** @type {?} */ + ViewContainer.prototype.nestedViews; + /** @type {?} */ + ViewContainer.prototype.projectedViews; + /** @type {?} */ + ViewContainer.prototype.index; + /** @type {?} */ + ViewContainer.prototype.parentIndex; + /** @type {?} */ + ViewContainer.prototype.parentView; + /** @type {?} */ + ViewContainer.prototype.nativeElement; +} +//# sourceMappingURL=view_container.js.map + +/***/ }), +/* 555 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__di_opaque_token__ = __webpack_require__(212); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_decorators__ = __webpack_require__(90); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ANALYZE_FOR_ENTRY_COMPONENTS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Attribute; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return Query; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return ContentChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ContentChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return ViewChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return ViewChild; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +/** + * This token can be used to create a virtual provider that will populate the + * `entryComponents` fields of components and ng modules based on its `useValue`. + * All components that are referenced in the `useValue` value (either directly + * or in a nested array or map) will be added to the `entryComponents` property. + * + * ### Example + * The following example shows how the router can populate the `entryComponents` + * field of an NgModule based on the router configuration which refers + * to components. + * + * ```typescript + * // helper function inside the router + * function provideRoutes(routes) { + * return [ + * {provide: ROUTES, useValue: routes}, + * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true} + * ]; + * } + * + * // user code + * let routes = [ + * {path: '/root', component: RootComp}, + * {path: '/teams', component: TeamsComp} + * ]; + * + * @NgModule({ + * providers: [provideRoutes(routes)] + * }) + * class ModuleWithRoutes {} + * ``` + * + * @experimental + */ +var /** @type {?} */ ANALYZE_FOR_ENTRY_COMPONENTS = new __WEBPACK_IMPORTED_MODULE_0__di_opaque_token__["a" /* OpaqueToken */]('AnalyzeForEntryComponents'); +/** + * Attribute decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Attribute = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["b" /* makeParamDecorator */])('Attribute', [['attributeName', undefined]]); +/** + * Base class for query metadata. + * * + * See {@link ContentChildren}, {@link ContentChild}, {@link ViewChildren}, {@link ViewChild} for + * more information. + * * + * @abstract + */ +var Query = (function () { + function Query() { + } + return Query; +}()); +/** + * ContentChildren decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ ContentChildren = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('ContentChildren', [ + ['selector', undefined], { + first: false, + isViewQuery: false, + descendants: false, + read: undefined, + } +], Query)); +/** + * @whatItDoes Configures a content query. + * + * @howToUse + * + * {@example core/di/ts/contentChild/content_child_howto.ts region='HowTo'} + * + * @description + * + * You can use ContentChild to get the first element or the directive matching the selector from the + * content DOM. If the content DOM changes, and a new child matches the selector, + * the property will be updated. + * + * Content queries are set before the `ngAfterContentInit` callback is called. + * + * **Metadata Properties**: + * + * * **selector** - the directive type or the name used for querying. + * * **read** - read a different token from the queried element. + * + * Let's look at an example: + * + * {@example core/di/ts/contentChild/content_child_example.ts region='Component'} + * + * **npm package**: `@angular/core` + * + * @stable + * @Annotation + */ +var /** @type {?} */ ContentChild = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('ContentChild', [ + ['selector', undefined], { + first: true, + isViewQuery: false, + descendants: true, + read: undefined, + } +], Query); +/** + * @whatItDoes Configures a view query. + * + * @howToUse + * + * {@example core/di/ts/viewChildren/view_children_howto.ts region='HowTo'} + * + * @description + * + * You can use ViewChildren to get the {@link QueryList} of elements or directives from the + * view DOM. Any time a child element is added, removed, or moved, the query list will be updated, + * and the changes observable of the query list will emit a new value. + * + * View queries are set before the `ngAfterViewInit` callback is called. + * + * **Metadata Properties**: + * + * * **selector** - the directive type or the name used for querying. + * * **read** - read a different token from the queried elements. + * + * Let's look at an example: + * + * {@example core/di/ts/viewChildren/view_children_example.ts region='Component'} + * + * **npm package**: `@angular/core` + * + * @stable + * @Annotation + */ +var /** @type {?} */ ViewChildren = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('ViewChildren', [ + ['selector', undefined], { + first: false, + isViewQuery: true, + descendants: true, + read: undefined, + } +], Query); +/** + * ViewChild decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ ViewChild = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('ViewChild', [ + ['selector', undefined], { + first: true, + isViewQuery: true, + descendants: true, + read: undefined, + } +], Query); +//# sourceMappingURL=di.js.map + +/***/ }), +/* 556 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__change_detection_constants__ = __webpack_require__(152); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_decorators__ = __webpack_require__(90); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Directive; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Component; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return Pipe; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return Input; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return Output; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return HostBinding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return HostListener; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +/** + * Directive decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Directive = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["a" /* makeDecorator */])('Directive', { + selector: undefined, + inputs: undefined, + outputs: undefined, + host: undefined, + providers: undefined, + exportAs: undefined, + queries: undefined +})); +/** + * Component decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Component = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["a" /* makeDecorator */])('Component', { + selector: undefined, + inputs: undefined, + outputs: undefined, + host: undefined, + exportAs: undefined, + moduleId: undefined, + providers: undefined, + viewProviders: undefined, + changeDetection: __WEBPACK_IMPORTED_MODULE_0__change_detection_constants__["c" /* ChangeDetectionStrategy */].Default, + queries: undefined, + templateUrl: undefined, + template: undefined, + styleUrls: undefined, + styles: undefined, + animations: undefined, + encapsulation: undefined, + interpolation: undefined, + entryComponents: undefined +}, Directive)); +/** + * Pipe decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Pipe = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["a" /* makeDecorator */])('Pipe', { + name: undefined, + pure: true, +})); +/** + * Input decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Input = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('Input', [['bindingPropertyName', undefined]]); +/** + * Output decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ Output = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('Output', [['bindingPropertyName', undefined]]); +/** + * HostBinding decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ HostBinding = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('HostBinding', [['hostPropertyName', undefined]]); +/** + * HostListener decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ HostListener = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_decorators__["d" /* makePropDecorator */])('HostListener', [['eventName', undefined], ['args', []]]); +//# sourceMappingURL=directives.js.map + +/***/ }), +/* 557 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_decorators__ = __webpack_require__(90); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CUSTOM_ELEMENTS_SCHEMA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return NO_ERRORS_SCHEMA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return NgModule; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * Defines a schema that will allow: + * - any non-Angular elements with a `-` in their name, + * - any properties on elements with a `-` in their name which is the common rule for custom + * elements. + * + * @stable + */ +var /** @type {?} */ CUSTOM_ELEMENTS_SCHEMA = { + name: 'custom-elements' +}; +/** + * Defines a schema that will allow any property on any element. + * + * @experimental + */ +var /** @type {?} */ NO_ERRORS_SCHEMA = { + name: 'no-errors-schema' +}; +/** + * NgModule decorator and metadata. + * + * @stable + * @Annotation + */ +var /** @type {?} */ NgModule = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_decorators__["a" /* makeDecorator */])('NgModule', { + providers: undefined, + declarations: undefined, + imports: undefined, + exports: undefined, + entryComponents: undefined, + bootstrap: undefined, + schemas: undefined, + id: undefined, +})); +//# sourceMappingURL=ng_module.js.map + +/***/ }), +/* 558 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__application_ref__ = __webpack_require__(208); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__console__ = __webpack_require__(210); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reflection_reflection__ = __webpack_require__(217); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reflection_reflector_reader__ = __webpack_require__(218); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__testability_testability__ = __webpack_require__(220); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return platformCore; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + +/** + * @return {?} + */ +function _reflector() { + return __WEBPACK_IMPORTED_MODULE_2__reflection_reflection__["a" /* reflector */]; +} +var /** @type {?} */ _CORE_PLATFORM_PROVIDERS = [ + __WEBPACK_IMPORTED_MODULE_0__application_ref__["l" /* PlatformRef_ */], + { provide: __WEBPACK_IMPORTED_MODULE_0__application_ref__["e" /* PlatformRef */], useExisting: __WEBPACK_IMPORTED_MODULE_0__application_ref__["l" /* PlatformRef_ */] }, + { provide: __WEBPACK_IMPORTED_MODULE_2__reflection_reflection__["b" /* Reflector */], useFactory: _reflector, deps: [] }, + { provide: __WEBPACK_IMPORTED_MODULE_3__reflection_reflector_reader__["a" /* ReflectorReader */], useExisting: __WEBPACK_IMPORTED_MODULE_2__reflection_reflection__["b" /* Reflector */] }, + __WEBPACK_IMPORTED_MODULE_4__testability_testability__["b" /* TestabilityRegistry */], + __WEBPACK_IMPORTED_MODULE_1__console__["a" /* Console */], +]; +/** + * This platform has to be included in any other platform + * + * @experimental + */ +var /** @type {?} */ platformCore = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__application_ref__["i" /* createPlatformFactory */])(null, 'core', _CORE_PLATFORM_PROVIDERS); +//# sourceMappingURL=platform_core_providers.js.map + +/***/ }), +/* 559 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_lang__ = __webpack_require__(5); +/* harmony export (immutable) */ __webpack_exports__["a"] = detectWTF; +/* harmony export (immutable) */ __webpack_exports__["b"] = createScope; +/* harmony export (immutable) */ __webpack_exports__["c"] = leave; +/* harmony export (immutable) */ __webpack_exports__["d"] = startTimeRange; +/* harmony export (immutable) */ __webpack_exports__["e"] = endTimeRange; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +var /** @type {?} */ trace; +var /** @type {?} */ events; +/** + * @return {?} + */ +function detectWTF() { + var /** @type {?} */ wtf = ((__WEBPACK_IMPORTED_MODULE_0__facade_lang__["h" /* global */]) /** TODO #9100 */)['wtf']; + if (wtf) { + trace = wtf['trace']; + if (trace) { + events = trace['events']; + return true; + } + } + return false; +} +/** + * @param {?} signature + * @param {?=} flags + * @return {?} + */ +function createScope(signature, flags) { + if (flags === void 0) { flags = null; } + return events.createScope(signature, flags); +} +/** + * @param {?} scope + * @param {?=} returnValue + * @return {?} + */ +function leave(scope, returnValue) { + trace.leaveScope(scope, returnValue); + return returnValue; +} +/** + * @param {?} rangeType + * @param {?} action + * @return {?} + */ +function startTimeRange(rangeType, action) { + return trace.beginTimeRange(rangeType, action); +} +/** + * @param {?} range + * @return {?} + */ +function endTimeRange(range) { + trace.endTimeRange(range); +} +//# sourceMappingURL=wtf_impl.js.map + +/***/ }), +/* 560 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__render_api__ = __webpack_require__(219); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__render_api__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__render_api__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__render_api__["b"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +// Public API for render + +//# sourceMappingURL=render.js.map + +/***/ }), +/* 561 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_decorators__ = __webpack_require__(90); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__util_decorators__["c"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +// Public API for util + +//# sourceMappingURL=util.js.map + +/***/ }), +/* 562 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__zone_ng_zone__ = __webpack_require__(158); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__zone_ng_zone__["a"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +// Public API for Zone + +//# sourceMappingURL=zone.js.map + +/***/ }), +/* 563 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_checkbox_value_accessor__ = __webpack_require__(159); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives_default_value_accessor__ = __webpack_require__(160); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_ng_control_status__ = __webpack_require__(224); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__directives_ng_form__ = __webpack_require__(115); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_ng_model__ = __webpack_require__(225); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__directives_ng_model_group__ = __webpack_require__(161); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__directives_number_value_accessor__ = __webpack_require__(226); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__directives_radio_control_value_accessor__ = __webpack_require__(116); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__directives_range_value_accessor__ = __webpack_require__(227); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__directives_reactive_directives_form_control_directive__ = __webpack_require__(228); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__directives_reactive_directives_form_control_name__ = __webpack_require__(229); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__directives_reactive_directives_form_group_directive__ = __webpack_require__(117); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__directives_reactive_directives_form_group_name__ = __webpack_require__(118); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__directives_select_control_value_accessor__ = __webpack_require__(163); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__directives_select_multiple_control_value_accessor__ = __webpack_require__(164); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__directives_validators__ = __webpack_require__(348); +/* unused harmony reexport CheckboxControlValueAccessor */ +/* unused harmony reexport DefaultValueAccessor */ +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__directives_ng_control__ = __webpack_require__(77); +/* unused harmony reexport NgControl */ +/* unused harmony reexport NgControlStatus */ +/* unused harmony reexport NgControlStatusGroup */ +/* unused harmony reexport NgForm */ +/* unused harmony reexport NgModel */ +/* unused harmony reexport NgModelGroup */ +/* unused harmony reexport NumberValueAccessor */ +/* unused harmony reexport RadioControlValueAccessor */ +/* unused harmony reexport RangeValueAccessor */ +/* unused harmony reexport FormControlDirective */ +/* unused harmony reexport FormControlName */ +/* unused harmony reexport FormGroupDirective */ +/* unused harmony reexport FormArrayName */ +/* unused harmony reexport FormGroupName */ +/* unused harmony reexport NgSelectOption */ +/* unused harmony reexport SelectControlValueAccessor */ +/* unused harmony reexport NgSelectMultipleOption */ +/* unused harmony reexport SelectMultipleControlValueAccessor */ +/* unused harmony export SHARED_FORM_DIRECTIVES */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TEMPLATE_DRIVEN_DIRECTIVES; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return REACTIVE_DRIVEN_DIRECTIVES; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return InternalFormsSharedModule; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var /** @type {?} */ SHARED_FORM_DIRECTIVES = [ + __WEBPACK_IMPORTED_MODULE_14__directives_select_control_value_accessor__["a" /* NgSelectOption */], + __WEBPACK_IMPORTED_MODULE_15__directives_select_multiple_control_value_accessor__["b" /* NgSelectMultipleOption */], + __WEBPACK_IMPORTED_MODULE_2__directives_default_value_accessor__["a" /* DefaultValueAccessor */], + __WEBPACK_IMPORTED_MODULE_7__directives_number_value_accessor__["a" /* NumberValueAccessor */], + __WEBPACK_IMPORTED_MODULE_9__directives_range_value_accessor__["a" /* RangeValueAccessor */], + __WEBPACK_IMPORTED_MODULE_1__directives_checkbox_value_accessor__["a" /* CheckboxControlValueAccessor */], + __WEBPACK_IMPORTED_MODULE_14__directives_select_control_value_accessor__["b" /* SelectControlValueAccessor */], + __WEBPACK_IMPORTED_MODULE_15__directives_select_multiple_control_value_accessor__["a" /* SelectMultipleControlValueAccessor */], + __WEBPACK_IMPORTED_MODULE_8__directives_radio_control_value_accessor__["a" /* RadioControlValueAccessor */], + __WEBPACK_IMPORTED_MODULE_3__directives_ng_control_status__["a" /* NgControlStatus */], + __WEBPACK_IMPORTED_MODULE_3__directives_ng_control_status__["b" /* NgControlStatusGroup */], + __WEBPACK_IMPORTED_MODULE_16__directives_validators__["e" /* RequiredValidator */], + __WEBPACK_IMPORTED_MODULE_16__directives_validators__["c" /* MinLengthValidator */], + __WEBPACK_IMPORTED_MODULE_16__directives_validators__["b" /* MaxLengthValidator */], + __WEBPACK_IMPORTED_MODULE_16__directives_validators__["d" /* PatternValidator */], + __WEBPACK_IMPORTED_MODULE_16__directives_validators__["a" /* CheckboxRequiredValidator */], +]; +var /** @type {?} */ TEMPLATE_DRIVEN_DIRECTIVES = [__WEBPACK_IMPORTED_MODULE_5__directives_ng_model__["a" /* NgModel */], __WEBPACK_IMPORTED_MODULE_6__directives_ng_model_group__["a" /* NgModelGroup */], __WEBPACK_IMPORTED_MODULE_4__directives_ng_form__["a" /* NgForm */]]; +var /** @type {?} */ REACTIVE_DRIVEN_DIRECTIVES = [__WEBPACK_IMPORTED_MODULE_10__directives_reactive_directives_form_control_directive__["a" /* FormControlDirective */], __WEBPACK_IMPORTED_MODULE_12__directives_reactive_directives_form_group_directive__["a" /* FormGroupDirective */], __WEBPACK_IMPORTED_MODULE_11__directives_reactive_directives_form_control_name__["a" /* FormControlName */], __WEBPACK_IMPORTED_MODULE_13__directives_reactive_directives_form_group_name__["b" /* FormGroupName */], __WEBPACK_IMPORTED_MODULE_13__directives_reactive_directives_form_group_name__["a" /* FormArrayName */]]; +/** + * Internal module used for sharing directives between FormsModule and ReactiveFormsModule + */ +var InternalFormsSharedModule = (function () { + function InternalFormsSharedModule() { + } + InternalFormsSharedModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + declarations: SHARED_FORM_DIRECTIVES, + exports: SHARED_FORM_DIRECTIVES, + },] }, + ]; + /** @nocollapse */ + InternalFormsSharedModule.ctorParameters = function () { return []; }; + return InternalFormsSharedModule; +}()); +function InternalFormsSharedModule_tsickle_Closure_declarations() { + /** @type {?} */ + InternalFormsSharedModule.decorators; + /** + * @nocollapse + * @type {?} + */ + InternalFormsSharedModule.ctorParameters; +} +//# sourceMappingURL=directives.js.map + +/***/ }), +/* 564 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = normalizeValidator; +/* harmony export (immutable) */ __webpack_exports__["b"] = normalizeAsyncValidator; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @param {?} validator + * @return {?} + */ +function normalizeValidator(validator) { + if (((validator)).validate) { + return function (c) { return ((validator)).validate(c); }; + } + else { + return (validator); + } +} +/** + * @param {?} validator + * @return {?} + */ +function normalizeAsyncValidator(validator) { + if (((validator)).validate) { + return function (c) { return ((validator)).validate(c); }; + } + else { + return (validator); + } +} +//# sourceMappingURL=normalize_validator.js.map + +/***/ }), +/* 565 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives__ = __webpack_require__(563); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives_radio_control_value_accessor__ = __webpack_require__(116); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__form_builder__ = __webpack_require__(350); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FormsModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ReactiveFormsModule; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + +/** + * The ng module for forms. + */ +var FormsModule = (function () { + function FormsModule() { + } + FormsModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + declarations: __WEBPACK_IMPORTED_MODULE_1__directives__["a" /* TEMPLATE_DRIVEN_DIRECTIVES */], + providers: [__WEBPACK_IMPORTED_MODULE_2__directives_radio_control_value_accessor__["b" /* RadioControlRegistry */]], + exports: [__WEBPACK_IMPORTED_MODULE_1__directives__["b" /* InternalFormsSharedModule */], __WEBPACK_IMPORTED_MODULE_1__directives__["a" /* TEMPLATE_DRIVEN_DIRECTIVES */]] + },] }, + ]; + /** @nocollapse */ + FormsModule.ctorParameters = function () { return []; }; + return FormsModule; +}()); +function FormsModule_tsickle_Closure_declarations() { + /** @type {?} */ + FormsModule.decorators; + /** + * @nocollapse + * @type {?} + */ + FormsModule.ctorParameters; +} +/** + * The ng module for reactive forms. + */ +var ReactiveFormsModule = (function () { + function ReactiveFormsModule() { + } + ReactiveFormsModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + declarations: [__WEBPACK_IMPORTED_MODULE_1__directives__["c" /* REACTIVE_DRIVEN_DIRECTIVES */]], + providers: [__WEBPACK_IMPORTED_MODULE_3__form_builder__["a" /* FormBuilder */], __WEBPACK_IMPORTED_MODULE_2__directives_radio_control_value_accessor__["b" /* RadioControlRegistry */]], + exports: [__WEBPACK_IMPORTED_MODULE_1__directives__["b" /* InternalFormsSharedModule */], __WEBPACK_IMPORTED_MODULE_1__directives__["c" /* REACTIVE_DRIVEN_DIRECTIVES */]] + },] }, + ]; + /** @nocollapse */ + ReactiveFormsModule.ctorParameters = function () { return []; }; + return ReactiveFormsModule; +}()); +function ReactiveFormsModule_tsickle_Closure_declarations() { + /** @type {?} */ + ReactiveFormsModule.decorators; + /** + * @nocollapse + * @type {?} + */ + ReactiveFormsModule.ctorParameters; +} +//# sourceMappingURL=form_providers.js.map + +/***/ }), +/* 566 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__directives_abstract_control_directive__ = __webpack_require__(223); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__directives_abstract_control_directive__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_abstract_form_group_directive__ = __webpack_require__(114); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__directives_abstract_form_group_directive__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives_checkbox_value_accessor__ = __webpack_require__(159); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__directives_checkbox_value_accessor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_control_container__ = __webpack_require__(50); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_3__directives_control_container__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__directives_control_value_accessor__ = __webpack_require__(38); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_4__directives_control_value_accessor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_default_value_accessor__ = __webpack_require__(160); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_5__directives_default_value_accessor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__directives_ng_control__ = __webpack_require__(77); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_6__directives_ng_control__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__directives_ng_control_status__ = __webpack_require__(224); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_7__directives_ng_control_status__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_7__directives_ng_control_status__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__directives_ng_form__ = __webpack_require__(115); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_8__directives_ng_form__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__directives_ng_model__ = __webpack_require__(225); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_9__directives_ng_model__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__directives_ng_model_group__ = __webpack_require__(161); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_10__directives_ng_model_group__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__directives_radio_control_value_accessor__ = __webpack_require__(116); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_11__directives_radio_control_value_accessor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__directives_reactive_directives_form_control_directive__ = __webpack_require__(228); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_12__directives_reactive_directives_form_control_directive__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__directives_reactive_directives_form_control_name__ = __webpack_require__(229); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_13__directives_reactive_directives_form_control_name__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__directives_reactive_directives_form_group_directive__ = __webpack_require__(117); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_14__directives_reactive_directives_form_group_directive__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__directives_reactive_directives_form_group_name__ = __webpack_require__(118); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_15__directives_reactive_directives_form_group_name__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_15__directives_reactive_directives_form_group_name__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__directives_select_control_value_accessor__ = __webpack_require__(163); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return __WEBPACK_IMPORTED_MODULE_16__directives_select_control_value_accessor__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return __WEBPACK_IMPORTED_MODULE_16__directives_select_control_value_accessor__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__directives_select_multiple_control_value_accessor__ = __webpack_require__(164); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return __WEBPACK_IMPORTED_MODULE_17__directives_select_multiple_control_value_accessor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__directives_validators__ = __webpack_require__(348); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return __WEBPACK_IMPORTED_MODULE_18__directives_validators__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return __WEBPACK_IMPORTED_MODULE_18__directives_validators__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return __WEBPACK_IMPORTED_MODULE_18__directives_validators__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return __WEBPACK_IMPORTED_MODULE_18__directives_validators__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return __WEBPACK_IMPORTED_MODULE_18__directives_validators__["e"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__form_builder__ = __webpack_require__(350); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return __WEBPACK_IMPORTED_MODULE_19__form_builder__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__model__ = __webpack_require__(165); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return __WEBPACK_IMPORTED_MODULE_20__model__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return __WEBPACK_IMPORTED_MODULE_20__model__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return __WEBPACK_IMPORTED_MODULE_20__model__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return __WEBPACK_IMPORTED_MODULE_20__model__["d"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__validators__ = __webpack_require__(45); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return __WEBPACK_IMPORTED_MODULE_21__validators__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return __WEBPACK_IMPORTED_MODULE_21__validators__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return __WEBPACK_IMPORTED_MODULE_21__validators__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__version__ = __webpack_require__(567); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return __WEBPACK_IMPORTED_MODULE_22__version__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__form_providers__ = __webpack_require__(565); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return __WEBPACK_IMPORTED_MODULE_23__form_providers__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return __WEBPACK_IMPORTED_MODULE_23__form_providers__["b"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @module + * @description + * This module is used for handling user input, by defining and building a {@link FormGroup} that + * consists of {@link FormControl} objects, and mapping them onto the DOM. {@link FormControl} + * objects can then be used to read information from the form DOM elements. + * + * Forms providers are not included in default providers; you must import these providers + * explicitly. + */ + + + + + + + + + + + + + + + + + + + + + + + + + +//# sourceMappingURL=forms.js.map + +/***/ }), +/* 567 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VERSION; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * @stable + */ +var /** @type {?} */ VERSION = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["Version"]('2.4.1'); +//# sourceMappingURL=version.js.map + +/***/ }), +/* 568 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__backends_browser_jsonp__ = __webpack_require__(352); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__backends_browser_xhr__ = __webpack_require__(230); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__backends_jsonp_backend__ = __webpack_require__(353); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__backends_xhr_backend__ = __webpack_require__(354); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__base_request_options__ = __webpack_require__(231); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__base_response_options__ = __webpack_require__(166); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__http__ = __webpack_require__(356); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__interfaces__ = __webpack_require__(120); +/* unused harmony export _createDefaultCookieXSRFStrategy */ +/* unused harmony export httpFactory */ +/* unused harmony export jsonpFactory */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HttpModule; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return JsonpModule; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + +/** + * @return {?} + */ +function _createDefaultCookieXSRFStrategy() { + return new __WEBPACK_IMPORTED_MODULE_4__backends_xhr_backend__["a" /* CookieXSRFStrategy */](); +} +/** + * @param {?} xhrBackend + * @param {?} requestOptions + * @return {?} + */ +function httpFactory(xhrBackend, requestOptions) { + return new __WEBPACK_IMPORTED_MODULE_7__http__["a" /* Http */](xhrBackend, requestOptions); +} +/** + * @param {?} jsonpBackend + * @param {?} requestOptions + * @return {?} + */ +function jsonpFactory(jsonpBackend, requestOptions) { + return new __WEBPACK_IMPORTED_MODULE_7__http__["b" /* Jsonp */](jsonpBackend, requestOptions); +} +/** + * The module that includes http's providers + * + * \@experimental + */ +var HttpModule = (function () { + function HttpModule() { + } + HttpModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + providers: [ + // TODO(pascal): use factory type annotations once supported in DI + // issue: https://github.com/angular/angular/issues/3183 + { provide: __WEBPACK_IMPORTED_MODULE_7__http__["a" /* Http */], useFactory: httpFactory, deps: [__WEBPACK_IMPORTED_MODULE_4__backends_xhr_backend__["b" /* XHRBackend */], __WEBPACK_IMPORTED_MODULE_5__base_request_options__["b" /* RequestOptions */]] }, + __WEBPACK_IMPORTED_MODULE_2__backends_browser_xhr__["a" /* BrowserXhr */], + { provide: __WEBPACK_IMPORTED_MODULE_5__base_request_options__["b" /* RequestOptions */], useClass: __WEBPACK_IMPORTED_MODULE_5__base_request_options__["a" /* BaseRequestOptions */] }, + { provide: __WEBPACK_IMPORTED_MODULE_6__base_response_options__["b" /* ResponseOptions */], useClass: __WEBPACK_IMPORTED_MODULE_6__base_response_options__["a" /* BaseResponseOptions */] }, + __WEBPACK_IMPORTED_MODULE_4__backends_xhr_backend__["b" /* XHRBackend */], + { provide: __WEBPACK_IMPORTED_MODULE_8__interfaces__["c" /* XSRFStrategy */], useFactory: _createDefaultCookieXSRFStrategy }, + ], + },] }, + ]; + /** @nocollapse */ + HttpModule.ctorParameters = function () { return []; }; + return HttpModule; +}()); +function HttpModule_tsickle_Closure_declarations() { + /** @type {?} */ + HttpModule.decorators; + /** + * @nocollapse + * @type {?} + */ + HttpModule.ctorParameters; +} +/** + * The module that includes jsonp's providers + * + * \@experimental + */ +var JsonpModule = (function () { + function JsonpModule() { + } + JsonpModule.decorators = [ + { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ + providers: [ + // TODO(pascal): use factory type annotations once supported in DI + // issue: https://github.com/angular/angular/issues/3183 + { provide: __WEBPACK_IMPORTED_MODULE_7__http__["b" /* Jsonp */], useFactory: jsonpFactory, deps: [__WEBPACK_IMPORTED_MODULE_3__backends_jsonp_backend__["a" /* JSONPBackend */], __WEBPACK_IMPORTED_MODULE_5__base_request_options__["b" /* RequestOptions */]] }, + __WEBPACK_IMPORTED_MODULE_1__backends_browser_jsonp__["a" /* BrowserJsonp */], + { provide: __WEBPACK_IMPORTED_MODULE_5__base_request_options__["b" /* RequestOptions */], useClass: __WEBPACK_IMPORTED_MODULE_5__base_request_options__["a" /* BaseRequestOptions */] }, + { provide: __WEBPACK_IMPORTED_MODULE_6__base_response_options__["b" /* ResponseOptions */], useClass: __WEBPACK_IMPORTED_MODULE_6__base_response_options__["a" /* BaseResponseOptions */] }, + { provide: __WEBPACK_IMPORTED_MODULE_3__backends_jsonp_backend__["a" /* JSONPBackend */], useClass: __WEBPACK_IMPORTED_MODULE_3__backends_jsonp_backend__["c" /* JSONPBackend_ */] }, + ], + },] }, + ]; + /** @nocollapse */ + JsonpModule.ctorParameters = function () { return []; }; + return JsonpModule; +}()); +function JsonpModule_tsickle_Closure_declarations() { + /** @type {?} */ + JsonpModule.decorators; + /** + * @nocollapse + * @type {?} + */ + JsonpModule.ctorParameters; +} +//# sourceMappingURL=http_module.js.map + +/***/ }), +/* 569 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__backends_browser_xhr__ = __webpack_require__(230); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__backends_browser_xhr__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__backends_jsonp_backend__ = __webpack_require__(353); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__backends_jsonp_backend__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_1__backends_jsonp_backend__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__backends_xhr_backend__ = __webpack_require__(354); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_2__backends_xhr_backend__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_2__backends_xhr_backend__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_2__backends_xhr_backend__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__base_request_options__ = __webpack_require__(231); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_3__base_request_options__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_3__base_request_options__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__base_response_options__ = __webpack_require__(166); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_4__base_response_options__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_4__base_response_options__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__enums__ = __webpack_require__(67); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_5__enums__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_5__enums__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_5__enums__["c"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_5__enums__["d"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__headers__ = __webpack_require__(119); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_6__headers__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__http__ = __webpack_require__(356); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_7__http__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return __WEBPACK_IMPORTED_MODULE_7__http__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__http_module__ = __webpack_require__(568); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return __WEBPACK_IMPORTED_MODULE_8__http_module__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return __WEBPACK_IMPORTED_MODULE_8__http_module__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__interfaces__ = __webpack_require__(120); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return __WEBPACK_IMPORTED_MODULE_9__interfaces__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return __WEBPACK_IMPORTED_MODULE_9__interfaces__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return __WEBPACK_IMPORTED_MODULE_9__interfaces__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__static_request__ = __webpack_require__(357); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return __WEBPACK_IMPORTED_MODULE_10__static_request__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__static_response__ = __webpack_require__(232); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return __WEBPACK_IMPORTED_MODULE_11__static_response__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__url_search_params__ = __webpack_require__(168); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return __WEBPACK_IMPORTED_MODULE_12__url_search_params__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return __WEBPACK_IMPORTED_MODULE_12__url_search_params__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__version__ = __webpack_require__(570); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return __WEBPACK_IMPORTED_MODULE_13__version__["a"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + + + +//# sourceMappingURL=index.js.map + +/***/ }), +/* 570 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VERSION; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * @stable + */ +var /** @type {?} */ VERSION = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["Version"]('2.4.7'); +//# sourceMappingURL=version.js.map + +/***/ }), +/* 571 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_platform_browser_dynamic__ = __webpack_require__(573); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return __WEBPACK_IMPORTED_MODULE_0__src_platform_browser_dynamic__["a"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "RESOURCE_CACHE_PROVIDER", function() { return __WEBPACK_IMPORTED_MODULE_0__src_platform_browser_dynamic__["b"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "platformBrowserDynamic", function() { return __WEBPACK_IMPORTED_MODULE_0__src_platform_browser_dynamic__["c"]; }); +/* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "__platform_browser_dynamic_private__", function() { return __WEBPACK_IMPORTED_MODULE_0__src_platform_browser_dynamic__["d"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * @module + * @description + * Entry point for all public APIs of the platform-browser-dynamic package. + */ + +//# sourceMappingURL=index.js.map + +/***/ }), +/* 572 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export scheduleMicroTask */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _global; }); +/* unused harmony export getTypeNameForDebugging */ +/* unused harmony export isPresent */ +/* unused harmony export isBlank */ +/* unused harmony export isStrictStringMap */ +/* unused harmony export isDate */ +/* unused harmony export stringify */ +/* unused harmony export NumberWrapper */ +/* unused harmony export looseIdentical */ +/* unused harmony export isJsObject */ +/* unused harmony export print */ +/* unused harmony export warn */ +/* unused harmony export setValueOnPath */ +/* unused harmony export getSymbolIterator */ +/* unused harmony export isPrimitive */ +/* unused harmony export escapeRegExp */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var globalScope; +if (typeof window === 'undefined') { + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + // TODO: Replace any with WorkerGlobalScope from lib.webworker.d.ts #3492 + globalScope = self; + } + else { + globalScope = global; + } +} +else { + globalScope = window; +} +function scheduleMicroTask(fn) { + Zone.current.scheduleMicroTask('scheduleMicrotask', fn); +} +// Need to declare a new variable for global here since TypeScript +// exports the original value of the symbol. +var _global = globalScope; + +function getTypeNameForDebugging(type) { + return type['name'] || typeof type; +} +// TODO: remove calls to assert in production environment +// Note: Can't just export this and import in in other files +// as `assert` is a reserved keyword in Dart +_global.assert = function assert(condition) { + // TODO: to be fixed properly via #2830, noop for now +}; +function isPresent(obj) { + return obj != null; +} +function isBlank(obj) { + return obj == null; +} +var STRING_MAP_PROTO = Object.getPrototypeOf({}); +function isStrictStringMap(obj) { + return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO; +} +function isDate(obj) { + return obj instanceof Date && !isNaN(obj.valueOf()); +} +function stringify(token) { + if (typeof token === 'string') { + return token; + } + if (token == null) { + return '' + token; + } + if (token.overriddenName) { + return "" + token.overriddenName; + } + if (token.name) { + return "" + token.name; + } + var res = token.toString(); + var newLineIndex = res.indexOf('\n'); + return newLineIndex === -1 ? res : res.substring(0, newLineIndex); +} +var NumberWrapper = (function () { + function NumberWrapper() { + } + NumberWrapper.parseIntAutoRadix = function (text) { + var result = parseInt(text); + if (isNaN(result)) { + throw new Error('Invalid integer literal when parsing ' + text); + } + return result; + }; + NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); }; + return NumberWrapper; +}()); +// JS has NaN !== NaN +function looseIdentical(a, b) { + return a === b || typeof a === 'number' && typeof b === 'number' && isNaN(a) && isNaN(b); +} +function isJsObject(o) { + return o !== null && (typeof o === 'function' || typeof o === 'object'); +} +function print(obj) { + // tslint:disable-next-line:no-console + console.log(obj); +} +function warn(obj) { + console.warn(obj); +} +function setValueOnPath(global, path, value) { + var parts = path.split('.'); + var obj = global; + while (parts.length > 1) { + var name_1 = parts.shift(); + if (obj.hasOwnProperty(name_1) && obj[name_1] != null) { + obj = obj[name_1]; + } + else { + obj = obj[name_1] = {}; + } + } + if (obj === undefined || obj === null) { + obj = {}; + } + obj[parts.shift()] = value; +} +var _symbolIterator = null; +function getSymbolIterator() { + if (!_symbolIterator) { + if (globalScope.Symbol && Symbol.iterator) { + _symbolIterator = Symbol.iterator; + } + else { + // es6-shim specific logic + var keys = Object.getOwnPropertyNames(Map.prototype); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (key !== 'entries' && key !== 'size' && + Map.prototype[key] === Map.prototype['entries']) { + _symbolIterator = key; + } + } + } + } + return _symbolIterator; +} +function isPrimitive(obj) { + return !isJsObject(obj); +} +function escapeRegExp(s) { + return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +} +//# sourceMappingURL=lang.js.map +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(71))) + +/***/ }), +/* 573 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_compiler__ = __webpack_require__(138); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__platform_providers__ = __webpack_require__(358); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__resource_loader_resource_loader_cache__ = __webpack_require__(576); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__private_export__ = __webpack_require__(574); +/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_4__private_export__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__version__ = __webpack_require__(577); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_5__version__["a"]; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return RESOURCE_CACHE_PROVIDER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return platformBrowserDynamic; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + +/** + * @experimental + */ +var RESOURCE_CACHE_PROVIDER = [{ provide: __WEBPACK_IMPORTED_MODULE_0__angular_compiler__["a" /* ResourceLoader */], useClass: __WEBPACK_IMPORTED_MODULE_3__resource_loader_resource_loader_cache__["a" /* CachedResourceLoader */] }]; +/** + * @stable + */ +var platformBrowserDynamic = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__angular_core__["createPlatformFactory"])(__WEBPACK_IMPORTED_MODULE_0__angular_compiler__["b" /* platformCoreDynamic */], 'browserDynamic', __WEBPACK_IMPORTED_MODULE_2__platform_providers__["a" /* INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS */]); +//# sourceMappingURL=platform-browser-dynamic.js.map + +/***/ }), +/* 574 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__platform_providers__ = __webpack_require__(358); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__resource_loader_resource_loader_impl__ = __webpack_require__(359); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __platform_browser_dynamic_private__; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +var __platform_browser_dynamic_private__ = { + INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS: __WEBPACK_IMPORTED_MODULE_0__platform_providers__["a" /* INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS */], + ResourceLoaderImpl: __WEBPACK_IMPORTED_MODULE_1__resource_loader_resource_loader_impl__["a" /* ResourceLoaderImpl */] +}; +//# sourceMappingURL=private_export.js.map + +/***/ }), +/* 575 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__ = __webpack_require__(121); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return INTERNAL_BROWSER_PLATFORM_PROVIDERS; }); +/* unused harmony export getDOM */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +var INTERNAL_BROWSER_PLATFORM_PROVIDERS = __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__["__platform_browser_private__"].INTERNAL_BROWSER_PLATFORM_PROVIDERS; +var getDOM = __WEBPACK_IMPORTED_MODULE_0__angular_platform_browser__["__platform_browser_private__"].getDOM; +//# sourceMappingURL=private_import_platform-browser.js.map + +/***/ }), +/* 576 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_compiler__ = __webpack_require__(138); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_lang__ = __webpack_require__(572); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CachedResourceLoader; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; + + +/** + * An implementation of ResourceLoader that uses a template cache to avoid doing an actual + * ResourceLoader. + * + * The template cache needs to be built and loaded into window.$templateCache + * via a separate mechanism. + */ +var CachedResourceLoader = (function (_super) { + __extends(CachedResourceLoader, _super); + function CachedResourceLoader() { + _super.call(this); + this._cache = __WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* global */].$templateCache; + if (this._cache == null) { + throw new Error('CachedResourceLoader: Template cache was not found in $templateCache.'); + } + } + CachedResourceLoader.prototype.get = function (url) { + if (this._cache.hasOwnProperty(url)) { + return Promise.resolve(this._cache[url]); + } + else { + return Promise.reject('CachedResourceLoader: Did not find cached template for ' + url); + } + }; + return CachedResourceLoader; +}(__WEBPACK_IMPORTED_MODULE_0__angular_compiler__["a" /* ResourceLoader */])); +//# sourceMappingURL=resource_loader_cache.js.map + +/***/ }), +/* 577 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VERSION; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * @stable + */ +var VERSION = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["Version"]('2.4.1'); +//# sourceMappingURL=version.js.map + +/***/ }), +/* 578 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dom_dom_adapter__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_lang__ = __webpack_require__(46); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GenericBrowserDomAdapter; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +var __extends = (this && this.__extends) || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +}; + + +/** + * Provides DOM operations in any browser environment. + * * + * can introduce XSS risks. + * @abstract + */ +var GenericBrowserDomAdapter = (function (_super) { + __extends(GenericBrowserDomAdapter, _super); + function GenericBrowserDomAdapter() { + var _this = this; + _super.call(this); + this._animationPrefix = null; + this._transitionEnd = null; + try { + var element_1 = this.createElement('div', this.defaultDoc()); + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(this.getStyle(element_1, 'animationName'))) { + this._animationPrefix = ''; + } + else { + var domPrefixes = ['Webkit', 'Moz', 'O', 'ms']; + for (var i = 0; i < domPrefixes.length; i++) { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(this.getStyle(element_1, domPrefixes[i] + 'AnimationName'))) { + this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-'; + break; + } + } + } + var transEndEventNames_1 = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + Object.keys(transEndEventNames_1).forEach(function (key) { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(_this.getStyle(element_1, key))) { + _this._transitionEnd = transEndEventNames_1[key]; + } + }); + } + catch (e) { + this._animationPrefix = null; + this._transitionEnd = null; + } + } + /** + * @param {?} el + * @return {?} + */ + GenericBrowserDomAdapter.prototype.getDistributedNodes = function (el) { return ((el)).getDistributedNodes(); }; + /** + * @param {?} el + * @param {?} baseUrl + * @param {?} href + * @return {?} + */ + GenericBrowserDomAdapter.prototype.resolveAndSetHref = function (el, baseUrl, href) { + el.href = href == null ? baseUrl : baseUrl + '/../' + href; + }; + /** + * @return {?} + */ + GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () { return true; }; + /** + * @return {?} + */ + GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM = function () { + return typeof ((this.defaultDoc().body)).createShadowRoot === 'function'; + }; + /** + * @return {?} + */ + GenericBrowserDomAdapter.prototype.getAnimationPrefix = function () { return this._animationPrefix ? this._animationPrefix : ''; }; + /** + * @return {?} + */ + GenericBrowserDomAdapter.prototype.getTransitionEnd = function () { return this._transitionEnd ? this._transitionEnd : ''; }; + /** + * @return {?} + */ + GenericBrowserDomAdapter.prototype.supportsAnimation = function () { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(this._animationPrefix) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(this._transitionEnd); + }; + return GenericBrowserDomAdapter; +}(__WEBPACK_IMPORTED_MODULE_0__dom_dom_adapter__["a" /* DomAdapter */])); +function GenericBrowserDomAdapter_tsickle_Closure_declarations() { + /** @type {?} */ + GenericBrowserDomAdapter.prototype._animationPrefix; + /** @type {?} */ + GenericBrowserDomAdapter.prototype._transitionEnd; +} +//# sourceMappingURL=generic_browser_adapter.js.map + +/***/ }), +/* 579 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = supportsState; +/** + * @license undefined + * Copyright Google Inc. All Rights Reserved. + * * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + * @return {?} + */ +function supportsState() { + return !!window.history.pushState; +} +//# sourceMappingURL=history.js.map + +/***/ }), +/* 580 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__facade_browser__ = __webpack_require__(584); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__facade_lang__ = __webpack_require__(46); +/* unused harmony export ChangeDetectionPerfRecord */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AngularTools; }); +/* unused harmony export AngularProfiler */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + +var ChangeDetectionPerfRecord = (function () { + /** + * @param {?} msPerTick + * @param {?} numTicks + */ + function ChangeDetectionPerfRecord(msPerTick, numTicks) { + this.msPerTick = msPerTick; + this.numTicks = numTicks; + } + return ChangeDetectionPerfRecord; +}()); +function ChangeDetectionPerfRecord_tsickle_Closure_declarations() { + /** @type {?} */ + ChangeDetectionPerfRecord.prototype.msPerTick; + /** @type {?} */ + ChangeDetectionPerfRecord.prototype.numTicks; +} +/** + * Entry point for all Angular debug tools. This object corresponds to the `ng` + * global variable accessible in the dev console. + */ +var AngularTools = (function () { + /** + * @param {?} ref + */ + function AngularTools(ref) { + this.profiler = new AngularProfiler(ref); + } + return AngularTools; +}()); +function AngularTools_tsickle_Closure_declarations() { + /** @type {?} */ + AngularTools.prototype.profiler; +} +/** + * Entry point for all Angular profiling-related debug tools. This object + * corresponds to the `ng.profiler` in the dev console. + */ +var AngularProfiler = (function () { + /** + * @param {?} ref + */ + function AngularProfiler(ref) { + this.appRef = ref.injector.get(__WEBPACK_IMPORTED_MODULE_0__angular_core__["ApplicationRef"]); + } + /** + * Exercises change detection in a loop and then prints the average amount of + * time in milliseconds how long a single round of change detection takes for + * the current state of the UI. It runs a minimum of 5 rounds for a minimum + * of 500 milliseconds. + * * + * Optionally, a user may pass a `config` parameter containing a map of + * options. Supported options are: + * * + * `record` (boolean) - causes the profiler to record a CPU profile while + * it exercises the change detector. Example: + * * + * ``` + * ng.profiler.timeChangeDetection({record: true}) + * ``` + * @param {?} config + * @return {?} + */ + AngularProfiler.prototype.timeChangeDetection = function (config) { + var /** @type {?} */ record = config && config['record']; + var /** @type {?} */ profileName = 'Change Detection'; + // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened + var /** @type {?} */ isProfilerAvailable = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__facade_lang__["a" /* isPresent */])(__WEBPACK_IMPORTED_MODULE_2__facade_browser__["a" /* window */].console.profile); + if (record && isProfilerAvailable) { + __WEBPACK_IMPORTED_MODULE_2__facade_browser__["a" /* window */].console.profile(profileName); + } + var /** @type {?} */ start = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__["b" /* getDOM */])().performanceNow(); + var /** @type {?} */ numTicks = 0; + while (numTicks < 5 || (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__["b" /* getDOM */])().performanceNow() - start) < 500) { + this.appRef.tick(); + numTicks++; + } + var /** @type {?} */ end = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__["b" /* getDOM */])().performanceNow(); + if (record && isProfilerAvailable) { + // need to cast to because type checker thinks there's no argument + // while in fact there is: + // + // https://developer.mozilla.org/en-US/docs/Web/API/Console/profileEnd + ((__WEBPACK_IMPORTED_MODULE_2__facade_browser__["a" /* window */].console.profileEnd))(profileName); + } + var /** @type {?} */ msPerTick = (end - start) / numTicks; + __WEBPACK_IMPORTED_MODULE_2__facade_browser__["a" /* window */].console.log("ran " + numTicks + " change detection cycles"); + __WEBPACK_IMPORTED_MODULE_2__facade_browser__["a" /* window */].console.log(msPerTick.toFixed(2) + " ms per check"); + return new ChangeDetectionPerfRecord(msPerTick, numTicks); + }; + return AngularProfiler; +}()); +function AngularProfiler_tsickle_Closure_declarations() { + /** @type {?} */ + AngularProfiler.prototype.appRef; +} +//# sourceMappingURL=common_tools.js.map + +/***/ }), +/* 581 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__facade_lang__ = __webpack_require__(46); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__common_tools__ = __webpack_require__(580); +/* harmony export (immutable) */ __webpack_exports__["b"] = enableDebugTools; +/* harmony export (immutable) */ __webpack_exports__["a"] = disableDebugTools; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +var /** @type {?} */ context = (__WEBPACK_IMPORTED_MODULE_0__facade_lang__["e" /* global */]); +/** + * Enabled Angular 2 debug tools that are accessible via your browser's + * developer console. + * * + * Usage: + * * + * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j) + * 1. Type `ng.` (usually the console will show auto-complete suggestion) + * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()` + * then hit Enter. + * * + * @param {?} ref + * @return {?} + */ +function enableDebugTools(ref) { + ((Object)).assign(context.ng, new __WEBPACK_IMPORTED_MODULE_1__common_tools__["a" /* AngularTools */](ref)); + return ref; +} +/** + * Disables Angular 2 tools. + * * + * @return {?} + */ +function disableDebugTools() { + if (context.ng) { + delete context.ng.profiler; + } +} +//# sourceMappingURL=tools.js.map + +/***/ }), +/* 582 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__dom_dom_adapter__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_lang__ = __webpack_require__(46); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return By; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + +/** + * Predicates for use with {@link DebugElement}'s query functions. + * * + */ +var By = (function () { + function By() { + } + /** + * Match all elements. + * * + * ## Example + * * + * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'} + * @return {?} + */ + By.all = function () { return function (debugElement) { return true; }; }; + /** + * Match elements by the given CSS selector. + * * + * ## Example + * * + * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'} + * @param {?} selector + * @return {?} + */ + By.css = function (selector) { + return function (debugElement) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(debugElement.nativeElement) ? + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__dom_dom_adapter__["b" /* getDOM */])().elementMatches(debugElement.nativeElement, selector) : + false; + }; + }; + /** + * Match elements that have the given directive present. + * * + * ## Example + * * + * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'} + * @param {?} type + * @return {?} + */ + By.directive = function (type) { + return function (debugElement) { return debugElement.providerTokens.indexOf(type) !== -1; }; + }; + return By; +}()); +//# sourceMappingURL=by.js.map + +/***/ }), +/* 583 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__facade_lang__ = __webpack_require__(46); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__dom_adapter__ = __webpack_require__(22); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return WebAnimationsPlayer; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + +var WebAnimationsPlayer = (function () { + /** + * @param {?} element + * @param {?} keyframes + * @param {?} options + * @param {?=} previousPlayers + */ + function WebAnimationsPlayer(element, keyframes, options, previousPlayers) { + var _this = this; + if (previousPlayers === void 0) { previousPlayers = []; } + this.element = element; + this.keyframes = keyframes; + this.options = options; + this._onDoneFns = []; + this._onStartFns = []; + this._initialized = false; + this._finished = false; + this._started = false; + this._destroyed = false; + this.parentPlayer = null; + this._duration = options['duration']; + this.previousStyles = {}; + previousPlayers.forEach(function (player) { + var styles = player._captureStyles(); + Object.keys(styles).forEach(function (prop) { return _this.previousStyles[prop] = styles[prop]; }); + }); + } + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._onFinish = function () { + if (!this._finished) { + this._finished = true; + this._onDoneFns.forEach(function (fn) { return fn(); }); + this._onDoneFns = []; + } + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.init = function () { + var _this = this; + if (this._initialized) + return; + this._initialized = true; + var /** @type {?} */ keyframes = this.keyframes.map(function (styles) { + var /** @type {?} */ formattedKeyframe = {}; + Object.keys(styles).forEach(function (prop, index) { + var /** @type {?} */ value = styles[prop]; + if (value == __WEBPACK_IMPORTED_MODULE_0__angular_core__["AUTO_STYLE"]) { + value = _computeStyle(_this.element, prop); + } + if (value != undefined) { + formattedKeyframe[prop] = value; + } + }); + return formattedKeyframe; + }); + var /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles); + if (previousStyleProps.length) { + var /** @type {?} */ startingKeyframe_1 = findStartingKeyframe(keyframes); + previousStyleProps.forEach(function (prop) { + if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__facade_lang__["a" /* isPresent */])(startingKeyframe_1[prop])) { + startingKeyframe_1[prop] = _this.previousStyles[prop]; + } + }); + } + this._player = this._triggerWebAnimation(this.element, keyframes, this.options); + this._finalKeyframe = _copyKeyframeStyles(keyframes[keyframes.length - 1]); + // this is required so that the player doesn't start to animate right away + this._resetDomPlayerState(); + this._player.addEventListener('finish', function () { return _this._onFinish(); }); + }; + /** + * @param {?} element + * @param {?} keyframes + * @param {?} options + * @return {?} + */ + WebAnimationsPlayer.prototype._triggerWebAnimation = function (element, keyframes, options) { + return (element.animate(keyframes, options)); + }; + Object.defineProperty(WebAnimationsPlayer.prototype, "domPlayer", { + /** + * @return {?} + */ + get: function () { return this._player; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} fn + * @return {?} + */ + WebAnimationsPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); }; + /** + * @param {?} fn + * @return {?} + */ + WebAnimationsPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.play = function () { + this.init(); + if (!this.hasStarted()) { + this._onStartFns.forEach(function (fn) { return fn(); }); + this._onStartFns = []; + this._started = true; + } + this._player.play(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.pause = function () { + this.init(); + this._player.pause(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.finish = function () { + this.init(); + this._onFinish(); + this._player.finish(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.reset = function () { + this._resetDomPlayerState(); + this._destroyed = false; + this._finished = false; + this._started = false; + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._resetDomPlayerState = function () { + if (this._player) { + this._player.cancel(); + } + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.restart = function () { + this.reset(); + this.play(); + }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.hasStarted = function () { return this._started; }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.destroy = function () { + if (!this._destroyed) { + this._resetDomPlayerState(); + this._onFinish(); + this._destroyed = true; + } + }; + Object.defineProperty(WebAnimationsPlayer.prototype, "totalTime", { + /** + * @return {?} + */ + get: function () { return this._duration; }, + enumerable: true, + configurable: true + }); + /** + * @param {?} p + * @return {?} + */ + WebAnimationsPlayer.prototype.setPosition = function (p) { this._player.currentTime = p * this.totalTime; }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype.getPosition = function () { return this._player.currentTime / this.totalTime; }; + /** + * @return {?} + */ + WebAnimationsPlayer.prototype._captureStyles = function () { + var _this = this; + var /** @type {?} */ styles = {}; + if (this.hasStarted()) { + Object.keys(this._finalKeyframe).forEach(function (prop) { + if (prop != 'offset') { + styles[prop] = + _this._finished ? _this._finalKeyframe[prop] : _computeStyle(_this.element, prop); + } + }); + } + return styles; + }; + return WebAnimationsPlayer; +}()); +function WebAnimationsPlayer_tsickle_Closure_declarations() { + /** @type {?} */ + WebAnimationsPlayer.prototype._onDoneFns; + /** @type {?} */ + WebAnimationsPlayer.prototype._onStartFns; + /** @type {?} */ + WebAnimationsPlayer.prototype._player; + /** @type {?} */ + WebAnimationsPlayer.prototype._duration; + /** @type {?} */ + WebAnimationsPlayer.prototype._initialized; + /** @type {?} */ + WebAnimationsPlayer.prototype._finished; + /** @type {?} */ + WebAnimationsPlayer.prototype._started; + /** @type {?} */ + WebAnimationsPlayer.prototype._destroyed; + /** @type {?} */ + WebAnimationsPlayer.prototype._finalKeyframe; + /** @type {?} */ + WebAnimationsPlayer.prototype.parentPlayer; + /** @type {?} */ + WebAnimationsPlayer.prototype.previousStyles; + /** @type {?} */ + WebAnimationsPlayer.prototype.element; + /** @type {?} */ + WebAnimationsPlayer.prototype.keyframes; + /** @type {?} */ + WebAnimationsPlayer.prototype.options; +} +/** + * @param {?} element + * @param {?} prop + * @return {?} + */ +function _computeStyle(element, prop) { + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__dom_adapter__["b" /* getDOM */])().getComputedStyle(element)[prop]; +} +/** + * @param {?} styles + * @return {?} + */ +function _copyKeyframeStyles(styles) { + var /** @type {?} */ newStyles = {}; + Object.keys(styles).forEach(function (prop) { + if (prop != 'offset') { + newStyles[prop] = styles[prop]; + } + }); + return newStyles; +} +/** + * @param {?} keyframes + * @return {?} + */ +function findStartingKeyframe(keyframes) { + var /** @type {?} */ startingKeyframe = keyframes[0]; + // it's important that we find the LAST keyframe + // to ensure that style overidding is final. + for (var /** @type {?} */ i = 1; i < keyframes.length; i++) { + var /** @type {?} */ kf = keyframes[i]; + var /** @type {?} */ offset = kf['offset']; + if (offset !== 0) + break; + startingKeyframe = kf; + } + return startingKeyframe; +} +//# sourceMappingURL=web_animations_player.js.map + +/***/ }), +/* 584 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return win; }); +/* unused harmony export document */ +/* unused harmony export location */ +/* unused harmony export gc */ +/* unused harmony export performance */ +/* unused harmony export Event */ +/* unused harmony export MouseEvent */ +/* unused harmony export KeyboardEvent */ +/* unused harmony export EventTarget */ +/* unused harmony export History */ +/* unused harmony export Location */ +/* unused harmony export EventListener */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +/** + * JS version of browser APIs. This library can only run in the browser. + */ +var /** @type {?} */ win = typeof window !== 'undefined' && window || ({}); + +var /** @type {?} */ document = win.document; +var /** @type {?} */ location = win.location; +var /** @type {?} */ gc = win['gc'] ? function () { return win['gc'](); } : function () { return null; }; +var /** @type {?} */ performance = win['performance'] ? win['performance'] : null; +var /** @type {?} */ Event = win['Event']; +var /** @type {?} */ MouseEvent = win['MouseEvent']; +var /** @type {?} */ KeyboardEvent = win['KeyboardEvent']; +var /** @type {?} */ EventTarget = win['EventTarget']; +var /** @type {?} */ History = win['History']; +var /** @type {?} */ Location = win['Location']; +var /** @type {?} */ EventListener = win['EventListener']; +//# sourceMappingURL=browser.js.map + +/***/ }), +/* 585 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__lang__ = __webpack_require__(46); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StringMapWrapper; }); +/* unused harmony export ListWrapper */ +/* unused harmony export isListLikeIterable */ +/* unused harmony export areIterablesEqual */ +/* unused harmony export iterateListLike */ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +/** + * Wraps Javascript Objects + */ +var StringMapWrapper = (function () { + function StringMapWrapper() { + } + /** + * @param {?} m1 + * @param {?} m2 + * @return {?} + */ + StringMapWrapper.merge = function (m1, m2) { + var /** @type {?} */ m = {}; + for (var _i = 0, _a = Object.keys(m1); _i < _a.length; _i++) { + var k = _a[_i]; + m[k] = m1[k]; + } + for (var _b = 0, _c = Object.keys(m2); _b < _c.length; _b++) { + var k = _c[_b]; + m[k] = m2[k]; + } + return m; + }; + /** + * @param {?} m1 + * @param {?} m2 + * @return {?} + */ + StringMapWrapper.equals = function (m1, m2) { + var /** @type {?} */ k1 = Object.keys(m1); + var /** @type {?} */ k2 = Object.keys(m2); + if (k1.length != k2.length) { + return false; + } + for (var /** @type {?} */ i = 0; i < k1.length; i++) { + var /** @type {?} */ key = k1[i]; + if (m1[key] !== m2[key]) { + return false; + } + } + return true; + }; + return StringMapWrapper; +}()); +var ListWrapper = (function () { + function ListWrapper() { + } + /** + * @param {?} arr + * @param {?} condition + * @return {?} + */ + ListWrapper.findLast = function (arr, condition) { + for (var /** @type {?} */ i = arr.length - 1; i >= 0; i--) { + if (condition(arr[i])) { + return arr[i]; + } + } + return null; + }; + /** + * @param {?} list + * @param {?} items + * @return {?} + */ + ListWrapper.removeAll = function (list, items) { + for (var /** @type {?} */ i = 0; i < items.length; ++i) { + var /** @type {?} */ index = list.indexOf(items[i]); + if (index > -1) { + list.splice(index, 1); + } + } + }; + /** + * @param {?} list + * @param {?} el + * @return {?} + */ + ListWrapper.remove = function (list, el) { + var /** @type {?} */ index = list.indexOf(el); + if (index > -1) { + list.splice(index, 1); + return true; + } + return false; + }; + /** + * @param {?} a + * @param {?} b + * @return {?} + */ + ListWrapper.equals = function (a, b) { + if (a.length != b.length) + return false; + for (var /** @type {?} */ i = 0; i < a.length; ++i) { + if (a[i] !== b[i]) + return false; + } + return true; + }; + /** + * @param {?} list + * @return {?} + */ + ListWrapper.flatten = function (list) { + return list.reduce(function (flat, item) { + var /** @type {?} */ flatItem = Array.isArray(item) ? ListWrapper.flatten(item) : item; + return ((flat)).concat(flatItem); + }, []); + }; + return ListWrapper; +}()); +/** + * @param {?} obj + * @return {?} + */ +function isListLikeIterable(obj) { + if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__lang__["b" /* isJsObject */])(obj)) + return false; + return Array.isArray(obj) || + (!(obj instanceof Map) && + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__lang__["c" /* getSymbolIterator */])() in obj); // JS Iterable have a Symbol.iterator prop +} +/** + * @param {?} a + * @param {?} b + * @param {?} comparator + * @return {?} + */ +function areIterablesEqual(a, b, comparator) { + var /** @type {?} */ iterator1 = a[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__lang__["c" /* getSymbolIterator */])()](); + var /** @type {?} */ iterator2 = b[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__lang__["c" /* getSymbolIterator */])()](); + while (true) { + var /** @type {?} */ item1 = iterator1.next(); + var /** @type {?} */ item2 = iterator2.next(); + if (item1.done && item2.done) + return true; + if (item1.done || item2.done) + return false; + if (!comparator(item1.value, item2.value)) + return false; + } +} +/** + * @param {?} obj + * @param {?} fn + * @return {?} + */ +function iterateListLike(obj, fn) { + if (Array.isArray(obj)) { + for (var /** @type {?} */ i = 0; i < obj.length; i++) { + fn(obj[i]); + } + } + else { + var /** @type {?} */ iterator = obj[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__lang__["c" /* getSymbolIterator */])()](); + var /** @type {?} */ item = void 0; + while (!((item = iterator.next()).done)) { + fn(item.value); + } + } +} +//# sourceMappingURL=collection.js.map + +/***/ }), +/* 586 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__browser__ = __webpack_require__(360); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__browser__["d"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__browser__["e"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__browser_title__ = __webpack_require__(364); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_1__browser_title__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__browser_tools_tools__ = __webpack_require__(581); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_2__browser_tools_tools__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_2__browser_tools_tools__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__dom_animation_driver__ = __webpack_require__(233); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_3__dom_animation_driver__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dom_debug_by__ = __webpack_require__(582); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_4__dom_debug_by__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__dom_debug_ng_probe__ = __webpack_require__(234); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_5__dom_debug_ng_probe__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__dom_dom_tokens__ = __webpack_require__(169); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_6__dom_dom_tokens__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__dom_events_event_manager__ = __webpack_require__(93); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_7__dom_events_event_manager__["a"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_7__dom_events_event_manager__["b"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__dom_events_hammer_gestures__ = __webpack_require__(236); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return __WEBPACK_IMPORTED_MODULE_8__dom_events_hammer_gestures__["b"]; }); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return __WEBPACK_IMPORTED_MODULE_8__dom_events_hammer_gestures__["c"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__security_dom_sanitization_service__ = __webpack_require__(368); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return __WEBPACK_IMPORTED_MODULE_9__security_dom_sanitization_service__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__private_export__ = __webpack_require__(587); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_10__private_export__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__version__ = __webpack_require__(590); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return __WEBPACK_IMPORTED_MODULE_11__version__["a"]; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + +//# sourceMappingURL=platform-browser.js.map + +/***/ }), +/* 587 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__browser__ = __webpack_require__(360); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__browser_browser_adapter__ = __webpack_require__(361); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__browser_location_browser_platform_location__ = __webpack_require__(362); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__browser_testability__ = __webpack_require__(363); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__dom_debug_ng_probe__ = __webpack_require__(234); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__dom_dom_adapter__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__ = __webpack_require__(235); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__dom_events_dom_events__ = __webpack_require__(365); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__dom_events_hammer_gestures__ = __webpack_require__(236); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__dom_events_key_events__ = __webpack_require__(366); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__dom_shared_styles_host__ = __webpack_require__(237); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__dom_web_animations_driver__ = __webpack_require__(367); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __platform_browser_private__; }); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + + + + + + + + + + +var /** @type {?} */ __platform_browser_private__ = { + BrowserPlatformLocation: __WEBPACK_IMPORTED_MODULE_2__browser_location_browser_platform_location__["a" /* BrowserPlatformLocation */], + DomAdapter: __WEBPACK_IMPORTED_MODULE_5__dom_dom_adapter__["a" /* DomAdapter */], + BrowserDomAdapter: __WEBPACK_IMPORTED_MODULE_1__browser_browser_adapter__["a" /* BrowserDomAdapter */], + BrowserGetTestability: __WEBPACK_IMPORTED_MODULE_3__browser_testability__["a" /* BrowserGetTestability */], + getDOM: __WEBPACK_IMPORTED_MODULE_5__dom_dom_adapter__["b" /* getDOM */], + setRootDomAdapter: __WEBPACK_IMPORTED_MODULE_5__dom_dom_adapter__["c" /* setRootDomAdapter */], + DomRootRenderer_: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["a" /* DomRootRenderer_ */], + DomRootRenderer: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["b" /* DomRootRenderer */], + NAMESPACE_URIS: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["c" /* NAMESPACE_URIS */], + shimContentAttribute: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["d" /* shimContentAttribute */], + shimHostAttribute: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["e" /* shimHostAttribute */], + flattenStyles: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["f" /* flattenStyles */], + splitNamespace: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["g" /* splitNamespace */], + isNamespaced: __WEBPACK_IMPORTED_MODULE_6__dom_dom_renderer__["h" /* isNamespaced */], + DomSharedStylesHost: __WEBPACK_IMPORTED_MODULE_10__dom_shared_styles_host__["a" /* DomSharedStylesHost */], + SharedStylesHost: __WEBPACK_IMPORTED_MODULE_10__dom_shared_styles_host__["b" /* SharedStylesHost */], + ELEMENT_PROBE_PROVIDERS: __WEBPACK_IMPORTED_MODULE_4__dom_debug_ng_probe__["a" /* ELEMENT_PROBE_PROVIDERS */], + DomEventsPlugin: __WEBPACK_IMPORTED_MODULE_7__dom_events_dom_events__["a" /* DomEventsPlugin */], + KeyEventsPlugin: __WEBPACK_IMPORTED_MODULE_9__dom_events_key_events__["a" /* KeyEventsPlugin */], + HammerGesturesPlugin: __WEBPACK_IMPORTED_MODULE_8__dom_events_hammer_gestures__["a" /* HammerGesturesPlugin */], + initDomAdapter: __WEBPACK_IMPORTED_MODULE_0__browser__["a" /* initDomAdapter */], + INTERNAL_BROWSER_PLATFORM_PROVIDERS: __WEBPACK_IMPORTED_MODULE_0__browser__["b" /* INTERNAL_BROWSER_PLATFORM_PROVIDERS */], + BROWSER_SANITIZATION_PROVIDERS: __WEBPACK_IMPORTED_MODULE_0__browser__["c" /* BROWSER_SANITIZATION_PROVIDERS */], + WebAnimationsDriver: __WEBPACK_IMPORTED_MODULE_11__dom_web_animations_driver__["a" /* WebAnimationsDriver */] +}; +//# sourceMappingURL=private_export.js.map + +/***/ }), +/* 588 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__ = __webpack_require__(22); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__url_sanitizer__ = __webpack_require__(239); +/* harmony export (immutable) */ __webpack_exports__["a"] = sanitizeHtml; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + + + +/** A element that can be safely used to parse untrusted HTML. Lazily initialized below. */ +var /** @type {?} */ inertElement = null; +/** Lazily initialized to make sure the DOM adapter gets set before use. */ +var /** @type {?} */ DOM = null; +/** + * Returns an HTML element that is guaranteed to not execute code when creating elements in it. + * @return {?} + */ +function getInertElement() { + if (inertElement) + return inertElement; + DOM = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__dom_dom_adapter__["b" /* getDOM */])(); + // Prefer using