@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
@@ -1,21 +1,13 @@
1
1
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
2
2
  import { OnDestroy } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
- import type { SeamIcon } from '@theseam/ui-common/icon';
4
+ import { SeamIcon } from '@theseam/ui-common/icon';
5
5
  import type { ThemeTypes } from '@theseam/ui-common/models';
6
6
  import { SideNavAccessor } from '../side-nav-tokens';
7
- import { ISideNavItem, SideNavItemMenuItemTooltipConfig } from '../side-nav.models';
7
+ import { ISideNavItem, SideNavItemBadgeTooltip, SideNavItemMenuItemTooltipConfig } from '../side-nav.models';
8
8
  import * as i0 from "@angular/core";
9
- export interface SideNavItemBadgeTooltip {
10
- tooltip?: string;
11
- class?: string;
12
- placement?: string;
13
- container?: string;
14
- disabled?: boolean;
15
- }
16
9
  export declare class SideNavItemComponent implements OnDestroy {
17
10
  private readonly _sideNav;
18
- private readonly _parent?;
19
11
  static ngAcceptInputType_hierLevel: NumberInput;
20
12
  static ngAcceptInputType_indentSize: NumberInput;
21
13
  static ngAcceptInputType_expanded: BooleanInput;
@@ -25,6 +17,7 @@ export declare class SideNavItemComponent implements OnDestroy {
25
17
  readonly faAngleLeft: import("@fortawesome/fontawesome-common-types").IconDefinition;
26
18
  itemType: 'divider' | 'basic' | 'link' | 'button' | 'title' | undefined | null;
27
19
  icon: SeamIcon | undefined | null;
20
+ hideEmptyIcon: boolean | undefined | null;
28
21
  label: string | undefined | null;
29
22
  active: boolean;
30
23
  set link(value: string | undefined | null);
@@ -60,12 +53,12 @@ export declare class SideNavItemComponent implements OnDestroy {
60
53
  get _isActiveCssClass(): boolean;
61
54
  get _attrDataHierLevel(): number;
62
55
  readonly childGroupAnimState$: Observable<string>;
63
- readonly compactAnimState$: Observable<string>;
64
- constructor(_sideNav: SideNavAccessor, _parent?: SideNavItemComponent | undefined);
56
+ constructor(_sideNav: SideNavAccessor);
65
57
  ngOnDestroy(): void;
66
58
  get hasChildren(): boolean;
67
59
  toggleChildren(): void;
68
60
  _linkClicked(): void;
69
- static ɵfac: i0.ɵɵFactoryDeclaration<SideNavItemComponent, [null, { optional: true; host: true; skipSelf: true; }]>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<SideNavItemComponent, "seam-side-nav-item", ["seamSideNavItem"], { "itemType": "itemType"; "icon": "icon"; "label": "label"; "active": "active"; "link": "link"; "queryParams": "queryParams"; "children": "children"; "hierLevel": "hierLevel"; "indentSize": "indentSize"; "expanded": "expanded"; "compact": "compact"; "isMobile": "isMobile"; "badgeText": "badgeText"; "badgeTheme": "badgeTheme"; "badgeSrContent": "badgeSrContent"; "badgeTooltip": "badgeTooltip"; "menuItemTooltipConfig": "menuItemTooltipConfig"; "menuItemTooltipDisabled": "menuItemTooltipDisabled"; }, {}, never, never, false, never>;
61
+ get showIconBlock(): boolean;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<SideNavItemComponent, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideNavItemComponent, "seam-side-nav-item", ["seamSideNavItem"], { "itemType": "itemType"; "icon": "icon"; "hideEmptyIcon": "hideEmptyIcon"; "label": "label"; "active": "active"; "link": "link"; "queryParams": "queryParams"; "children": "children"; "hierLevel": "hierLevel"; "indentSize": "indentSize"; "expanded": "expanded"; "compact": "compact"; "isMobile": "isMobile"; "badgeText": "badgeText"; "badgeTheme": "badgeTheme"; "badgeSrContent": "badgeSrContent"; "badgeTooltip": "badgeTooltip"; "menuItemTooltipConfig": "menuItemTooltipConfig"; "menuItemTooltipDisabled": "menuItemTooltipDisabled"; }, {}, never, never, true, never>;
71
64
  }
@@ -22,6 +22,10 @@ seam-side-nav-item {
22
22
  .nav-link {
23
23
  color: $seam-side-nav-item-color-active;
24
24
  }
25
+
26
+ .side-nav-btn {
27
+ color: $seam-side-nav-item-toggle-color-active;
28
+ }
25
29
  }
26
30
 
27
31
  .badge {
@@ -101,11 +105,11 @@ seam-side-nav-item {
101
105
 
102
106
  .side-nav-btn {
103
107
  font-weight: $font-weight-normal;
104
- color: $seam-side-nav-item-color;
108
+ color: $seam-side-nav-item-toggle-color;
105
109
  text-decoration: $link-decoration;
106
110
 
107
111
  @include hover {
108
- color: $seam-side-nav-item-bg-color-hover;
112
+ color: $seam-side-nav-item-toggle-color-hover;
109
113
  text-decoration: $link-hover-decoration;
110
114
  }
111
115
 
@@ -117,7 +121,7 @@ seam-side-nav-item {
117
121
 
118
122
  &:disabled,
119
123
  &.disabled {
120
- color: $seam-side-nav-item-disabled-color;
124
+ color: $seam-side-nav-item-toggle-disabled-color;
121
125
  pointer-events: none;
122
126
  }
123
127
  }
@@ -140,8 +144,6 @@ seam-side-nav-item {
140
144
  }
141
145
 
142
146
  .side-nav-item--toggle-btn {
143
- color: $seam-side-nav-item-color-active;
144
-
145
147
  .svg-inline--fa {
146
148
  transition: 100ms ease-in-out transform;
147
149
  }
@@ -1,12 +1,14 @@
1
1
  import { BooleanInput } from '@angular/cdk/coercion';
2
- import { EventEmitter } from '@angular/core';
2
+ import { EventEmitter, TemplateRef } from '@angular/core';
3
+ import { SeamIcon } from '@theseam/ui-common/icon';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class SideNavToggleComponent {
5
6
  static ngAcceptInputType_expanded: BooleanInput;
6
- faBars: import("@fortawesome/fontawesome-common-types").IconDefinition;
7
7
  expanded: boolean;
8
+ toggleIcon: SeamIcon | undefined | null;
9
+ toggleTpl: TemplateRef<any> | undefined | null;
8
10
  toggleExpand: EventEmitter<void>;
9
11
  toggle(): void;
10
12
  static ɵfac: i0.ɵɵFactoryDeclaration<SideNavToggleComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<SideNavToggleComponent, "seam-side-nav-toggle", never, { "expanded": "expanded"; }, { "toggleExpand": "toggleExpand"; }, never, ["*"], false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideNavToggleComponent, "seam-side-nav-toggle", never, { "expanded": "expanded"; "toggleIcon": "toggleIcon"; "toggleTpl": "toggleTpl"; }, { "toggleExpand": "toggleExpand"; }, never, ["*"], true, never>;
12
14
  }
@@ -4,12 +4,14 @@ seam-side-nav-toggle {
4
4
  display: flex;
5
5
  flex-direction: row;
6
6
  flex-shrink: 0;
7
+ align-items: center;
8
+ background: $seam-side-nav-toggle-bg-color;
7
9
 
8
10
  // &.side-nav-toggle--compact {
9
11
  // width: 50px;
10
12
  // }
11
13
  position: relative;
12
- height: 45px;
14
+ height: $seam-side-nav-toggle-height;
13
15
  width: 100%;
14
16
 
15
17
  //
@@ -18,11 +20,6 @@ seam-side-nav-toggle {
18
20
  }
19
21
 
20
22
  .side-nav-toggle--btn {
21
- // flex: 0 0 auto;
22
- // align-self: flex-end;
23
- position: absolute;
24
- top: 0;
25
- right: 5px;
26
23
  color: $seam-side-nav-toggle-btn-color;
27
24
 
28
25
  seam-icon {
@@ -3,6 +3,7 @@ import { TemplatePortal } from '@angular/cdk/portal';
3
3
  import { EventEmitter, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
4
4
  import { BehaviorSubject, Observable } from 'rxjs';
5
5
  import { TheSeamLayoutService } from '@theseam/ui-common/layout';
6
+ import { SeamIcon } from '@theseam/ui-common/icon';
6
7
  import { ITheSeamBaseLayoutNav, ITheSeamBaseLayoutRef } from '../base-layout/index';
7
8
  import { ISideNavItem, SideNavItemMenuItemTooltipConfig } from './side-nav.models';
8
9
  import { TheSeamSideNavService } from './side-nav.service';
@@ -15,16 +16,24 @@ export declare class SideNavComponent implements OnInit, OnDestroy, ITheSeamBase
15
16
  private readonly _baseLayoutRef;
16
17
  static ngAcceptInputType_hasHeaderToggle: BooleanInput;
17
18
  private readonly _ngUnsubscribe;
19
+ faBars: import("@fortawesome/fontawesome-common-types").IconDefinition;
18
20
  _sideNavExpand: string;
19
21
  hasHeaderToggle: boolean;
22
+ toggleIcon: SeamIcon | null | undefined;
23
+ toggleTpl: TemplateRef<any> | undefined | null;
20
24
  get items(): ISideNavItem[];
21
25
  set items(value: ISideNavItem[]);
22
26
  private _items;
23
27
  readonly items$: Observable<ISideNavItem[]>;
28
+ hideEmptyIcon: boolean | null | undefined;
29
+ indentSize: number;
24
30
  get expanded(): boolean;
25
31
  set expanded(value: boolean);
26
32
  private _expanded;
27
33
  readonly expanded$: Observable<boolean>;
34
+ expandOrigin: 'left' | 'right' | 'top' | 'bottom';
35
+ expandHeight: string;
36
+ expandWidth: string;
28
37
  get overlay(): boolean;
29
38
  set overlay(value: boolean);
30
39
  private _overlay;
@@ -37,6 +46,8 @@ export declare class SideNavComponent implements OnInit, OnDestroy, ITheSeamBase
37
46
  readonly isMobile$: Observable<boolean>;
38
47
  readonly sideNavExpandedState$: Observable<string>;
39
48
  _backdropHidden: BehaviorSubject<boolean>;
49
+ _sideBarHeaderTpl?: TemplateRef<any> | null;
50
+ _sideBarHeaderPortal?: TemplatePortal;
40
51
  _sideBarFooterTpl?: TemplateRef<any> | null;
41
52
  _sideBarFooterPortal?: TemplatePortal;
42
53
  constructor(_viewContainerRef: ViewContainerRef, _layout: TheSeamLayoutService, _sideNav: TheSeamSideNavService, _baseLayoutRef: ITheSeamBaseLayoutRef);
@@ -47,6 +58,7 @@ export declare class SideNavComponent implements OnInit, OnDestroy, ITheSeamBase
47
58
  toggle(): void;
48
59
  animateStart(): void;
49
60
  animateEnd(): void;
61
+ get expandOriginTransform(): string | null;
50
62
  static ɵfac: i0.ɵɵFactoryDeclaration<SideNavComponent, [null, null, null, { optional: true; }]>;
51
- static ɵcmp: i0.ɵɵComponentDeclaration<SideNavComponent, "seam-side-nav", never, { "hasHeaderToggle": "hasHeaderToggle"; "items": "items"; "expanded": "expanded"; "overlay": "overlay"; "menuItemTooltipConfig": "menuItemTooltipConfig"; }, { "toggleExpand": "toggleExpand"; }, ["_sideBarFooterTpl"], never, false, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<SideNavComponent, "seam-side-nav", never, { "hasHeaderToggle": "hasHeaderToggle"; "toggleIcon": "toggleIcon"; "toggleTpl": "toggleTpl"; "items": "items"; "hideEmptyIcon": "hideEmptyIcon"; "indentSize": "indentSize"; "expanded": "expanded"; "expandOrigin": "expandOrigin"; "expandHeight": "expandHeight"; "expandWidth": "expandWidth"; "overlay": "overlay"; "menuItemTooltipConfig": "menuItemTooltipConfig"; }, { "toggleExpand": "toggleExpand"; }, ["_sideBarHeaderTpl", "_sideBarFooterTpl"], never, true, never>;
52
64
  }
@@ -30,7 +30,6 @@ seam-side-nav,
30
30
 
31
31
  overflow: hidden;
32
32
 
33
- //
34
33
  .side-nav-content {
35
34
  display: flex;
36
35
  flex-direction: column;
@@ -1,7 +1,6 @@
1
1
  import { IsActiveMatchOptions, UrlCreationOptions } from '@angular/router';
2
2
  import { SeamIcon } from '@theseam/ui-common/icon';
3
3
  import type { ThemeTypes } from '@theseam/ui-common/models';
4
- import { SideNavItemBadgeTooltip } from './side-nav-item/side-nav-item.component';
5
4
  export interface ISideNavItemState {
6
5
  active: boolean;
7
6
  expanded: boolean;
@@ -62,6 +61,13 @@ export interface SideNavItemStateChanged {
62
61
  prevValue: any;
63
62
  newValue: any;
64
63
  }
64
+ export interface SideNavItemBadgeTooltip {
65
+ tooltip?: string;
66
+ class?: string;
67
+ placement?: string;
68
+ container?: string;
69
+ disabled?: boolean;
70
+ }
65
71
  /**
66
72
  * When `never`, menu item tooltip is always disabled.
67
73
  * When `always`, menu item tooltip is always enabled.
@@ -2,16 +2,8 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./side-nav-item/side-nav-item.component";
3
3
  import * as i2 from "./side-nav.component";
4
4
  import * as i3 from "./side-nav-toggle/side-nav-toggle.component";
5
- import * as i4 from "@angular/common";
6
- import * as i5 from "@angular/router";
7
- import * as i6 from "@theseam/ui-common/icon";
8
- import * as i7 from "@angular/cdk/a11y";
9
- import * as i8 from "@theseam/ui-common/scrollbar";
10
- import * as i9 from "@theseam/ui-common/layout";
11
- import * as i10 from "@ng-bootstrap/ng-bootstrap";
12
- import * as i11 from "@angular/cdk/portal";
13
5
  export declare class TheSeamSideNavModule {
14
6
  static ɵfac: i0.ɵɵFactoryDeclaration<TheSeamSideNavModule, never>;
15
- static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamSideNavModule, [typeof i1.SideNavItemComponent, typeof i2.SideNavComponent, typeof i3.SideNavToggleComponent], [typeof i4.CommonModule, typeof i5.RouterModule, typeof i6.TheSeamIconModule, typeof i7.A11yModule, typeof i8.TheSeamScrollbarModule, typeof i9.TheSeamLayoutModule, typeof i10.NgbTooltipModule, typeof i11.PortalModule], [typeof i1.SideNavItemComponent, typeof i2.SideNavComponent, typeof i3.SideNavToggleComponent]>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamSideNavModule, never, [typeof i1.SideNavItemComponent, typeof i2.SideNavComponent, typeof i3.SideNavToggleComponent], [typeof i1.SideNavItemComponent, typeof i2.SideNavComponent, typeof i3.SideNavToggleComponent]>;
16
8
  static ɵinj: i0.ɵɵInjectorDeclaration<TheSeamSideNavModule>;
17
9
  }
@@ -1,29 +1,39 @@
1
- $seam-side-nav-bg-color: $gray-200;
1
+ $seam-side-nav-bg-color: $gray-200 !default;
2
+ $seam-side-nav-bg: $seam-side-nav-bg-color !default;
2
3
 
3
- $seam-side-nav-background-bg-color: rgba($dark, 0.6);
4
+ // Backdrop
5
+ $seam-side-nav-background-bg-color: rgba($dark, 0.6) !default;
4
6
 
5
7
  // Group
6
- $seam-side-nav-group-bg-variation-amount: 3%;
8
+ $seam-side-nav-group-bg-variation-amount: 3% !default;
7
9
 
8
10
  // Item
9
- $seam-side-nav-item-bg-color-active: $white;
10
- $seam-side-nav-item-bg-color-hover: rgba($primary, 0.4);
11
+ $seam-side-nav-item-bg-color-active: $white !default;
12
+ $seam-side-nav-item-bg-color-hover: rgba($primary, 0.4) !default;
11
13
 
12
- $seam-side-nav-item-color: $black;
13
- $seam-side-nav-item-color-active: $black;
14
+ $seam-side-nav-item-color: $black !default;
15
+ $seam-side-nav-item-color-active: $black !default;
14
16
 
15
- $seam-side-nav-item-disabled-color: $text-muted;
17
+ $seam-side-nav-item-disabled-color: $text-muted !default;
18
+
19
+ $seam-side-nav-item-toggle-color: $seam-side-nav-item-color !default;
20
+ $seam-side-nav-item-toggle-color-active: $seam-side-nav-item-toggle-color !default;
21
+ $seam-side-nav-item-toggle-color-hover: $seam-side-nav-item-toggle-color !default;
22
+
23
+ $seam-side-nav-item-toggle-disabled-color: darken($seam-side-nav-item-toggle-color, 20%) !default;
16
24
 
17
25
  // Divider
18
- $seam-side-nav-divider-color: $gray-500;
19
- $seam-side-nav-divider-size: 1px;
26
+ $seam-side-nav-divider-color: $gray-500 !default;
27
+ $seam-side-nav-divider-size: 1px !default;
20
28
 
21
29
  // Title
22
- $seam-side-nav-title-color: $black;
30
+ $seam-side-nav-title-color: $black !default;
23
31
 
24
- $seam-side-nav-title-font-size: 24px;
32
+ $seam-side-nav-title-font-size: 24px !default;
25
33
 
26
- $seam-side-nav-title-padding-left: 10px;
34
+ $seam-side-nav-title-padding-left: 10px !default;
27
35
 
28
36
  // Toggle
29
- $seam-side-nav-toggle-btn-color: $seam-side-nav-item-color;
37
+ $seam-side-nav-toggle-bg-color: $seam-side-nav-bg-color !default;
38
+ $seam-side-nav-toggle-btn-color: $seam-side-nav-item-color !default;
39
+ $seam-side-nav-toggle-height: 45px !default;
@@ -16,6 +16,12 @@ $seam-side-nav-item-color-active: $seam-side-nav-item-color !default;
16
16
 
17
17
  $seam-side-nav-item-disabled-color: darken($seam-side-nav-item-color, 20%) !default;
18
18
 
19
+ $seam-side-nav-item-toggle-color: $seam-side-nav-item-color !default;
20
+ $seam-side-nav-item-toggle-color-active: $seam-side-nav-item-toggle-color !default;
21
+ $seam-side-nav-item-toggle-color-hover: $seam-side-nav-item-toggle-color !default;
22
+
23
+ $seam-side-nav-item-toggle-disabled-color: darken($seam-side-nav-item-toggle-color, 20%) !default;
24
+
19
25
  // Divider
20
26
  $seam-side-nav-divider-color: darken($seam-side-nav-bg-color, 10%) !default;
21
27
  $seam-side-nav-divider-size: 1px !default;
@@ -28,4 +34,6 @@ $seam-side-nav-title-font-size: 24px !default;
28
34
  $seam-side-nav-title-padding-left: 10px !default;
29
35
 
30
36
  // Toggle
37
+ $seam-side-nav-toggle-bg-color: $seam-side-nav-bg-color !default;
31
38
  $seam-side-nav-toggle-btn-color: $seam-side-nav-item-color !default;
39
+ $seam-side-nav-toggle-height: 45px !default;
@@ -1,5 +1,7 @@
1
1
  export * from './top-bar-menu-button/top-bar-menu-button.component';
2
2
  export * from './top-bar-title/top-bar-title.component';
3
+ export * from './top-bar-compact-menu-btn-detail.directive';
4
+ export * from './top-bar-nav-toggle-btn-detail.directive';
3
5
  export * from './top-bar-item.directive';
4
6
  export * from './top-bar-menu-btn-detail.directive';
5
7
  export * from './top-bar-menu.directive';
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TopBarCompactMenuBtnDetailDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TopBarCompactMenuBtnDetailDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TopBarCompactMenuBtnDetailDirective, "[seamTopBarCompactMenuBtnDetail]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -1,8 +1,11 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ export type TopBarPosition = 'left' | 'right' | 'center';
3
4
  export declare class TopBarItemDirective {
4
5
  template: TemplateRef<any>;
6
+ position: TopBarPosition;
7
+ set seamTopBarItem(value: any);
5
8
  constructor(template: TemplateRef<any>);
6
9
  static ɵfac: i0.ɵɵFactoryDeclaration<TopBarItemDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<TopBarItemDirective, "[seamTopBarItem]", never, {}, {}, never, never, false, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TopBarItemDirective, "[seamTopBarItem]", never, { "seamTopBarItem": "seamTopBarItem"; }, {}, never, never, false, never>;
8
11
  }
@@ -9,7 +9,10 @@ declare const _TopBarMenuButtonMixinBase: CanDisableCtor & typeof TopBarMenuButt
9
9
  export declare class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase {
10
10
  static ngAcceptInputType_compact: BooleanInput;
11
11
  faAngleDown: import("@fortawesome/fontawesome-common-types").IconDefinition;
12
- detailTpl: TemplateRef<object> | undefined | null;
12
+ /** Custom template to show in desktop mode. No default. */
13
+ detailTpl: TemplateRef<any> | undefined | null;
14
+ /** Custom template to show in mobile mode. Defaults to icon. */
15
+ compactDetailTpl: TemplateRef<any> | undefined | null;
13
16
  compact: boolean;
14
17
  /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */
15
18
  profileIcon: SeamIcon | undefined | null;
@@ -18,6 +21,6 @@ export declare class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBas
18
21
  get _hasRoundedClass(): boolean;
19
22
  get _hasBtnLinkClass(): boolean;
20
23
  static ɵfac: i0.ɵɵFactoryDeclaration<TopBarMenuButtonComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<TopBarMenuButtonComponent, "button[seamTopBarMenuButton]", ["seamButton"], { "disabled": "disabled"; "detailTpl": "detailTpl"; "compact": "compact"; "profileIcon": "profileIcon"; }, {}, never, never, false, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<TopBarMenuButtonComponent, "button[seamTopBarMenuButton]", ["seamButton"], { "disabled": "disabled"; "detailTpl": "detailTpl"; "compactDetailTpl": "compactDetailTpl"; "compact": "compact"; "profileIcon": "profileIcon"; }, {}, never, never, false, never>;
22
25
  }
23
26
  export {};
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TopBarNavToggleBtnDetailDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TopBarNavToggleBtnDetailDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TopBarNavToggleBtnDetailDirective, "[seamTopBarNavToggleBtnDetail]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -1,11 +1,13 @@
1
1
  import { BooleanInput } from '@angular/cdk/coercion';
2
2
  import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
3
- import { Observable } from 'rxjs';
3
+ import { BehaviorSubject, Observable } from 'rxjs';
4
4
  import { TheSeamLayoutService } from '@theseam/ui-common/layout';
5
5
  import { SeamIcon } from '@theseam/ui-common/icon';
6
+ import { TopBarCompactMenuBtnDetailDirective } from './top-bar-compact-menu-btn-detail.directive';
6
7
  import { TopBarItemDirective } from './top-bar-item.directive';
7
8
  import { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive';
8
9
  import { TopBarMenuDirective } from './top-bar-menu.directive';
10
+ import { TopBarNavToggleBtnDetailDirective } from './top-bar-nav-toggle-btn-detail.directive';
9
11
  import * as i0 from "@angular/core";
10
12
  /**
11
13
  * Top bar of an app.
@@ -31,6 +33,10 @@ export declare class TheSeamTopBarComponent implements OnDestroy, AfterContentIn
31
33
  _topBarItems?: QueryList<TopBarItemDirective>;
32
34
  /** @ignore */
33
35
  _topBarMenuBtnDetailTpl?: TopBarMenuBtnDetailDirective | null;
36
+ /** @ignore */
37
+ _topBarCompactMenuBtnDetailTpl?: TopBarCompactMenuBtnDetailDirective | null;
38
+ /** @ignore */
39
+ _topBarNavToggleBtnDetailTpl?: TopBarNavToggleBtnDetailDirective | null;
34
40
  /** Logo displayed on the top bar. */
35
41
  logo: string | undefined | null;
36
42
  /** Logo displayed on the top bar when a smaller logo is needed. */
@@ -47,10 +53,26 @@ export declare class TheSeamTopBarComponent implements OnDestroy, AfterContentIn
47
53
  titleText: string | undefined | null;
48
54
  /** Sub Title text displayed when `hasTitle` is true. The sub title will be less prominent. */
49
55
  subTitleText: string | undefined | null;
56
+ /** Determines if the top bar button should be displayed. */
57
+ hasTopBarMenuButton: boolean;
50
58
  /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */
51
59
  profileIcon: SeamIcon | undefined | null;
60
+ /** Icon to display for mobile nav toggle. Defaults to faBars. */
61
+ toggleIcon: SeamIcon | undefined | null;
62
+ /** Display nav toggle on either left or right side of top bar. Defaults to left. */
63
+ navToggleAlign: 'left' | 'right' | undefined | null;
64
+ /** @ignore */
65
+ _leftItems: BehaviorSubject<TopBarItemDirective[]>;
66
+ /** Additional templates to display on left side of top bar */
67
+ leftItems$: Observable<TopBarItemDirective[]>;
68
+ /** @ignore */
69
+ _centerItems: BehaviorSubject<TopBarItemDirective[]>;
70
+ /** Additional templates to display in center of top bar */
71
+ centerItems$: Observable<TopBarItemDirective[]>;
52
72
  /** @ignore */
53
- _items$?: Observable<TopBarItemDirective[]>;
73
+ _rightItems: BehaviorSubject<TopBarItemDirective[]>;
74
+ /** Additional templates to display on right side of top bar */
75
+ rightItems$: Observable<TopBarItemDirective[]>;
54
76
  /** @ignore */
55
77
  isMobile$: Observable<boolean>;
56
78
  constructor(_layout: TheSeamLayoutService);
@@ -59,5 +81,5 @@ export declare class TheSeamTopBarComponent implements OnDestroy, AfterContentIn
59
81
  /** @ignore */
60
82
  ngAfterContentInit(): void;
61
83
  static ɵfac: i0.ɵɵFactoryDeclaration<TheSeamTopBarComponent, never>;
62
- static ɵcmp: i0.ɵɵComponentDeclaration<TheSeamTopBarComponent, "seam-top-bar", ["seamTopBar"], { "logo": "logo"; "logoSm": "logoSm"; "logoHref": "logoHref"; "logoHrefTarget": "logoHrefTarget"; "logoRoute": "logoRoute"; "hasTitle": "hasTitle"; "titleText": "titleText"; "subTitleText": "subTitleText"; "profileIcon": "profileIcon"; }, {}, ["_topBarMenu", "_topBarMenuBtnDetailTpl", "_topBarItems"], never, false, never>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<TheSeamTopBarComponent, "seam-top-bar", ["seamTopBar"], { "logo": "logo"; "logoSm": "logoSm"; "logoHref": "logoHref"; "logoHrefTarget": "logoHrefTarget"; "logoRoute": "logoRoute"; "hasTitle": "hasTitle"; "titleText": "titleText"; "subTitleText": "subTitleText"; "hasTopBarMenuButton": "hasTopBarMenuButton"; "profileIcon": "profileIcon"; "toggleIcon": "toggleIcon"; "navToggleAlign": "navToggleAlign"; }, {}, ["_topBarMenu", "_topBarMenuBtnDetailTpl", "_topBarCompactMenuBtnDetailTpl", "_topBarNavToggleBtnDetailTpl", "_topBarItems"], never, false, never>;
63
85
  }
@@ -34,6 +34,11 @@ seam-top-bar {
34
34
  }
35
35
  }
36
36
 
37
- .top-bar-icon-container {
38
- margin: auto 0;
37
+ .top-bar--left {
38
+ flex-grow: 1;
39
+ }
40
+
41
+ .top-bar-items {
42
+ display: flex;
43
+ align-items: center;
39
44
  }
@@ -5,15 +5,17 @@ import * as i3 from "./top-bar-menu-button/top-bar-menu-button.component";
5
5
  import * as i4 from "./top-bar-menu.directive";
6
6
  import * as i5 from "./top-bar-item.directive";
7
7
  import * as i6 from "./top-bar-menu-btn-detail.directive";
8
- import * as i7 from "@angular/common";
9
- import * as i8 from "@theseam/ui-common/layout";
10
- import * as i9 from "@theseam/ui-common/buttons";
11
- import * as i10 from "@theseam/ui-common/icon";
12
- import * as i11 from "@theseam/ui-common/menu";
13
- import * as i12 from "../base-layout/base-layout.module";
14
- import * as i13 from "@angular/router";
8
+ import * as i7 from "./top-bar-compact-menu-btn-detail.directive";
9
+ import * as i8 from "./top-bar-nav-toggle-btn-detail.directive";
10
+ import * as i9 from "@angular/common";
11
+ import * as i10 from "@theseam/ui-common/layout";
12
+ import * as i11 from "@theseam/ui-common/buttons";
13
+ import * as i12 from "@theseam/ui-common/icon";
14
+ import * as i13 from "@theseam/ui-common/menu";
15
+ import * as i14 from "../base-layout/base-layout.module";
16
+ import * as i15 from "@angular/router";
15
17
  export declare class TheSeamTopBarModule {
16
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TheSeamTopBarModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamTopBarModule, [typeof i1.TheSeamTopBarComponent, typeof i2.TopBarTitleComponent, typeof i3.TopBarMenuButtonComponent, typeof i4.TopBarMenuDirective, typeof i5.TopBarItemDirective, typeof i6.TopBarMenuBtnDetailDirective], [typeof i7.CommonModule, typeof i8.TheSeamLayoutModule, typeof i9.TheSeamButtonsModule, typeof i10.TheSeamIconModule, typeof i11.TheSeamMenuModule, typeof i12.TheSeamBaseLayoutModule, typeof i13.RouterModule], [typeof i1.TheSeamTopBarComponent, typeof i3.TopBarMenuButtonComponent, typeof i4.TopBarMenuDirective, typeof i11.TheSeamMenuModule, typeof i5.TopBarItemDirective, typeof i6.TopBarMenuBtnDetailDirective]>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamTopBarModule, [typeof i1.TheSeamTopBarComponent, typeof i2.TopBarTitleComponent, typeof i3.TopBarMenuButtonComponent, typeof i4.TopBarMenuDirective, typeof i5.TopBarItemDirective, typeof i6.TopBarMenuBtnDetailDirective, typeof i7.TopBarCompactMenuBtnDetailDirective, typeof i8.TopBarNavToggleBtnDetailDirective], [typeof i9.CommonModule, typeof i10.TheSeamLayoutModule, typeof i11.TheSeamButtonsModule, typeof i12.TheSeamIconModule, typeof i13.TheSeamMenuModule, typeof i14.TheSeamBaseLayoutModule, typeof i15.RouterModule], [typeof i1.TheSeamTopBarComponent, typeof i3.TopBarMenuButtonComponent, typeof i4.TopBarMenuDirective, typeof i13.TheSeamMenuModule, typeof i5.TopBarItemDirective, typeof i6.TopBarMenuBtnDetailDirective, typeof i7.TopBarCompactMenuBtnDetailDirective, typeof i8.TopBarNavToggleBtnDetailDirective]>;
18
20
  static ɵinj: i0.ɵɵInjectorDeclaration<TheSeamTopBarModule>;
19
21
  }
@@ -5,11 +5,19 @@ import * as i0 from "@angular/core";
5
5
  export declare class TheSeamLayoutService {
6
6
  private _media;
7
7
  /**
8
- * Is app a mobile-like size.
8
+ * Observes if app is a mobile-like size.
9
+ * Default mobile breakpoint is <= 599px,
10
+ * use setMobileBreakpoint() to change size.
9
11
  */
10
12
  isMobile$: Observable<boolean>;
13
+ private _mobileBreakpoint;
14
+ mobileBreakpoint$: Observable<MediaQueryAliases>;
11
15
  constructor(_media: MediaObserver);
12
16
  observe(alias: MediaQueryAliases): Observable<boolean>;
17
+ /**
18
+ * Update breakpoint observed by isMobile$
19
+ */
20
+ setMobileBreakpoint(alias: MediaQueryAliases): void;
13
21
  static ɵfac: i0.ɵɵFactoryDeclaration<TheSeamLayoutService, never>;
14
22
  static ɵprov: i0.ɵɵInjectableDeclaration<TheSeamLayoutService>;
15
23
  }
@@ -30,6 +30,7 @@ export declare class MenuToggleDirective implements OnDestroy, AfterContentInit
30
30
  set positions(val: ConnectionPositionPair[]);
31
31
  get positions(): ConnectionPositionPair[];
32
32
  private _positions;
33
+ readonly menuToggle: EventEmitter<boolean>;
33
34
  seamMenuTogglePositionsOffsetY: number;
34
35
  /** Event emitted when the associated menu is opened. */
35
36
  readonly menuOpened: EventEmitter<void>;
@@ -78,5 +79,5 @@ export declare class MenuToggleDirective implements OnDestroy, AfterContentInit
78
79
  /** Handles the cases where the user hovers over the trigger. */
79
80
  private _handleHover;
80
81
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuToggleDirective, [null, null, null, null, { optional: true; }, { optional: true; self: true; }, { optional: true; }]>;
81
- static ɵdir: i0.ɵɵDirectiveDeclaration<MenuToggleDirective, "[seamMenuToggle]", ["seamMenuToggle"], { "menu": "seamMenuToggle"; "positions": "positions"; "seamMenuTogglePositionsOffsetY": "seamMenuTogglePositionsOffsetY"; }, { "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, never, false, never>;
82
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MenuToggleDirective, "[seamMenuToggle]", ["seamMenuToggle"], { "menu": "seamMenuToggle"; "positions": "positions"; "seamMenuTogglePositionsOffsetY": "seamMenuTogglePositionsOffsetY"; }, { "menuToggle": "menuToggle"; "menuOpened": "menuOpened"; "menuClosed": "menuClosed"; }, never, never, false, never>;
82
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theseam/ui-common",
3
- "version": "0.4.18",
3
+ "version": "0.4.19-beta.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^15.0.0",
6
6
  "@angular/common": "^15.0.0",
@@ -18,7 +18,7 @@
18
18
  "dependencies": {
19
19
  "@fortawesome/angular-fontawesome": "~0.9.0",
20
20
  "@marklb/file-type": "~10.6.5",
21
- "@marklb/ngx-datatable": "18.0.3",
21
+ "@marklb/ngx-datatable": "~18.0.5",
22
22
  "@marklb/ngx-loading": "^10.0.0",
23
23
  "@ng-select/ng-select": "~6.1.0",
24
24
  "@ng-bootstrap/ng-bootstrap": "~9.1.1",
@@ -142,17 +142,19 @@
142
142
  .datatable-header,
143
143
  .datatable-body {
144
144
  .datatable-row-left {
145
- background-color: $datatable-background;
146
- background-position: 100% 0;
147
- background-repeat: repeat-y;
148
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==);
145
+ background-color: $datatable-left-background;
146
+ }
147
+
148
+ .datatable-row-even .datatable-row-left {
149
+ background-color: $datatable-left-row-even-background;
149
150
  }
150
151
 
151
152
  .datatable-row-right {
152
- background-position: 0 0;
153
- background-color: $datatable-background;
154
- background-repeat: repeat-y;
155
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQI12PQkNdi1VTQ5gbSwkAsDQARLAIGtOSFUAAAAABJRU5ErkJggg==);
153
+ background-color: $datatable-right-background;
154
+ }
155
+
156
+ .datatable-row-even .datatable-row-right {
157
+ background-color: $datatable-right-row-even-background;
156
158
  }
157
159
  }
158
160
 
@@ -268,6 +270,9 @@
268
270
  color: $datatable-body-cell-color;
269
271
  font-size: $datatable-body-cell-font-size;
270
272
  font-weight: $datatable-body-cell-font-weight;
273
+ .datatable-body-cell-label {
274
+ height: 100%;
275
+ }
271
276
  }
272
277
  .datatable-body-group-cell {
273
278
  vertical-align: top;
@@ -476,13 +481,51 @@
476
481
  // }
477
482
 
478
483
  .datatable-action-button {
479
- color: $datatable-action-button-color;
480
- background-color: $datatable-action-button-background;
481
- box-shadow: $datatable-action-button-box-shadow;
482
- &:hover {
483
- color: $datatable-action-button-hover-color;
484
- background-color: $datatable-action-button-hover-background;
484
+ flex: 0 0 auto;
485
+
486
+ @if $datatable-action-button-outline {
487
+ @include button-outline-variant(
488
+ $color: $datatable-action-button-outline-color,
489
+ $color-hover: $datatable-action-button-outline-color-hover,
490
+ $active-background: $datatable-action-button-outline-active-background,
491
+ $active-border: $datatable-action-button-outline-active-border
492
+ );
493
+
494
+ // allow variable override for outline button bg
495
+ background: $datatable-action-button-outline-background;
496
+
497
+ } @else {
498
+ @include button-variant(
499
+ $background: $datatable-action-button-background,
500
+ $border: $datatable-action-button-border,
501
+ $hover-background: $datatable-action-button-hover-background,
502
+ $hover-border: $datatable-action-button-hover-border,
503
+ $active-background: $datatable-action-button-active-background,
504
+ $active-border: $datatable-action-button-active-border
505
+ );
506
+
507
+ // allow variable override for solid button color
508
+ color: $datatable-action-button-color;
509
+
510
+ &:hover {
511
+ color: $datatable-action-button-hover-color;
512
+ }
513
+
514
+ &:not(:disabled):not(.disabled):active {
515
+ color: $datatable-action-button-active-color;
516
+ }
485
517
  }
518
+
519
+ box-shadow: $datatable-action-button-box-shadow;
520
+ font-size: $datatable-action-button-font-size;
521
+ line-height: $datatable-action-button-line-height;
522
+
523
+ width: $datatable-action-button-width;
524
+ height: $datatable-action-button-height;
525
+
526
+ padding: $datatable-action-button-padding;
527
+ border-radius: $datatable-action-button-border-radius;
528
+ text-align: $datatable-action-button-text-align;
486
529
  }
487
530
 
488
531
  /**