@alfresco/adf-core 6.10.0-9874289033 → 7.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/assets/adf-core/i18n/en.json +3 -2
- package/custom-theme/theme/typography.scss +7 -6
- package/esm2020/feature-flags/lib/components/flags/flags.component.mjs +3 -3
- package/esm2020/lib/auth/oidc/auth-config.service.mjs +8 -5
- package/esm2020/lib/auth/oidc/redirect-auth.service.mjs +43 -3
- package/esm2020/lib/blank-page/blank-page.component.mjs +3 -2
- package/esm2020/lib/blank-page/blank-page.module.mjs +6 -9
- package/esm2020/lib/button/button.component.mjs +12 -4
- package/esm2020/lib/card-view/card-view.module.mjs +21 -98
- package/esm2020/lib/card-view/components/card-view/card-view.component.mjs +5 -4
- package/esm2020/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.mjs +14 -7
- package/esm2020/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.mjs +6 -3
- package/esm2020/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.mjs +15 -12
- package/esm2020/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.mjs +3 -2
- package/esm2020/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.mjs +15 -9
- package/esm2020/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.mjs +5 -3
- package/esm2020/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.mjs +13 -11
- package/esm2020/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.mjs +14 -7
- package/esm2020/lib/card-view/components/card-view-textitem/card-view-textitem.component.mjs +28 -11
- package/esm2020/lib/card-view/public-api.mjs +2 -1
- package/esm2020/lib/clipboard/clipboard.directive.mjs +7 -3
- package/esm2020/lib/clipboard/clipboard.module.mjs +7 -19
- package/esm2020/lib/comments/comment-list/comment-list.component.mjs +9 -5
- package/esm2020/lib/comments/comment-list/comment-list.module.mjs +5 -43
- package/esm2020/lib/comments/comments.component.mjs +17 -12
- package/esm2020/lib/comments/comments.module.mjs +6 -49
- package/esm2020/lib/common/utils/date-fns-adapter.mjs +14 -6
- package/esm2020/lib/common/utils/date-fns-utils.mjs +11 -1
- package/esm2020/lib/common/utils/datetime-fns-adapter.mjs +7 -5
- package/esm2020/lib/context-menu/context-menu.module.mjs +5 -3
- package/esm2020/lib/core.module.mjs +214 -210
- package/esm2020/lib/datatable/components/boolean-cell/boolean-cell.component.mjs +26 -15
- package/esm2020/lib/datatable/components/columns-selector/columns-selector.component.mjs +32 -15
- package/esm2020/lib/datatable/components/datatable/datatable.component.mjs +107 -58
- package/esm2020/lib/datatable/components/datatable-cell/datatable-cell.component.mjs +7 -4
- package/esm2020/lib/datatable/components/datatable-row/datatable-row.component.mjs +3 -2
- package/esm2020/lib/datatable/components/empty-list/empty-list.component.mjs +18 -9
- package/esm2020/lib/datatable/components/filesize-cell/filesize-cell.component.mjs +7 -4
- package/esm2020/lib/datatable/components/json-cell/json-cell.component.mjs +8 -6
- package/esm2020/lib/datatable/data-column/data-column-header.component.mjs +3 -2
- package/esm2020/lib/datatable/data-column/data-column-list.component.mjs +3 -2
- package/esm2020/lib/datatable/data-column/data-column.component.mjs +3 -2
- package/esm2020/lib/datatable/datatable.module.mjs +79 -125
- package/esm2020/lib/datatable/directives/custom-empty-content-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/custom-loading-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/custom-no-permission-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/drop-zone.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/header-filter-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/loading-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/main-data-table-action-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/no-content-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/no-permission-template.directive.mjs +4 -3
- package/esm2020/lib/datatable/directives/resizable/resizable.directive.mjs +3 -2
- package/esm2020/lib/datatable/directives/resizable/resize-handle.directive.mjs +4 -3
- package/esm2020/lib/datatable/public-api.mjs +20 -14
- package/esm2020/lib/dialogs/dialog/dialog.component.mjs +8 -7
- package/esm2020/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +13 -8
- package/esm2020/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +5 -24
- package/esm2020/lib/directives/directive.module.mjs +23 -5
- package/esm2020/lib/dynamic-chip-list/dynamic-chip-list.module.mjs +2 -1
- package/esm2020/lib/form/components/inplace-form-input/inplace-form-input.component.mjs +2 -2
- package/esm2020/lib/form/components/widgets/base-viewer/base-viewer.widget.mjs +2 -2
- package/esm2020/lib/form/components/widgets/checkbox/checkbox.widget.mjs +3 -3
- package/esm2020/lib/form/components/widgets/core/error-message.model.mjs +4 -6
- package/esm2020/lib/form/components/widgets/core/form-field-types.mjs +8 -13
- package/esm2020/lib/form/components/widgets/core/form-field-validator.mjs +1 -194
- package/esm2020/lib/form/components/widgets/core/form-field.model.mjs +40 -15
- package/esm2020/lib/form/components/widgets/core/form.model.mjs +9 -7
- package/esm2020/lib/form/components/widgets/date/date.widget.mjs +102 -47
- package/esm2020/lib/form/components/widgets/date-time/date-time.widget.mjs +98 -54
- package/esm2020/lib/form/components/widgets/number/number.widget.mjs +3 -3
- package/esm2020/lib/form/public-api.mjs +3 -1
- package/esm2020/lib/header/header.component.mjs +73 -0
- package/esm2020/lib/header/index.mjs +18 -0
- package/esm2020/lib/header/navbar/navbar-item.component.mjs +37 -0
- package/esm2020/lib/header/navbar/navbar.component.mjs +36 -0
- package/esm2020/lib/header/public-api.mjs +20 -0
- package/esm2020/lib/icon/icon.component.mjs +3 -3
- package/esm2020/lib/identity-user-info/identity-user-info.component.mjs +11 -8
- package/esm2020/lib/identity-user-info/identity-user-info.module.mjs +5 -37
- package/esm2020/lib/info-drawer/info-drawer-layout.component.mjs +19 -9
- package/esm2020/lib/info-drawer/info-drawer.component.mjs +23 -8
- package/esm2020/lib/info-drawer/info-drawer.module.mjs +18 -49
- package/esm2020/lib/language-menu/language-menu.component.mjs +13 -13
- package/esm2020/lib/language-menu/language-menu.module.mjs +7 -41
- package/esm2020/lib/language-menu/language-picker.component.mjs +12 -6
- package/esm2020/lib/layout/components/header/header.component.mjs +12 -6
- package/esm2020/lib/layout/components/layout-container/layout-container.component.mjs +43 -8
- package/esm2020/lib/layout/components/sidebar-action/sidebar-action-menu.component.mjs +21 -9
- package/esm2020/lib/layout/components/sidenav-layout/sidenav-layout.component.mjs +7 -6
- package/esm2020/lib/layout/directives/sidenav-layout-content.directive.mjs +4 -3
- package/esm2020/lib/layout/directives/sidenav-layout-header.directive.mjs +4 -3
- package/esm2020/lib/layout/directives/sidenav-layout-navigation.directive.mjs +4 -3
- package/esm2020/lib/layout/layout.module.mjs +29 -51
- package/esm2020/lib/login/login.module.mjs +11 -15
- package/esm2020/lib/material.module.mjs +31 -6
- package/esm2020/lib/notifications/components/notification-history.component.mjs +6 -4
- package/esm2020/lib/notifications/notification-history.module.mjs +6 -4
- package/esm2020/lib/pagination/pagination.component.mjs +2 -2
- package/esm2020/lib/pagination/pagination.module.mjs +6 -4
- package/esm2020/lib/pipes/pipe.module.mjs +2 -3
- package/esm2020/lib/pipes/public-api.mjs +1 -2
- package/esm2020/lib/progress/progress.component.mjs +90 -0
- package/esm2020/lib/search-text/search-text-input.component.mjs +7 -7
- package/esm2020/lib/search-text/search-text-input.module.mjs +5 -3
- package/esm2020/lib/sorting-picker/public-api.mjs +1 -2
- package/esm2020/lib/sorting-picker/sorting-picker.component.mjs +15 -9
- package/esm2020/lib/templates/template.module.mjs +6 -5
- package/esm2020/lib/toolbar/toolbar.module.mjs +6 -4
- package/esm2020/lib/viewer/components/pdf-viewer/pdf-viewer.component.mjs +3 -3
- package/esm2020/lib/viewer/components/viewer-render/viewer-render.component.mjs +7 -3
- package/esm2020/lib/viewer/components/viewer.component.mjs +7 -3
- package/esm2020/lib/viewer/viewer.module.mjs +2 -1
- package/esm2020/public-api.mjs +4 -2
- package/fesm2015/adf-core.mjs +4884 -4973
- package/fesm2015/adf-core.mjs.map +1 -1
- package/fesm2015/alfresco-adf-core-feature-flags.mjs +2 -2
- package/fesm2015/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/fesm2020/adf-core.mjs +4846 -4948
- package/fesm2020/adf-core.mjs.map +1 -1
- package/fesm2020/alfresco-adf-core-feature-flags.mjs +2 -2
- package/fesm2020/alfresco-adf-core-feature-flags.mjs.map +1 -1
- package/lib/auth/oidc/auth-config.service.d.ts +1 -0
- package/lib/auth/oidc/redirect-auth.service.d.ts +8 -0
- package/lib/blank-page/blank-page.component.d.ts +1 -1
- package/lib/blank-page/blank-page.module.d.ts +2 -1
- package/lib/button/button.component.d.ts +2 -1
- package/lib/button/button.component.scss +10 -0
- package/lib/card-view/card-view.module.d.ts +13 -17
- package/lib/card-view/components/card-view/card-view.component.d.ts +1 -1
- package/lib/card-view/components/card-view/card-view.component.scss +8 -9
- package/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-arrayitem/card-view-arrayitem.component.scss +2 -3
- package/lib/card-view/components/card-view-boolitem/card-view-boolitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-dateitem/card-view-dateitem.component.scss +0 -1
- package/lib/card-view/components/card-view-item-dispatcher/card-view-item-dispatcher.component.d.ts +1 -1
- package/lib/card-view/components/card-view-keyvaluepairsitem/card-view-keyvaluepairsitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-mapitem/card-view-mapitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-selectitem/card-view-selectitem.component.scss +8 -7
- package/lib/card-view/components/card-view-selectitem/select-filter-input/select-filter-input.component.d.ts +1 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.d.ts +1 -1
- package/lib/card-view/components/card-view-textitem/card-view-textitem.component.scss +12 -2
- package/lib/card-view/public-api.d.ts +1 -0
- package/lib/clipboard/clipboard.directive.d.ts +2 -2
- package/lib/clipboard/clipboard.module.d.ts +4 -3
- package/lib/comments/comment-list/comment-list.component.d.ts +1 -1
- package/lib/comments/comment-list/comment-list.module.d.ts +2 -11
- package/lib/comments/comments.component.d.ts +1 -1
- package/lib/comments/comments.module.d.ts +2 -11
- package/lib/common/utils/date-fns-adapter.d.ts +2 -0
- package/lib/common/utils/date-fns-utils.d.ts +2 -0
- package/lib/context-menu/context-menu.module.d.ts +4 -0
- package/lib/core.module.d.ts +150 -41
- package/lib/datatable/components/boolean-cell/boolean-cell.component.d.ts +2 -0
- package/lib/datatable/components/columns-selector/columns-selector.component.d.ts +1 -1
- package/lib/datatable/components/datatable/datatable.component.d.ts +8 -1
- package/lib/datatable/components/datatable/datatable.component.scss +37 -11
- package/lib/datatable/components/datatable-cell/datatable-cell.component.d.ts +1 -1
- package/lib/datatable/components/datatable-row/datatable-row.component.d.ts +1 -1
- package/lib/datatable/components/empty-list/empty-list.component.d.ts +4 -4
- package/lib/datatable/components/filesize-cell/filesize-cell.component.d.ts +1 -1
- package/lib/datatable/components/json-cell/json-cell.component.d.ts +1 -1
- package/lib/datatable/data-column/data-column-header.component.d.ts +1 -1
- package/lib/datatable/data-column/data-column-list.component.d.ts +1 -1
- package/lib/datatable/data-column/data-column.component.d.ts +1 -1
- package/lib/datatable/datatable.module.d.ts +56 -39
- package/lib/datatable/directives/custom-empty-content-template.directive.d.ts +1 -1
- package/lib/datatable/directives/custom-loading-template.directive.d.ts +1 -1
- package/lib/datatable/directives/custom-no-permission-template.directive.d.ts +1 -1
- package/lib/datatable/directives/drop-zone.directive.d.ts +1 -1
- package/lib/datatable/directives/header-filter-template.directive.d.ts +1 -1
- package/lib/datatable/directives/loading-template.directive.d.ts +1 -1
- package/lib/datatable/directives/main-data-table-action-template.directive.d.ts +1 -1
- package/lib/datatable/directives/no-content-template.directive.d.ts +1 -1
- package/lib/datatable/directives/no-permission-template.directive.d.ts +1 -1
- package/lib/datatable/directives/resizable/resizable.directive.d.ts +1 -1
- package/lib/datatable/directives/resizable/resize-handle.directive.d.ts +1 -1
- package/lib/datatable/public-api.d.ts +19 -13
- package/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -1
- package/lib/dialogs/unsaved-changes-dialog/unsaved-changes-dialog.module.d.ts +2 -6
- package/lib/directives/directive.module.d.ts +8 -0
- package/lib/dynamic-chip-list/dynamic-chip-list.module.d.ts +1 -0
- package/lib/form/components/inplace-form-input/inplace-form-input.component.scss +7 -7
- package/lib/form/components/widgets/core/form-field-types.d.ts +2 -0
- package/lib/form/components/widgets/core/form-field-validator.d.ts +1 -58
- package/lib/form/components/widgets/core/form-field.model.d.ts +8 -3
- package/lib/form/components/widgets/date/date.widget.d.ts +15 -9
- package/lib/form/components/widgets/date-time/date-time.widget.d.ts +19 -12
- package/lib/form/components/widgets/date-time/date-time.widget.scss +1 -2
- package/lib/form/public-api.d.ts +2 -0
- package/lib/header/header.component.d.ts +18 -0
- package/lib/header/header.component.scss +36 -0
- package/lib/{layout/helpers/animations.d.ts → header/index.d.ts} +1 -3
- package/lib/header/navbar/navbar-item.component.d.ts +11 -0
- package/lib/header/navbar/navbar-item.component.scss +19 -0
- package/lib/header/navbar/navbar.component.d.ts +7 -0
- package/lib/header/navbar/navbar.component.scss +4 -0
- package/lib/{pipes/boolean.pipe.d.ts → header/public-api.d.ts} +3 -8
- package/lib/identity-user-info/identity-user-info.component.d.ts +1 -1
- package/lib/identity-user-info/identity-user-info.module.d.ts +2 -10
- package/lib/info-drawer/info-drawer-layout.component.d.ts +4 -4
- package/lib/info-drawer/info-drawer-layout.component.scss +1 -1
- package/lib/info-drawer/info-drawer.component.d.ts +2 -2
- package/lib/info-drawer/info-drawer.module.d.ts +5 -6
- package/lib/language-menu/language-menu.component.d.ts +1 -1
- package/lib/language-menu/language-menu.module.d.ts +5 -6
- package/lib/language-menu/language-picker.component.d.ts +1 -1
- package/lib/layout/components/header/header.component.d.ts +1 -1
- package/lib/layout/components/layout-container/layout-container.component.d.ts +1 -1
- package/lib/layout/components/sidebar-action/sidebar-action-menu.component.d.ts +4 -4
- package/lib/layout/components/sidenav-layout/sidenav-layout.component.d.ts +2 -3
- package/lib/layout/components/sidenav-layout/sidenav-layout.component.scss +6 -1
- package/lib/layout/directives/sidenav-layout-content.directive.d.ts +1 -1
- package/lib/layout/directives/sidenav-layout-header.directive.d.ts +1 -1
- package/lib/layout/directives/sidenav-layout-navigation.directive.d.ts +1 -1
- package/lib/layout/layout.module.d.ts +14 -9
- package/lib/login/components/login/login.component.scss +2 -2
- package/lib/login/login.module.d.ts +7 -0
- package/lib/material.module.d.ts +31 -27
- package/lib/mock/data-column.mock.d.ts +1 -1
- package/lib/notifications/notification-history.module.d.ts +4 -0
- package/lib/pagination/pagination.component.scss +3 -3
- package/lib/pagination/pagination.module.d.ts +4 -0
- package/lib/pipes/public-api.d.ts +0 -1
- package/lib/progress/progress.component.d.ts +36 -0
- package/lib/search-text/search-text-input.component.scss +21 -22
- package/lib/search-text/search-text-input.module.d.ts +4 -0
- package/lib/sorting-picker/public-api.d.ts +0 -1
- package/lib/sorting-picker/sorting-picker.component.d.ts +1 -1
- package/lib/styles/_mat-selectors.scss +6 -28
- package/lib/templates/template.module.d.ts +4 -1
- package/lib/toolbar/toolbar.module.d.ts +5 -0
- package/lib/viewer/components/pdf-viewer/pdf-viewer.component.scss +1 -0
- package/lib/viewer/components/viewer-render/viewer-render.component.d.ts +3 -1
- package/lib/viewer/components/viewer.component.d.ts +3 -1
- package/lib/viewer/components/viewer.component.scss +12 -4
- package/lib/viewer/viewer.module.d.ts +1 -0
- package/package.json +3 -3
- package/public-api.d.ts +3 -1
- package/esm2020/lib/datatable/data-column/data-column.module.mjs +0 -50
- package/esm2020/lib/datatable/directives/resizable/resizable.module.mjs +0 -33
- package/esm2020/lib/layout/helpers/animations.mjs +0 -34
- package/esm2020/lib/pipes/boolean.pipe.mjs +0 -39
- package/esm2020/lib/sorting-picker/sorting-picker.module.mjs +0 -56
- package/lib/datatable/data-column/data-column.module.d.ts +0 -10
- package/lib/datatable/directives/resizable/resizable.module.d.ts +0 -8
- package/lib/icon/icon.component.scss +0 -4
- package/lib/sorting-picker/sorting-picker.module.d.ts +0 -12
|
@@ -107,7 +107,8 @@
|
|
|
107
107
|
"ACTIONS": {
|
|
108
108
|
"CANCEL": "Cancel"
|
|
109
109
|
},
|
|
110
|
-
"TITLE": "Adding files to zip, this could take a few minutes"
|
|
110
|
+
"TITLE": "Adding files to zip, this could take a few minutes",
|
|
111
|
+
"COMPLETE": "complete"
|
|
111
112
|
},
|
|
112
113
|
"EDIT_JSON": {
|
|
113
114
|
"CLOSE": "Close",
|
|
@@ -417,7 +418,7 @@
|
|
|
417
418
|
"PAGE_SELECTOR_LABEL": "Page selector"
|
|
418
419
|
},
|
|
419
420
|
"LOADING": "Loading",
|
|
420
|
-
"UNKNOWN_FORMAT": "Couldn't load preview.
|
|
421
|
+
"UNKNOWN_FORMAT": "Couldn't load preview. Unsupported file type or loading error. Please try refreshing the page.",
|
|
421
422
|
"SIDEBAR": {
|
|
422
423
|
"THUMBNAILS": {
|
|
423
424
|
"PAGE": "Page {{ pageNum }}"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
@import '../variables/font-family';
|
|
4
4
|
|
|
5
5
|
@function get-mat-typography($base-font-size, $font-family) {
|
|
6
|
-
$custom-typography: mat.define-
|
|
6
|
+
$custom-typography: mat.define-typography-config(
|
|
7
7
|
$font-family: 'Muli, Roboto, "Helvetica Neue", sans-serif',
|
|
8
8
|
$headline-1: mat.define-typography-level(112px, 112px, 300),
|
|
9
9
|
$headline-2: mat.define-typography-level(56px, 56px, 400),
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
);
|
|
22
22
|
|
|
23
23
|
@if $base-font-size {
|
|
24
|
-
$custom-typography: mat.define-
|
|
24
|
+
$custom-typography: mat.define-typography-config(
|
|
25
25
|
$headline-1: mat.define-typography-level(8rem, 8rem, 300),
|
|
26
26
|
$headline-2: mat.define-typography-level(4rem, 4rem, 400),
|
|
27
27
|
$headline-3: mat.define-typography-level(3.21rem, 3.21rem, 400),
|
|
@@ -34,23 +34,24 @@
|
|
|
34
34
|
$body-2: mat.define-typography-level(1rem, 1.42rem, 400),
|
|
35
35
|
$caption: mat.define-typography-level(0.86rem, 1.42rem, 400),
|
|
36
36
|
$button: mat.define-typography-level(1rem, 1rem, 500),
|
|
37
|
-
$font-family: $default-font-family
|
|
37
|
+
$font-family: $default-font-family
|
|
38
38
|
);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
@if $font-family {
|
|
42
42
|
@each $key, $level in $custom-typography {
|
|
43
|
+
/* stylelint-disable-next-line scss/no-global-function-names */
|
|
43
44
|
@if type-of($level) == 'map' {
|
|
44
45
|
$new-level: map.merge(
|
|
45
46
|
$level,
|
|
46
47
|
(
|
|
47
|
-
font-family: $font-family
|
|
48
|
+
font-family: $font-family
|
|
48
49
|
)
|
|
49
50
|
);
|
|
50
51
|
$custom-typography: map.merge(
|
|
51
52
|
$custom-typography,
|
|
52
53
|
(
|
|
53
|
-
$key: $new-level
|
|
54
|
+
$key: $new-level
|
|
54
55
|
)
|
|
55
56
|
);
|
|
56
57
|
}
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
$custom-typography: map.merge(
|
|
60
61
|
$custom-typography,
|
|
61
62
|
(
|
|
62
|
-
font-family: $font-family
|
|
63
|
+
font-family: $font-family
|
|
63
64
|
)
|
|
64
65
|
);
|
|
65
66
|
}
|
|
@@ -108,7 +108,7 @@ export class FlagsComponent {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
FlagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FlagsComponent, deps: [{ token: FeaturesServiceToken }, { token: WritableFeaturesServiceToken }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
FlagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FlagsComponent, isStandalone: true, selector: "adf-feature-flags-overrides", ngImport: i0, template: "<mat-toolbar class=\"adf-feature-flags-overrides-header\">\n <div class=\"adf-feature-flags-overrides-header-text\">\n <adf-feature-flags-override-indicator\n class=\"adf-activity-indicator\"\n size='large'>\n </adf-feature-flags-override-indicator>\n <span>{{ \"CORE.FEATURE-FLAGS.OVERRIDES\" | translate }}</span>\n </div>\n <mat-slide-toggle\n
|
|
111
|
+
FlagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FlagsComponent, isStandalone: true, selector: "adf-feature-flags-overrides", ngImport: i0, template: "<mat-toolbar class=\"adf-feature-flags-overrides-header\">\n <div class=\"adf-feature-flags-overrides-header-text\" tabindex=\"0\">\n <adf-feature-flags-override-indicator\n class=\"adf-activity-indicator\"\n size='large'>\n </adf-feature-flags-override-indicator>\n <span>{{ \"CORE.FEATURE-FLAGS.OVERRIDES\" | translate }}</span>\n </div>\n <mat-slide-toggle\n [checked]=\"isEnabled\"\n (change)=\"onEnable($event.checked)\">\n </mat-slide-toggle>\n <button\n class=\"adf-feature-flags-overrides-header-close\"\n mat-icon-button\n mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</mat-toolbar>\n\n<ng-container *ngIf=\"flags$ | async as flags\">\n <table mat-table [dataSource]=\"flags\" class=\"adf-feature-flags-overrides-table mat-elevation-z0\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell class=\"adf-icon-col adf-header-cell\" *matHeaderCellDef>\n <mat-icon class=\"material-icons-outlined adf-search-icon\">search</mat-icon>\n </th>\n <td mat-cell class=\"adf-icon-col\" *matCellDef=\"let element\">\n <button mat-icon-button *ngIf=\"element.fictive; else flagFromApi\" class=\"adf-fictive-flag-button\" (click)=\"onDelete(element.flag)\">\n <mat-icon class=\"material-icons-outlined adf-custom-flag-icon\" fontIcon=\"memory\"></mat-icon>\n <mat-icon class=\"material-icons-outlined adf-trash-icon\" fontIcon=\"delete\"></mat-icon>\n </button>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"flag\">\n <th mat-header-cell class=\"flag-col header-cell\" *matHeaderCellDef>\n <mat-form-field class=\"adf-flag-form-field\" appearance=\"fill\" floatLabel=\"auto\">\n <input class=\"flag-input\" [placeholder]=\"(isEnabled ? 'CORE.FEATURE-FLAGS.FILTER_OR_ADD_NEW' : 'CORE.FEATURE-FLAGS.FILTER') | translate\" matInput type=\"text\" [(ngModel)]=\"inputValue\" (keyup)=\"onInputChange(inputValue)\" (keypress)=\"onAdd($event)\">\n </mat-form-field>\n </th>\n <td mat-cell class=\"flag-col\" *matCellDef=\"let element\">{{ element.flag }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell class=\"adf-val-col header-cell\" *matHeaderCellDef>\n <div class=\"adf-input-field-buttons-container\">\n <button *ngIf=\"showPlusButton$ | async\" mat-icon-button title=\"{{'CORE.FEATURE-FLAGS.ADD_NEW' | translate}}\" color=\"accent\" (click)=\"onAddButtonClick()\">\n <mat-icon class=\"material-icons-outlined\" fontIcon=\"add_circle\"></mat-icon>\n </button>\n <button *ngIf=\"inputValue\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"onClearInput()\" class=\"adf-clear-button\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </th>\n <td mat-cell class=\"adf-val-col\" *matCellDef=\"let element\">\n <mat-slide-toggle\n [checked]=\"element.value\"\n (change)=\"onChange(element.flag, $event.checked)\"\n [disabled]=\"!isEnabled\">\n </mat-slide-toggle>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n</ng-container>\n\n<ng-template #flagFromApi>\n <mat-icon class=\"material-icons-outlined\">cloud</mat-icon>\n</ng-template>\n\n", styles: [".adf-feature-flags-overrides-header{position:sticky;top:0;height:64px;z-index:101;display:flex}.adf-feature-flags-overrides-header .adf-activity-indicator{margin-right:12px;position:relative;top:-2px}.adf-feature-flags-overrides-header-text{flex:1}.adf-feature-flags-overrides-header-close{margin-left:12px}.adf-feature-flags-overrides-table{width:100%}.adf-feature-flags-overrides-table .adf-search-icon{position:relative;top:4px}.adf-feature-flags-overrides-table .adf-flag-form-field{width:100%;display:flex}.adf-feature-flags-overrides-table .adf-flag-form-field .mat-mdc-form-field-subscript-wrapper,.adf-feature-flags-overrides-table .adf-flag-form-field .mdc-line-ripple{display:none}.adf-feature-flags-overrides-table .adf-input-field-buttons-container{display:flex;justify-content:flex-end}.adf-feature-flags-overrides-table .adf-clear-button{margin-left:-14px}.adf-feature-flags-overrides-table .adf-fictive-flag-button{margin-left:-12px}.adf-feature-flags-overrides-table .adf-fictive-flag-button .adf-custom-flag-icon{display:block}.adf-feature-flags-overrides-table .adf-fictive-flag-button .adf-trash-icon,.adf-feature-flags-overrides-table .adf-fictive-flag-button:hover .adf-custom-flag-icon{display:none}.adf-feature-flags-overrides-table .adf-fictive-flag-button:hover .adf-trash-icon{display:block}.adf-feature-flags-overrides-table .adf-icon-col{width:56px;padding-left:24px}.adf-feature-flags-overrides-table .adf-val-col{width:85px}\n"], dependencies: [{ kind: "component", type: FlagsOverrideComponent, selector: "adf-feature-flags-override-indicator", inputs: ["size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i10.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
112
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FlagsComponent, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
114
|
args: [{ selector: 'adf-feature-flags-overrides', standalone: true, imports: [
|
|
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
123
123
|
MatInputModule,
|
|
124
124
|
MatDialogModule,
|
|
125
125
|
TranslateModule
|
|
126
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-toolbar class=\"adf-feature-flags-overrides-header\">\n <div class=\"adf-feature-flags-overrides-header-text\">\n <adf-feature-flags-override-indicator\n class=\"adf-activity-indicator\"\n size='large'>\n </adf-feature-flags-override-indicator>\n <span>{{ \"CORE.FEATURE-FLAGS.OVERRIDES\" | translate }}</span>\n </div>\n <mat-slide-toggle\n
|
|
126
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-toolbar class=\"adf-feature-flags-overrides-header\">\n <div class=\"adf-feature-flags-overrides-header-text\" tabindex=\"0\">\n <adf-feature-flags-override-indicator\n class=\"adf-activity-indicator\"\n size='large'>\n </adf-feature-flags-override-indicator>\n <span>{{ \"CORE.FEATURE-FLAGS.OVERRIDES\" | translate }}</span>\n </div>\n <mat-slide-toggle\n [checked]=\"isEnabled\"\n (change)=\"onEnable($event.checked)\">\n </mat-slide-toggle>\n <button\n class=\"adf-feature-flags-overrides-header-close\"\n mat-icon-button\n mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</mat-toolbar>\n\n<ng-container *ngIf=\"flags$ | async as flags\">\n <table mat-table [dataSource]=\"flags\" class=\"adf-feature-flags-overrides-table mat-elevation-z0\">\n <ng-container matColumnDef=\"icon\">\n <th mat-header-cell class=\"adf-icon-col adf-header-cell\" *matHeaderCellDef>\n <mat-icon class=\"material-icons-outlined adf-search-icon\">search</mat-icon>\n </th>\n <td mat-cell class=\"adf-icon-col\" *matCellDef=\"let element\">\n <button mat-icon-button *ngIf=\"element.fictive; else flagFromApi\" class=\"adf-fictive-flag-button\" (click)=\"onDelete(element.flag)\">\n <mat-icon class=\"material-icons-outlined adf-custom-flag-icon\" fontIcon=\"memory\"></mat-icon>\n <mat-icon class=\"material-icons-outlined adf-trash-icon\" fontIcon=\"delete\"></mat-icon>\n </button>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"flag\">\n <th mat-header-cell class=\"flag-col header-cell\" *matHeaderCellDef>\n <mat-form-field class=\"adf-flag-form-field\" appearance=\"fill\" floatLabel=\"auto\">\n <input class=\"flag-input\" [placeholder]=\"(isEnabled ? 'CORE.FEATURE-FLAGS.FILTER_OR_ADD_NEW' : 'CORE.FEATURE-FLAGS.FILTER') | translate\" matInput type=\"text\" [(ngModel)]=\"inputValue\" (keyup)=\"onInputChange(inputValue)\" (keypress)=\"onAdd($event)\">\n </mat-form-field>\n </th>\n <td mat-cell class=\"flag-col\" *matCellDef=\"let element\">{{ element.flag }}</td>\n </ng-container>\n\n <ng-container matColumnDef=\"value\">\n <th mat-header-cell class=\"adf-val-col header-cell\" *matHeaderCellDef>\n <div class=\"adf-input-field-buttons-container\">\n <button *ngIf=\"showPlusButton$ | async\" mat-icon-button title=\"{{'CORE.FEATURE-FLAGS.ADD_NEW' | translate}}\" color=\"accent\" (click)=\"onAddButtonClick()\">\n <mat-icon class=\"material-icons-outlined\" fontIcon=\"add_circle\"></mat-icon>\n </button>\n <button *ngIf=\"inputValue\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"onClearInput()\" class=\"adf-clear-button\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </th>\n <td mat-cell class=\"adf-val-col\" *matCellDef=\"let element\">\n <mat-slide-toggle\n [checked]=\"element.value\"\n (change)=\"onChange(element.flag, $event.checked)\"\n [disabled]=\"!isEnabled\">\n </mat-slide-toggle>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n </table>\n</ng-container>\n\n<ng-template #flagFromApi>\n <mat-icon class=\"material-icons-outlined\">cloud</mat-icon>\n</ng-template>\n\n", styles: [".adf-feature-flags-overrides-header{position:sticky;top:0;height:64px;z-index:101;display:flex}.adf-feature-flags-overrides-header .adf-activity-indicator{margin-right:12px;position:relative;top:-2px}.adf-feature-flags-overrides-header-text{flex:1}.adf-feature-flags-overrides-header-close{margin-left:12px}.adf-feature-flags-overrides-table{width:100%}.adf-feature-flags-overrides-table .adf-search-icon{position:relative;top:4px}.adf-feature-flags-overrides-table .adf-flag-form-field{width:100%;display:flex}.adf-feature-flags-overrides-table .adf-flag-form-field .mat-mdc-form-field-subscript-wrapper,.adf-feature-flags-overrides-table .adf-flag-form-field .mdc-line-ripple{display:none}.adf-feature-flags-overrides-table .adf-input-field-buttons-container{display:flex;justify-content:flex-end}.adf-feature-flags-overrides-table .adf-clear-button{margin-left:-14px}.adf-feature-flags-overrides-table .adf-fictive-flag-button{margin-left:-12px}.adf-feature-flags-overrides-table .adf-fictive-flag-button .adf-custom-flag-icon{display:block}.adf-feature-flags-overrides-table .adf-fictive-flag-button .adf-trash-icon,.adf-feature-flags-overrides-table .adf-fictive-flag-button:hover .adf-custom-flag-icon{display:none}.adf-feature-flags-overrides-table .adf-fictive-flag-button:hover .adf-trash-icon{display:block}.adf-feature-flags-overrides-table .adf-icon-col{width:56px;padding-left:24px}.adf-feature-flags-overrides-table .adf-val-col{width:85px}\n"] }]
|
|
127
127
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
128
128
|
type: Inject,
|
|
129
129
|
args: [FeaturesServiceToken]
|
|
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
131
131
|
type: Inject,
|
|
132
132
|
args: [WritableFeaturesServiceToken]
|
|
133
133
|
}] }]; } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvZmVhdHVyZS1mbGFncy9zcmMvbGliL2NvbXBvbmVudHMvZmxhZ3MvZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvZmVhdHVyZS1mbGFncy9zcmMvbGliL2NvbXBvbmVudHMvZmxhZ3MvZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCxvQkFBb0IsRUFDcEIsNEJBQTRCLEVBSS9CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFB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bEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7NEdBOUZRLGNBQWMsa0JBWVgsb0JBQW9CLGFBRXBCLDRCQUE0QjtnR0FkL0IsY0FBYyx1RkM3RDNCLDA3R0F5RUEsK3NFRDdCUSxzQkFBc0Isa0dBQ3RCLFlBQVksdUxBQ1osV0FBVyw4bUJBQ1gsY0FBYyxnaENBQ2Qsb0JBQW9CLHNNQUNwQixnQkFBZ0IsZ0pBQ2hCLGFBQWEsbUxBQ2IsZUFBZSwyTEFDZixjQUFjLHNyQkFDZCxlQUFlLHFPQUNmLGVBQWU7NEZBT1YsY0FBYztrQkFyQjFCLFNBQVM7K0JBQ0ksNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDTCxzQkFBc0I7d0JBQ3RCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2xCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWMxQyxNQUFNOzJCQUFDLG9CQUFvQjs7MEJBRTNCLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIElXcml0YWJsZUZlYXR1cmVzU2VydmljZSxcbiAgICBGZWF0dXJlc1NlcnZpY2VUb2tlbixcbiAgICBXcml0YWJsZUZlYXR1cmVzU2VydmljZVRva2VuLFxuICAgIElEZWJ1Z0ZlYXR1cmVzU2VydmljZSxcbiAgICBXcml0YWJsZUZsYWdDaGFuZ2VzZXQsXG4gICAgSUZlYXR1cmVzU2VydmljZVxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZlYXR1cmVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGFnc092ZXJyaWRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZmVhdHVyZS1vdmVycmlkZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGbGFnc092ZXJyaWRlQ29tcG9uZW50LFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZsYWdzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGbGFnc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ2ljb24nLCAnZmxhZycsICd2YWx1ZSddO1xuICAgIGZsYWdzJDogT2JzZXJ2YWJsZTx7IGZpY3RpdmU6IGJvb2xlYW47IGZsYWc6IHN0cmluZzsgdmFsdWU6IGFueSB9W10+O1xuICAgIGlzRW5hYmxlZCA9IGZhbHNlO1xuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGlucHV0VmFsdWUgPSAnJztcbiAgICBpbnB1dFZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgc2hvd1BsdXNCdXR0b24kITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB3cml0YWJsZUZsYWdDaGFuZ2VzZXQ6IFdyaXRhYmxlRmxhZ0NoYW5nZXNldCA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRmVhdHVyZXNTZXJ2aWNlVG9rZW4pXG4gICAgICAgIHByaXZhdGUgZmVhdHVyZXNTZXJ2aWNlOiBJRGVidWdGZWF0dXJlc1NlcnZpY2UgJiBJRmVhdHVyZXNTZXJ2aWNlPFdyaXRhYmxlRmxhZ0NoYW5nZXNldD4sXG4gICAgICAgIEBJbmplY3QoV3JpdGFibGVGZWF0dXJlc1NlcnZpY2VUb2tlbilcbiAgICAgICAgcHJpdmF0ZSB3cml0YWJsZUZlYXR1cmVzU2VydmljZTogSVdyaXRhYmxlRmVhdHVyZXNTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmZlYXR1cmVzU2VydmljZS5pc0VuYWJsZWQkKSB7XG4gICAgICAgICAgICB0aGlzLmZlYXR1cmVzU2VydmljZVxuICAgICAgICAgICAgICAgIC5pc0VuYWJsZWQkKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNFbmFibGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbmFibGVkID0gaXNFbmFibGVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmxhZ3MkID0gdGhpcy5mZWF0dXJlc1NlcnZpY2UuZ2V0RmxhZ3MkKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoZmxhZ3MpID0+ICh0aGlzLndyaXRhYmxlRmxhZ0NoYW5nZXNldCA9IGZsYWdzKSksXG4gICAgICAgICAgICBtYXAoKGZsYWdzKSA9PlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGZsYWdzKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZmxhZzoga2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmxhZ3Nba2V5XS5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICBmaWN0aXZlOiBmbGFnc1trZXldPy5maWN0aXZlID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGVib3VuY2VkSW5wdXRWYWx1ZSQgPSB0aGlzLmlucHV0VmFsdWUkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuXG4gICAgICAgIHRoaXMuZmxhZ3MkID0gY29tYmluZUxhdGVzdChbZmxhZ3MkLCBkZWJvdW5jZWRJbnB1dFZhbHVlJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtmbGFncywgaW5wdXRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmbGFncy5maWx0ZXIoKGZsYWcpID0+IGZsYWcuZmxhZy5pbmNsdWRlcyhpbnB1dFZhbHVlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc2hvd1BsdXNCdXR0b24kID0gdGhpcy5mbGFncyQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZmlsdGVyZWRGbGFncykgPT4gdGhpcy5pc0VuYWJsZWQgJiYgZmlsdGVyZWRGbGFncy5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZShmbGFnOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMud3JpdGFibGVGZWF0dXJlc1NlcnZpY2Uuc2V0RmxhZyhmbGFnLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5tZXJnZUZsYWdzKHRoaXMud3JpdGFibGVGbGFnQ2hhbmdlc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVuYWJsZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXRDaGFuZ2UodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSQubmV4dCh0ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGVhcklucHV0KCkge1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BZGQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zaG93UGx1c0J1dHRvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHNob3dQbHVzQnV0dG9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2hvd1BsdXNCdXR0b24gJiYgZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5zZXRGbGFnKHRoaXMuaW5wdXRWYWx1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BZGRCdXR0b25DbGljaygpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5zZXRGbGFnKHRoaXMuaW5wdXRWYWx1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkRlbGV0ZShmbGFnOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5yZW1vdmVGbGFnKGZsYWcpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy1oZWFkZXItdGV4dFwiPlxuICAgIDxhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZS1pbmRpY2F0b3JcbiAgICAgIGNsYXNzPVwiYWRmLWFjdGl2aXR5LWluZGljYXRvclwiXG4gICAgICBzaXplPSdsYXJnZSc+XG4gICAgPC9hZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZS1pbmRpY2F0b3I+XG4gICAgPHNwYW4+e3sgXCJDT1JFLkZFQVRVUkUtRkxBR1MuT1ZFUlJJREVTXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgIGNvbG9yPVwid2FybmluZ1wiXG4gICAgW2NoZWNrZWRdPVwiaXNFbmFibGVkXCJcbiAgICAoY2hhbmdlKT1cIm9uRW5hYmxlKCRldmVudC5jaGVja2VkKVwiPlxuICA8L21hdC1zbGlkZS10b2dnbGU+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy1oZWFkZXItY2xvc2VcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIG1hdC1kaWFsb2ctY2xvc2U+XG4gICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9tYXQtdG9vbGJhcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdzJCB8IGFzeW5jIGFzIGZsYWdzXCI+XG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZmxhZ3NcIiBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy10YWJsZSBtYXQtZWxldmF0aW9uLXowXCI+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpY29uXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsIGNsYXNzPVwiYWRmLWljb24tY29sIGFkZi1oZWFkZXItY2VsbFwiICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIGZvbnRJY29uPVwic2VhcmNoXCIgY2xhc3M9XCJhZGYtc2VhcmNoLWljb25cIj48L21hdC1pY29uPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cImFkZi1pY29uLWNvbFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJlbGVtZW50LmZpY3RpdmU7IGVsc2UgZmxhZ0Zyb21BcGlcIiBjbGFzcz1cImFkZi1maWN0aXZlLWZsYWctYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGVsZW1lbnQuZmxhZylcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBhZGYtY3VzdG9tLWZsYWctaWNvblwiIGZvbnRJY29uPVwibWVtb3J5XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCBhZGYtdHJhc2gtaWNvblwiIGZvbnRJY29uPVwiZGVsZXRlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmbGFnXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsIGNsYXNzPVwiZmxhZy1jb2wgaGVhZGVyLWNlbGxcIiAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZsYWctZm9ybS1maWVsZFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZmxvYXRMYWJlbD1cImF1dG9cIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmbGFnLWlucHV0XCIgW3BsYWNlaG9sZGVyXT1cIihpc0VuYWJsZWQgPyAnQ09SRS5GRUFUVVJFLUZMQUdTLkZJTFRFUl9PUl9BRERfTkVXJyA6ICdDT1JFLkZFQVRVUkUtRkxBR1MuRklMVEVSJykgfCB0cmFuc2xhdGVcIiBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiIChrZXl1cCk9XCJvbklucHV0Q2hhbmdlKGlucHV0VmFsdWUpXCIgKGtleXByZXNzKT1cIm9uQWRkKCRldmVudClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJmbGFnLWNvbFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50LmZsYWcgfX08L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ2YWx1ZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCBjbGFzcz1cImFkZi12YWwtY29sIGhlYWRlci1jZWxsXCIgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtaW5wdXQtZmllbGQtYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd1BsdXNCdXR0b24kIHwgYXN5bmNcIiBtYXQtaWNvbi1idXR0b24gdGl0bGU9XCJ7eydDT1JFLkZFQVRVUkUtRkxBR1MuQUREX05FVycgfCB0cmFuc2xhdGV9fVwiIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9uQWRkQnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIiBmb250SWNvbj1cImFkZF9jaXJjbGVcIj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpbnB1dFZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwib25DbGVhcklucHV0KClcIiBjbGFzcz1cImFkZi1jbGVhci1idXR0b25cIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtdmFsLWNvbFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICBbY2hlY2tlZF09XCJlbGVtZW50LnZhbHVlXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKGVsZW1lbnQuZmxhZywgJGV2ZW50LmNoZWNrZWQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRW5hYmxlZFwiPlxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgPC90YWJsZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2ZsYWdGcm9tQXBpPlxuICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIGZvbnRJY29uPVwiY2xvdWRcIj48L21hdC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvZmVhdHVyZS1mbGFncy9zcmMvbGliL2NvbXBvbmVudHMvZmxhZ3MvZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvZmVhdHVyZS1mbGFncy9zcmMvbGliL2NvbXBvbmVudHMvZmxhZ3MvZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCxvQkFBb0IsRUFDcEIsNEJBQTRCLEVBSS9CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFB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bEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7NEdBOUZRLGNBQWMsa0JBWVgsb0JBQW9CLGFBRXBCLDRCQUE0QjtnR0FkL0IsY0FBYyx1RkM3RDNCLHk0R0F3RUEsMCtDRDVCUSxzQkFBc0Isa0dBQ3RCLFlBQVksdUxBQ1osV0FBVyw4bUJBQ1gsY0FBYyxnaENBQ2Qsb0JBQW9CLHNNQUNwQixnQkFBZ0IsZ0pBQ2hCLGFBQWEsbUxBQ2IsZUFBZSwyTEFDZixjQUFjLHNyQkFDZCxlQUFlLHFPQUNmLGVBQWU7NEZBT1YsY0FBYztrQkFyQjFCLFNBQVM7K0JBQ0ksNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDTCxzQkFBc0I7d0JBQ3RCLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7cUJBQ2xCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWMxQyxNQUFNOzJCQUFDLG9CQUFvQjs7MEJBRTNCLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIElXcml0YWJsZUZlYXR1cmVzU2VydmljZSxcbiAgICBGZWF0dXJlc1NlcnZpY2VUb2tlbixcbiAgICBXcml0YWJsZUZlYXR1cmVzU2VydmljZVRva2VuLFxuICAgIElEZWJ1Z0ZlYXR1cmVzU2VydmljZSxcbiAgICBXcml0YWJsZUZsYWdDaGFuZ2VzZXQsXG4gICAgSUZlYXR1cmVzU2VydmljZVxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZlYXR1cmVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGUnO1xuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGFnc092ZXJyaWRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZmVhdHVyZS1vdmVycmlkZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGbGFnc092ZXJyaWRlQ29tcG9uZW50LFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICAgICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgICAgIE1hdFRvb2xiYXJNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZsYWdzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGbGFnc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbJ2ljb24nLCAnZmxhZycsICd2YWx1ZSddO1xuICAgIGZsYWdzJDogT2JzZXJ2YWJsZTx7IGZpY3RpdmU6IGJvb2xlYW47IGZsYWc6IHN0cmluZzsgdmFsdWU6IGFueSB9W10+O1xuICAgIGlzRW5hYmxlZCA9IGZhbHNlO1xuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGlucHV0VmFsdWUgPSAnJztcbiAgICBpbnB1dFZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgc2hvd1BsdXNCdXR0b24kITogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB3cml0YWJsZUZsYWdDaGFuZ2VzZXQ6IFdyaXRhYmxlRmxhZ0NoYW5nZXNldCA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRmVhdHVyZXNTZXJ2aWNlVG9rZW4pXG4gICAgICAgIHByaXZhdGUgZmVhdHVyZXNTZXJ2aWNlOiBJRGVidWdGZWF0dXJlc1NlcnZpY2UgJiBJRmVhdHVyZXNTZXJ2aWNlPFdyaXRhYmxlRmxhZ0NoYW5nZXNldD4sXG4gICAgICAgIEBJbmplY3QoV3JpdGFibGVGZWF0dXJlc1NlcnZpY2VUb2tlbilcbiAgICAgICAgcHJpdmF0ZSB3cml0YWJsZUZlYXR1cmVzU2VydmljZTogSVdyaXRhYmxlRmVhdHVyZXNTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmZlYXR1cmVzU2VydmljZS5pc0VuYWJsZWQkKSB7XG4gICAgICAgICAgICB0aGlzLmZlYXR1cmVzU2VydmljZVxuICAgICAgICAgICAgICAgIC5pc0VuYWJsZWQkKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNFbmFibGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbmFibGVkID0gaXNFbmFibGVkO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmxhZ3MkID0gdGhpcy5mZWF0dXJlc1NlcnZpY2UuZ2V0RmxhZ3MkKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoZmxhZ3MpID0+ICh0aGlzLndyaXRhYmxlRmxhZ0NoYW5nZXNldCA9IGZsYWdzKSksXG4gICAgICAgICAgICBtYXAoKGZsYWdzKSA9PlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGZsYWdzKS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZmxhZzoga2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmxhZ3Nba2V5XS5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICBmaWN0aXZlOiBmbGFnc1trZXldPy5maWN0aXZlID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGVib3VuY2VkSW5wdXRWYWx1ZSQgPSB0aGlzLmlucHV0VmFsdWUkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuXG4gICAgICAgIHRoaXMuZmxhZ3MkID0gY29tYmluZUxhdGVzdChbZmxhZ3MkLCBkZWJvdW5jZWRJbnB1dFZhbHVlJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtmbGFncywgaW5wdXRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlucHV0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmbGFncy5maWx0ZXIoKGZsYWcpID0+IGZsYWcuZmxhZy5pbmNsdWRlcyhpbnB1dFZhbHVlKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc2hvd1BsdXNCdXR0b24kID0gdGhpcy5mbGFncyQucGlwZShcbiAgICAgICAgICAgIG1hcCgoZmlsdGVyZWRGbGFncykgPT4gdGhpcy5pc0VuYWJsZWQgJiYgZmlsdGVyZWRGbGFncy5sZW5ndGggPT09IDAgJiYgdGhpcy5pbnB1dFZhbHVlLnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZShmbGFnOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMud3JpdGFibGVGZWF0dXJlc1NlcnZpY2Uuc2V0RmxhZyhmbGFnLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5tZXJnZUZsYWdzKHRoaXMud3JpdGFibGVGbGFnQ2hhbmdlc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVuYWJsZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXRDaGFuZ2UodGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW5wdXRWYWx1ZSQubmV4dCh0ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGVhcklucHV0KCkge1xuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlJC5uZXh0KCcnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BZGQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zaG93UGx1c0J1dHRvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHNob3dQbHVzQnV0dG9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2hvd1BsdXNCdXR0b24gJiYgZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5zZXRGbGFnKHRoaXMuaW5wdXRWYWx1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BZGRCdXR0b25DbGljaygpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5zZXRGbGFnKHRoaXMuaW5wdXRWYWx1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkRlbGV0ZShmbGFnOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53cml0YWJsZUZlYXR1cmVzU2VydmljZS5yZW1vdmVGbGFnKGZsYWcpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy1oZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImFkZi1mZWF0dXJlLWZsYWdzLW92ZXJyaWRlcy1oZWFkZXItdGV4dFwiIHRhYmluZGV4PVwiMFwiPlxuICAgIDxhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZS1pbmRpY2F0b3JcbiAgICAgIGNsYXNzPVwiYWRmLWFjdGl2aXR5LWluZGljYXRvclwiXG4gICAgICBzaXplPSdsYXJnZSc+XG4gICAgPC9hZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZS1pbmRpY2F0b3I+XG4gICAgPHNwYW4+e3sgXCJDT1JFLkZFQVRVUkUtRkxBR1MuT1ZFUlJJREVTXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgIFtjaGVja2VkXT1cImlzRW5hYmxlZFwiXG4gICAgKGNoYW5nZSk9XCJvbkVuYWJsZSgkZXZlbnQuY2hlY2tlZClcIj5cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZXMtaGVhZGVyLWNsb3NlXCJcbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbWF0LXRvb2xiYXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFncyQgfCBhc3luYyBhcyBmbGFnc1wiPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImZsYWdzXCIgY2xhc3M9XCJhZGYtZmVhdHVyZS1mbGFncy1vdmVycmlkZXMtdGFibGUgbWF0LWVsZXZhdGlvbi16MFwiPlxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaWNvblwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCBjbGFzcz1cImFkZi1pY29uLWNvbCBhZGYtaGVhZGVyLWNlbGxcIiAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgYWRmLXNlYXJjaC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJhZGYtaWNvbi1jb2xcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiZWxlbWVudC5maWN0aXZlOyBlbHNlIGZsYWdGcm9tQXBpXCIgY2xhc3M9XCJhZGYtZmljdGl2ZS1mbGFnLWJ1dHRvblwiIChjbGljayk9XCJvbkRlbGV0ZShlbGVtZW50LmZsYWcpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgYWRmLWN1c3RvbS1mbGFnLWljb25cIiBmb250SWNvbj1cIm1lbW9yeVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgYWRmLXRyYXNoLWljb25cIiBmb250SWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmxhZ1wiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCBjbGFzcz1cImZsYWctY29sIGhlYWRlci1jZWxsXCIgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mbGFnLWZvcm0tZmllbGRcIiBhcHBlYXJhbmNlPVwiZmlsbFwiIGZsb2F0TGFiZWw9XCJhdXRvXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZmxhZy1pbnB1dFwiIFtwbGFjZWhvbGRlcl09XCIoaXNFbmFibGVkID8gJ0NPUkUuRkVBVFVSRS1GTEFHUy5GSUxURVJfT1JfQUREX05FVycgOiAnQ09SRS5GRUFUVVJFLUZMQUdTLkZJTFRFUicpIHwgdHJhbnNsYXRlXCIgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIiAoa2V5dXApPVwib25JbnB1dENoYW5nZShpbnB1dFZhbHVlKVwiIChrZXlwcmVzcyk9XCJvbkFkZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwiZmxhZy1jb2xcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC5mbGFnIH19PC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmFsdWVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgY2xhc3M9XCJhZGYtdmFsLWNvbCBoZWFkZXItY2VsbFwiICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWlucHV0LWZpZWxkLWJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dQbHVzQnV0dG9uJCB8IGFzeW5jXCIgbWF0LWljb24tYnV0dG9uIHRpdGxlPVwie3snQ09SRS5GRUFUVVJFLUZMQUdTLkFERF9ORVcnIHwgdHJhbnNsYXRlfX1cIiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvbkFkZEJ1dHRvbkNsaWNrKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCIgZm9udEljb249XCJhZGRfY2lyY2xlXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaW5wdXRWYWx1ZVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCIgKGNsaWNrKT1cIm9uQ2xlYXJJbnB1dCgpXCIgY2xhc3M9XCJhZGYtY2xlYXItYnV0dG9uXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwiYWRmLXZhbC1jb2xcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgW2NoZWNrZWRdPVwiZWxlbWVudC52YWx1ZVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZShlbGVtZW50LmZsYWcsICRldmVudC5jaGVja2VkKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0VuYWJsZWRcIj5cbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gIDwvdGFibGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNmbGFnRnJvbUFwaT5cbiAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5jbG91ZDwvbWF0LWljb24+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
@@ -53,7 +53,7 @@ export class AuthConfigService {
|
|
|
53
53
|
nonceStateSeparator: '~',
|
|
54
54
|
redirectUri,
|
|
55
55
|
silentRefreshRedirectUri: oauth2.redirectSilentIframeUri,
|
|
56
|
-
postLogoutRedirectUri:
|
|
56
|
+
postLogoutRedirectUri: this.generatePostLogoutUri(origin, oauth2.redirectUriLogout),
|
|
57
57
|
clientId: oauth2.clientId,
|
|
58
58
|
scope: oauth2.scope,
|
|
59
59
|
dummyClientSecret: oauth2.secret || '',
|
|
@@ -72,9 +72,7 @@ export class AuthConfigService {
|
|
|
72
72
|
return oauth2.redirectUri;
|
|
73
73
|
}
|
|
74
74
|
const locationOrigin = oauth2.redirectUri && oauth2.redirectUri !== '/' ? this.getLocationOrigin() + '' + oauth2.redirectUri : this.getLocationOrigin();
|
|
75
|
-
const redirectUri = useHash
|
|
76
|
-
? `${locationOrigin}/#/${viewUrl}`
|
|
77
|
-
: `${locationOrigin}/${viewUrl}`;
|
|
75
|
+
const redirectUri = useHash ? `${locationOrigin}/#/${viewUrl}` : `${locationOrigin}/${viewUrl}`;
|
|
78
76
|
// handle issue from the OIDC library with hashStrategy and implicitFlow, with would append &state to the url with would lead to error
|
|
79
77
|
// `cannot match any routes`, and displaying the wildcard ** error page
|
|
80
78
|
return (oauth2.codeFlow || oauth2.implicitFlow) && useHash ? `${redirectUri}/?` : redirectUri;
|
|
@@ -82,6 +80,11 @@ export class AuthConfigService {
|
|
|
82
80
|
getLocationOrigin() {
|
|
83
81
|
return window.location.origin;
|
|
84
82
|
}
|
|
83
|
+
generatePostLogoutUri(hostUri = '', redirectUriLogout = '') {
|
|
84
|
+
const hostUriWithoutSlash = hostUri.endsWith('/') ? hostUri.substring(0, hostUri.length - 1) : hostUri;
|
|
85
|
+
const redirectUriLogoutWithoutSlash = redirectUriLogout.startsWith('/') ? redirectUriLogout.substring(1) : redirectUriLogout;
|
|
86
|
+
return `${hostUriWithoutSlash}/${redirectUriLogoutWithoutSlash}`;
|
|
87
|
+
}
|
|
85
88
|
}
|
|
86
89
|
AuthConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthConfigService, deps: [{ token: i1.AppConfigService }, { token: AUTH_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
87
90
|
AuthConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthConfigService, providedIn: 'root' });
|
|
@@ -94,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
94
97
|
type: Inject,
|
|
95
98
|
args: [AUTH_MODULE_CONFIG]
|
|
96
99
|
}] }]; } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvYXV0aC9vaWRjL2F1dGgtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7QUFFckU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsaUJBQW9DO0lBQ2xFLE9BQU8saUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUtELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsZ0JBQWtDLEVBQStDLGdCQUFrQztRQUFuSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQStDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRzNJLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELGFBQWE7UUFDVCxNQUFN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QUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUU3SCxPQUFPLEdBQUcsbUJBQW1CLElBQUksNkJBQTZCLEVBQUUsQ0FBQztJQUNyRSxDQUFDOzsrR0FsRVEsaUJBQWlCLGtEQUNzQyxrQkFBa0I7bUhBRHpFLGlCQUFpQixjQUZkLE1BQU07NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBRTRELE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwLWNvbmZpZy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVVUSF9NT0RVTEVfQ09ORklHLCBBdXRoTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9hdXRoLWNvbmZpZyc7XG5cbi8qKlxuICogQ3JlYXRlIGF1dGggY29uZmlndXJhdGlvbiBmYWN0b3J5XG4gKlxuICogQHBhcmFtIGF1dGhDb25maWdTZXJ2aWNlIGF1dGggY29uZmlnIHNlcnZpY2VcbiAqIEByZXR1cm5zIGZhY3RvcnkgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dGhDb25maWdGYWN0b3J5KGF1dGhDb25maWdTZXJ2aWNlOiBBdXRoQ29uZmlnU2VydmljZSk6IFByb21pc2U8QXV0aENvbmZpZz4ge1xuICAgIHJldHVybiBhdXRoQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKCk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aENvbmZpZ1NlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSwgQEluamVjdChBVVRIX01PRFVMRV9DT05GSUcpIHByaXZhdGUgcmVhZG9ubHkgYXV0aE1vZHVsZUNvbmZpZzogQXV0aE1vZHVsZUNvbmZpZykge31cblxuICAgIHByaXZhdGUgX2F1dGhDb25maWchOiBBdXRoQ29uZmlnO1xuICAgIGdldCBhdXRoQ29uZmlnKCk6IEF1dGhDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0aENvbmZpZztcbiAgICB9XG5cbiAgICBsb2FkQ29uZmlnKCk6IFByb21pc2U8QXV0aENvbmZpZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBDb25maWdTZXJ2aWNlLm9uTG9hZC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpLnRoZW4odGhpcy5sb2FkQXBwQ29uZmlnLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIGxvYWRBcHBDb25maWcoKTogQXV0aENvbmZpZyB7XG4gICAgICAgIGNvbnN0IG9hdXRoMiA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5vYXV0aDI7XG4gICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuZ2V0TG9jYXRpb25PcmlnaW4oKTtcbiAgICAgICAgY29uc3QgcmVkaXJlY3RVcmkgPSB0aGlzLmdldFJlZGlyZWN0VXJpKCk7XG4gICAgICAgIGNvbnN0IGN1c3RvbVF1ZXJ5UGFyYW1zID0gb2F1dGgyLmF1ZGllbmNlID8geyBhdWRpZW5jZTogb2F1dGgyLmF1ZGllbmNlIH0gOiB7fTtcblxuICAgICAgICByZXR1cm4gbmV3IEF1dGhDb25maWcoe1xuICAgICAgICAgICAgLi4ub2F1dGgyLFxuICAgICAgICAgICAgb2lkYzogb2F1dGgyLmltcGxpY2l0RmxvdyB8fCBvYXV0aDIuY29kZUZsb3cgfHwgZmFsc2UsXG4gICAgICAgICAgICBpc3N1ZXI6IG9hdXRoMi5ob3N0LFxuICAgICAgICAgICAgbm9uY2VTdGF0ZVNlcGFyYXRvcjogJ34nLFxuICAgICAgICAgICAgcmVkaXJlY3RVcmksXG4gICAgICAgICAgICBzaWxlbnRSZWZyZXNoUmVkaXJlY3RVcmk6IG9hdXRoMi5yZWRpcmVjdFNpbGVudElmcmFtZVVyaSxcbiAgICAgICAgICAgIHBvc3RMb2dvdXRSZWRpcmVjdFVyaTogdGhpcy5nZW5lcmF0ZVBvc3RMb2dvdXRVcmkob3JpZ2luLCBvYXV0aDIucmVkaXJlY3RVcmlMb2dvdXQpLFxuICAgICAgICAgICAgY2xpZW50SWQ6IG9hdXRoMi5jbGllbnRJZCxcbiAgICAgICAgICAgIHNjb3BlOiBvYXV0aDIuc2NvcGUsXG4gICAgICAgICAgICBkdW1teUNsaWVudFNlY3JldDogb2F1dGgyLnNlY3JldCB8fCAnJyxcbiAgICAgICAgICAgIGxvZ291dFVybDogb2F1dGgyLmxvZ291dFVybCxcbiAgICAgICAgICAgIGN1c3RvbVF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgLi4uKG9hdXRoMi5jb2RlRmxvdyAmJiB7IHJlc3BvbnNlVHlwZTogJ2NvZGUnIH0pXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFJlZGlyZWN0VXJpKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIHJlcXVpcmVkIGZvciB0aGlzIHBhY2thZ2UgYXMgd2UgaGFuZGxlIHRoZSByZXR1cm5lZCB0b2tlbiBvbiB0aGlzIHZpZXcsIHdpdGggaXMgcHJvdmlkZWQgYnkgdGhlIEF1dGhNb2R1bGVcbiAgICAgICAgY29uc3Qgdmlld1VybCA9IGB2aWV3L2F1dGhlbnRpY2F0aW9uLWNvbmZpcm1hdGlvbmA7XG4gICAgICAgIGNvbnN0IHVzZUhhc2ggPSB0aGlzLmF1dGhNb2R1bGVDb25maWcudXNlSGFzaDtcblxuICAgICAgICBjb25zdCBvYXV0aDIgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2Uub2F1dGgyO1xuXG4gICAgICAgIGNvbnN0IGRpcmVjdFVybCA9IG9hdXRoMi5yZWRpcmVjdFVyaT8uc3RhcnRzV2l0aCgnaHR0cCcpO1xuICAgICAgICBpZiAoZGlyZWN0VXJsKSB7XG4gICAgICAgICAgICByZXR1cm4gb2F1dGgyLnJlZGlyZWN0VXJpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYXRpb25PcmlnaW4gPVxuICAgICAgICAgICAgb2F1dGgyLnJlZGlyZWN0VXJpICYmIG9hdXRoMi5yZWRpcmVjdFVyaSAhPT0gJy8nID8gdGhpcy5nZXRMb2NhdGlvbk9yaWdpbigpICsgJycgKyBvYXV0aDIucmVkaXJlY3RVcmkgOiB0aGlzLmdldExvY2F0aW9uT3JpZ2luKCk7XG5cbiAgICAgICAgY29uc3QgcmVkaXJlY3RVcmkgPSB1c2VIYXNoID8gYCR7bG9jYXRpb25PcmlnaW59LyMvJHt2aWV3VXJsfWAgOiBgJHtsb2NhdGlvbk9yaWdpbn0vJHt2aWV3VXJsfWA7XG5cbiAgICAgICAgLy8gaGFuZGxlIGlzc3VlIGZyb20gdGhlIE9JREMgbGlicmFyeSB3aXRoIGhhc2hTdHJhdGVneSBhbmQgaW1wbGljaXRGbG93LCB3aXRoIHdvdWxkIGFwcGVuZCAmc3RhdGUgdG8gdGhlIHVybCB3aXRoIHdvdWxkIGxlYWQgdG8gZXJyb3JcbiAgICAgICAgLy8gYGNhbm5vdCBtYXRjaCBhbnkgcm91dGVzYCwgYW5kIGRpc3BsYXlpbmcgdGhlIHdpbGRjYXJkICoqIGVycm9yIHBhZ2VcbiAgICAgICAgcmV0dXJuIChvYXV0aDIuY29kZUZsb3cgfHwgb2F1dGgyLmltcGxpY2l0RmxvdykgJiYgdXNlSGFzaCA/IGAke3JlZGlyZWN0VXJpfS8/YCA6IHJlZGlyZWN0VXJpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TG9jYXRpb25PcmlnaW4oKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVQb3N0TG9nb3V0VXJpKGhvc3RVcmk6IHN0cmluZyA9ICcnLCByZWRpcmVjdFVyaUxvZ291dDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBob3N0VXJpV2l0aG91dFNsYXNoID0gaG9zdFVyaS5lbmRzV2l0aCgnLycpID8gaG9zdFVyaS5zdWJzdHJpbmcoMCwgaG9zdFVyaS5sZW5ndGggLSAxKSA6IGhvc3RVcmk7XG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VXJpTG9nb3V0V2l0aG91dFNsYXNoID0gcmVkaXJlY3RVcmlMb2dvdXQuc3RhcnRzV2l0aCgnLycpID8gcmVkaXJlY3RVcmlMb2dvdXQuc3Vic3RyaW5nKDEpIDogcmVkaXJlY3RVcmlMb2dvdXQ7XG5cbiAgICAgICAgcmV0dXJuIGAke2hvc3RVcmlXaXRob3V0U2xhc2h9LyR7cmVkaXJlY3RVcmlMb2dvdXRXaXRob3V0U2xhc2h9YDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { Inject, Injectable, inject } from '@angular/core';
|
|
18
|
-
import { AuthConfig, AUTH_CONFIG, OAuthService, OAuthStorage } from 'angular-oauth2-oidc';
|
|
18
|
+
import { AuthConfig, AUTH_CONFIG, OAuthService, OAuthStorage, OAuthSuccessEvent } from 'angular-oauth2-oidc';
|
|
19
19
|
import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
|
|
20
20
|
import { from } from 'rxjs';
|
|
21
21
|
import { distinctUntilChanged, filter, map, shareReplay } from 'rxjs/operators';
|
|
@@ -112,10 +112,50 @@ export class RedirectAuthService extends AuthService {
|
|
|
112
112
|
this.oauthService.logOut();
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
return this.ensureDiscoveryDocument().then(() =>
|
|
115
|
+
return this.ensureDiscoveryDocument().then(() => {
|
|
116
|
+
this.oauthService.setupAutomaticSilentRefresh();
|
|
117
|
+
return void this.allowRefreshTokenAndSilentRefreshOnMultipleTabs();
|
|
118
|
+
}).catch(() => {
|
|
116
119
|
// catch error to prevent the app from crashing when trying to access unprotected routes
|
|
117
120
|
});
|
|
118
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Fix a known issue (https://github.com/manfredsteyer/angular-oauth2-oidc/issues/850)
|
|
124
|
+
* where multiple tabs can cause the token refresh and the silent refresh to fail.
|
|
125
|
+
* This patch is based on the solutions provided in the following comments:
|
|
126
|
+
* https://github.com/manfredsteyer/angular-oauth2-oidc/issues/850#issuecomment-889921776 fix silent refresh for the implicit flow
|
|
127
|
+
* https://github.com/manfredsteyer/angular-oauth2-oidc/issues/850#issuecomment-1557286966 fix refresh token for the code flow
|
|
128
|
+
*/
|
|
129
|
+
allowRefreshTokenAndSilentRefreshOnMultipleTabs() {
|
|
130
|
+
let lastUpdatedAccessToken;
|
|
131
|
+
if (this.oauthService.hasValidAccessToken()) {
|
|
132
|
+
lastUpdatedAccessToken = this.oauthService.getAccessToken();
|
|
133
|
+
}
|
|
134
|
+
const originalRefreshToken = this.oauthService.refreshToken.bind(this.oauthService);
|
|
135
|
+
this.oauthService.refreshToken = () => navigator.locks.request(`refresh_tokens_${location.origin}`, () => {
|
|
136
|
+
if (!!lastUpdatedAccessToken && lastUpdatedAccessToken !== this.oauthService.getAccessToken()) {
|
|
137
|
+
this.oauthService.eventsSubject.next(new OAuthSuccessEvent('token_received'));
|
|
138
|
+
this.oauthService.eventsSubject.next(new OAuthSuccessEvent('token_refreshed'));
|
|
139
|
+
lastUpdatedAccessToken = this.oauthService.getAccessToken();
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
return originalRefreshToken().then((resp) => (lastUpdatedAccessToken = resp.access_token));
|
|
143
|
+
});
|
|
144
|
+
const originalSilentRefresh = this.oauthService.silentRefresh.bind(this.oauthService);
|
|
145
|
+
this.oauthService.silentRefresh = async (params = {}, noPrompt = true) => navigator.locks.request(`silent_refresh_${location.origin}`, async () => {
|
|
146
|
+
if (lastUpdatedAccessToken !== this.oauthService.getAccessToken()) {
|
|
147
|
+
this.oauthService.eventsSubject.next(new OAuthSuccessEvent('token_received'));
|
|
148
|
+
this.oauthService.eventsSubject.next(new OAuthSuccessEvent('token_refreshed'));
|
|
149
|
+
const event = new OAuthSuccessEvent('silently_refreshed');
|
|
150
|
+
this.oauthService.eventsSubject.next(event);
|
|
151
|
+
lastUpdatedAccessToken = this.oauthService.getAccessToken();
|
|
152
|
+
return event;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
return originalSilentRefresh(params, noPrompt);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
119
159
|
updateIDPConfiguration(config) {
|
|
120
160
|
this.oauthService.configure(config);
|
|
121
161
|
}
|
|
@@ -128,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
128
168
|
type: Inject,
|
|
129
169
|
args: [AUTH_CONFIG]
|
|
130
170
|
}] }]; } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL29pZGMvcmVkaXJlY3QtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBK0IsWUFBWSxFQUFFLFlBQVksRUFBK0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNwSixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7QUFFckUsTUFBTSxTQUFTLEdBQUcsQ0FBSSxLQUFxQixFQUF1QixFQUFFLENBQUMsS0FBSyxJQUFJLE9BQVEsS0FBb0IsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRy9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBZ0JsRDs7OztPQUlHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBSUQsWUFDVSxZQUEwQixFQUMxQixhQUEyQixFQUNkLFVBQXNCO1FBRTNDLEtBQUssRUFBRSxDQUFDO1FBSkEsaUJB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QUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzlDLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQywyQkFBMkIsRUFBRSxDQUNyRCxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVix3RkFBd0Y7UUFDM0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBa0I7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7aUhBeEpVLG1CQUFtQiwwRUE4QnBCLFdBQVc7cUhBOUJWLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkErQk4sTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aENvbmZpZywgQVVUSF9DT05GSUcsIE9BdXRoRXJyb3JFdmVudCwgT0F1dGhFdmVudCwgT0F1dGhTZXJ2aWNlLCBPQXV0aFN0b3JhZ2UsIFRva2VuUmVzcG9uc2UsIExvZ2luT3B0aW9ucyB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgSndrc1ZhbGlkYXRpb25IYW5kbGVyIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYy1qd2tzJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFVVEhfTU9EVUxFX0NPTkZJRywgQXV0aE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vYXV0aC1jb25maWcnO1xuXG5jb25zdCBpc1Byb21pc2UgPSA8VD4odmFsdWU6IFQgfCBQcm9taXNlPFQ+KTogdmFsdWUgaXMgUHJvbWlzZTxUPiA9PiB2YWx1ZSAmJiB0eXBlb2YgKHZhbHVlIGFzIFByb21pc2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWRpcmVjdEF1dGhTZXJ2aWNlIGV4dGVuZHMgQXV0aFNlcnZpY2Uge1xuXG4gIHJlYWRvbmx5IGF1dGhNb2R1bGVDb25maWc6IEF1dGhNb2R1bGVDb25maWcgPSBpbmplY3QoQVVUSF9NT0RVTEVfQ09ORklHKTtcblxuICBvbkxvZ2luOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgb25Ub2tlblJlY2VpdmVkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJpdmF0ZSBfbG9hZERpc2NvdmVyeURvY3VtZW50UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cbiAgLyoqIFN1YnNjcmliZSB0byB3aGV0aGVyIHRoZSB1c2VyIGhhcyB2YWxpZCBJZC9BY2Nlc3MgdG9rZW5zLiAgKi9cbiAgYXV0aGVudGljYXRlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBTdWJzY3JpYmUgdG8gZXJyb3JzIHJlYWNoaW5nIHRoZSBJZFAuICovXG4gIGlkcFVucmVhY2hhYmxlJCE6IE9ic2VydmFibGU8RXJyb3I+O1xuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGUgdXNlciBoYXMgdmFsaWQgSWQvQWNjZXNzIHRva2Vucy5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAqL1xuICBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRJZFRva2VuKCkgJiYgdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoQ29uZmlnITogQXV0aENvbmZpZyB8IFByb21pc2U8QXV0aENvbmZpZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICBwcml2YXRlIF9vYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcbiAgICBASW5qZWN0KEFVVEhfQ09ORklHKSBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hdXRoQ29uZmlnID0gYXV0aENvbmZpZztcblxuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmNsZWFySGFzaEFmdGVyTG9naW4gPSB0cnVlO1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkJCA9IHRoaXMub2F1dGhTZXJ2aWNlLmV2ZW50cy5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuYXV0aGVudGljYXRlZCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy5vbkxvZ2luID0gdGhpcy5hdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGF1dGhlbnRpY2F0ZWQpID0+IGF1dGhlbnRpY2F0ZWQpLFxuICAgICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKVxuICAgICk7XG5cbiAgICB0aGlzLm9uVG9rZW5SZWNlaXZlZCA9IHRoaXMub2F1dGhTZXJ2aWNlLmV2ZW50cy5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBPQXV0aEV2ZW50KSA9PiBldmVudC50eXBlID09PSAndG9rZW5fcmVjZWl2ZWQnKSxcbiAgICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZClcbiAgICApO1xuXG4gICAgdGhpcy5pZHBVbnJlYWNoYWJsZSQgPSB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBPQXV0aEVycm9yRXZlbnQgPT4gZXZlbnQudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkX2Vycm9yJyksXG4gICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5yZWFzb24gYXMgRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGluaXQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGlzUHJvbWlzZSh0aGlzLmF1dGhDb25maWcpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhDb25maWcudGhlbigoY29uZmlnKSA9PiB0aGlzLmNvbmZpZ3VyZUF1dGgoY29uZmlnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlQXV0aCh0aGlzLmF1dGhDb25maWcpO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmxvZ091dCgpO1xuICB9XG5cbiAgZW5zdXJlRGlzY292ZXJ5RG9jdW1lbnQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5fbG9hZERpc2NvdmVyeURvY3VtZW50UHJvbWlzZSA9IHRoaXMuX2xvYWREaXNjb3ZlcnlEb2N1bWVudFByb21pc2VcbiAgICAgIC5jYXRjaCgoKSA9PiBmYWxzZSlcbiAgICAgIC50aGVuKChsb2FkZWQpID0+IHtcbiAgICAgICAgaWYgKCFsb2FkZWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9sb2FkRGlzY292ZXJ5RG9jdW1lbnRQcm9taXNlO1xuICB9XG5cblxuICBsb2dpbihjdXJyZW50VXJsPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHN0YXRlS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoY3VycmVudFVybCkge1xuICAgICAgICBjb25zdCByYW5kb21WYWx1ZSA9IHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF07XG4gICAgICAgIHN0YXRlS2V5ID0gYGF1dGhfc3RhdGVfJHtyYW5kb21WYWx1ZX0ke0RhdGUubm93KCl9YDtcbiAgICAgICAgdGhpcy5fb2F1dGhTdG9yYWdlLnNldEl0ZW0oc3RhdGVLZXksIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVcmwgfHwge30pKTtcbiAgICB9XG5cbiAgICAvLyBpbml0TG9naW5GbG93IHdpbGwgaW5pdGlhbGl6ZSB0aGUgbG9naW4gZmxvdyBpbiBlaXRoZXIgY29kZSBvciBpbXBsaWNpdCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmVuc3VyZURpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PiB2b2lkIHRoaXMub2F1dGhTZXJ2aWNlLmluaXRMb2dpbkZsb3coc3RhdGVLZXkpKTtcbiAgfVxuXG4gIGJhc2VBdXRoTG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8VG9rZW5SZXNwb25zZT4ge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLnVzZUh0dHBCYXNpY0F1dGggPSB0cnVlO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5vYXV0aFNlcnZpY2UuZmV0Y2hUb2tlblVzaW5nUGFzc3dvcmRGbG93KHVzZXJuYW1lLCBwYXNzd29yZCkpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICAgICAgICAgIHByb3BzLnNldCgnaWRfdG9rZW4nLCByZXNwb25zZS5pZF90b2tlbik7XG4gICAgICAgICAgICAvLyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3ZSBuZWVkIHRvIHNldCB0aGUgcmVzcG9uc2UgaW4gb3VyIHN0b3JhZ2VcbiAgICAgICAgICAgIHRoaXMub2F1dGhTZXJ2aWNlWydzdG9yZUFjY2Vzc1Rva2VuUmVzcG9uc2UnXShyZXNwb25zZS5hY2Nlc3NfdG9rZW4sIHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sIHJlc3BvbnNlLmV4cGlyZXNfaW4sIHJlc3BvbnNlLnNjb3BlLCBwcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luQ2FsbGJhY2sobG9naW5PcHRpb25zPzogTG9naW5PcHRpb25zKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVEaXNjb3ZlcnlEb2N1bWVudCgpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9hdXRoU2VydmljZS50cnlMb2dpbih7IC4uLmxvZ2luT3B0aW9ucywgcHJldmVudENsZWFySGFzaEFmdGVyTG9naW46IHRoaXMuYXV0aE1vZHVsZUNvbmZpZy5wcmV2ZW50Q2xlYXJIYXNoQWZ0ZXJMb2dpbiB9KSlcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuX2dldFJlZGlyZWN0VXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVkaXJlY3RVcmwoKSB7XG4gICAgY29uc3QgREVGQVVMVF9SRURJUkVDVCA9ICcvJztcbiAgICBjb25zdCBzdGF0ZUtleSA9IHRoaXMub2F1dGhTZXJ2aWNlLnN0YXRlO1xuXG4gICAgaWYgKHN0YXRlS2V5KSB7XG4gICAgICBjb25zdCBzdGF0ZVN0cmluZ2lmaWVkID0gdGhpcy5fb2F1dGhTdG9yYWdlLmdldEl0ZW0oc3RhdGVLZXkpO1xuICAgICAgaWYgKHN0YXRlU3RyaW5naWZpZWQpIHtcbiAgICAgICAgLy8gY2xlYW51cCBzdGF0ZSBmcm9tIHN0b3JhZ2VcbiAgICAgICAgdGhpcy5fb2F1dGhTdG9yYWdlLnJlbW92ZUl0ZW0oc3RhdGVLZXkpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdGF0ZVN0cmluZ2lmaWVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gREVGQVVMVF9SRURJUkVDVDtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQXV0aChjb25maWc6IEF1dGhDb25maWcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5jb25maWd1cmUoY29uZmlnKTtcbiAgICB0aGlzLm9hdXRoU2VydmljZS50b2tlblZhbGlkYXRpb25IYW5kbGVyID0gbmV3IEp3a3NWYWxpZGF0aW9uSGFuZGxlcigpO1xuXG4gICAgaWYgKGNvbmZpZy5zZXNzaW9uQ2hlY2tzRW5hYmxlZCkge1xuICAgICAgdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQudHlwZSA9PT0gJ3Nlc3Npb25fdGVybWluYXRlZCcpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dPdXQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVuc3VyZURpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PlxuICAgICAgdm9pZCB0aGlzLm9hdXRoU2VydmljZS5zZXR1cEF1dG9tYXRpY1NpbGVudFJlZnJlc2goKVxuICAgICkuY2F0Y2goKCkgPT4ge1xuICAgICAgIC8vIGNhdGNoIGVycm9yIHRvIHByZXZlbnQgdGhlIGFwcCBmcm9tIGNyYXNoaW5nIHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyB1bnByb3RlY3RlZCByb3V0ZXNcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUlEUENvbmZpZ3VyYXRpb24oY29uZmlnOiBBdXRoQ29uZmlnKSB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuY29uZmlndXJlKGNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvcmUvc3JjL2xpYi9hdXRoL29pZGMvcmVkaXJlY3QtYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBK0IsWUFBWSxFQUFFLFlBQVksRUFBK0IsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2SyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sZUFBZSxDQUFDOzs7QUFFckUsTUFBTSxTQUFTLEdBQUcsQ0FBSSxLQUFxQixFQUF1QixFQUFFLENBQUMsS0FBSyxJQUFJLE9BQVEsS0FBb0IsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRy9ILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBZ0JsRDs7OztPQUlHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBSUQsWUFDVSxZQUEwQixFQUMxQixhQUEyQixFQUNkLFVBQXNCO1FBRTNDLEtBQUssRUFBRSxD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Q0FBQztJQUNULENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFrQjtRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEFwTVUsbUJBQW1CLDBFQThCcEIsV0FBVztxSEE5QlYsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQStCTixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBBVVRIX0NPTkZJRywgT0F1dGhFcnJvckV2ZW50LCBPQXV0aEV2ZW50LCBPQXV0aFNlcnZpY2UsIE9BdXRoU3RvcmFnZSwgVG9rZW5SZXNwb25zZSwgTG9naW5PcHRpb25zLCBPQXV0aFN1Y2Nlc3NFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgSndrc1ZhbGlkYXRpb25IYW5kbGVyIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYy1qd2tzJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFVVEhfTU9EVUxFX0NPTkZJRywgQXV0aE1vZHVsZUNvbmZpZyB9IGZyb20gJy4vYXV0aC1jb25maWcnO1xuXG5jb25zdCBpc1Byb21pc2UgPSA8VD4odmFsdWU6IFQgfCBQcm9taXNlPFQ+KTogdmFsdWUgaXMgUHJvbWlzZTxUPiA9PiB2YWx1ZSAmJiB0eXBlb2YgKHZhbHVlIGFzIFByb21pc2U8VD4pLnRoZW4gPT09ICdmdW5jdGlvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWRpcmVjdEF1dGhTZXJ2aWNlIGV4dGVuZHMgQXV0aFNlcnZpY2Uge1xuXG4gIHJlYWRvbmx5IGF1dGhNb2R1bGVDb25maWc6IEF1dGhNb2R1bGVDb25maWcgPSBpbmplY3QoQVVUSF9NT0RVTEVfQ09ORklHKTtcblxuICBvbkxvZ2luOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgb25Ub2tlblJlY2VpdmVkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgcHJpdmF0ZSBfbG9hZERpc2NvdmVyeURvY3VtZW50UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cbiAgLyoqIFN1YnNjcmliZSB0byB3aGV0aGVyIHRoZSB1c2VyIGhhcyB2YWxpZCBJZC9BY2Nlc3MgdG9rZW5zLiAgKi9cbiAgYXV0aGVudGljYXRlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKiBTdWJzY3JpYmUgdG8gZXJyb3JzIHJlYWNoaW5nIHRoZSBJZFAuICovXG4gIGlkcFVucmVhY2hhYmxlJCE6IE9ic2VydmFibGU8RXJyb3I+O1xuXG4gIC8qKlxuICAgKiBHZXQgd2hldGhlciB0aGUgdXNlciBoYXMgdmFsaWQgSWQvQWNjZXNzIHRva2Vucy5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQsIG90aGVyd2lzZSBgZmFsc2VgXG4gICAqL1xuICBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRJZFRva2VuKCkgJiYgdGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoQ29uZmlnITogQXV0aENvbmZpZyB8IFByb21pc2U8QXV0aENvbmZpZz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICBwcml2YXRlIF9vYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcbiAgICBASW5qZWN0KEFVVEhfQ09ORklHKSBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hdXRoQ29uZmlnID0gYXV0aENvbmZpZztcblxuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmNsZWFySGFzaEFmdGVyTG9naW4gPSB0cnVlO1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdGVkJCA9IHRoaXMub2F1dGhTZXJ2aWNlLmV2ZW50cy5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuYXV0aGVudGljYXRlZCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy5vbkxvZ2luID0gdGhpcy5hdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGF1dGhlbnRpY2F0ZWQpID0+IGF1dGhlbnRpY2F0ZWQpLFxuICAgICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKVxuICAgICk7XG5cbiAgICB0aGlzLm9uVG9rZW5SZWNlaXZlZCA9IHRoaXMub2F1dGhTZXJ2aWNlLmV2ZW50cy5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50OiBPQXV0aEV2ZW50KSA9PiBldmVudC50eXBlID09PSAndG9rZW5fcmVjZWl2ZWQnKSxcbiAgICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZClcbiAgICApO1xuXG4gICAgdGhpcy5pZHBVbnJlYWNoYWJsZSQgPSB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBPQXV0aEVycm9yRXZlbnQgPT4gZXZlbnQudHlwZSA9PT0gJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkX2Vycm9yJyksXG4gICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5yZWFzb24gYXMgRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGluaXQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKGlzUHJvbWlzZSh0aGlzLmF1dGhDb25maWcpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhDb25maWcudGhlbigoY29uZmlnKSA9PiB0aGlzLmNvbmZpZ3VyZUF1dGgoY29uZmlnKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlQXV0aCh0aGlzLmF1dGhDb25maWcpO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmxvZ091dCgpO1xuICB9XG5cbiAgZW5zdXJlRGlzY292ZXJ5RG9jdW1lbnQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5fbG9hZERpc2NvdmVyeURvY3VtZW50UHJvbWlzZSA9IHRoaXMuX2xvYWREaXNjb3ZlcnlEb2N1bWVudFByb21pc2VcbiAgICAgIC5jYXRjaCgoKSA9PiBmYWxzZSlcbiAgICAgIC50aGVuKChsb2FkZWQpID0+IHtcbiAgICAgICAgaWYgKCFsb2FkZWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5vYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9sb2FkRGlzY292ZXJ5RG9jdW1lbnRQcm9taXNlO1xuICB9XG5cblxuICBsb2dpbihjdXJyZW50VXJsPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHN0YXRlS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoY3VycmVudFVybCkge1xuICAgICAgICBjb25zdCByYW5kb21WYWx1ZSA9IHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgxKSlbMF07XG4gICAgICAgIHN0YXRlS2V5ID0gYGF1dGhfc3RhdGVfJHtyYW5kb21WYWx1ZX0ke0RhdGUubm93KCl9YDtcbiAgICAgICAgdGhpcy5fb2F1dGhTdG9yYWdlLnNldEl0ZW0oc3RhdGVLZXksIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVcmwgfHwge30pKTtcbiAgICB9XG5cbiAgICAvLyBpbml0TG9naW5GbG93IHdpbGwgaW5pdGlhbGl6ZSB0aGUgbG9naW4gZmxvdyBpbiBlaXRoZXIgY29kZSBvciBpbXBsaWNpdCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmVuc3VyZURpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PiB2b2lkIHRoaXMub2F1dGhTZXJ2aWNlLmluaXRMb2dpbkZsb3coc3RhdGVLZXkpKTtcbiAgfVxuXG4gIGJhc2VBdXRoTG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8VG9rZW5SZXNwb25zZT4ge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLnVzZUh0dHBCYXNpY0F1dGggPSB0cnVlO1xuXG4gICAgcmV0dXJuIGZyb20odGhpcy5vYXV0aFNlcnZpY2UuZmV0Y2hUb2tlblVzaW5nUGFzc3dvcmRGbG93KHVzZXJuYW1lLCBwYXNzd29yZCkpLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICAgICAgICAgIHByb3BzLnNldCgnaWRfdG9rZW4nLCByZXNwb25zZS5pZF90b2tlbik7XG4gICAgICAgICAgICAvLyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3ZSBuZWVkIHRvIHNldCB0aGUgcmVzcG9uc2UgaW4gb3VyIHN0b3JhZ2VcbiAgICAgICAgICAgIHRoaXMub2F1dGhTZXJ2aWNlWydzdG9yZUFjY2Vzc1Rva2VuUmVzcG9uc2UnXShyZXNwb25zZS5hY2Nlc3NfdG9rZW4sIHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sIHJlc3BvbnNlLmV4cGlyZXNfaW4sIHJlc3BvbnNlLnNjb3BlLCBwcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luQ2FsbGJhY2sobG9naW5PcHRpb25zPzogTG9naW5PcHRpb25zKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5lbnN1cmVEaXNjb3ZlcnlEb2N1bWVudCgpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLm9hdXRoU2VydmljZS50cnlMb2dpbih7IC4uLmxvZ2luT3B0aW9ucywgcHJldmVudENsZWFySGFzaEFmdGVyTG9naW46IHRoaXMuYXV0aE1vZHVsZUNvbmZpZy5wcmV2ZW50Q2xlYXJIYXNoQWZ0ZXJMb2dpbiB9KSlcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuX2dldFJlZGlyZWN0VXJsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVkaXJlY3RVcmwoKSB7XG4gICAgY29uc3QgREVGQVVMVF9SRURJUkVDVCA9ICcvJztcbiAgICBjb25zdCBzdGF0ZUtleSA9IHRoaXMub2F1dGhTZXJ2aWNlLnN0YXRlO1xuXG4gICAgaWYgKHN0YXRlS2V5KSB7XG4gICAgICBjb25zdCBzdGF0ZVN0cmluZ2lmaWVkID0gdGhpcy5fb2F1dGhTdG9yYWdlLmdldEl0ZW0oc3RhdGVLZXkpO1xuICAgICAgaWYgKHN0YXRlU3RyaW5naWZpZWQpIHtcbiAgICAgICAgLy8gY2xlYW51cCBzdGF0ZSBmcm9tIHN0b3JhZ2VcbiAgICAgICAgdGhpcy5fb2F1dGhTdG9yYWdlLnJlbW92ZUl0ZW0oc3RhdGVLZXkpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdGF0ZVN0cmluZ2lmaWVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gREVGQVVMVF9SRURJUkVDVDtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQXV0aChjb25maWc6IEF1dGhDb25maWcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5jb25maWd1cmUoY29uZmlnKTtcbiAgICB0aGlzLm9hdXRoU2VydmljZS50b2tlblZhbGlkYXRpb25IYW5kbGVyID0gbmV3IEp3a3NWYWxpZGF0aW9uSGFuZGxlcigpO1xuXG4gICAgaWYgKGNvbmZpZy5zZXNzaW9uQ2hlY2tzRW5hYmxlZCkge1xuICAgICAgdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQudHlwZSA9PT0gJ3Nlc3Npb25fdGVybWluYXRlZCcpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dPdXQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVuc3VyZURpc2NvdmVyeURvY3VtZW50KCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm9hdXRoU2VydmljZS5zZXR1cEF1dG9tYXRpY1NpbGVudFJlZnJlc2goKTtcbiAgICAgIHJldHVybiB2b2lkIHRoaXMuYWxsb3dSZWZyZXNoVG9rZW5BbmRTaWxlbnRSZWZyZXNoT25NdWx0aXBsZVRhYnMoKTtcbiAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgLy8gY2F0Y2ggZXJyb3IgdG8gcHJldmVudCB0aGUgYXBwIGZyb20gY3Jhc2hpbmcgd2hlbiB0cnlpbmcgdG8gYWNjZXNzIHVucHJvdGVjdGVkIHJvdXRlc1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpeCBhIGtub3duIGlzc3VlIChodHRwczovL2dpdGh1Yi5jb20vbWFuZnJlZHN0ZXllci9hbmd1bGFyLW9hdXRoMi1vaWRjL2lzc3Vlcy84NTApXG4gICAqIHdoZXJlIG11bHRpcGxlIHRhYnMgY2FuIGNhdXNlIHRoZSB0b2tlbiByZWZyZXNoIGFuZCB0aGUgc2lsZW50IHJlZnJlc2ggdG8gZmFpbC5cbiAgICogVGhpcyBwYXRjaCBpcyBiYXNlZCBvbiB0aGUgc29sdXRpb25zIHByb3ZpZGVkIGluIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tYW5mcmVkc3RleWVyL2FuZ3VsYXItb2F1dGgyLW9pZGMvaXNzdWVzLzg1MCNpc3N1ZWNvbW1lbnQtODg5OTIxNzc2IGZpeCBzaWxlbnQgcmVmcmVzaCBmb3IgdGhlIGltcGxpY2l0IGZsb3dcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL21hbmZyZWRzdGV5ZXIvYW5ndWxhci1vYXV0aDItb2lkYy9pc3N1ZXMvODUwI2lzc3VlY29tbWVudC0xNTU3Mjg2OTY2IGZpeCByZWZyZXNoIHRva2VuIGZvciB0aGUgY29kZSBmbG93XG4gICAqL1xuICBwcml2YXRlIGFsbG93UmVmcmVzaFRva2VuQW5kU2lsZW50UmVmcmVzaE9uTXVsdGlwbGVUYWJzKCkge1xuICAgIGxldCBsYXN0VXBkYXRlZEFjY2Vzc1Rva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5vYXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XG4gICAgICAgIGxhc3RVcGRhdGVkQWNjZXNzVG9rZW4gPSB0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpbmFsUmVmcmVzaFRva2VuID0gdGhpcy5vYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuLmJpbmQodGhpcy5vYXV0aFNlcnZpY2UpO1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiA9ICgpOiBQcm9taXNlPFRva2VuUmVzcG9uc2U+ID0+XG4gICAgICAgIG5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KGByZWZyZXNoX3Rva2Vuc18ke2xvY2F0aW9uLm9yaWdpbn1gLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoISFsYXN0VXBkYXRlZEFjY2Vzc1Rva2VuICYmIGxhc3RVcGRhdGVkQWNjZXNzVG9rZW4gIT09IHRoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkpIHtcbiAgICAgICAgICAgICAgICAodGhpcy5vYXV0aFNlcnZpY2UgYXMgYW55KS5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoU3VjY2Vzc0V2ZW50KCd0b2tlbl9yZWNlaXZlZCcpKTtcbiAgICAgICAgICAgICAgICAodGhpcy5vYXV0aFNlcnZpY2UgYXMgYW55KS5ldmVudHNTdWJqZWN0Lm5leHQobmV3IE9BdXRoU3VjY2Vzc0V2ZW50KCd0b2tlbl9yZWZyZXNoZWQnKSk7XG4gICAgICAgICAgICAgICAgbGFzdFVwZGF0ZWRBY2Nlc3NUb2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxSZWZyZXNoVG9rZW4oKS50aGVuKChyZXNwKSA9PiAobGFzdFVwZGF0ZWRBY2Nlc3NUb2tlbiA9IHJlc3AuYWNjZXNzX3Rva2VuKSk7XG4gICAgICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxTaWxlbnRSZWZyZXNoID0gdGhpcy5vYXV0aFNlcnZpY2Uuc2lsZW50UmVmcmVzaC5iaW5kKHRoaXMub2F1dGhTZXJ2aWNlKTtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5zaWxlbnRSZWZyZXNoID0gYXN5bmMgKHBhcmFtczogYW55ID0ge30sIG5vUHJvbXB0ID0gdHJ1ZSk6IFByb21pc2U8T0F1dGhFdmVudD4gPT5cbiAgICAgICAgbmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoYHNpbGVudF9yZWZyZXNoXyR7bG9jYXRpb24ub3JpZ2lufWAsIGFzeW5jICgpOiBQcm9taXNlPE9BdXRoRXZlbnQ+ID0+IHtcbiAgICAgICAgICAgIGlmIChsYXN0VXBkYXRlZEFjY2Vzc1Rva2VuICE9PSB0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKSB7XG4gICAgICAgICAgICAgICAgKHRoaXMub2F1dGhTZXJ2aWNlIGFzIGFueSkuZXZlbnRzU3ViamVjdC5uZXh0KG5ldyBPQXV0aFN1Y2Nlc3NFdmVudCgndG9rZW5fcmVjZWl2ZWQnKSk7XG4gICAgICAgICAgICAgICAgKHRoaXMub2F1dGhTZXJ2aWNlIGFzIGFueSkuZXZlbnRzU3ViamVjdC5uZXh0KG5ldyBPQXV0aFN1Y2Nlc3NFdmVudCgndG9rZW5fcmVmcmVzaGVkJykpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IE9BdXRoU3VjY2Vzc0V2ZW50KCdzaWxlbnRseV9yZWZyZXNoZWQnKTtcbiAgICAgICAgICAgICAgICAodGhpcy5vYXV0aFNlcnZpY2UgYXMgYW55KS5ldmVudHNTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGxhc3RVcGRhdGVkQWNjZXNzVG9rZW4gPSB0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU2lsZW50UmVmcmVzaChwYXJhbXMsIG5vUHJvbXB0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gIH1cblxuICB1cGRhdGVJRFBDb25maWd1cmF0aW9uKGNvbmZpZzogQXV0aENvbmZpZykge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmNvbmZpZ3VyZShjb25maWcpO1xuICB9XG59XG4iXX0=
|
|
@@ -19,12 +19,13 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
export class BlankPageComponent {
|
|
20
20
|
}
|
|
21
21
|
BlankPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
-
BlankPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BlankPageComponent, selector: "adf-blank-page", ngImport: i0, template: ``, isInline: true });
|
|
22
|
+
BlankPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BlankPageComponent, isStandalone: true, selector: "adf-blank-page", ngImport: i0, template: ``, isInline: true });
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'adf-blank-page',
|
|
27
|
+
standalone: true,
|
|
27
28
|
template: ``
|
|
28
29
|
}]
|
|
29
30
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhbmstcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2JsYW5rLXBhZ2UvYmxhbmstcGFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjs7Z0hBQWxCLGtCQUFrQjtvR0FBbEIsa0JBQWtCLDBFQUZqQixFQUFFOzRGQUVILGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1ibGFuay1wYWdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgYFxufSlcbmV4cG9ydCBjbGFzcyBCbGFua1BhZ2VDb21wb25lbnQge31cbiJdfQ==
|
|
@@ -17,20 +17,17 @@
|
|
|
17
17
|
import { NgModule } from '@angular/core';
|
|
18
18
|
import { BlankPageComponent } from './blank-page.component';
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
|
+
/** @deprecated import standalone `BlankPageComponent` instead */
|
|
20
21
|
export class BlankPageModule {
|
|
21
22
|
}
|
|
22
23
|
BlankPageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
-
BlankPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule,
|
|
24
|
-
BlankPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule });
|
|
24
|
+
BlankPageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule, imports: [BlankPageComponent], exports: [BlankPageComponent] });
|
|
25
|
+
BlankPageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule, imports: [BlankPageComponent] });
|
|
25
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BlankPageModule, decorators: [{
|
|
26
27
|
type: NgModule,
|
|
27
28
|
args: [{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
],
|
|
31
|
-
exports: [
|
|
32
|
-
BlankPageComponent
|
|
33
|
-
]
|
|
29
|
+
imports: [BlankPageComponent],
|
|
30
|
+
exports: [BlankPageComponent]
|
|
34
31
|
}]
|
|
35
32
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhbmstcGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2JsYW5rLXBhZ2UvYmxhbmstcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFNUQsaUVBQWlFO0FBS2pFLE1BQU0sT0FBTyxlQUFlOzs2R0FBZixlQUFlOzhHQUFmLGVBQWUsWUFIZCxrQkFBa0IsYUFDbEIsa0JBQWtCOzhHQUVuQixlQUFlLFlBSGQsa0JBQWtCOzRGQUduQixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJsYW5rUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vYmxhbmstcGFnZS5jb21wb25lbnQnO1xuXG4vKiogQGRlcHJlY2F0ZWQgaW1wb3J0IHN0YW5kYWxvbmUgYEJsYW5rUGFnZUNvbXBvbmVudGAgaW5zdGVhZCAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQmxhbmtQYWdlQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbQmxhbmtQYWdlQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBCbGFua1BhZ2VNb2R1bGUge31cbiJdfQ==
|