@theseam/ui-common 0.4.26 → 0.4.28-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
- package/datatable/datatable/datatable.component.d.ts +60 -9
- package/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.d.ts +25 -0
- package/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.d.ts +18 -0
- package/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.d.ts +16 -0
- package/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.d.ts +15 -0
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -2
- package/datatable/datatable.module.d.ts +29 -20
- package/datatable/directives/datatable-column-filter-tpl.directive.d.ts +8 -0
- package/datatable/directives/datatable-column-filter.directive.d.ts +10 -0
- package/datatable/models/action-item-column-position.d.ts +13 -0
- package/datatable/models/columns-data-filter.d.ts +57 -0
- package/datatable/models/columns-data-filters/models.d.ts +65 -0
- package/datatable/models/columns-data-filters/search-date.columns-data-filter.d.ts +23 -0
- package/datatable/models/columns-data-filters/search-numeric.columns-data-filter.d.ts +22 -0
- package/datatable/models/columns-data-filters/search-text.columns-data-filter.d.ts +21 -0
- package/datatable/models/columns-data-filters/utils.d.ts +15 -0
- package/datatable/models/datatable-config.d.ts +90 -0
- package/datatable/models/table-column.d.ts +22 -1
- package/datatable/public-api.d.ts +14 -0
- package/datatable/services/columns-filters.service.d.ts +29 -0
- package/datatable/services/columns-manager.service.d.ts +7 -0
- package/datatable/utils/create-action-menu-column.d.ts +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2020/datatable/datatable/datatable.component.mjs +231 -31
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
- package/esm2020/datatable/datatable-column-filter-menu/datatable-column-filter-menu.component.mjs +55 -0
- package/esm2020/datatable/datatable-column-filter-search-date/datatable-column-filter-search-date.component.mjs +54 -0
- package/esm2020/datatable/datatable-column-filter-search-numeric/datatable-column-filter-search-numeric.component.mjs +48 -0
- package/esm2020/datatable/datatable-column-filter-search-text/datatable-column-filter-search-text.component.mjs +44 -0
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +1 -1
- package/esm2020/datatable/datatable.module.mjs +49 -7
- package/esm2020/datatable/directives/datatable-column-filter-tpl.directive.mjs +16 -0
- package/esm2020/datatable/directives/datatable-column-filter.directive.mjs +26 -0
- package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
- package/esm2020/datatable/models/columns-data-filter.mjs +10 -0
- package/esm2020/datatable/models/columns-data-filters/models.mjs +74 -0
- package/esm2020/datatable/models/columns-data-filters/search-date.columns-data-filter.mjs +113 -0
- package/esm2020/datatable/models/columns-data-filters/search-numeric.columns-data-filter.mjs +104 -0
- package/esm2020/datatable/models/columns-data-filters/search-text.columns-data-filter.mjs +86 -0
- package/esm2020/datatable/models/columns-data-filters/utils.mjs +28 -0
- package/esm2020/datatable/models/datatable-config.mjs +3 -0
- package/esm2020/datatable/models/table-column.mjs +1 -1
- package/esm2020/datatable/public-api.mjs +15 -1
- package/esm2020/datatable/services/columns-filters.service.mjs +109 -0
- package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
- package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
- package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
- package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
- package/esm2020/framework/base-layout/index.mjs +2 -1
- package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
- package/esm2020/framework/nav/index.mjs +6 -0
- package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
- package/esm2020/framework/nav/nav-utils.mjs +107 -0
- package/esm2020/framework/nav/nav.models.mjs +2 -0
- package/esm2020/framework/nav/nav.module.mjs +67 -0
- package/esm2020/framework/nav/nav.service.mjs +204 -0
- package/esm2020/framework/public-api.mjs +2 -1
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +28 -67
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
- package/esm2020/framework/side-nav/side-nav.component.mjs +116 -38
- package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
- package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
- package/esm2020/framework/top-bar/index.mjs +3 -1
- package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
- package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
- package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
- package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +1 -1
- package/esm2020/graphql/datatable/index.mjs +4 -1
- package/esm2020/graphql/datatable/map-filter-states.mjs +1 -1
- package/esm2020/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.mjs +139 -0
- package/esm2020/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.mjs +75 -0
- package/esm2020/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.mjs +44 -0
- package/esm2020/layout/layout.service.mjs +12 -2
- package/esm2020/menu/menu-toggle.directive.mjs +7 -2
- package/esm2020/popover/popover/popover.component.mjs +7 -3
- package/esm2020/popover/popover.directive.mjs +6 -2
- package/esm2020/rich-text/public-api.mjs +1 -1
- package/esm2020/rich-text/rich-text/rich-text.component.mjs +24 -3
- package/esm2020/rich-text/utils/models.mjs +1 -1
- package/esm2020/rich-text/utils/utils.mjs +1 -1
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +5 -3
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +1025 -62
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +905 -156
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +254 -1
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +11 -2
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +6 -1
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +11 -3
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-rich-text.mjs +25 -2
- package/fesm2015/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +4 -2
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +1010 -62
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +907 -156
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +254 -1
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +11 -2
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +6 -1
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +11 -3
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-rich-text.mjs +23 -2
- package/fesm2020/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +4 -2
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/framework/base-layout/base-layout.component.d.ts +4 -2
- package/framework/base-layout/base-layout.component.scss +18 -10
- package/framework/base-layout/base-layout.module.d.ts +11 -10
- package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
- package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
- package/framework/base-layout/index.d.ts +1 -0
- package/framework/base-layout/styles/_variables.scss +21 -0
- package/framework/nav/_nav-theme.scss +4 -0
- package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
- package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
- package/framework/nav/index.d.ts +5 -0
- package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
- package/framework/nav/nav-item/nav-item.component.scss +203 -0
- package/framework/nav/nav-utils.d.ts +20 -0
- package/framework/nav/nav.models.d.ts +77 -0
- package/framework/nav/nav.module.d.ts +17 -0
- package/framework/nav/nav.service.d.ts +27 -0
- package/framework/nav/styles/_themes/light/_variables.scss +56 -0
- package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
- package/framework/nav/styles/_utilities.scss +3 -0
- package/framework/nav/styles/_variables.scss +2 -0
- package/framework/public-api.d.ts +1 -0
- package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
- package/framework/side-nav/side-nav.component.d.ts +13 -1
- package/framework/side-nav/side-nav.component.scss +0 -1
- package/framework/side-nav/side-nav.models.d.ts +7 -1
- package/framework/side-nav/side-nav.module.d.ts +1 -9
- package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
- package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
- package/framework/top-bar/index.d.ts +2 -0
- package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
- package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
- package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
- package/framework/top-bar/top-bar.component.d.ts +25 -3
- package/framework/top-bar/top-bar.component.scss +7 -2
- package/framework/top-bar/top-bar.module.d.ts +10 -8
- package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
- package/graphql/datatable/index.d.ts +3 -0
- package/graphql/datatable/map-filter-states.d.ts +2 -2
- package/graphql/datatable/map-search-date-columns-data-filter-state-to-gql.d.ts +4 -0
- package/graphql/datatable/map-search-numeric-columns-data-filter-state-to-gql.d.ts +4 -0
- package/graphql/datatable/map-search-text-columns-data-filter-state-to-gql.d.ts +4 -0
- package/layout/layout.service.d.ts +9 -1
- package/menu/menu-toggle.directive.d.ts +2 -1
- package/package.json +2 -2
- package/popover/popover/popover.component.d.ts +4 -1
- package/popover/popover.directive.d.ts +2 -1
- package/rich-text/rich-text/rich-text.component.d.ts +6 -4
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +83 -14
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +38 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { hasProperty, isNullOrUndefined } from '@theseam/ui-common/utils';
|
|
2
|
+
export function isHorizontalNavItemType(item, type) {
|
|
3
|
+
return item.itemType === type;
|
|
4
|
+
}
|
|
5
|
+
export function isHorizontalNavItemActive(item) {
|
|
6
|
+
return item.__state?.active ?? false;
|
|
7
|
+
}
|
|
8
|
+
export function isHorizontalNavItemExpanded(item) {
|
|
9
|
+
return item.__state?.expanded ?? false;
|
|
10
|
+
}
|
|
11
|
+
export function isHorizontalNavItemFocused(item) {
|
|
12
|
+
return item.__state?.focused ?? false;
|
|
13
|
+
}
|
|
14
|
+
export function horizontalNavItemHasChildren(item) {
|
|
15
|
+
return horizontalNavItemCanHaveChildren(item) && hasProperty(item, 'children') && item.children.length > 0;
|
|
16
|
+
}
|
|
17
|
+
export function horizontalNavItemCanHaveChildren(item) {
|
|
18
|
+
return isHorizontalNavItemType(item, 'basic') || isHorizontalNavItemType(item, 'link');
|
|
19
|
+
}
|
|
20
|
+
export function horizontalNavItemHasActiveChild(item) {
|
|
21
|
+
if (!horizontalNavItemHasChildren(item)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
for (const child of item.children) {
|
|
25
|
+
if (getHorizontalNavItemStateProp(child, 'active') || horizontalNavItemHasActiveChild(child)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
export function horizontalNavItemHasExpandedChild(item) {
|
|
32
|
+
if (!horizontalNavItemHasChildren(item)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
for (const child of item.children) {
|
|
36
|
+
if (getHorizontalNavItemStateProp(child, 'expanded')) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
export function horizontalNavItemCanBeActive(item) {
|
|
43
|
+
return isHorizontalNavItemType(item, 'basic') || isHorizontalNavItemType(item, 'link');
|
|
44
|
+
}
|
|
45
|
+
export function horizontalNavItemCanExpand(item) {
|
|
46
|
+
return horizontalNavItemCanHaveChildren(item);
|
|
47
|
+
}
|
|
48
|
+
export function findHorizontalNavLinkItems(items) {
|
|
49
|
+
const linkItems = [];
|
|
50
|
+
const _fn = (_items) => {
|
|
51
|
+
for (const item of _items) {
|
|
52
|
+
if (isHorizontalNavItemType(item, 'link')) {
|
|
53
|
+
linkItems.push(item);
|
|
54
|
+
}
|
|
55
|
+
if (horizontalNavItemCanHaveChildren(item) && hasProperty(item, 'children')) {
|
|
56
|
+
_fn(item.children);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
_fn(items);
|
|
61
|
+
return linkItems;
|
|
62
|
+
}
|
|
63
|
+
export function setHorizontalNavItemStateProp(item, prop, value) {
|
|
64
|
+
if (hasProperty(item, '__state')) {
|
|
65
|
+
item.__state[prop] = value;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export function getHorizontalNavItemStateProp(item, prop) {
|
|
69
|
+
return setDefaultHorizontalNavItemState(item).__state[prop];
|
|
70
|
+
}
|
|
71
|
+
export function setDefaultHorizontalNavItemState(item) {
|
|
72
|
+
if (hasProperty(item, '__state')) {
|
|
73
|
+
return item;
|
|
74
|
+
}
|
|
75
|
+
item.__state = {
|
|
76
|
+
active: false,
|
|
77
|
+
expanded: false,
|
|
78
|
+
focused: false
|
|
79
|
+
};
|
|
80
|
+
// TODO: See if there is a nice way to fix the typing for this.
|
|
81
|
+
return item;
|
|
82
|
+
}
|
|
83
|
+
export function areSameHorizontalNavItem(item1, item2) {
|
|
84
|
+
if (isNullOrUndefined(item1) || isNullOrUndefined(item2)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (item1.itemType !== item2.itemType) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (isHorizontalNavItemType(item1, 'title') && isHorizontalNavItemType(item2, 'title')) {
|
|
91
|
+
return item1.label === item2.label;
|
|
92
|
+
}
|
|
93
|
+
else if (isHorizontalNavItemType(item1, 'divider') && isHorizontalNavItemType(item2, 'divider')) {
|
|
94
|
+
return item1.label === item2.label;
|
|
95
|
+
}
|
|
96
|
+
else if (isHorizontalNavItemType(item1, 'basic') && isHorizontalNavItemType(item2, 'basic')) {
|
|
97
|
+
return item1.label === item2.label;
|
|
98
|
+
}
|
|
99
|
+
else if (isHorizontalNavItemType(item1, 'link') && isHorizontalNavItemType(item2, 'link')) {
|
|
100
|
+
return item1.label === item2.label && item1.link === item2.link;
|
|
101
|
+
}
|
|
102
|
+
else if (isHorizontalNavItemType(item1, 'button') && isHorizontalNavItemType(item2, 'button')) {
|
|
103
|
+
return item1.onClick === item2.onClick;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9uYXYvbmF2LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQW1CekUsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQWMsRUFBRSxJQUFZO0lBQ2xFLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUE7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFjO0lBQ3RELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksS0FBSyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsSUFBYztJQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQTtBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQWM7SUFDdkQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFjO0lBQ3pELE9BQU8sZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7QUFDNUcsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxJQUFjO0lBQzdELE9BQU8sdUJBQXVCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUN4RixDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUFDLElBQWM7SUFD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ZXJ0eSwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7XG4gIElOYXZCYXNpYyxcbiAgSU5hdkJ1dHRvbixcbiAgSU5hdkRpdmlkZXIsXG4gIElOYXZJdGVtLFxuICBJTmF2SXRlbVN0YXRlLFxuICBJTmF2TGluayxcbiAgSU5hdlRpdGxlLFxuICBOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuLFxuICBOYXZJdGVtQ2FuSGF2ZVN0YXRlXG59IGZyb20gJy4vbmF2Lm1vZGVscydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAndGl0bGUnKTogaXRlbSBpcyBJTmF2VGl0bGVcbmV4cG9ydCBmdW5jdGlvbiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtOiBJTmF2SXRlbSwgdHlwZTogJ2RpdmlkZXInKTogaXRlbSBpcyBJTmF2RGl2aWRlclxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAnYmFzaWMnKTogaXRlbSBpcyBJTmF2QmFzaWNcbmV4cG9ydCBmdW5jdGlvbiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtOiBJTmF2SXRlbSwgdHlwZTogJ2xpbmsnKTogaXRlbSBpcyBJTmF2TGlua1xuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAnYnV0dG9uJyk6IGl0ZW0gaXMgSU5hdkJ1dHRvblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiBzdHJpbmcpOiBpdGVtIGlzIElOYXZJdGVtIHtcbiAgcmV0dXJuIGl0ZW0uaXRlbVR5cGUgPT09IHR5cGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1BY3RpdmUoaXRlbTogSU5hdkl0ZW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGl0ZW0uX19zdGF0ZT8uYWN0aXZlID8/IGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hvcml6b250YWxOYXZJdGVtRXhwYW5kZWQoaXRlbTogSU5hdkl0ZW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGl0ZW0uX19zdGF0ZT8uZXhwYW5kZWQgPz8gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1Gb2N1c2VkKGl0ZW06IElOYXZJdGVtKTogYm9vbGVhbiB7XG4gIHJldHVybiBpdGVtLl9fc3RhdGU/LmZvY3VzZWQgPz8gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4oaXRlbTogSU5hdkl0ZW0pOiBpdGVtIGlzIChJTmF2QmFzaWMgfCBJTmF2TGluaykgJiBSZXF1aXJlZDxOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuPiB7XG4gIHJldHVybiBob3Jpem9udGFsTmF2SXRlbUNhbkhhdmVDaGlsZHJlbihpdGVtKSAmJiBoYXNQcm9wZXJ0eShpdGVtLCAnY2hpbGRyZW4nKSAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvcml6b250YWxOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuKGl0ZW06IElOYXZJdGVtKTogaXRlbSBpcyAoSU5hdkJhc2ljIHwgSU5hdkxpbmspIHtcbiAgcmV0dXJuIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdiYXNpYycpIHx8IGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdsaW5rJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvcml6b250YWxOYXZJdGVtSGFzQWN0aXZlQ2hpbGQoaXRlbTogSU5hdkl0ZW0pOiBib29sZWFuIHtcbiAgaWYgKCFob3Jpem9udGFsTmF2SXRlbUhhc0NoaWxkcmVuKGl0ZW0pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBmb3IgKGNvbnN0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW4pIHtcbiAgICBpZiAoZ2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoY2hpbGQsICdhY3RpdmUnKSB8fCBob3Jpem9udGFsTmF2SXRlbUhhc0FjdGl2ZUNoaWxkKGNoaWxkKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZChpdGVtOiBJTmF2SXRlbSk6IGJvb2xlYW4ge1xuICBpZiAoIWhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4oaXRlbSkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAoY29uc3QgY2hpbGQgb2YgaXRlbS5jaGlsZHJlbikge1xuICAgIGlmIChnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcChjaGlsZCwgJ2V4cGFuZGVkJykpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBob3Jpem9udGFsTmF2SXRlbUNhbkJlQWN0aXZlKGl0ZW06IElOYXZJdGVtKTogaXRlbSBpcyAoSU5hdkJhc2ljIHwgSU5hdkxpbmspIHtcbiAgcmV0dXJuIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdiYXNpYycpIHx8IGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdsaW5rJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhvcml6b250YWxOYXZJdGVtQ2FuRXhwYW5kKGl0ZW06IElOYXZJdGVtKTogaXRlbSBpcyAoSU5hdkJhc2ljIHwgSU5hdkxpbmspIHtcbiAgcmV0dXJuIGhvcml6b250YWxOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuKGl0ZW0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSG9yaXpvbnRhbE5hdkxpbmtJdGVtcyhpdGVtczogSU5hdkl0ZW1bXSk6IElOYXZMaW5rW10ge1xuICBjb25zdCBsaW5rSXRlbXM6IElOYXZMaW5rW10gPSBbXVxuXG4gIGNvbnN0IF9mbiA9IChfaXRlbXM6IElOYXZJdGVtW10pID0+IHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX2l0ZW1zKSB7XG4gICAgICBpZiAoaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUoaXRlbSwgJ2xpbmsnKSkge1xuICAgICAgICBsaW5rSXRlbXMucHVzaChpdGVtKVxuICAgICAgfVxuICAgICAgaWYgKGhvcml6b250YWxOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuKGl0ZW0pICYmIGhhc1Byb3BlcnR5KGl0ZW0sICdjaGlsZHJlbicpKSB7XG4gICAgICAgIF9mbihpdGVtLmNoaWxkcmVuKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBfZm4oaXRlbXMpXG5cbiAgcmV0dXJuIGxpbmtJdGVtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3A8SyBleHRlbmRzIGtleW9mIElOYXZJdGVtU3RhdGU+KGl0ZW06IElOYXZJdGVtLCBwcm9wOiBLLCB2YWx1ZTogSU5hdkl0ZW1TdGF0ZVtLXSk6IHZvaWQge1xuICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ19fc3RhdGUnKSkge1xuICAgIGl0ZW0uX19zdGF0ZVtwcm9wXSA9IHZhbHVlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wPEsgZXh0ZW5kcyBrZXlvZiBJTmF2SXRlbVN0YXRlPihpdGVtOiBJTmF2SXRlbSwgcHJvcDogSyk6IElOYXZJdGVtU3RhdGVbS10ge1xuICByZXR1cm4gc2V0RGVmYXVsdEhvcml6b250YWxOYXZJdGVtU3RhdGUoaXRlbSkuX19zdGF0ZVtwcm9wXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RGVmYXVsdEhvcml6b250YWxOYXZJdGVtU3RhdGUoaXRlbTogSU5hdkl0ZW0pOiBJTmF2SXRlbSAmIFJlcXVpcmVkPE5hdkl0ZW1DYW5IYXZlU3RhdGU+IHtcbiAgaWYgKGhhc1Byb3BlcnR5KGl0ZW0sICdfX3N0YXRlJykpIHtcbiAgICByZXR1cm4gaXRlbVxuICB9XG5cbiAgaXRlbS5fX3N0YXRlID0ge1xuICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgIGZvY3VzZWQ6IGZhbHNlXG4gIH0gYXMgSU5hdkl0ZW1TdGF0ZVxuXG4gIC8vIFRPRE86IFNlZSBpZiB0aGVyZSBpcyBhIG5pY2Ugd2F5IHRvIGZpeCB0aGUgdHlwaW5nIGZvciB0aGlzLlxuICByZXR1cm4gaXRlbSBhcyBhbnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZVNhbWVIb3Jpem9udGFsTmF2SXRlbShpdGVtMTogSU5hdkl0ZW0gfCB1bmRlZmluZWQsIGl0ZW0yOiBJTmF2SXRlbSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoaXRlbTEpIHx8IGlzTnVsbE9yVW5kZWZpbmVkKGl0ZW0yKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGl0ZW0xLml0ZW1UeXBlICE9PSBpdGVtMi5pdGVtVHlwZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0xLCAndGl0bGUnKSAmJiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtMiwgJ3RpdGxlJykpIHtcbiAgICByZXR1cm4gaXRlbTEubGFiZWwgPT09IGl0ZW0yLmxhYmVsXG4gIH0gZWxzZSBpZiAoaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUoaXRlbTEsICdkaXZpZGVyJykgJiYgaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUoaXRlbTIsICdkaXZpZGVyJykpIHtcbiAgICByZXR1cm4gaXRlbTEubGFiZWwgPT09IGl0ZW0yLmxhYmVsXG4gIH0gZWxzZSBpZiAoaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUoaXRlbTEsICdiYXNpYycpICYmIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0yLCAnYmFzaWMnKSkge1xuICAgIHJldHVybiBpdGVtMS5sYWJlbCA9PT0gaXRlbTIubGFiZWxcbiAgfSBlbHNlIGlmIChpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtMSwgJ2xpbmsnKSAmJiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtMiwgJ2xpbmsnKSkge1xuICAgIHJldHVybiBpdGVtMS5sYWJlbCA9PT0gaXRlbTIubGFiZWwgJiYgaXRlbTEubGluayA9PT0gaXRlbTIubGlua1xuICB9IGVsc2UgaWYgKGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0xLCAnYnV0dG9uJykgJiYgaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUoaXRlbTIsICdidXR0b24nKSkge1xuICAgIHJldHVybiBpdGVtMS5vbkNsaWNrID09PSBpdGVtMi5vbkNsaWNrXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvbmF2L25hdi5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBVcmxDcmVhdGlvbk9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZVR5cGVzIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBJTmF2SXRlbVN0YXRlIHtcbiAgLy8gcGFyZW50PzogSU5hdkl0ZW1cbiAgYWN0aXZlOiBib29sZWFuXG4gIGV4cGFuZGVkOiBib29sZWFuXG4gIGZvY3VzZWQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZJdGVtQ2FuSGF2ZVN0YXRlIHtcbiAgLyoqXG4gICAqIFRoaXMgcHJvcCBpcyBtYW5hZ2VkIGJ5IHRoZSBOYXYuIElmIG1hbnVhbGx5IHNldCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICAgX19zdGF0ZT86IElOYXZJdGVtU3RhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuIHtcbiAgY2hpbGRyZW4/OiBJTmF2SXRlbVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkl0ZW1CYXNlPFQgZXh0ZW5kcyBzdHJpbmc+IGV4dGVuZHMgTmF2SXRlbUNhbkhhdmVTdGF0ZSB7XG4gIC8qKlxuICAgKiBkZWZhdWx0OiAncm91dGUnXG4gICAqL1xuICBpdGVtVHlwZT86IFRcblxuICBiYWRnZT86IElOYXZCYWRnZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOYXZUaXRsZSBleHRlbmRzIElOYXZJdGVtQmFzZTwndGl0bGUnPiB7XG4gIGxhYmVsPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkRpdmlkZXIgZXh0ZW5kcyBJTmF2SXRlbUJhc2U8J2RpdmlkZXInPiB7XG4gIGxhYmVsPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkJhZGdlIHtcblxuICB0ZXh0Pzogc3RyaW5nXG5cbiAgdGhlbWU/OiBUaGVtZVR5cGVzXG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdG8gcHJvdmlkZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSwgc3VjaCBhcyBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHNyQ29udGVudD86IHN0cmluZ1xuXG4gIHRvb2x0aXA/OiBzdHJpbmcgfCBOYXZJdGVtQmFkZ2VUb29sdGlwXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5hdkJhc2ljIGV4dGVuZHMgSU5hdkl0ZW1CYXNlPCdiYXNpYyc+LCBOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuIHtcbiAgaWNvbj86IFNlYW1JY29uXG4gIGxhYmVsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTmF2TGluayBleHRlbmRzIElOYXZJdGVtQmFzZTwnbGluayc+LFxuICBQYXJ0aWFsPFBpY2s8VXJsQ3JlYXRpb25PcHRpb25zLCAncXVlcnlQYXJhbXMnIHwgJ2ZyYWdtZW50JyB8ICdxdWVyeVBhcmFtc0hhbmRsaW5nJyB8ICdwcmVzZXJ2ZUZyYWdtZW50Jz4+LFxuICBOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuIHtcbiAgaWNvbj86IFNlYW1JY29uXG4gIGxhYmVsOiBzdHJpbmdcblxuICBsaW5rPzogYW55W10gfCBzdHJpbmdcblxuICAvKipcbiAgICogRGVmYXVsdDogeyBwYXRoczogJ3N1YnNldCcsIHF1ZXJ5UGFyYW1zOiAnc3Vic2V0JywgZnJhZ21lbnQ6ICdpZ25vcmVkJywgbWF0cml4UGFyYW1zOiAnaWdub3JlZCcgfVxuICAgKi9cbiAgbWF0Y2hPcHRpb25zPzogUGFydGlhbDxJc0FjdGl2ZU1hdGNoT3B0aW9ucz5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTmF2QnV0dG9uIGV4dGVuZHMgSU5hdkl0ZW1CYXNlPCdidXR0b24nPiB7XG4gIG9uQ2xpY2s6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBJTmF2SXRlbSA9IElOYXZUaXRsZSB8IElOYXZEaXZpZGVyIHwgSU5hdkJhc2ljIHwgSU5hdkxpbmsgfCBJTmF2QnV0dG9uXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2SXRlbVN0YXRlQ2hhbmdlZCB7XG4gIGl0ZW06IElOYXZJdGVtXG4gIHByb3A6IGtleW9mIElOYXZJdGVtU3RhdGVcbiAgcHJldlZhbHVlOiBhbnlcbiAgbmV3VmFsdWU6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdkl0ZW1CYWRnZVRvb2x0aXAge1xuICB0b29sdGlwPzogc3RyaW5nXG4gIGNsYXNzPzogc3RyaW5nXG4gIHBsYWNlbWVudD86IHN0cmluZ1xuICBjb250YWluZXI/OiBzdHJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE5hdkl0ZW1DaGlsZEFjdGlvbiA9ICdtZW51JyB8ICdleHBhbmQnIHwgJ25vbmUnIHwgbnVsbCB8IHVuZGVmaW5lZFxuXG5leHBvcnQgdHlwZSBOYXZJdGVtRXhwYW5kQWN0aW9uID0gJ3RvZ2dsZScgfCAnZXhwYW5kT25seScgfCBudWxsIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2SXRlbUV4cGFuZGVkRXZlbnQge1xuICBuYXZJdGVtOiBJTmF2SXRlbSxcbiAgZXhwYW5kZWQ6IGJvb2xlYW5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
2
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { NgModule } from '@angular/core';
|
|
5
|
+
import { RouterModule } from '@angular/router';
|
|
6
|
+
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
7
|
+
import { TheSeamIconModule } from '@theseam/ui-common/icon';
|
|
8
|
+
import { TheSeamLayoutModule } from '@theseam/ui-common/layout';
|
|
9
|
+
import { TheSeamMenuModule } from '@theseam/ui-common/menu';
|
|
10
|
+
import { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar';
|
|
11
|
+
import { HorizontalNavComponent } from './horizontal-nav/horizontal-nav.component';
|
|
12
|
+
import { NavItemComponent } from './nav-item/nav-item.component';
|
|
13
|
+
import { TheSeamNavService } from './nav.service';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class TheSeamNavModule {
|
|
16
|
+
}
|
|
17
|
+
TheSeamNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
TheSeamNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, declarations: [NavItemComponent,
|
|
19
|
+
HorizontalNavComponent], imports: [CommonModule,
|
|
20
|
+
RouterModule,
|
|
21
|
+
TheSeamIconModule,
|
|
22
|
+
A11yModule,
|
|
23
|
+
TheSeamScrollbarModule,
|
|
24
|
+
TheSeamLayoutModule,
|
|
25
|
+
NgbTooltipModule,
|
|
26
|
+
PortalModule,
|
|
27
|
+
TheSeamMenuModule], exports: [NavItemComponent,
|
|
28
|
+
HorizontalNavComponent] });
|
|
29
|
+
TheSeamNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, providers: [
|
|
30
|
+
TheSeamNavService,
|
|
31
|
+
], imports: [CommonModule,
|
|
32
|
+
RouterModule,
|
|
33
|
+
TheSeamIconModule,
|
|
34
|
+
A11yModule,
|
|
35
|
+
TheSeamScrollbarModule,
|
|
36
|
+
TheSeamLayoutModule,
|
|
37
|
+
NgbTooltipModule,
|
|
38
|
+
PortalModule,
|
|
39
|
+
TheSeamMenuModule] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavModule, decorators: [{
|
|
41
|
+
type: NgModule,
|
|
42
|
+
args: [{
|
|
43
|
+
declarations: [
|
|
44
|
+
NavItemComponent,
|
|
45
|
+
HorizontalNavComponent,
|
|
46
|
+
],
|
|
47
|
+
imports: [
|
|
48
|
+
CommonModule,
|
|
49
|
+
RouterModule,
|
|
50
|
+
TheSeamIconModule,
|
|
51
|
+
A11yModule,
|
|
52
|
+
TheSeamScrollbarModule,
|
|
53
|
+
TheSeamLayoutModule,
|
|
54
|
+
NgbTooltipModule,
|
|
55
|
+
PortalModule,
|
|
56
|
+
TheSeamMenuModule
|
|
57
|
+
],
|
|
58
|
+
exports: [
|
|
59
|
+
NavItemComponent,
|
|
60
|
+
HorizontalNavComponent,
|
|
61
|
+
],
|
|
62
|
+
providers: [
|
|
63
|
+
TheSeamNavService,
|
|
64
|
+
]
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvbmF2L25hdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFFbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFBOztBQTBCakQsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQXRCekIsZ0JBQWdCO1FBQ2hCLHNCQUFzQixhQUd0QixZQUFZO1FBQ1osWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1Ysc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGlCQUFpQixhQUdqQixnQkFBZ0I7UUFDaEIsc0JBQXNCOzhHQU1iLGdCQUFnQixhQUpoQjtRQUNULGlCQUFpQjtLQUNsQixZQWhCQyxZQUFZO1FBQ1osWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1Ysc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGlCQUFpQjsyRkFVUixnQkFBZ0I7a0JBeEI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1Ysc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnXG5cbmltcG9ydCB7IFRoZVNlYW1JY29uTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBUaGVTZWFtTGF5b3V0TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2xheW91dCdcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcbmltcG9ydCB7IEhvcml6b250YWxOYXZDb21wb25lbnQgfSBmcm9tICcuL2hvcml6b250YWwtbmF2L2hvcml6b250YWwtbmF2LmNvbXBvbmVudCdcblxuaW1wb3J0IHsgTmF2SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbmF2LWl0ZW0vbmF2LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbU5hdlNlcnZpY2UgfSBmcm9tICcuL25hdi5zZXJ2aWNlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOYXZJdGVtQ29tcG9uZW50LFxuICAgIEhvcml6b250YWxOYXZDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRoZVNlYW1JY29uTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgVGhlU2VhbVNjcm9sbGJhck1vZHVsZSxcbiAgICBUaGVTZWFtTGF5b3V0TW9kdWxlLFxuICAgIE5nYlRvb2x0aXBNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIFRoZVNlYW1NZW51TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOYXZJdGVtQ29tcG9uZW50LFxuICAgIEhvcml6b250YWxOYXZDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFRoZVNlYW1OYXZTZXJ2aWNlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1OYXZNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NavigationEnd } from '@angular/router';
|
|
3
|
+
import { BehaviorSubject, defer, Observable, Subject } from 'rxjs';
|
|
4
|
+
import { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
|
|
5
|
+
import { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils';
|
|
6
|
+
import { areSameHorizontalNavItem, getHorizontalNavItemStateProp, horizontalNavItemCanExpand, horizontalNavItemHasActiveChild, horizontalNavItemHasChildren, horizontalNavItemHasExpandedChild, isHorizontalNavItemActive, isHorizontalNavItemType, setDefaultHorizontalNavItemState, setHorizontalNavItemStateProp } from './nav-utils';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
export class TheSeamNavService {
|
|
10
|
+
constructor(_router) {
|
|
11
|
+
this._router = _router;
|
|
12
|
+
this._updatingCount = new BehaviorSubject(0);
|
|
13
|
+
this.itemChanged = new Subject();
|
|
14
|
+
this.loading$ = this._updatingCount.pipe(map(count => count > 0), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
15
|
+
}
|
|
16
|
+
createItemsObservable(items) {
|
|
17
|
+
return defer(() => {
|
|
18
|
+
this.updateItemsStates(items);
|
|
19
|
+
this.updateRouterFocusedItem(items);
|
|
20
|
+
return new Observable((subscriber) => {
|
|
21
|
+
const stateChangeSub = this.itemChanged.pipe(switchMap(change => {
|
|
22
|
+
if (change.prop === 'focused' && change.newValue) {
|
|
23
|
+
this.updateFocusedItem(items, change.item);
|
|
24
|
+
}
|
|
25
|
+
return this.loading$.pipe(filter(loading => !loading));
|
|
26
|
+
})).subscribe(() => {
|
|
27
|
+
subscriber.next(items);
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
this.updateItemsStates(items);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
subscriber.error(err);
|
|
34
|
+
}
|
|
35
|
+
const routeChangeSub = this._router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(event => {
|
|
36
|
+
try {
|
|
37
|
+
this.updateItemsStates(items);
|
|
38
|
+
this.updateRouterFocusedItem(items);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
subscriber.error(err);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return () => {
|
|
45
|
+
stateChangeSub.unsubscribe();
|
|
46
|
+
routeChangeSub.unsubscribe();
|
|
47
|
+
};
|
|
48
|
+
}).pipe(startWith(items));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
_incUpdatingCount() {
|
|
52
|
+
this._updatingCount.next(this._updatingCount.value + 1);
|
|
53
|
+
}
|
|
54
|
+
_decrUpdatingCount() {
|
|
55
|
+
this._updatingCount.next(this._updatingCount.value - 1);
|
|
56
|
+
}
|
|
57
|
+
updateItemsStates(items) {
|
|
58
|
+
this._incUpdatingCount();
|
|
59
|
+
try {
|
|
60
|
+
for (const item of items) {
|
|
61
|
+
if (horizontalNavItemHasChildren(item)) {
|
|
62
|
+
this.updateItemsStates(item.children);
|
|
63
|
+
}
|
|
64
|
+
this.updateItemState(item);
|
|
65
|
+
}
|
|
66
|
+
this._decrUpdatingCount();
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
this._decrUpdatingCount();
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
updateItemState(item) {
|
|
74
|
+
this._incUpdatingCount();
|
|
75
|
+
try {
|
|
76
|
+
setDefaultHorizontalNavItemState(item);
|
|
77
|
+
this.setItemStateProp(item, 'active', this.horizontalNavLinkActive(item));
|
|
78
|
+
// TODO: Implement this in a more optimized way. Unless our apps start
|
|
79
|
+
// having large navs constantly updating their state, this shouldn't
|
|
80
|
+
// have much impact on performance.
|
|
81
|
+
this._updateItemExpandedState(item);
|
|
82
|
+
this._decrUpdatingCount();
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
this._decrUpdatingCount();
|
|
86
|
+
throw err;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
horizontalNavLinkActive(item) {
|
|
90
|
+
if (isHorizontalNavItemType(item, 'link')) {
|
|
91
|
+
const url = this._getUrl(item);
|
|
92
|
+
if (notNullOrUndefined(url)) {
|
|
93
|
+
const opts = this._getMatchOptions(item);
|
|
94
|
+
return this._router.isActive(url, opts);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
_updateItemsExpandedState(items) {
|
|
100
|
+
for (const item of items) {
|
|
101
|
+
if (horizontalNavItemHasChildren(item)) {
|
|
102
|
+
this._updateItemsExpandedState(item.children);
|
|
103
|
+
}
|
|
104
|
+
this._updateItemExpandedState(item);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
_updateItemExpandedState(item) {
|
|
108
|
+
if (!horizontalNavItemCanExpand(item)) {
|
|
109
|
+
if (getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
110
|
+
this.setItemStateProp(item, 'expanded', false);
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (horizontalNavItemHasChildren(item)) {
|
|
115
|
+
this._updateItemsExpandedState(item.children);
|
|
116
|
+
}
|
|
117
|
+
if (horizontalNavItemHasActiveChild(item) || horizontalNavItemHasExpandedChild(item)) {
|
|
118
|
+
if (!getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
119
|
+
this.setItemStateProp(item, 'expanded', true);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
if (getHorizontalNavItemStateProp(item, 'expanded')) {
|
|
124
|
+
this.setItemStateProp(item, 'expanded', false);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
updateRouterFocusedItem(items) {
|
|
129
|
+
const focusedItem = items.find(i => isHorizontalNavItemActive(i)) || items.find(i => horizontalNavItemHasActiveChild(i));
|
|
130
|
+
if (notNullOrUndefined(focusedItem)) {
|
|
131
|
+
this.updateFocusedItem(items, focusedItem);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
updateFocusedItem(items, focusedItem) {
|
|
135
|
+
for (const item of items) {
|
|
136
|
+
if (areSameHorizontalNavItem(item, focusedItem)) {
|
|
137
|
+
setHorizontalNavItemStateProp(item, 'focused', true);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
setHorizontalNavItemStateProp(item, 'focused', false);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
_getNavExtras(item) {
|
|
145
|
+
const navigationExtras = {};
|
|
146
|
+
if (hasProperty(item, 'queryParams')) {
|
|
147
|
+
navigationExtras.queryParams = item.queryParams;
|
|
148
|
+
}
|
|
149
|
+
if (hasProperty(item, 'fragment')) {
|
|
150
|
+
navigationExtras.fragment = item.fragment;
|
|
151
|
+
}
|
|
152
|
+
if (hasProperty(item, 'queryParamsHandling')) {
|
|
153
|
+
navigationExtras.queryParamsHandling = item.queryParamsHandling;
|
|
154
|
+
}
|
|
155
|
+
if (hasProperty(item, 'preserveFragment')) {
|
|
156
|
+
navigationExtras.preserveFragment = item.preserveFragment;
|
|
157
|
+
}
|
|
158
|
+
return navigationExtras;
|
|
159
|
+
}
|
|
160
|
+
_getUrl(item) {
|
|
161
|
+
const link = item.link;
|
|
162
|
+
if (typeof link === 'string') {
|
|
163
|
+
return this._router.createUrlTree([link], this._getNavExtras(item)).toString();
|
|
164
|
+
}
|
|
165
|
+
else if (Array.isArray(link)) {
|
|
166
|
+
return this._router.createUrlTree(link, this._getNavExtras(item)).toString();
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
_getMatchOptions(item) {
|
|
171
|
+
const defaultMatchOpts = {
|
|
172
|
+
paths: 'subset',
|
|
173
|
+
queryParams: 'subset',
|
|
174
|
+
fragment: 'ignored',
|
|
175
|
+
matrixParams: 'ignored'
|
|
176
|
+
};
|
|
177
|
+
if (hasProperty(item, 'matchOptions')) {
|
|
178
|
+
return {
|
|
179
|
+
...defaultMatchOpts,
|
|
180
|
+
...item.matchOptions
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return defaultMatchOpts;
|
|
184
|
+
}
|
|
185
|
+
setItemStateProp(item, prop, value) {
|
|
186
|
+
const currentValue = getHorizontalNavItemStateProp(item, prop);
|
|
187
|
+
if (currentValue !== value) {
|
|
188
|
+
setHorizontalNavItemStateProp(item, prop, value);
|
|
189
|
+
const changed = {
|
|
190
|
+
item,
|
|
191
|
+
prop,
|
|
192
|
+
prevValue: currentValue,
|
|
193
|
+
newValue: value
|
|
194
|
+
};
|
|
195
|
+
this.itemChanged.next(changed);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
TheSeamNavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
200
|
+
TheSeamNavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService });
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, decorators: [{
|
|
202
|
+
type: Injectable
|
|
203
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; } });
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL25hdi9uYXYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBd0IsYUFBYSxFQUE4QixNQUFNLGlCQUFpQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFMUUsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM5QixNQUFNLGFBQWEsQ0FBQTs7O0FBSXBCLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFQakIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQTtRQUloRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFBO1FBSzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDdkIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQTtJQUNILENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFpQjtRQUM1QyxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzdCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBa0MsRUFBRSxFQUFFO2dCQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNqQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7d0JBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUMzQztvQkFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtnQkFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNmLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFBO2dCQUVGLElBQUk7b0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO2lCQUM5QjtnQkFBQyxPQUFPLEdBQUcsRUFBRTtvQkFDWixVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2lCQUN0QjtnQkFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FDaEQsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2xCLElBQUk7d0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUM3QixJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQ3BDO29CQUFDLE9BQU8sR0FBRyxFQUFFO3dCQUNaLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7cUJBQ3RCO2dCQUNILENBQUMsQ0FBQyxDQUFBO2dCQUVGLE9BQU8sR0FBRyxFQUFFO29CQUNWLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtvQkFDNUIsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFBO2dCQUM5QixDQUFDLENBQUE7WUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWlCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXhCLElBQUk7WUFDRixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtpQkFDdEM7Z0JBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUMzQjtZQUVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQzFCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtZQUN6QixNQUFNLEdBQUcsQ0FBQTtTQUNWO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFjO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBRXhCLElBQUk7WUFDRixnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUV0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUV6RSxzRUFBc0U7WUFDdEUsb0VBQW9FO1lBQ3BFLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUE7WUFFbkMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7U0FDMUI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLE1BQU0sR0FBRyxDQUFBO1NBQ1Y7SUFDSCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsSUFBYztRQUMzQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7YUFDeEM7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVPLHlCQUF5QixDQUFDLEtBQWlCO1FBQ2pELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1lBQ3hCLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7YUFDOUM7WUFDRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDcEM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCLENBQUMsSUFBYztRQUM3QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckMsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFBO2FBQy9DO1lBQ0QsT0FBTTtTQUNQO1FBRUQsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQzlDO1FBRUQsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUM5QztTQUNGO2FBQU07WUFDTCxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDL0M7U0FDRjtJQUNILENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFpQjtRQUM5QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4SCxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7U0FDM0M7SUFDSCxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBaUIsRUFBRSxXQUFpQztRQUMzRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtZQUN4QixJQUFJLHdCQUF3QixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDL0MsNkJBQTZCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTthQUNyRDtpQkFBTTtnQkFDTCw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO2FBQ3REO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQWM7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBdUIsRUFBRyxDQUFBO1FBQ2hELElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNwQyxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtTQUNoRDtRQUNELElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNqQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtTQUMxQztRQUNELElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO1lBQzVDLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtTQUNoRTtRQUNELElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3pDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtTQUMxRDtRQUNELE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFjO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFFdEIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFFLElBQUksQ0FBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtTQUNqRjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7U0FDN0U7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFjO1FBQ3JDLE1BQU0sZ0JBQWdCLEdBQXlCO1lBQzdDLEtBQUssRUFBRSxRQUFRO1lBQ2YsV0FBVyxFQUFFLFFBQVE7WUFDckIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsWUFBWSxFQUFFLFNBQVM7U0FDeEIsQ0FBQTtRQUVELElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsRUFBRTtZQUNyQyxPQUFPO2dCQUNMLEdBQUcsZ0JBQWdCO2dCQUNuQixHQUFHLElBQUksQ0FBQyxZQUFZO2FBQ3JCLENBQUE7U0FDRjtRQUVELE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVNLGdCQUFnQixDQUFnQyxJQUFjLEVBQUUsSUFBTyxFQUFFLEtBQXVCO1FBQ3JHLE1BQU0sWUFBWSxHQUFHLDZCQUE2QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM5RCxJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDMUIsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUVoRCxNQUFNLE9BQU8sR0FBd0I7Z0JBQ25DLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9CO0lBQ0gsQ0FBQzs7OEdBbE9VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFVybENyZWF0aW9uT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgYXJlU2FtZUhvcml6b250YWxOYXZJdGVtLFxuICBnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcCxcbiAgaG9yaXpvbnRhbE5hdkl0ZW1DYW5FeHBhbmQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQWN0aXZlQ2hpbGQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4sXG4gIGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZCxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbUFjdGl2ZSxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUsXG4gIHNldERlZmF1bHRIb3Jpem9udGFsTmF2SXRlbVN0YXRlLFxuICBzZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcFxufSBmcm9tICcuL25hdi11dGlscydcbmltcG9ydCB7IElOYXZJdGVtLCBJTmF2SXRlbVN0YXRlLCBJTmF2TGluaywgTmF2SXRlbVN0YXRlQ2hhbmdlZCB9IGZyb20gJy4vbmF2Lm1vZGVscydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1OYXZTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGluZ0NvdW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1DaGFuZ2VkID0gbmV3IFN1YmplY3Q8TmF2SXRlbVN0YXRlQ2hhbmdlZD4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLl91cGRhdGluZ0NvdW50LnBpcGUoXG4gICAgICBtYXAoY291bnQgPT4gY291bnQgPiAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUl0ZW1zT2JzZXJ2YWJsZShpdGVtczogSU5hdkl0ZW1bXSk6IE9ic2VydmFibGU8SU5hdkl0ZW1bXT4ge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGVzKGl0ZW1zKVxuICAgICAgdGhpcy51cGRhdGVSb3V0ZXJGb2N1c2VkSXRlbShpdGVtcylcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxJTmF2SXRlbVtdPikgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZUNoYW5nZVN1YiA9IHRoaXMuaXRlbUNoYW5nZWQucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UucHJvcCA9PT0gJ2ZvY3VzZWQnICYmIGNoYW5nZS5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWRJdGVtKGl0ZW1zLCBjaGFuZ2UuaXRlbSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmckLnBpcGUoZmlsdGVyKGxvYWRpbmcgPT4gIWxvYWRpbmcpKVxuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaXRlbXMpXG4gICAgICAgIH0pXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGVzKGl0ZW1zKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycilcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdXRlQ2hhbmdlU3ViID0gdGhpcy5fcm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICApLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZXMoaXRlbXMpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJvdXRlckZvY3VzZWRJdGVtKGl0ZW1zKVxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgc3RhdGVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICAgIHJvdXRlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgfVxuICAgICAgfSkucGlwZShzdGFydFdpdGgoaXRlbXMpKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9pbmNVcGRhdGluZ0NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0aW5nQ291bnQubmV4dCh0aGlzLl91cGRhdGluZ0NvdW50LnZhbHVlICsgMSlcbiAgfVxuXG4gIHByaXZhdGUgX2RlY3JVcGRhdGluZ0NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0aW5nQ291bnQubmV4dCh0aGlzLl91cGRhdGluZ0NvdW50LnZhbHVlIC0gMSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtc1N0YXRlcyhpdGVtczogSU5hdkl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuX2luY1VwZGF0aW5nQ291bnQoKVxuXG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICBpZiAoaG9yaXpvbnRhbE5hdkl0ZW1IYXNDaGlsZHJlbihpdGVtKSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZXMoaXRlbS5jaGlsZHJlbilcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVN0YXRlKGl0ZW0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2RlY3JVcGRhdGluZ0NvdW50KClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX2RlY3JVcGRhdGluZ0NvdW50KClcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtU3RhdGUoaXRlbTogSU5hdkl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLl9pbmNVcGRhdGluZ0NvdW50KClcblxuICAgIHRyeSB7XG4gICAgICBzZXREZWZhdWx0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZShpdGVtKVxuXG4gICAgICB0aGlzLnNldEl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2FjdGl2ZScsIHRoaXMuaG9yaXpvbnRhbE5hdkxpbmtBY3RpdmUoaXRlbSkpXG5cbiAgICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGlzIGluIGEgbW9yZSBvcHRpbWl6ZWQgd2F5LiBVbmxlc3Mgb3VyIGFwcHMgc3RhcnRcbiAgICAgIC8vIGhhdmluZyBsYXJnZSBuYXZzIGNvbnN0YW50bHkgdXBkYXRpbmcgdGhlaXIgc3RhdGUsIHRoaXMgc2hvdWxkbid0XG4gICAgICAvLyBoYXZlIG11Y2ggaW1wYWN0IG9uIHBlcmZvcm1hbmNlLlxuICAgICAgdGhpcy5fdXBkYXRlSXRlbUV4cGFuZGVkU3RhdGUoaXRlbSlcblxuICAgICAgdGhpcy5fZGVjclVwZGF0aW5nQ291bnQoKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5fZGVjclVwZGF0aW5nQ291bnQoKVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvcml6b250YWxOYXZMaW5rQWN0aXZlKGl0ZW06IElOYXZJdGVtKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdsaW5rJykpIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuX2dldFVybChpdGVtKVxuICAgICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh1cmwpKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRNYXRjaE9wdGlvbnMoaXRlbSlcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5pc0FjdGl2ZSh1cmwsIG9wdHMpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSXRlbXNFeHBhbmRlZFN0YXRlKGl0ZW1zOiBJTmF2SXRlbVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaG9yaXpvbnRhbE5hdkl0ZW1IYXNDaGlsZHJlbihpdGVtKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVJdGVtc0V4cGFuZGVkU3RhdGUoaXRlbS5jaGlsZHJlbilcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZUl0ZW1FeHBhbmRlZFN0YXRlKGl0ZW0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSXRlbUV4cGFuZGVkU3RhdGUoaXRlbTogSU5hdkl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWhvcml6b250YWxOYXZJdGVtQ2FuRXhwYW5kKGl0ZW0pKSB7XG4gICAgICBpZiAoZ2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2V4cGFuZGVkJykpIHtcbiAgICAgICAgdGhpcy5zZXRJdGVtU3RhdGVQcm9wKGl0ZW0sICdleHBhbmRlZCcsIGZhbHNlKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4oaXRlbSkpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUl0ZW1zRXhwYW5kZWRTdGF0ZShpdGVtLmNoaWxkcmVuKVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsTmF2SXRlbUhhc0FjdGl2ZUNoaWxkKGl0ZW0pIHx8IGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZChpdGVtKSkge1xuICAgICAgaWYgKCFnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcChpdGVtLCAnZXhwYW5kZWQnKSkge1xuICAgICAgICB0aGlzLnNldEl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2V4cGFuZGVkJywgdHJ1ZSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdleHBhbmRlZCcpKSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbVN0YXRlUHJvcChpdGVtLCAnZXhwYW5kZWQnLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm91dGVyRm9jdXNlZEl0ZW0oaXRlbXM6IElOYXZJdGVtW10pIHtcbiAgICBjb25zdCBmb2N1c2VkSXRlbSA9IGl0ZW1zLmZpbmQoaSA9PiBpc0hvcml6b250YWxOYXZJdGVtQWN0aXZlKGkpKSB8fCBpdGVtcy5maW5kKGkgPT4gaG9yaXpvbnRhbE5hdkl0ZW1IYXNBY3RpdmVDaGlsZChpKSlcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGZvY3VzZWRJdGVtKSkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2VkSXRlbShpdGVtcywgZm9jdXNlZEl0ZW0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZvY3VzZWRJdGVtKGl0ZW1zOiBJTmF2SXRlbVtdLCBmb2N1c2VkSXRlbTogSU5hdkl0ZW0gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChhcmVTYW1lSG9yaXpvbnRhbE5hdkl0ZW0oaXRlbSwgZm9jdXNlZEl0ZW0pKSB7XG4gICAgICAgIHNldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdmb2N1c2VkJywgdHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdmb2N1c2VkJywgZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmF2RXh0cmFzKGl0ZW06IElOYXZMaW5rKTogVXJsQ3JlYXRpb25PcHRpb25zIHtcbiAgICBjb25zdCBuYXZpZ2F0aW9uRXh0cmFzOiBVcmxDcmVhdGlvbk9wdGlvbnMgPSB7IH1cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ3F1ZXJ5UGFyYW1zJykpIHtcbiAgICAgIG5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXMgPSBpdGVtLnF1ZXJ5UGFyYW1zXG4gICAgfVxuICAgIGlmIChoYXNQcm9wZXJ0eShpdGVtLCAnZnJhZ21lbnQnKSkge1xuICAgICAgbmF2aWdhdGlvbkV4dHJhcy5mcmFnbWVudCA9IGl0ZW0uZnJhZ21lbnRcbiAgICB9XG4gICAgaWYgKGhhc1Byb3BlcnR5KGl0ZW0sICdxdWVyeVBhcmFtc0hhbmRsaW5nJykpIHtcbiAgICAgIG5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXNIYW5kbGluZyA9IGl0ZW0ucXVlcnlQYXJhbXNIYW5kbGluZ1xuICAgIH1cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ3ByZXNlcnZlRnJhZ21lbnQnKSkge1xuICAgICAgbmF2aWdhdGlvbkV4dHJhcy5wcmVzZXJ2ZUZyYWdtZW50ID0gaXRlbS5wcmVzZXJ2ZUZyYWdtZW50XG4gICAgfVxuICAgIHJldHVybiBuYXZpZ2F0aW9uRXh0cmFzXG4gIH1cblxuICBwcml2YXRlIF9nZXRVcmwoaXRlbTogSU5hdkxpbmspOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBsaW5rID0gaXRlbS5saW5rXG5cbiAgICBpZiAodHlwZW9mIGxpbmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcm91dGVyLmNyZWF0ZVVybFRyZWUoWyBsaW5rIF0sIHRoaXMuX2dldE5hdkV4dHJhcyhpdGVtKSkudG9TdHJpbmcoKVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShsaW5rKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKGxpbmssIHRoaXMuX2dldE5hdkV4dHJhcyhpdGVtKSkudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIF9nZXRNYXRjaE9wdGlvbnMoaXRlbTogSU5hdkxpbmspOiBJc0FjdGl2ZU1hdGNoT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdE1hdGNoT3B0czogSXNBY3RpdmVNYXRjaE9wdGlvbnMgPSB7XG4gICAgICBwYXRoczogJ3N1YnNldCcsXG4gICAgICBxdWVyeVBhcmFtczogJ3N1YnNldCcsXG4gICAgICBmcmFnbWVudDogJ2lnbm9yZWQnLFxuICAgICAgbWF0cml4UGFyYW1zOiAnaWdub3JlZCdcbiAgICB9XG5cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ21hdGNoT3B0aW9ucycpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kZWZhdWx0TWF0Y2hPcHRzLFxuICAgICAgICAuLi5pdGVtLm1hdGNoT3B0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0TWF0Y2hPcHRzXG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbVN0YXRlUHJvcDxLIGV4dGVuZHMga2V5b2YgSU5hdkl0ZW1TdGF0ZT4oaXRlbTogSU5hdkl0ZW0sIHByb3A6IEssIHZhbHVlOiBJTmF2SXRlbVN0YXRlW0tdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgcHJvcClcbiAgICBpZiAoY3VycmVudFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgc2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgcHJvcCwgdmFsdWUpXG5cbiAgICAgIGNvbnN0IGNoYW5nZWQ6IE5hdkl0ZW1TdGF0ZUNoYW5nZWQgPSB7XG4gICAgICAgIGl0ZW0sXG4gICAgICAgIHByb3AsXG4gICAgICAgIHByZXZWYWx1ZTogY3VycmVudFZhbHVlLFxuICAgICAgICBuZXdWYWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICAgIHRoaXMuaXRlbUNoYW5nZWQubmV4dChjaGFuZ2VkKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -4,4 +4,5 @@ export * from './side-nav/index';
|
|
|
4
4
|
export * from './top-bar/index';
|
|
5
5
|
export * from './dynamic-router/index';
|
|
6
6
|
export * from './schema-form/index';
|
|
7
|
-
|
|
7
|
+
export * from './nav/index';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1sYXlvdXQvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL3RvcC1iYXIvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcm91dGVyL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vbmF2L2luZGV4J1xuIl19
|
|
@@ -135,7 +135,7 @@ export class TheSeamSchemaFormSubmitSplitComponent {
|
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
TheSeamSchemaFormSubmitSplitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
-
TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, isStandalone: true, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: JsonSchemaFormModule }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "ngmodule", type: TheSeamMenuModule }, { kind: "component", type: i3.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i3.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }] });
|
|
138
|
+
TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, isStandalone: true, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: JsonSchemaFormModule }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "ngmodule", type: TheSeamMenuModule }, { kind: "component", type: i3.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i3.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }] });
|
|
139
139
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, decorators: [{
|
|
140
140
|
type: Component,
|
|
141
141
|
args: [{ selector: 'seam-schema-form-submit-split', standalone: true, imports: [
|
|
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
153
153
|
}], dataIndex: [{
|
|
154
154
|
type: Input
|
|
155
155
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFtQixtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBdUMsTUFBTSxZQUFZLENBQUE7QUFDN0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7Ozs7OztBQU1qRSw0RUFBNEU7QUFDNUUsMEVBQTBF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Z0JBQWdCO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDOztrSUE5SlUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsbUxDdENsRCx1MUNBcUNBLCtFRFBJLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixvQkFBb0IsOEJBQ3BCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHVvQkFDakIsb0JBQW9COzJGQUdYLHFDQUFxQztrQkFmakQsU0FBUzsrQkFDRSwrQkFBK0IsY0FJN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCOzRHQWNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgYnVpbGRUaXRsZU1hcCwgaGFzT3duLCBKc29uU2NoZW1hRm9ybU1vZHVsZSwgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBUaXRsZU1hcEl0ZW0gfSBmcm9tICdAYWpzZi9jb3JlJ1xuaW1wb3J0IHsgb2JzZXJ2ZUNvbnRyb2xTdGF0dXMsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQsIFRoZVNlYW1TY2hlbWFGb3JtV2lkZ2V0TGF5b3V0Tm9kZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9zY2hlbWEtZm9ybSdcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuXG4vLyBOT1RFOiBUaGlzIGlzIGFsaWFzaW5nIFRpdGxlTWFwSXRlbSwgYmVjYXVzZSB3ZSBtYXkgd2FudCB0byBleHRlbmQgaXQnc1xuLy8gb3B0aW9ucy4gRm9yIHNpbXBsaWNpdHksIEkgYW0gbGV0dGluZyB0aGlzIHdvcmsgc2ltaWxhciB0byBhICdzZWxlY3QnIHdpZGdldC5cbmV4cG9ydCB0eXBlIFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtID0gVGl0bGVNYXBJdGVtXG5cbi8vIE5PVEU6IFRoaXMgY29tcG9uZW50IGlzIGEgbGl0dGxlIGhhY2t5LCBiZWNhdXNlIEkgYW0gYmFzaWNhbGx5IGNyZWF0aW5nIGFcbi8vIGRhdGEgd2lkZ2V0IHRoYXQgYWN0cyBsaWtlIGEgZGF0YSBhbmQgJ3N1Ym1pdCcgd2lkZ2V0IGF0IHRoZSBzYW1lIHRpbWUuXG4vL1xuLy8gVE9ETzogVHJ5IGFuZCB0aGluayBvZiBhIG5pY2VyIHdheSB0byBpbXBsZW1lbnQgdGhpcywgYnV0IHN0aWxsIG1ha2Ugc2Vuc2Vcbi8vIGZyb20gYSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhlIGxpYnJhcnkgbWF5IG5lZWQgdG8gbWUgZm9ya2VkIHRvIGFjdHVhbGx5XG4vLyBzdXBwb3J0IHRoaXMgaW4gdGhlIHdheSBJIGV4cGVjdCwgYnV0IG1heWJlIHRoZXJlIGlzIGFub3RoZXIgd2F5LlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSnNvblNjaGVtYUZvcm1Nb2R1bGUsXG4gICAgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaGVTZWFtTWVudU1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgZm9ybUNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2xcbiAgY29udHJvbE5hbWU/OiBzdHJpbmdcbiAgY29udHJvbFZhbHVlPzogYW55XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlXG4gIG9wdGlvbnM/OiBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogVGhlU2VhbVNjaGVtYUZvcm1Db250cm9sV2lkZ2V0WydsYXlvdXROb2RlJ11cbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnbGF5b3V0SW5kZXgnXVxuICBASW5wdXQoKSBkYXRhSW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnZGF0YUluZGV4J11cblxuICBfYnV0dG9uTGFiZWwgPSAnJ1xuXG4gIF9kcm9wZG93bk9iajogYW55XG4gIF9kcm9wZG93bkRpc2FibGVkID0gZmFsc2VcbiAgX3NlbGVjdExpc3Q6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtW10gPSBbXVxuICBfc2VsZWN0ZWRJdGVtPzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9qc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZT8ub3B0aW9ucyB8fCB7fSBhcyBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG4gICAgdGhpcy5fanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpXG5cbiAgICAvLyBOT1RFOiBUaGlzIGlzIGNvbW1lbnRlZCBvdXQsIGJlY2F1c2UgdGhlcmUgaXMgYSBidWcgd2l0aCBzdWJtaXQgd2lkZ2V0c1xuICAgIC8vIG1hbnVhbGx5IGRlZmluZWQgaW4gbGF5b3V0LiBBbGwgbm9kZXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAgICAvLyBsYXlvdXQgaGF2ZSB0aGVpciBvcHRpb25zIHBvcHVsYXRlZCBmcm9tIHRoZSBkZWZhdWx0cyBhbmQgJ2Rpc2FibGVkJyBpc1xuICAgIC8vIG9uIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMsIHNvIHRoZSAnZGlzYWJsZUludmFsaWRTdWJtaXQnIGNvbmRpdGlvblxuICAgIC8vIG5ldmVyIGdldHMgcmVhY2hlZC5cbiAgICAvL1xuICAgIC8vIE15IGluaXRpYWwgaWRlYSBmb3IgZml4aW5nIHdvdWxkIGJlIHRvIGNoZWNrIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eVxuICAgIC8vIGV4aXN0cyBhbmQgaXMgYSBib29sZWFuLCBvciBwb3NzaWJseSBhbnl0aGluZyBkZWZpbmVkIHRoYXQgY2FuIGNvZXJjZVxuICAgIC8vIGludG8gYSBib29sZWFuLiBJIGNhbid0IHRoaW5rIG9mIGEgcmVhc29uIGRpc2FibGVkIHNob3VsZCBiZSBhbnl0aGluZ1xuICAgIC8vIGVsc2UsIHNvIHRoYXQgbWF5IGJlIGFuIGFjY2VwdGFibGUgZml4LCBidXQgSSBkb24ndCB3YW50IHRvIGVuYWJsZSB0aGF0XG4gICAgLy8geWV0LlxuICAgIC8vXG4gICAgLy8gaWYgKGhhc093bih0aGlzLm9wdGlvbnMsICdkaXNhYmxlZCcpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZygnW1RoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnRdIGhhc0Rpc2FibGVkJywgdGhpcy5vcHRpb25zLmRpc2FibGVkKVxuICAgIC8vICAgdGhpcy5jb250cm9sRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWRcbiAgICAvLyB9IGVsc2VcbiAgICBpZiAodGhpcy5fanNmLmZvcm1PcHRpb25zLmRpc2FibGVJbnZhbGlkU3VibWl0KSB7XG4gICAgICB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICF0aGlzLl9qc2YuaXNWYWxpZFxuICAgICAgdGhpcy5fanNmLmlzVmFsaWRDaGFuZ2VzLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMuY29udHJvbERpc2FibGVkID0gIWlzVmFsaWQpXG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbnRyb2xWYWx1ZSA9IHRoaXMub3B0aW9ucy50aXRsZVxuICAgIH1cblxuICAgIGlmIChoYXNPd24odGhpcy5vcHRpb25zLCAndGl0bGUnKSkge1xuICAgICAgdGhpcy5fYnV0dG9uTGFiZWwgPSB0aGlzLm9wdGlvbnMudGl0bGVcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RHJvcGRvd24oKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucz8ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uQ2xpY2soZXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2pzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICghaGFzT3duKHRoaXMubGF5b3V0Tm9kZSwgJ2l0ZW1zJykgfHwgISh0aGlzLmxheW91dE5vZGU/Lml0ZW1zIHx8IFtdKS5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMubGF5b3V0Tm9kZT8uaXRlbXMgJiYgdGhpcy5sYXlvdXROb2RlPy5pdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBvbmx5IHN1cHBvcnRzIG9uZSBpdGVtLmAgK1xuICAgICAgICAgIGAgaXRlbXMgYWZ0ZXIgaW5kZXggMCB3aWxsIGJlIGlnbm9yZWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaWR4ID0gMFxuICAgIGNvbnN0IGl0ZW0gPSAodGhpcy5sYXlvdXROb2RlPy5pdGVtcyBhcyBhbnkpW2lkeF0gfHwge31cbiAgICB0aGlzLl9kcm9wZG93bk9iaiA9IHtcbiAgICAgIGxheW91dE5vZGU6IGl0ZW0sXG4gICAgICBsYXlvdXRJbmRleDogKHRoaXMubGF5b3V0SW5kZXggfHwgW10pLmNvbmNhdChpZHgpLFxuICAgICAgZGF0YUluZGV4OiB0aGlzLmxheW91dE5vZGU/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKHRoaXMuZGF0YUluZGV4IHx8IFtdKS5jb25jYXQoaWR4KSA6IHRoaXMuZGF0YUluZGV4LFxuXG4gICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgfHwge31cbiAgICB9XG5cbiAgICB0aGlzLl9qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcy5fZHJvcGRvd25PYmopXG5cbiAgICBjb25zdCBpdGVtcyA9IGJ1aWxkVGl0bGVNYXAoXG4gICAgICB0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMuX2Ryb3Bkb3duT2JqLm9wdGlvbnMuZW51bU5hbWVzLFxuICAgICAgdGhpcy5fZHJvcGRvd25PYmoub3B0aW9ucy5lbnVtLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnJlcXVpcmVkLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLmZsYXRMaXN0XG4gICAgKVxuXG4gICAgdGhpcy5fc2VsZWN0TGlzdCA9IGl0ZW1zXG5cbiAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBjaGVja2luZyBpZiB0aGUgY29udHJvbCBpcyBib3VuZD9cbiAgICBjb25zdCBkcm9wZG93bkNvbnRyb2wgPSB0aGlzLl9nZXREcm9wZG93bkNvbnRyb2woKVxuICAgIGlmICghZHJvcGRvd25Db250cm9sKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvYnNlcnZlQ29udHJvbFZhbHVlKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX3NldFNlbGVjdExpc3RDaGVja2VkUHJvcCh2YWx1ZSlcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpXG4gICAgfSlcblxuICAgIG9ic2VydmVDb250cm9sU3RhdHVzKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duRGlzYWJsZWQgPSBkcm9wZG93bkNvbnRyb2wuZGlzYWJsZWRcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJvcGRvd25Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duT2JqLmZvcm1Db250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbFxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U2VsZWN0TGlzdENoZWNrZWRQcm9wKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuX3NlbGVjdExpc3RcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RMaXN0ID0gWyAuLi5pdGVtcyBdXG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWxlY3RlZEl0ZW0oKTogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fc2VsZWN0TGlzdCB8fCBbXSkuZmluZCh4ID0+IHguY2hlY2tlZCA9PT0gdHJ1ZSlcbiAgfVxuXG4gIF9zZXREcm9wZG93blZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dldERyb3Bkb3duQ29udHJvbCgpXG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKVxuICB9XG5cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxuICA8ZGl2IFtjbGFzcy5idG4tZ3JvdXBdPVwiX2Ryb3Bkb3duT2JqXCI+XG4gICAgPGJ1dHRvbiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWQgKyAnU3RhdHVzJ1wiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcbiAgICAgIFtjbGFzc109XCInYnRuIGJ0bi1wcmltYXJ5ICcgKyAob3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZFwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICB7eyBfYnV0dG9uTGFiZWwgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwiX3NlbGVjdGVkSXRlbVwiPlxuICAgICAgICBbe3sgX3NlbGVjdGVkSXRlbS5uYW1lIH19XVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZHJvcGRvd25PYmpcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZHJvcGRvd25EaXNhYmxlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgRHJvcGRvd248L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzZWFtLW1lbnUgI21lbnU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlbGVjdExpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uIHNlYW1NZW51SXRlbVxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXREcm9wZG93blZhbHVlKGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlYW0tbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFtQixtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBdUMsTUFBTSxZQUFZLENBQUE7QUFDN0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7Ozs7OztBQU1qRSw0RUFBNEU7QUFDNUUsMEVBQTBF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Z0JBQWdCO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDOztrSUE5SlUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsbUxDdENsRCx1MUNBcUNBLCtFRFBJLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixvQkFBb0IsOEJBQ3BCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHFwQkFDakIsb0JBQW9COzJGQUdYLHFDQUFxQztrQkFmakQsU0FBUzsrQkFDRSwrQkFBK0IsY0FJN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCOzRHQWNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgYnVpbGRUaXRsZU1hcCwgaGFzT3duLCBKc29uU2NoZW1hRm9ybU1vZHVsZSwgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBUaXRsZU1hcEl0ZW0gfSBmcm9tICdAYWpzZi9jb3JlJ1xuaW1wb3J0IHsgb2JzZXJ2ZUNvbnRyb2xTdGF0dXMsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQsIFRoZVNlYW1TY2hlbWFGb3JtV2lkZ2V0TGF5b3V0Tm9kZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9zY2hlbWEtZm9ybSdcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuXG4vLyBOT1RFOiBUaGlzIGlzIGFsaWFzaW5nIFRpdGxlTWFwSXRlbSwgYmVjYXVzZSB3ZSBtYXkgd2FudCB0byBleHRlbmQgaXQnc1xuLy8gb3B0aW9ucy4gRm9yIHNpbXBsaWNpdHksIEkgYW0gbGV0dGluZyB0aGlzIHdvcmsgc2ltaWxhciB0byBhICdzZWxlY3QnIHdpZGdldC5cbmV4cG9ydCB0eXBlIFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtID0gVGl0bGVNYXBJdGVtXG5cbi8vIE5PVEU6IFRoaXMgY29tcG9uZW50IGlzIGEgbGl0dGxlIGhhY2t5LCBiZWNhdXNlIEkgYW0gYmFzaWNhbGx5IGNyZWF0aW5nIGFcbi8vIGRhdGEgd2lkZ2V0IHRoYXQgYWN0cyBsaWtlIGEgZGF0YSBhbmQgJ3N1Ym1pdCcgd2lkZ2V0IGF0IHRoZSBzYW1lIHRpbWUuXG4vL1xuLy8gVE9ETzogVHJ5IGFuZCB0aGluayBvZiBhIG5pY2VyIHdheSB0byBpbXBsZW1lbnQgdGhpcywgYnV0IHN0aWxsIG1ha2Ugc2Vuc2Vcbi8vIGZyb20gYSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhlIGxpYnJhcnkgbWF5IG5lZWQgdG8gbWUgZm9ya2VkIHRvIGFjdHVhbGx5XG4vLyBzdXBwb3J0IHRoaXMgaW4gdGhlIHdheSBJIGV4cGVjdCwgYnV0IG1heWJlIHRoZXJlIGlzIGFub3RoZXIgd2F5LlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSnNvblNjaGVtYUZvcm1Nb2R1bGUsXG4gICAgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaGVTZWFtTWVudU1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgZm9ybUNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2xcbiAgY29udHJvbE5hbWU/OiBzdHJpbmdcbiAgY29udHJvbFZhbHVlPzogYW55XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlXG4gIG9wdGlvbnM/OiBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogVGhlU2VhbVNjaGVtYUZvcm1Db250cm9sV2lkZ2V0WydsYXlvdXROb2RlJ11cbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnbGF5b3V0SW5kZXgnXVxuICBASW5wdXQoKSBkYXRhSW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnZGF0YUluZGV4J11cblxuICBfYnV0dG9uTGFiZWwgPSAnJ1xuXG4gIF9kcm9wZG93bk9iajogYW55XG4gIF9kcm9wZG93bkRpc2FibGVkID0gZmFsc2VcbiAgX3NlbGVjdExpc3Q6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtW10gPSBbXVxuICBfc2VsZWN0ZWRJdGVtPzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9qc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZT8ub3B0aW9ucyB8fCB7fSBhcyBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG4gICAgdGhpcy5fanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpXG5cbiAgICAvLyBOT1RFOiBUaGlzIGlzIGNvbW1lbnRlZCBvdXQsIGJlY2F1c2UgdGhlcmUgaXMgYSBidWcgd2l0aCBzdWJtaXQgd2lkZ2V0c1xuICAgIC8vIG1hbnVhbGx5IGRlZmluZWQgaW4gbGF5b3V0LiBBbGwgbm9kZXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAgICAvLyBsYXlvdXQgaGF2ZSB0aGVpciBvcHRpb25zIHBvcHVsYXRlZCBmcm9tIHRoZSBkZWZhdWx0cyBhbmQgJ2Rpc2FibGVkJyBpc1xuICAgIC8vIG9uIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMsIHNvIHRoZSAnZGlzYWJsZUludmFsaWRTdWJtaXQnIGNvbmRpdGlvblxuICAgIC8vIG5ldmVyIGdldHMgcmVhY2hlZC5cbiAgICAvL1xuICAgIC8vIE15IGluaXRpYWwgaWRlYSBmb3IgZml4aW5nIHdvdWxkIGJlIHRvIGNoZWNrIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eVxuICAgIC8vIGV4aXN0cyBhbmQgaXMgYSBib29sZWFuLCBvciBwb3NzaWJseSBhbnl0aGluZyBkZWZpbmVkIHRoYXQgY2FuIGNvZXJjZVxuICAgIC8vIGludG8gYSBib29sZWFuLiBJIGNhbid0IHRoaW5rIG9mIGEgcmVhc29uIGRpc2FibGVkIHNob3VsZCBiZSBhbnl0aGluZ1xuICAgIC8vIGVsc2UsIHNvIHRoYXQgbWF5IGJlIGFuIGFjY2VwdGFibGUgZml4LCBidXQgSSBkb24ndCB3YW50IHRvIGVuYWJsZSB0aGF0XG4gICAgLy8geWV0LlxuICAgIC8vXG4gICAgLy8gaWYgKGhhc093bih0aGlzLm9wdGlvbnMsICdkaXNhYmxlZCcpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZygnW1RoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnRdIGhhc0Rpc2FibGVkJywgdGhpcy5vcHRpb25zLmRpc2FibGVkKVxuICAgIC8vICAgdGhpcy5jb250cm9sRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWRcbiAgICAvLyB9IGVsc2VcbiAgICBpZiAodGhpcy5fanNmLmZvcm1PcHRpb25zLmRpc2FibGVJbnZhbGlkU3VibWl0KSB7XG4gICAgICB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICF0aGlzLl9qc2YuaXNWYWxpZFxuICAgICAgdGhpcy5fanNmLmlzVmFsaWRDaGFuZ2VzLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMuY29udHJvbERpc2FibGVkID0gIWlzVmFsaWQpXG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbnRyb2xWYWx1ZSA9IHRoaXMub3B0aW9ucy50aXRsZVxuICAgIH1cblxuICAgIGlmIChoYXNPd24odGhpcy5vcHRpb25zLCAndGl0bGUnKSkge1xuICAgICAgdGhpcy5fYnV0dG9uTGFiZWwgPSB0aGlzLm9wdGlvbnMudGl0bGVcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RHJvcGRvd24oKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucz8ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uQ2xpY2soZXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2pzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICghaGFzT3duKHRoaXMubGF5b3V0Tm9kZSwgJ2l0ZW1zJykgfHwgISh0aGlzLmxheW91dE5vZGU/Lml0ZW1zIHx8IFtdKS5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMubGF5b3V0Tm9kZT8uaXRlbXMgJiYgdGhpcy5sYXlvdXROb2RlPy5pdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBvbmx5IHN1cHBvcnRzIG9uZSBpdGVtLmAgK1xuICAgICAgICAgIGAgaXRlbXMgYWZ0ZXIgaW5kZXggMCB3aWxsIGJlIGlnbm9yZWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaWR4ID0gMFxuICAgIGNvbnN0IGl0ZW0gPSAodGhpcy5sYXlvdXROb2RlPy5pdGVtcyBhcyBhbnkpW2lkeF0gfHwge31cbiAgICB0aGlzLl9kcm9wZG93bk9iaiA9IHtcbiAgICAgIGxheW91dE5vZGU6IGl0ZW0sXG4gICAgICBsYXlvdXRJbmRleDogKHRoaXMubGF5b3V0SW5kZXggfHwgW10pLmNvbmNhdChpZHgpLFxuICAgICAgZGF0YUluZGV4OiB0aGlzLmxheW91dE5vZGU/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKHRoaXMuZGF0YUluZGV4IHx8IFtdKS5jb25jYXQoaWR4KSA6IHRoaXMuZGF0YUluZGV4LFxuXG4gICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgfHwge31cbiAgICB9XG5cbiAgICB0aGlzLl9qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcy5fZHJvcGRvd25PYmopXG5cbiAgICBjb25zdCBpdGVtcyA9IGJ1aWxkVGl0bGVNYXAoXG4gICAgICB0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMuX2Ryb3Bkb3duT2JqLm9wdGlvbnMuZW51bU5hbWVzLFxuICAgICAgdGhpcy5fZHJvcGRvd25PYmoub3B0aW9ucy5lbnVtLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnJlcXVpcmVkLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLmZsYXRMaXN0XG4gICAgKVxuXG4gICAgdGhpcy5fc2VsZWN0TGlzdCA9IGl0ZW1zXG5cbiAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBjaGVja2luZyBpZiB0aGUgY29udHJvbCBpcyBib3VuZD9cbiAgICBjb25zdCBkcm9wZG93bkNvbnRyb2wgPSB0aGlzLl9nZXREcm9wZG93bkNvbnRyb2woKVxuICAgIGlmICghZHJvcGRvd25Db250cm9sKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvYnNlcnZlQ29udHJvbFZhbHVlKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX3NldFNlbGVjdExpc3RDaGVja2VkUHJvcCh2YWx1ZSlcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpXG4gICAgfSlcblxuICAgIG9ic2VydmVDb250cm9sU3RhdHVzKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duRGlzYWJsZWQgPSBkcm9wZG93bkNvbnRyb2wuZGlzYWJsZWRcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJvcGRvd25Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duT2JqLmZvcm1Db250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbFxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U2VsZWN0TGlzdENoZWNrZWRQcm9wKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuX3NlbGVjdExpc3RcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RMaXN0ID0gWyAuLi5pdGVtcyBdXG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWxlY3RlZEl0ZW0oKTogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fc2VsZWN0TGlzdCB8fCBbXSkuZmluZCh4ID0+IHguY2hlY2tlZCA9PT0gdHJ1ZSlcbiAgfVxuXG4gIF9zZXREcm9wZG93blZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dldERyb3Bkb3duQ29udHJvbCgpXG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKVxuICB9XG5cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxuICA8ZGl2IFtjbGFzcy5idG4tZ3JvdXBdPVwiX2Ryb3Bkb3duT2JqXCI+XG4gICAgPGJ1dHRvbiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWQgKyAnU3RhdHVzJ1wiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcbiAgICAgIFtjbGFzc109XCInYnRuIGJ0bi1wcmltYXJ5ICcgKyAob3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZFwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICB7eyBfYnV0dG9uTGFiZWwgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwiX3NlbGVjdGVkSXRlbVwiPlxuICAgICAgICBbe3sgX3NlbGVjdGVkSXRlbS5uYW1lIH19XVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZHJvcGRvd25PYmpcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZHJvcGRvd25EaXNhYmxlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgRHJvcGRvd248L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzZWFtLW1lbnUgI21lbnU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlbGVjdExpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uIHNlYW1NZW51SXRlbVxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXREcm9wZG93blZhbHVlKGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlYW0tbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|