@theseam/ui-common 0.4.18 → 0.4.19-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.
Files changed (134) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +10 -1
  3. package/datatable/models/action-item-column-position.d.ts +13 -0
  4. package/datatable/services/columns-manager.service.d.ts +7 -0
  5. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  6. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
  7. package/esm2020/datatable/datatable/datatable.component.mjs +20 -4
  8. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
  9. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
  10. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
  11. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  12. package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
  13. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  14. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
  15. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
  16. package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
  17. package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
  18. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
  19. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  20. package/esm2020/framework/base-layout/index.mjs +2 -1
  21. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  22. package/esm2020/framework/nav/index.mjs +6 -0
  23. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  24. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  25. package/esm2020/framework/nav/nav.models.mjs +2 -0
  26. package/esm2020/framework/nav/nav.module.mjs +67 -0
  27. package/esm2020/framework/nav/nav.service.mjs +204 -0
  28. package/esm2020/framework/public-api.mjs +2 -1
  29. package/esm2020/framework/schema-form/schema-form-framework.mjs +5 -5
  30. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  31. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  32. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
  33. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +28 -67
  34. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
  35. package/esm2020/framework/side-nav/side-nav.component.mjs +116 -38
  36. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  37. package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
  38. package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
  39. package/esm2020/framework/top-bar/index.mjs +3 -1
  40. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  41. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
  42. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
  43. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  44. package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
  45. package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
  46. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
  47. package/esm2020/layout/layout.service.mjs +12 -2
  48. package/esm2020/menu/menu-toggle.directive.mjs +7 -2
  49. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +4 -2
  50. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  51. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  52. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  53. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  54. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  55. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  56. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
  57. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  58. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
  59. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  60. package/fesm2015/theseam-ui-common-datatable.mjs +56 -10
  61. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  62. package/fesm2015/theseam-ui-common-framework.mjs +913 -164
  63. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  64. package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
  65. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  66. package/fesm2015/theseam-ui-common-layout.mjs +11 -2
  67. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  68. package/fesm2015/theseam-ui-common-menu.mjs +6 -1
  69. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  70. package/fesm2015/theseam-ui-common-table-cell-types.mjs +3 -1
  71. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  72. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  73. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
  74. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  75. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
  76. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  77. package/fesm2020/theseam-ui-common-datatable.mjs +56 -10
  78. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  79. package/fesm2020/theseam-ui-common-framework.mjs +915 -164
  80. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  81. package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
  82. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  83. package/fesm2020/theseam-ui-common-layout.mjs +11 -2
  84. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  85. package/fesm2020/theseam-ui-common-menu.mjs +6 -1
  86. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  87. package/fesm2020/theseam-ui-common-table-cell-types.mjs +3 -1
  88. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  89. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  90. package/framework/base-layout/base-layout.component.d.ts +4 -2
  91. package/framework/base-layout/base-layout.component.scss +18 -10
  92. package/framework/base-layout/base-layout.module.d.ts +11 -10
  93. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  94. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  95. package/framework/base-layout/index.d.ts +1 -0
  96. package/framework/base-layout/styles/_variables.scss +21 -0
  97. package/framework/nav/_nav-theme.scss +4 -0
  98. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  99. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  100. package/framework/nav/index.d.ts +5 -0
  101. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  102. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  103. package/framework/nav/nav-utils.d.ts +20 -0
  104. package/framework/nav/nav.models.d.ts +77 -0
  105. package/framework/nav/nav.module.d.ts +17 -0
  106. package/framework/nav/nav.service.d.ts +27 -0
  107. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  108. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  109. package/framework/nav/styles/_utilities.scss +3 -0
  110. package/framework/nav/styles/_variables.scss +2 -0
  111. package/framework/public-api.d.ts +1 -0
  112. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  113. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  114. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  115. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  116. package/framework/side-nav/side-nav.component.d.ts +13 -1
  117. package/framework/side-nav/side-nav.component.scss +0 -1
  118. package/framework/side-nav/side-nav.models.d.ts +7 -1
  119. package/framework/side-nav/side-nav.module.d.ts +1 -9
  120. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  121. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  122. package/framework/top-bar/index.d.ts +2 -0
  123. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  124. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  125. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  126. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  127. package/framework/top-bar/top-bar.component.d.ts +25 -3
  128. package/framework/top-bar/top-bar.component.scss +7 -2
  129. package/framework/top-bar/top-bar.module.d.ts +10 -8
  130. package/layout/layout.service.d.ts +9 -1
  131. package/menu/menu-toggle.directive.d.ts +2 -1
  132. package/package.json +2 -2
  133. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +57 -14
  134. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +33 -5
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9uYXYvbmF2LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQW1CekUsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQWMsRUFBRSxJQUFZO0lBQ2xFLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUE7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFjO0lBQ3RELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksS0FBSyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsSUFBYztJQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQTtBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQWM7SUFDdkQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUE7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFjO0lBQ3pELE9BQU8sZ0NBQWdDLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7QUFDNUcsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxJQUFjO0lBQzdELE9BQU8sdUJBQXVCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUN4RixDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUFDLElBQWM7SUFDNUQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFBO0tBQ2I7SUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakMsSUFBSSw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksK0JBQStCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUYsT0FBTyxJQUFJLENBQUE7U0FDWjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLElBQWM7SUFDOUQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sS0FBSyxDQUFBO0tBQ2I7SUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDakMsSUFBSSw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUE7U0FDWjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQWM7SUFDekQsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBQ3hGLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsSUFBYztJQUN2RCxPQUFPLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsS0FBaUI7SUFDMUQsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFBO0lBRWhDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBa0IsRUFBRSxFQUFFO1FBQ2pDLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFO1lBQ3pCLElBQUksdUJBQXVCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUN6QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3JCO1lBQ0QsSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUMzRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDLENBQUE7SUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFVixPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUFnQyxJQUFjLEVBQUUsSUFBTyxFQUFFLEtBQXVCO0lBQzNILElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQTtLQUMzQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQWdDLElBQWMsRUFBRSxJQUFPO0lBQ2xHLE9BQU8sZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsSUFBYztJQUM3RCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxJQUFJLENBQUE7S0FDWjtJQUVELElBQUksQ0FBQyxPQUFPLEdBQUc7UUFDYixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxLQUFLO1FBQ2YsT0FBTyxFQUFFLEtBQUs7S0FDRSxDQUFBO0lBRWxCLCtEQUErRDtJQUMvRCxPQUFPLElBQVcsQ0FBQTtBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQTJCLEVBQUUsS0FBMkI7SUFDL0YsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4RCxPQUFPLEtBQUssQ0FBQTtLQUNiO0lBRUQsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDckMsT0FBTyxLQUFLLENBQUE7S0FDYjtJQUVELElBQUksdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtRQUN0RixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQTtLQUNuQztTQUFNLElBQUksdUJBQXVCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTtRQUNqRyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQTtLQUNuQztTQUFNLElBQUksdUJBQXVCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtRQUM3RixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQTtLQUNuQztTQUFNLElBQUksdUJBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRTtRQUMzRixPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUE7S0FDaEU7U0FBTSxJQUFJLHVCQUF1QixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDL0YsT0FBTyxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUE7S0FDdkM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNQcm9wZXJ0eSwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7XG4gIElOYXZCYXNpYyxcbiAgSU5hdkJ1dHRvbixcbiAgSU5hdkRpdmlkZXIsXG4gIElOYXZJdGVtLFxuICBJTmF2SXRlbVN0YXRlLFxuICBJTmF2TGluayxcbiAgSU5hdlRpdGxlLFxuICBOYXZJdGVtQ2FuSGF2ZUNoaWxkcmVuLFxuICBOYXZJdGVtQ2FuSGF2ZVN0YXRlXG59IGZyb20gJy4vbmF2Lm1vZGVscydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAndGl0bGUnKTogaXRlbSBpcyBJTmF2VGl0bGVcbmV4cG9ydCBmdW5jdGlvbiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtOiBJTmF2SXRlbSwgdHlwZTogJ2RpdmlkZXInKTogaXRlbSBpcyBJTmF2RGl2aWRlclxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAnYmFzaWMnKTogaXRlbSBpcyBJTmF2QmFzaWNcbmV4cG9ydCBmdW5jdGlvbiBpc0hvcml6b250YWxOYXZJdGVtVHlwZShpdGVtOiBJTmF2SXRlbSwgdHlwZTogJ2xpbmsnKTogaXRlbSBpcyBJTmF2TGlua1xuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiAnYnV0dG9uJyk6IGl0ZW0gaXMgSU5hdkJ1dHRvblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW06IElOYXZJdGVtLCB0eXBlOiBzdHJpbmcpOiBpdGVtIGlzIElOYXZJdGVtIHtcbiAgcmV0dXJuIGl0ZW0uaXRlbVR5cGUgPT09IHR5cGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSG9yaXpvbnRhbE5hdkl0ZW1BY3RpdmUoaXRlbTogSU5hdkl0ZW0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGl0ZW0uX19zdGF0ZT8uYWN0aXZlID8/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL25hdi9uYXYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBd0IsYUFBYSxFQUE4QixNQUFNLGlCQUFpQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFMUUsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM5QixNQUFNLGFBQWEsQ0FBQTs7O0FBSXBCLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFQakIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQTtRQUloRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFBO1FBSzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDdkIsb0JBQW9CLEVBQUUsRUFD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SSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUVoRCxNQUFNLE9BQU8sR0FBd0I7Z0JBQ25DLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9CO0lBQ0gsQ0FBQzs7OEdBbE9VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFVybENyZWF0aW9uT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgYXJlU2FtZUhvcml6b250YWxOYXZJdGVtLFxuICBnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcCxcbiAgaG9yaXpvbnRhbE5hdkl0ZW1DYW5FeHBhbmQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQWN0aXZlQ2hpbGQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4sXG4gIGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZCxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbUFjdGl2ZSxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUsXG4gIHNldERlZmF1bHRIb3Jpem9udGFsTmF2SXRlbVN0YXRlLFxuICBzZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcFxufSBmcm9tICcuL25hdi11dGlscydcbmltcG9ydCB7IElOYXZJdGVtLCBJTmF2SXRlbVN0YXRlLCBJTmF2TGluaywgTmF2SXRlbVN0YXRlQ2hhbmdlZCB9IGZyb20gJy4vbmF2Lm1vZGVscydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1OYXZTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGluZ0NvdW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1sYXlvdXQvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL3RvcC1iYXIvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcm91dGVyL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS9pbmRleCdcbiJdfQ==
7
+ export * from './nav/index';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1sYXlvdXQvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL3RvcC1iYXIvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcm91dGVyL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vbmF2L2luZGV4J1xuIl19
@@ -52,14 +52,14 @@ export class TheSeamFramework extends Framework {
52
52
  'divider': TheSeamSchemaFormDividerComponent,
53
53
  'tel': TheSeamSchemaFormTelComponent,
54
54
  'tiled-select': TheSeamSchemaFormTiledSelectComponent
55
- // 'file': // TODO: Implement
56
55
  // 'date': // TODO: Implement
57
- // 'map': // TODO: Implement
58
- // 'wizard': // TODO: Implement
56
+ // 'file': // TODO: Implement
59
57
  // 'image': // TODO: Implement
58
+ // 'richtext': // TODO: Implement
60
59
  // 'tabs': // TODO: Implement
60
+ // 'wizard': // TODO: Implement
61
61
  // 'card': // TODO: Implement
62
- // 'richtext': // TODO: Implement
62
+ // 'map': // TODO: Implement
63
63
  };
64
64
  // console.log('TheSeamFramework', _overrides, this)
65
65
  if (_overrides) {
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
82
82
  type: Inject,
83
83
  args: [THESEAM_SCHEMA_FRAMEWORK_OVERRIDES]
84
84
  }] }]; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV0QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQTtBQUNoSSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQTtBQUM3SCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTtBQUNqSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7O0FBSXRELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFzQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRS9JLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBbUIsRUFBRSxxQkFBeUM7SUFDNUYsa0VBQWtFO0lBQ2xFLE1BQU0sVUFBVSxHQUF1QixNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUF1QixDQUFBO0lBQ2xHLE1BQU0sU0FBUyxHQUFHLE9BQU8scUJBQXFCLEtBQUssUUFBUTtRQUN6RCxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBRSxxQkFBcUIsQ0FBRSxDQUFBO0lBRTdCLHFDQUFxQztJQUVyQyxJQUFJLFNBQVMsRUFBRTtRQUNiLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2hDLG9DQUFvQztZQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQTthQUN4QztZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRTtnQkFDeEMsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTthQUM1RTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBR0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUEwQjdDLFlBQzBELFVBQWtEO1FBRTFHLEtBQUssRUFBRSxDQUFBO1FBNUJULFNBQUksR0FBRyxnQkFBZ0IsQ0FBQTtRQUV2QixjQUFTLEdBQUcsbUNBQW1DLENBQUE7UUFFL0MsWUFBTyxHQUFHO1lBQ1IsVUFBVSxFQUFFLGtDQUFrQztZQUM5Qyw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLHFDQUFxQztZQUMvQyxNQUFNLEVBQUUsK0JBQStCO1lBQ3ZDLFFBQVEsRUFBRSxnQ0FBZ0M7WUFDMUMsUUFBUSxFQUFFLGdDQUFnQztZQUMxQyxTQUFTLEVBQUUsaUNBQWlDO1lBQzVDLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsY0FBYyxFQUFFLHFDQUFxQztZQUVyRCw2QkFBNkI7WUFDN0IsNkJBQTZCO1lBQzdCLDRCQUE0QjtZQUM1QiwrQkFBK0I7WUFDL0IsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3Qiw2QkFBNkI7WUFDN0IsaUNBQWlDO1NBQ2xDLENBQUE7UUFPQyxvREFBb0Q7UUFFcEQsSUFBSSxVQUFVLEVBQUU7WUFDZCxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRTtnQkFDakMsb0NBQW9DO2dCQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzZHQXpDVSxnQkFBZ0Isa0JBMkJMLGtDQUFrQztpSEEzQjdDLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkE0Qk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgRnJhbWV3b3JrIH0gZnJvbSAnQGFqc2YvY29yZSdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWNoZWNrYm94L3NjaGVtYS1mb3JtLWNoZWNrYm94LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1pbnB1dC9zY2hlbWEtZm9ybS1pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLW51bWJlci9zY2hlbWEtZm9ybS1udW1iZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zZWxlY3Qvc2NoZW1hLWZvcm0tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0L3NjaGVtYS1mb3JtLXN1Ym1pdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1kaXZpZGVyL3NjaGVtYS1mb3JtLWRpdmlkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1UZWxDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10ZWwvc2NoZW1hLWZvcm0tdGVsLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtVGlsZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10aWxlZC1zZWxlY3Qvc2NoZW1hLWZvcm0tdGlsZWQtc2VsZWN0LmNvbXBvbmVudCdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtLWZyYW1ld29yay5jb21wb25lbnQnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuZXhwb3J0IHR5cGUgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtPdmVycmlkZXMgPSBPbWl0PEZyYW1ld29yaywgJ25hbWUnIHwgJ2ZyYW1ld29yaycgfCAnc3R5bGVzaGVldCcgfCAnc2NyaXB0cyc+XG5cbmV4cG9ydCBjb25zdCBUSEVTRUFNX1NDSEVNQV9GUkFNRVdPUktfT1ZFUlJJREVTID0gbmV3IEluamVjdGlvblRva2VuPFRoZVNlYW1TY2hlbWFGb3JtRnJhbWV3b3JrT3ZlcnJpZGVzPignVEhFU0VBTV9TQ0hFTUFfRlJBTUVXT1JLX09WRVJSSURFUycpXG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRGcmFtZXdvcmsodG9FeHRlbmQ6IEZyYW1ld29yaywgZXh0ZW5kRnJhbWV3b3JrT3JOYW1lOiBGcmFtZXdvcmsgfCBzdHJpbmcpOiB2b2lkIHtcbiAgLy8gY29uc29sZS5sb2coJ2V4dGVuZEZyYW1ld29yaycsIHRvRXh0ZW5kLCBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gIGNvbnN0IF9vdmVycmlkZXM6IEZyYW1ld29ya1tdIHwgbnVsbCA9IGluamVjdChGcmFtZXdvcmssIHsgb3B0aW9uYWw6IHRydWUgfSkgYXMgRnJhbWV3b3JrW10gfCBudWxsXG4gIGNvbnN0IG92ZXJyaWRlcyA9IHR5cGVvZiBleHRlbmRGcmFtZXdvcmtPck5hbWUgPT09ICdzdHJpbmcnXG4gICAgPyAoX292ZXJyaWRlcyB8fCBbXSkuZmlsdGVyKHggPT4geC5uYW1lID09PSBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gICAgOiBbIGV4dGVuZEZyYW1ld29ya09yTmFtZSBdXG5cbiAgLy8gY29uc29sZS5sb2coX292ZXJyaWRlcywgb3ZlcnJpZGVzKVxuXG4gIGlmIChvdmVycmlkZXMpIHtcbiAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIG92ZXJyaWRlcykge1xuICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdmcmFtZXdvcmsnKSkge1xuICAgICAgICB0b0V4dGVuZC5mcmFtZXdvcmsgPSBvdmVycmlkZS5mcmFtZXdvcmtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Byb3BlcnR5KG92ZXJyaWRlLCAnd2lkZ2V0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLndpZGdldHMgPSB7IC4uLnRvRXh0ZW5kLndpZGdldHMsIC4uLm92ZXJyaWRlLndpZGdldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzdHlsZXNoZWV0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLnN0eWxlc2hlZXRzID0geyAuLi50b0V4dGVuZC5zdHlsZXNoZWV0cywgLi4ub3ZlcnJpZGUuc3R5bGVzaGVldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzY3JpcHRzJykpIHtcbiAgICAgICAgdG9FeHRlbmQuc2NyaXB0cyA9IHsgLi4udG9FeHRlbmQuc2NyaXB0cywgLi4ub3ZlcnJpZGUuc2NyaXB0cyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVTZWFtRnJhbWV3b3JrIGV4dGVuZHMgRnJhbWV3b3JrIHtcbiAgbmFtZSA9ICdzZWFtLWZyYW1ld29yaydcblxuICBmcmFtZXdvcmsgPSBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudFxuXG4gIHdpZGdldHMgPSB7XG4gICAgJ2NoZWNrYm94JzogVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCxcbiAgICAvLyAnc3VibWl0JzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRDb21wb25lbnQsXG4gICAgJ3N1Ym1pdCc6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQsXG4gICAgJ3RleHQnOiBUaGVTZWFtU2NoZW1hRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICdudW1iZXInOiBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCxcbiAgICAnc2VsZWN0JzogVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQsXG4gICAgJ2RpdmlkZXInOiBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQsXG4gICAgJ3RlbCc6IFRoZVNlYW1TY2hlbWFGb3JtVGVsQ29tcG9uZW50LFxuICAgICd0aWxlZC1zZWxlY3QnOiBUaGVTZWFtU2NoZW1hRm9ybVRpbGVkU2VsZWN0Q29tcG9uZW50XG5cbiAgICAvLyAnZmlsZSc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICdkYXRlJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ21hcCc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICd3aXphcmQnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAnaW1hZ2UnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAndGFicyc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICdjYXJkJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ3JpY2h0ZXh0JzogLy8gVE9ETzogSW1wbGVtZW50XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fU0NIRU1BX0ZSQU1FV09SS19PVkVSUklERVMpIF9vdmVycmlkZXM/OiBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya092ZXJyaWRlc1tdXG4gICkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIGNvbnNvbGUubG9nKCdUaGVTZWFtRnJhbWV3b3JrJywgX292ZXJyaWRlcywgdGhpcylcblxuICAgIGlmIChfb3ZlcnJpZGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIF9vdmVycmlkZXMpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICAgIGlmIChoYXNQcm9wZXJ0eShvdmVycmlkZSwgJ3dpZGdldHMnKSkge1xuICAgICAgICAgIHRoaXMud2lkZ2V0cyA9IHsgLi4udGhpcy53aWRnZXRzLCAuLi5vdmVycmlkZS53aWRnZXRzIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV0QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQTtBQUNoSSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQTtBQUMxSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQTtBQUM3SCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQTtBQUNqSCxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQTtBQUUzSSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7O0FBSXRELE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUFzQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRS9JLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBbUIsRUFBRSxxQkFBeUM7SUFDNUYsa0VBQWtFO0lBQ2xFLE1BQU0sVUFBVSxHQUF1QixNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUF1QixDQUFBO0lBQ2xHLE1BQU0sU0FBUyxHQUFHLE9BQU8scUJBQXFCLEtBQUssUUFBUTtRQUN6RCxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBRSxxQkFBcUIsQ0FBRSxDQUFBO0lBRTdCLHFDQUFxQztJQUVyQyxJQUFJLFNBQVMsRUFBRTtRQUNiLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2hDLG9DQUFvQztZQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQTthQUN4QztZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsRUFBRTtnQkFDeEMsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTthQUM1RTtZQUVELElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDcEMsUUFBUSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTthQUNoRTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBR0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUEwQjdDLFlBQzBELFVBQWtEO1FBRTFHLEtBQUssRUFBRSxDQUFBO1FBNUJULFNBQUksR0FBRyxnQkFBZ0IsQ0FBQTtRQUV2QixjQUFTLEdBQUcsbUNBQW1DLENBQUE7UUFFL0MsWUFBTyxHQUFHO1lBQ1IsVUFBVSxFQUFFLGtDQUFrQztZQUM5Qyw4Q0FBOEM7WUFDOUMsUUFBUSxFQUFFLHFDQUFxQztZQUMvQyxNQUFNLEVBQUUsK0JBQStCO1lBQ3ZDLFFBQVEsRUFBRSxnQ0FBZ0M7WUFDMUMsUUFBUSxFQUFFLGdDQUFnQztZQUMxQyxTQUFTLEVBQUUsaUNBQWlDO1lBQzVDLEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsY0FBYyxFQUFFLHFDQUFxQztZQUVyRCw2QkFBNkI7WUFDN0IsNkJBQTZCO1lBQzdCLDhCQUE4QjtZQUM5QixpQ0FBaUM7WUFDakMsNkJBQTZCO1lBQzdCLCtCQUErQjtZQUMvQiw2QkFBNkI7WUFDN0IsNEJBQTRCO1NBQzdCLENBQUE7UUFPQyxvREFBb0Q7UUFFcEQsSUFBSSxVQUFVLEVBQUU7WUFDZCxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRTtnQkFDakMsb0NBQW9DO2dCQUNwQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7aUJBQ3hEO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzZHQXpDVSxnQkFBZ0Isa0JBMkJMLGtDQUFrQztpSEEzQjdDLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkE0Qk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgRnJhbWV3b3JrIH0gZnJvbSAnQGFqc2YvY29yZSdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWNoZWNrYm94L3NjaGVtYS1mb3JtLWNoZWNrYm94LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1pbnB1dC9zY2hlbWEtZm9ybS1pbnB1dC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLW51bWJlci9zY2hlbWEtZm9ybS1udW1iZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zZWxlY3Qvc2NoZW1hLWZvcm0tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0L3NjaGVtYS1mb3JtLXN1Ym1pdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1kaXZpZGVyL3NjaGVtYS1mb3JtLWRpdmlkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1UZWxDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10ZWwvc2NoZW1hLWZvcm0tdGVsLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtVGlsZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS10aWxlZC1zZWxlY3Qvc2NoZW1hLWZvcm0tdGlsZWQtc2VsZWN0LmNvbXBvbmVudCdcblxuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL3NjaGVtYS1mb3JtLWZyYW1ld29yay5jb21wb25lbnQnXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuZXhwb3J0IHR5cGUgVGhlU2VhbVNjaGVtYUZvcm1GcmFtZXdvcmtPdmVycmlkZXMgPSBPbWl0PEZyYW1ld29yaywgJ25hbWUnIHwgJ2ZyYW1ld29yaycgfCAnc3R5bGVzaGVldCcgfCAnc2NyaXB0cyc+XG5cbmV4cG9ydCBjb25zdCBUSEVTRUFNX1NDSEVNQV9GUkFNRVdPUktfT1ZFUlJJREVTID0gbmV3IEluamVjdGlvblRva2VuPFRoZVNlYW1TY2hlbWFGb3JtRnJhbWV3b3JrT3ZlcnJpZGVzPignVEhFU0VBTV9TQ0hFTUFfRlJBTUVXT1JLX09WRVJSSURFUycpXG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRGcmFtZXdvcmsodG9FeHRlbmQ6IEZyYW1ld29yaywgZXh0ZW5kRnJhbWV3b3JrT3JOYW1lOiBGcmFtZXdvcmsgfCBzdHJpbmcpOiB2b2lkIHtcbiAgLy8gY29uc29sZS5sb2coJ2V4dGVuZEZyYW1ld29yaycsIHRvRXh0ZW5kLCBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gIGNvbnN0IF9vdmVycmlkZXM6IEZyYW1ld29ya1tdIHwgbnVsbCA9IGluamVjdChGcmFtZXdvcmssIHsgb3B0aW9uYWw6IHRydWUgfSkgYXMgRnJhbWV3b3JrW10gfCBudWxsXG4gIGNvbnN0IG92ZXJyaWRlcyA9IHR5cGVvZiBleHRlbmRGcmFtZXdvcmtPck5hbWUgPT09ICdzdHJpbmcnXG4gICAgPyAoX292ZXJyaWRlcyB8fCBbXSkuZmlsdGVyKHggPT4geC5uYW1lID09PSBleHRlbmRGcmFtZXdvcmtPck5hbWUpXG4gICAgOiBbIGV4dGVuZEZyYW1ld29ya09yTmFtZSBdXG5cbiAgLy8gY29uc29sZS5sb2coX292ZXJyaWRlcywgb3ZlcnJpZGVzKVxuXG4gIGlmIChvdmVycmlkZXMpIHtcbiAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIG92ZXJyaWRlcykge1xuICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdmcmFtZXdvcmsnKSkge1xuICAgICAgICB0b0V4dGVuZC5mcmFtZXdvcmsgPSBvdmVycmlkZS5mcmFtZXdvcmtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1Byb3BlcnR5KG92ZXJyaWRlLCAnd2lkZ2V0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLndpZGdldHMgPSB7IC4uLnRvRXh0ZW5kLndpZGdldHMsIC4uLm92ZXJyaWRlLndpZGdldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzdHlsZXNoZWV0cycpKSB7XG4gICAgICAgIHRvRXh0ZW5kLnN0eWxlc2hlZXRzID0geyAuLi50b0V4dGVuZC5zdHlsZXNoZWV0cywgLi4ub3ZlcnJpZGUuc3R5bGVzaGVldHMgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzUHJvcGVydHkob3ZlcnJpZGUsICdzY3JpcHRzJykpIHtcbiAgICAgICAgdG9FeHRlbmQuc2NyaXB0cyA9IHsgLi4udG9FeHRlbmQuc2NyaXB0cywgLi4ub3ZlcnJpZGUuc2NyaXB0cyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVTZWFtRnJhbWV3b3JrIGV4dGVuZHMgRnJhbWV3b3JrIHtcbiAgbmFtZSA9ICdzZWFtLWZyYW1ld29yaydcblxuICBmcmFtZXdvcmsgPSBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudFxuXG4gIHdpZGdldHMgPSB7XG4gICAgJ2NoZWNrYm94JzogVGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCxcbiAgICAvLyAnc3VibWl0JzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRDb21wb25lbnQsXG4gICAgJ3N1Ym1pdCc6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQsXG4gICAgJ3RleHQnOiBUaGVTZWFtU2NoZW1hRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICdudW1iZXInOiBUaGVTZWFtU2NoZW1hRm9ybU51bWJlckNvbXBvbmVudCxcbiAgICAnc2VsZWN0JzogVGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQsXG4gICAgJ2RpdmlkZXInOiBUaGVTZWFtU2NoZW1hRm9ybURpdmlkZXJDb21wb25lbnQsXG4gICAgJ3RlbCc6IFRoZVNlYW1TY2hlbWFGb3JtVGVsQ29tcG9uZW50LFxuICAgICd0aWxlZC1zZWxlY3QnOiBUaGVTZWFtU2NoZW1hRm9ybVRpbGVkU2VsZWN0Q29tcG9uZW50XG5cbiAgICAvLyAnZGF0ZSc6IC8vIFRPRE86IEltcGxlbWVudFxuICAgIC8vICdmaWxlJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ2ltYWdlJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ3JpY2h0ZXh0JzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ3RhYnMnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAnd2l6YXJkJzogLy8gVE9ETzogSW1wbGVtZW50XG4gICAgLy8gJ2NhcmQnOiAvLyBUT0RPOiBJbXBsZW1lbnRcbiAgICAvLyAnbWFwJzogLy8gVE9ETzogSW1wbGVtZW50XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fU0NIRU1BX0ZSQU1FV09SS19PVkVSUklERVMpIF9vdmVycmlkZXM/OiBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya092ZXJyaWRlc1tdXG4gICkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIGNvbnNvbGUubG9nKCdUaGVTZWFtRnJhbWV3b3JrJywgX292ZXJyaWRlcywgdGhpcylcblxuICAgIGlmIChfb3ZlcnJpZGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IG92ZXJyaWRlIG9mIF9vdmVycmlkZXMpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ292ZXJyaWRlJywgb3ZlcnJpZGUpXG4gICAgICAgIGlmIChoYXNQcm9wZXJ0eShvdmVycmlkZSwgJ3dpZGdldHMnKSkge1xuICAgICAgICAgIHRoaXMud2lkZ2V0cyA9IHsgLi4udGhpcy53aWRnZXRzLCAuLi5vdmVycmlkZS53aWRnZXRzIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19