@taon-dev/ui 21.0.12 → 21.0.13

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 (85) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/ui-browser.mjs +140 -27
  3. package/browser/fesm2022/ui-browser.mjs.map +1 -1
  4. package/browser/package.json +1 -1
  5. package/browser/types/ui-browser.d.ts +40 -11
  6. package/browser-prod/fesm2022/ui-browser-prod.mjs +140 -27
  7. package/browser-prod/fesm2022/ui-browser-prod.mjs.map +1 -1
  8. package/browser-prod/package.json +1 -1
  9. package/browser-prod/types/ui-browser-prod.d.ts +40 -11
  10. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  11. package/full-dts/index._auto-generated_.d.ts +1 -0
  12. package/full-dts/taon-admin-layout/taon-admin-layout.component.d.ts +2 -0
  13. package/full-dts/taon-admin-layout/taon-admin-layout.models.d.ts +15 -5
  14. package/full-dts/taon-admin-layout/taon-admin-menu-context.d.ts +9 -0
  15. package/full-dts/taon-admin-layout/taon-admin-page-tabs.component.d.ts +2 -0
  16. package/full-dts/taon-draggable-button-panel/taon-draggable-button-panel.component.d.ts +8 -2
  17. package/html/assets/generated/pwa/html-pwa.html +53 -53
  18. package/html/lib/taon-admin-layout/taon-admin-layout.component.html +106 -67
  19. package/html/lib/taon-admin-layout/taon-admin-page-tabs.component.html +12 -7
  20. package/html/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.html +100 -88
  21. package/lib/build-info._auto-generated_.d.ts +1 -1
  22. package/lib/build-info._auto-generated_.js +1 -1
  23. package/lib/index._auto-generated_.d.ts +1 -0
  24. package/lib/index._auto-generated_.js +1 -0
  25. package/lib/index._auto-generated_.js.map +1 -1
  26. package/lib/package.json +1 -1
  27. package/lib/taon-admin-layout/index.d.ts +1 -1
  28. package/lib/taon-admin-layout/index.js +2 -2
  29. package/lib/taon-admin-layout/taon-admin-layout.models.d.ts +12 -5
  30. package/lib/taon-admin-layout/taon-admin-layout.models.js +35 -16
  31. package/lib/taon-admin-layout/taon-admin-layout.models.js.map +1 -1
  32. package/lib/taon-admin-layout/taon-admin-menu-context.d.ts +8 -0
  33. package/lib/taon-admin-layout/taon-admin-menu-context.js +36 -0
  34. package/lib/taon-admin-layout/taon-admin-menu-context.js.map +1 -0
  35. package/lib/taon-datatable/index.d.ts +1 -1
  36. package/lib/taon-datatable/index.js +2 -2
  37. package/lib/taon-draggable-button-panel/index.d.ts +1 -1
  38. package/lib/taon-draggable-button-panel/index.js +2 -2
  39. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  40. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  41. package/lib-esm/lib/index._auto-generated_.d.ts +1 -0
  42. package/lib-esm/lib/index._auto-generated_.js +1 -0
  43. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  44. package/lib-esm/lib/taon-admin-layout/index.d.ts +1 -1
  45. package/lib-esm/lib/taon-admin-layout/index.js +1 -1
  46. package/lib-esm/lib/taon-admin-layout/taon-admin-layout.models.d.ts +12 -5
  47. package/lib-esm/lib/taon-admin-layout/taon-admin-layout.models.js +35 -15
  48. package/lib-esm/lib/taon-admin-layout/taon-admin-layout.models.js.map +1 -1
  49. package/lib-esm/lib/taon-admin-layout/taon-admin-menu-context.d.ts +8 -0
  50. package/lib-esm/lib/taon-admin-layout/taon-admin-menu-context.js +27 -0
  51. package/lib-esm/lib/taon-admin-layout/taon-admin-menu-context.js.map +1 -0
  52. package/lib-esm/lib/taon-datatable/index.d.ts +1 -1
  53. package/lib-esm/lib/taon-datatable/index.js +1 -1
  54. package/lib-esm/lib/taon-draggable-button-panel/index.d.ts +1 -1
  55. package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
  56. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  57. package/lib-prod/build-info._auto-generated_.js +1 -1
  58. package/lib-prod/index._auto-generated_.d.ts +1 -0
  59. package/lib-prod/index._auto-generated_.js +1 -0
  60. package/lib-prod/index._auto-generated_.js.map +1 -1
  61. package/lib-prod/package.json +1 -1
  62. package/lib-prod/taon-admin-layout/index.d.ts +1 -1
  63. package/lib-prod/taon-admin-layout/index.js +1 -1
  64. package/lib-prod/taon-admin-layout/taon-admin-layout.models.d.ts +12 -5
  65. package/lib-prod/taon-admin-layout/taon-admin-layout.models.js +35 -15
  66. package/lib-prod/taon-admin-layout/taon-admin-layout.models.js.map +1 -1
  67. package/lib-prod/taon-admin-layout/taon-admin-menu-context.d.ts +8 -0
  68. package/lib-prod/taon-admin-layout/taon-admin-menu-context.js +27 -0
  69. package/lib-prod/taon-admin-layout/taon-admin-menu-context.js.map +1 -0
  70. package/lib-prod/taon-datatable/index.d.ts +1 -1
  71. package/lib-prod/taon-datatable/index.js +1 -1
  72. package/lib-prod/taon-draggable-button-panel/index.d.ts +1 -1
  73. package/lib-prod/taon-draggable-button-panel/index.js +1 -1
  74. package/package.json +1 -1
  75. package/scss/lib/taon-admin-layout/taon-admin-layout.component.scss +5 -0
  76. package/scss/lib/taon-admin-layout/taon-admin-page-tabs.component.scss +8 -1
  77. package/scss/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.scss +6 -3
  78. package/websql/fesm2022/ui-websql.mjs +140 -27
  79. package/websql/fesm2022/ui-websql.mjs.map +1 -1
  80. package/websql/package.json +1 -1
  81. package/websql/types/ui-websql.d.ts +40 -11
  82. package/websql-prod/fesm2022/ui-websql-prod.mjs +140 -27
  83. package/websql-prod/fesm2022/ui-websql-prod.mjs.map +1 -1
  84. package/websql-prod/package.json +1 -1
  85. package/websql-prod/types/ui-websql-prod.d.ts +40 -11
@@ -5,13 +5,18 @@
5
5
  mat-tab-nav-bar
6
6
  [tabPanel]="tabPanel">
7
7
  @for (route of level.routes; track route.path) {
8
- <a
9
- mat-tab-link
10
- class="cursor-pointer"
11
- [active]="isActive(level, route)"
12
- (click)="tabClicked(level, route)">
13
- {{ label(route) }}
14
- </a>
8
+ @if (menuContext.isVisible(route)) {
9
+ <a
10
+ mat-tab-link
11
+ class="cursor-pointer"
12
+ [disabled]="menuContext.isDisabled(route)"
13
+ [class.admin-tab-disabled]="menuContext.isDisabled(route)"
14
+ [matTooltip]="menuContext.disabledTooltip(route)"
15
+ [active]="isActive(level, route)"
16
+ (click)="tabClicked(level, route)">
17
+ {{ label(route) }}
18
+ </a>
19
+ }
15
20
  }
16
21
  </nav>
17
22
  }
@@ -1,96 +1,108 @@
1
- @if (currentState() === State.CLICKABLE_BUTTON) {
2
- <!-- #region BUTTON - works on desktop AND mobile -->
3
- <button
4
- class="taon-admin-panel-toogle-open-button"
5
- mat-icon-button
6
- type="button"
7
- [matTooltip]="title"
8
- (click)="open()">
9
- <mat-icon>
10
- {{ buttonIcon }}
11
- </mat-icon>
12
- </button>
13
- <!-- #endregion -->
14
- } @else {
15
- <section
16
- cdkDrag
17
- [cdkDragDisabled]="!isDraggingEnabled()"
18
- class="taon-draggable-panel"
19
- [class.taon-window]="effectiveState() === State.WINDOW"
20
- [class.taon-window-full]="effectiveState() !== State.WINDOW"
21
- [class.taon-fullscreen]="
22
- effectiveState() === State.FULL_SCREEN_DRAGGABLE ||
23
- effectiveState() === State.FULL_SCREEN_LOCKED
24
- ">
25
- <header
26
- cdkDragHandle
27
- (dblclick)="toogleFullscreen($event)"
28
- class="taon-window-bar">
29
- <div class="flex min-w-0 flex-1 items-center gap-2">
30
- <mat-icon class="text-gray-500"> admin_panel_settings </mat-icon>
1
+ @if (currentState() === State.CLICKABLE_BUTTON || !autoHideIcon) {
2
+ @if (iconTemplate) {
3
+ <ng-container [ngTemplateOutlet]="iconTemplate" />
4
+ } @else {
5
+ <button
6
+ class="taon-admin-panel-toogle-open-button"
7
+ [class.taon-admin-panel-toogle-button-dimmer-opacity]="
8
+ effectiveState() !== State.CLICKABLE_BUTTON
9
+ "
10
+ mat-icon-button
11
+ type="button"
12
+ [matTooltip]="title"
13
+ (click)="toggle()">
14
+ <mat-icon>{{ buttonIcon }}</mat-icon>
15
+ </button>
16
+ }
17
+ }
31
18
 
32
- <span class="truncate font-medium">
33
- {{ title }}
34
- </span>
35
- </div>
19
+ <section
20
+ cdkDrag
21
+ [hidden]="currentState() === State.CLICKABLE_BUTTON"
22
+ [cdkDragDisabled]="!isDraggingEnabled()"
23
+ class="taon-draggable-panel"
24
+ [class.taon-window]="effectiveState() === State.WINDOW"
25
+ [class.taon-window-full]="effectiveState() !== State.WINDOW"
26
+ [class.taon-fullscreen]="
27
+ effectiveState() === State.FULL_SCREEN_DRAGGABLE ||
28
+ effectiveState() === State.FULL_SCREEN_LOCKED
29
+ ">
30
+ <header
31
+ cdkDragHandle
32
+ (dblclick)="toogleFullscreen($event)"
33
+ class="taon-window-bar">
34
+ <!-- LEFT -->
35
+ <div class="flex min-w-0 flex-1 items-center gap-2">
36
+ <mat-icon class="text-gray-500"> admin_panel_settings </mat-icon>
36
37
 
37
- <!-- #region window buttons -->
38
- <div class="flex shrink-0 items-center">
39
- <!-- Desktop-only window/fullscreen controls -->
40
- @if (!forceFullScreen()) {
41
- @if (currentState() !== State.WINDOW) {
42
- <button
43
- mat-icon-button
44
- type="button"
45
- matTooltip="Window mode"
46
- (click)="windowMode()">
47
- <mat-icon>filter_none</mat-icon>
48
- </button>
49
- }
38
+ <span class="truncate font-medium">
39
+ {{ title }}
40
+ </span>
41
+ </div>
42
+
43
+ <!-- EXACT CENTER -->
44
+ <div class="flex min-w-0 items-center justify-center">
45
+ @if (headerCenterTemplate) {
46
+ <ng-container [ngTemplateOutlet]="headerCenterTemplate" />
47
+ }
48
+ </div>
50
49
 
51
- @if (currentState() === State.WINDOW) {
52
- <button
53
- mat-icon-button
54
- type="button"
55
- matTooltip="Full screen"
56
- (click)="fullScreenDraggable()">
57
- <mat-icon>fullscreen</mat-icon>
58
- </button>
59
- }
50
+ <!-- #region window buttons -->
51
+ <div class="flex shrink-0 items-center">
52
+ <!-- Desktop-only window/fullscreen controls -->
53
+ @if (!forceFullScreen()) {
54
+ @if (currentState() !== State.WINDOW) {
55
+ <button
56
+ mat-icon-button
57
+ type="button"
58
+ matTooltip="Window mode"
59
+ (click)="windowMode()">
60
+ <mat-icon>filter_none</mat-icon>
61
+ </button>
62
+ }
60
63
 
61
- @if (currentState() !== State.FULL_SCREEN_LOCKED) {
62
- <button
63
- mat-icon-button
64
- type="button"
65
- matTooltip="Lock full screen"
66
- (click)="lockFullScreen()">
67
- <mat-icon>lock_open</mat-icon>
68
- </button>
69
- } @else {
70
- <button
71
- mat-icon-button
72
- type="button"
73
- matTooltip="Unlock"
74
- (click)="fullScreenDraggable()">
75
- <mat-icon>lock</mat-icon>
76
- </button>
77
- }
64
+ @if (currentState() === State.WINDOW) {
65
+ <button
66
+ mat-icon-button
67
+ type="button"
68
+ matTooltip="Full screen"
69
+ (click)="fullScreenDraggable()">
70
+ <mat-icon>fullscreen</mat-icon>
71
+ </button>
78
72
  }
79
73
 
80
- <!-- ALWAYS available -->
81
- <button
82
- mat-icon-button
83
- type="button"
84
- matTooltip="Close admin panel"
85
- (click)="returnToButton()">
86
- <mat-icon>close</mat-icon>
87
- </button>
88
- </div>
89
- <!-- #endregion -->
90
- </header>
74
+ @if (currentState() !== State.FULL_SCREEN_LOCKED) {
75
+ <button
76
+ mat-icon-button
77
+ type="button"
78
+ matTooltip="Lock full screen"
79
+ (click)="lockFullScreen()">
80
+ <mat-icon>lock_open</mat-icon>
81
+ </button>
82
+ } @else {
83
+ <button
84
+ mat-icon-button
85
+ type="button"
86
+ matTooltip="Unlock"
87
+ (click)="fullScreenDraggable()">
88
+ <mat-icon>lock</mat-icon>
89
+ </button>
90
+ }
91
+ }
91
92
 
92
- <div class="min-h-0 flex-1 overflow-hidden">
93
- <ng-content />
93
+ <!-- ALWAYS available -->
94
+ <button
95
+ mat-icon-button
96
+ type="button"
97
+ matTooltip="Close admin panel"
98
+ (click)="returnToButton()">
99
+ <mat-icon>close</mat-icon>
100
+ </button>
94
101
  </div>
95
- </section>
96
- }
102
+ <!-- #endregion -->
103
+ </header>
104
+
105
+ <div class="min-h-0 flex-1 overflow-hidden">
106
+ <ng-content />
107
+ </div>
108
+ </section>
@@ -21,4 +21,4 @@ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
21
  /**
22
22
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
23
  */
24
- export declare const CURRENT_PACKAGE_VERSION = "21.0.12";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.13";
@@ -25,6 +25,6 @@ exports.CURRENT_PACKAGE_TAON_VERSION = 'v21';
25
25
  /**
26
26
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
27
27
  */
28
- exports.CURRENT_PACKAGE_VERSION = '21.0.12';
28
+ exports.CURRENT_PACKAGE_VERSION = '21.0.13';
29
29
  // THIS FILE IS GENERATED - DO NOT MODIFY
30
30
  //# sourceMappingURL=build-info._auto-generated_.js.map
@@ -3,6 +3,7 @@ export * from './my-organization-proj';
3
3
  export * from './start-cli';
4
4
  export * from './i18n/lib.translation';
5
5
  export * from './taon-admin-layout/taon-admin-layout.models';
6
+ export * from './taon-admin-layout/taon-admin-menu-context';
6
7
  export * from './taon-backoffice-notifications/taon-backoffice-notifications.models';
7
8
  export * from './taon-confirm-dialog/taon-confirm-dialog.models';
8
9
  export * from './taon-datatable/taon-datatable.models';
@@ -26,6 +26,7 @@ __exportStar(require("./start-cli"), exports);
26
26
  __exportStar(require("./i18n/lib.translation"), exports);
27
27
  /* */
28
28
  __exportStar(require("./taon-admin-layout/taon-admin-layout.models"), exports);
29
+ __exportStar(require("./taon-admin-layout/taon-admin-menu-context"), exports);
29
30
  /* */
30
31
  /* */
31
32
  /* */
@@ -1 +1 @@
1
- {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,cAAc;AACd,kEAAkE;AAClE,wCAAwC;AACxC,wDAAwD;AACxD,kCAAkC;AAClC,gEAA8C;AAC9C,yDAAuC;AACvC,8CAA4B;AAC5B,KAAK;AACL,yDAAuC;AACvC,KAAK;AACL,+EAA6D;AAC7D,KAAK;AACL,KAAK;AACL,KAAK;AACL,uGAAqF;AACrF,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,mFAAiE;AACjE,KAAK;AACL,yEAAuD;AACvD,KAAK;AACL,KAAK;AACL,mGAAiF;AACjF,KAAK;AACL,iHAA+F"}
1
+ {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,cAAc;AACd,kEAAkE;AAClE,wCAAwC;AACxC,wDAAwD;AACxD,kCAAkC;AAClC,gEAA8C;AAC9C,yDAAuC;AACvC,8CAA4B;AAC5B,KAAK;AACL,yDAAuC;AACvC,KAAK;AACL,+EAA6D;AAC7D,8EAA4D;AAC5D,KAAK;AACL,KAAK;AACL,KAAK;AACL,uGAAqF;AACrF,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,mFAAiE;AACjE,KAAK;AACL,yEAAuD;AACvD,KAAK;AACL,KAAK;AACL,mGAAiF;AACjF,KAAK;AACL,iHAA+F"}
package/lib/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@taon-dev/ui/lib",
3
- "version": "21.0.12"
3
+ "version": "21.0.13"
4
4
  }
@@ -1 +1 @@
1
- export declare function dummy1791907259767(): void;
1
+ export declare function dummy1792197551990(): void;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1791907259767 = dummy1791907259767;
4
- function dummy1791907259767() { }
3
+ exports.dummy1792197551990 = dummy1792197551990;
4
+ function dummy1792197551990() { }
5
5
  //# sourceMappingURL=index.js.map
@@ -8,16 +8,23 @@ export interface TaonAdminRoute extends Route {
8
8
  loadAdminChildren?: () => Promise<TaonAdminRoutes>;
9
9
  }
10
10
  export type TaonAdminRoutes = TaonAdminRoute[];
11
- type MaterialIcon = 'manage_accounts' | 'dashboard' | 'home' | 'settings' | 'admin_panel_settings' | 'person' | 'people' | 'group' | 'groups' | 'account_circle' | 'login' | 'logout' | 'lock' | 'lock_open' | 'security' | 'key' | 'verified_user' | 'shield' | 'email' | 'mail' | 'inbox' | 'send' | 'campaign' | 'notifications' | 'article' | 'description' | 'edit' | 'add' | 'delete' | 'delete_forever' | 'restore_from_trash' | 'content_copy' | 'save' | 'search' | 'filter_list' | 'refresh' | 'sync' | 'more_vert' | 'more_horiz' | 'menu' | 'close' | 'check' | 'done' | 'warning' | 'error' | 'info' | 'help' | 'visibility' | 'visibility_off' | 'folder' | 'folder_open' | 'upload' | 'download' | 'cloud' | 'cloud_upload' | 'storage' | 'database' | 'dns' | 'code' | 'terminal' | 'api' | 'extension' | 'web' | 'language' | 'public' | 'link' | 'shopping_cart' | 'shopping_bag' | 'store' | 'inventory' | 'inventory_2' | 'payments' | 'payment' | 'credit_card' | 'receipt' | 'receipt_long' | 'sell' | 'local_shipping' | 'analytics' | 'bar_chart' | 'pie_chart' | 'query_stats' | 'monitoring' | 'trending_up' | 'history' | 'schedule' | 'calendar_month' | 'build' | 'tune' | 'apps' | 'widgets' | 'category' | 'supervisor_account' | 'approval' | 'family_group' | 'recent_actors' | 'perm_media';
12
- export interface TaonAdminRouteOptions {
11
+ export interface TaonAdminMenuCallbacks<TContext = unknown> {
12
+ isDisabled?: (params: {
13
+ context: TContext;
14
+ }) => boolean;
15
+ isDisabledTooltip?: (params: {
16
+ context: TContext;
17
+ }) => string;
18
+ isVisible?: (params: {
19
+ context: TContext;
20
+ }) => boolean;
21
+ }
22
+ export interface TaonAdminRouteOptions<TContext = unknown> extends TaonAdminMenuCallbacks<TContext> {
13
23
  path: string;
14
24
  color?: string;
15
25
  loader: () => Promise<TaonAdminRoutes>;
16
26
  menuItem?: string;
17
- icon?: MaterialIcon;
18
27
  expandable?: boolean;
19
28
  hideInNavigation?: boolean;
20
29
  }
21
30
  export declare const TaonBaselineBackofficeOutletName = "admin";
22
- export declare function adminLazyRoute(options: TaonAdminRouteOptions): TaonAdminRoute;
23
- export {};
@@ -1,21 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaonBaselineBackofficeOutletName = void 0;
4
- exports.adminLazyRoute = adminLazyRoute;
5
4
  exports.TaonBaselineBackofficeOutletName = 'admin';
6
- function adminLazyRoute(options) {
7
- const { path, loader, menuItem, icon, color, expandable, hideInNavigation } = options;
8
- return {
9
- path,
10
- data: {
11
- menuItem,
12
- color,
13
- icon,
14
- expandable,
15
- hideInNavigation,
16
- },
17
- loadChildren: loader,
18
- loadAdminChildren: loader,
19
- };
20
- }
5
+ /* */
6
+ /* */
7
+ /* */
8
+ /* */
9
+ /* */
10
+ /* */
11
+ /* */
12
+ /* */
13
+ /* */
14
+ /* */
15
+ /* */
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ /* */
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
21
40
  //# sourceMappingURL=taon-admin-layout.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taon-admin-layout.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAgIA,wCAkBC;AApBY,QAAA,gCAAgC,GAAG,OAAO,CAAC;AAExD,SAAgB,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,GACzE,OAAO,CAAC;IAEV,OAAO;QACL,IAAI;QAEJ,IAAI,EAAE;YACJ,QAAQ;YACR,KAAK;YACL,IAAI;YACJ,UAAU;YACV,gBAAgB;SACjB;QAED,YAAY,EAAE,MAAM;QACpB,iBAAiB,EAAE,MAAM;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"taon-admin-layout.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAsCa,QAAA,gCAAgC,GAAG,OAAO,CAAC;AAExD,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK"}
@@ -0,0 +1,8 @@
1
+ import { Route } from '@angular/router';
2
+ export declare class TaonAdminMenuContext {
3
+ readonly context: import("@angular/core").WritableSignal<unknown>;
4
+ isVisible(route: Route): boolean;
5
+ isDisabled(route: Route): boolean;
6
+ disabledTooltip(route: Route): string;
7
+ private callbacks;
8
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TaonAdminMenuContext = void 0;
10
+ const core_1 = require("@angular/core");
11
+ let TaonAdminMenuContext = class TaonAdminMenuContext {
12
+ context = (0, core_1.signal)(undefined);
13
+ isVisible(route) {
14
+ return (!route.data?.['hideInNavigation'] &&
15
+ this.callbacks(route)?.isVisible?.({ context: this.context() }) !== false);
16
+ }
17
+ isDisabled(route) {
18
+ return (this.callbacks(route)?.isDisabled?.({ context: this.context() }) === true);
19
+ }
20
+ disabledTooltip(route) {
21
+ return this.isDisabled(route)
22
+ ? (this.callbacks(route)?.isDisabledTooltip?.({
23
+ context: this.context(),
24
+ }) ?? '')
25
+ : '';
26
+ }
27
+ callbacks(route) {
28
+ // Angular Route.data erases the application's context type at the router boundary.
29
+ return route.data;
30
+ }
31
+ };
32
+ exports.TaonAdminMenuContext = TaonAdminMenuContext;
33
+ exports.TaonAdminMenuContext = TaonAdminMenuContext = __decorate([
34
+ (0, core_1.Injectable)()
35
+ ], TaonAdminMenuContext);
36
+ //# sourceMappingURL=taon-admin-menu-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taon-admin-menu-context.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;;;;;;;AAAA,wCAAmD;AAM5C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACtB,OAAO,GAAG,IAAA,aAAM,EAAU,SAAS,CAAC,CAAC;IAE9C,SAAS,CAAC,KAAY;QACpB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,KAAK,CAC1E,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAY;QACrB,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,CAC1E,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAAY;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;gBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;aACxB,CAAC,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAEO,SAAS,CAAC,KAAY;QAC5B,mFAAmF;QACnF,OAAO,KAAK,CAAC,IAA0C,CAAC;IAC1D,CAAC;CACF,CAAA;AA5BY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,iBAAU,GAAE;GACA,oBAAoB,CA4BhC"}
@@ -1 +1 @@
1
- export declare function dummy1791907259832(): void;
1
+ export declare function dummy1792197552089(): void;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1791907259832 = dummy1791907259832;
4
- function dummy1791907259832() { }
3
+ exports.dummy1792197552089 = dummy1792197552089;
4
+ function dummy1792197552089() { }
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export declare function dummy1791907259854(): void;
1
+ export declare function dummy1792197552119(): void;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dummy1791907259854 = dummy1791907259854;
4
- function dummy1791907259854() { }
3
+ exports.dummy1792197552119 = dummy1792197552119;
4
+ function dummy1792197552119() { }
5
5
  //# sourceMappingURL=index.js.map
@@ -21,4 +21,4 @@ export declare const CURRENT_PACKAGE_TAON_VERSION = "v21";
21
21
  /**
22
22
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
23
23
  */
24
- export declare const CURRENT_PACKAGE_VERSION = "21.0.12";
24
+ export declare const CURRENT_PACKAGE_VERSION = "21.0.13";
@@ -22,6 +22,6 @@ export const CURRENT_PACKAGE_TAON_VERSION = 'v21';
22
22
  /**
23
23
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
24
24
  */
25
- export const CURRENT_PACKAGE_VERSION = '21.0.12';
25
+ export const CURRENT_PACKAGE_VERSION = '21.0.13';
26
26
  // THIS FILE IS GENERATED - DO NOT MODIFY
27
27
  //# sourceMappingURL=build-info._auto-generated_.js.map
@@ -3,6 +3,7 @@ export * from './my-organization-proj';
3
3
  export * from './start-cli';
4
4
  export * from './i18n/lib.translation';
5
5
  export * from './taon-admin-layout/taon-admin-layout.models';
6
+ export * from './taon-admin-layout/taon-admin-menu-context';
6
7
  export * from './taon-backoffice-notifications/taon-backoffice-notifications.models';
7
8
  export * from './taon-confirm-dialog/taon-confirm-dialog.models';
8
9
  export * from './taon-datatable/taon-datatable.models';
@@ -10,6 +10,7 @@ export * from './start-cli';
10
10
  export * from './i18n/lib.translation';
11
11
  /* */
12
12
  export * from './taon-admin-layout/taon-admin-layout.models';
13
+ export * from './taon-admin-layout/taon-admin-menu-context';
13
14
  /* */
14
15
  /* */
15
16
  /* */
@@ -1 +1 @@
1
- {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc;AACd,kEAAkE;AAClE,wCAAwC;AACxC,wDAAwD;AACxD,kCAAkC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,KAAK;AACL,cAAc,wBAAwB,CAAC;AACvC,KAAK;AACL,cAAc,8CAA8C,CAAC;AAC7D,KAAK;AACL,KAAK;AACL,KAAK;AACL,cAAc,sEAAsE,CAAC;AACrF,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,cAAc,kDAAkD,CAAC;AACjE,KAAK;AACL,cAAc,wCAAwC,CAAC;AACvD,KAAK;AACL,KAAK;AACL,cAAc,kEAAkE,CAAC;AACjF,KAAK;AACL,cAAc,gFAAgF,CAAC"}
1
+ {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc;AACd,kEAAkE;AAClE,wCAAwC;AACxC,wDAAwD;AACxD,kCAAkC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,KAAK;AACL,cAAc,wBAAwB,CAAC;AACvC,KAAK;AACL,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,KAAK;AACL,KAAK;AACL,KAAK;AACL,cAAc,sEAAsE,CAAC;AACrF,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,cAAc,kDAAkD,CAAC;AACjE,KAAK;AACL,cAAc,wCAAwC,CAAC;AACvD,KAAK;AACL,KAAK;AACL,cAAc,kEAAkE,CAAC;AACjF,KAAK;AACL,cAAc,gFAAgF,CAAC"}
@@ -1 +1 @@
1
- export declare function dummy1791907259767(): void;
1
+ export declare function dummy1792197551990(): void;
@@ -1,2 +1,2 @@
1
- export function dummy1791907259767() { }
1
+ export function dummy1792197551990() { }
2
2
  //# sourceMappingURL=index.js.map
@@ -8,16 +8,23 @@ export interface TaonAdminRoute extends Route {
8
8
  loadAdminChildren?: () => Promise<TaonAdminRoutes>;
9
9
  }
10
10
  export type TaonAdminRoutes = TaonAdminRoute[];
11
- type MaterialIcon = 'manage_accounts' | 'dashboard' | 'home' | 'settings' | 'admin_panel_settings' | 'person' | 'people' | 'group' | 'groups' | 'account_circle' | 'login' | 'logout' | 'lock' | 'lock_open' | 'security' | 'key' | 'verified_user' | 'shield' | 'email' | 'mail' | 'inbox' | 'send' | 'campaign' | 'notifications' | 'article' | 'description' | 'edit' | 'add' | 'delete' | 'delete_forever' | 'restore_from_trash' | 'content_copy' | 'save' | 'search' | 'filter_list' | 'refresh' | 'sync' | 'more_vert' | 'more_horiz' | 'menu' | 'close' | 'check' | 'done' | 'warning' | 'error' | 'info' | 'help' | 'visibility' | 'visibility_off' | 'folder' | 'folder_open' | 'upload' | 'download' | 'cloud' | 'cloud_upload' | 'storage' | 'database' | 'dns' | 'code' | 'terminal' | 'api' | 'extension' | 'web' | 'language' | 'public' | 'link' | 'shopping_cart' | 'shopping_bag' | 'store' | 'inventory' | 'inventory_2' | 'payments' | 'payment' | 'credit_card' | 'receipt' | 'receipt_long' | 'sell' | 'local_shipping' | 'analytics' | 'bar_chart' | 'pie_chart' | 'query_stats' | 'monitoring' | 'trending_up' | 'history' | 'schedule' | 'calendar_month' | 'build' | 'tune' | 'apps' | 'widgets' | 'category' | 'supervisor_account' | 'approval' | 'family_group' | 'recent_actors' | 'perm_media';
12
- export interface TaonAdminRouteOptions {
11
+ export interface TaonAdminMenuCallbacks<TContext = unknown> {
12
+ isDisabled?: (params: {
13
+ context: TContext;
14
+ }) => boolean;
15
+ isDisabledTooltip?: (params: {
16
+ context: TContext;
17
+ }) => string;
18
+ isVisible?: (params: {
19
+ context: TContext;
20
+ }) => boolean;
21
+ }
22
+ export interface TaonAdminRouteOptions<TContext = unknown> extends TaonAdminMenuCallbacks<TContext> {
13
23
  path: string;
14
24
  color?: string;
15
25
  loader: () => Promise<TaonAdminRoutes>;
16
26
  menuItem?: string;
17
- icon?: MaterialIcon;
18
27
  expandable?: boolean;
19
28
  hideInNavigation?: boolean;
20
29
  }
21
30
  export declare const TaonBaselineBackofficeOutletName = "admin";
22
- export declare function adminLazyRoute(options: TaonAdminRouteOptions): TaonAdminRoute;
23
- export {};
@@ -1,17 +1,37 @@
1
1
  export const TaonBaselineBackofficeOutletName = 'admin';
2
- export function adminLazyRoute(options) {
3
- const { path, loader, menuItem, icon, color, expandable, hideInNavigation } = options;
4
- return {
5
- path,
6
- data: {
7
- menuItem,
8
- color,
9
- icon,
10
- expandable,
11
- hideInNavigation,
12
- },
13
- loadChildren: loader,
14
- loadAdminChildren: loader,
15
- };
16
- }
2
+ /* */
3
+ /* */
4
+ /* */
5
+ /* */
6
+ /* */
7
+ /* */
8
+ /* */
9
+ /* */
10
+ /* */
11
+ /* */
12
+ /* */
13
+ /* */
14
+ /* */
15
+ /* */
16
+ /* */
17
+ /* */
18
+ /* */
19
+ /* */
20
+ /* */
21
+ /* */
22
+ /* */
23
+ /* */
24
+ /* */
25
+ /* */
26
+ /* */
27
+ /* */
28
+ /* */
29
+ /* */
30
+ /* */
31
+ /* */
32
+ /* */
33
+ /* */
34
+ /* */
35
+ /* */
36
+ /* */
17
37
  //# sourceMappingURL=taon-admin-layout.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taon-admin-layout.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AA8HA,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAExD,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,GACzE,OAAO,CAAC;IAEV,OAAO;QACL,IAAI;QAEJ,IAAI,EAAE;YACJ,QAAQ;YACR,KAAK;YACL,IAAI;YACJ,UAAU;YACV,gBAAgB;SACjB;QAED,YAAY,EAAE,MAAM;QACpB,iBAAiB,EAAE,MAAM;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"taon-admin-layout.models.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAsCA,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAExD,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK;AACL,KAAK"}
@@ -0,0 +1,8 @@
1
+ import { Route } from '@angular/router';
2
+ export declare class TaonAdminMenuContext {
3
+ readonly context: import("@angular/core").WritableSignal<unknown>;
4
+ isVisible(route: Route): boolean;
5
+ isDisabled(route: Route): boolean;
6
+ disabledTooltip(route: Route): string;
7
+ private callbacks;
8
+ }