@wavemaker-ai/app-ng-runtime 1.0.0-rc.317 → 1.0.0-rc.322

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 (106) hide show
  1. package/build-task/bundles/index.umd.js +16 -7
  2. package/build-task/fesm2022/index.mjs +16 -7
  3. package/build-task/fesm2022/index.mjs.map +1 -1
  4. package/components/base/bundles/index.umd.js +302 -4
  5. package/components/base/fesm2022/index.mjs +301 -4
  6. package/components/base/fesm2022/index.mjs.map +1 -1
  7. package/components/base/index.d.ts +106 -2
  8. package/components/basic/anchor/bundles/index.umd.js +4 -5
  9. package/components/basic/anchor/fesm2022/index.mjs +4 -5
  10. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  11. package/components/basic/anchor/index.d.ts +1 -0
  12. package/components/basic/icon/bundles/index.umd.js +3 -3
  13. package/components/basic/icon/fesm2022/index.mjs +4 -4
  14. package/components/basic/icon/fesm2022/index.mjs.map +1 -1
  15. package/components/basic/icon/index.d.ts +1 -0
  16. package/components/basic/search/bundles/index.umd.js +6 -3
  17. package/components/basic/search/fesm2022/index.mjs +7 -4
  18. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  19. package/components/basic/search/index.d.ts +3 -0
  20. package/components/basic/spinner/bundles/index.umd.js +5 -3
  21. package/components/basic/spinner/fesm2022/index.mjs +6 -4
  22. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  23. package/components/basic/spinner/index.d.ts +1 -0
  24. package/components/chart/bundles/index.umd.js +4 -3
  25. package/components/chart/fesm2022/index.mjs +5 -4
  26. package/components/chart/fesm2022/index.mjs.map +1 -1
  27. package/components/chart/index.d.ts +1 -0
  28. package/components/containers/accordion/bundles/index.umd.js +4 -3
  29. package/components/containers/accordion/fesm2022/index.mjs +5 -4
  30. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  31. package/components/containers/accordion/index.d.ts +1 -0
  32. package/components/containers/panel/bundles/index.umd.js +3 -3
  33. package/components/containers/panel/fesm2022/index.mjs +4 -4
  34. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  35. package/components/containers/panel/index.d.ts +3 -0
  36. package/components/containers/tabs/bundles/index.umd.js +5 -4
  37. package/components/containers/tabs/fesm2022/index.mjs +6 -5
  38. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  39. package/components/containers/wizard/bundles/index.umd.js +8 -6
  40. package/components/containers/wizard/fesm2022/index.mjs +9 -7
  41. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  42. package/components/containers/wizard/index.d.ts +2 -0
  43. package/components/data/card/bundles/index.umd.js +3 -3
  44. package/components/data/card/fesm2022/index.mjs +4 -4
  45. package/components/data/card/fesm2022/index.mjs.map +1 -1
  46. package/components/data/form/bundles/index.umd.js +6 -3
  47. package/components/data/form/fesm2022/index.mjs +7 -4
  48. package/components/data/form/fesm2022/index.mjs.map +1 -1
  49. package/components/data/form/index.d.ts +2 -0
  50. package/components/data/list/bundles/index.umd.js +5 -3
  51. package/components/data/list/fesm2022/index.mjs +6 -4
  52. package/components/data/list/fesm2022/index.mjs.map +1 -1
  53. package/components/data/list/index.d.ts +2 -0
  54. package/components/data/table/bundles/index.umd.js +4 -3
  55. package/components/data/table/fesm2022/index.mjs +5 -4
  56. package/components/data/table/fesm2022/index.mjs.map +1 -1
  57. package/components/data/table/index.d.ts +1 -0
  58. package/components/dialogs/default/bundles/index.umd.js +2 -2
  59. package/components/dialogs/default/fesm2022/index.mjs +3 -3
  60. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  61. package/components/input/button/bundles/index.umd.js +4 -5
  62. package/components/input/button/fesm2022/index.mjs +4 -5
  63. package/components/input/button/fesm2022/index.mjs.map +1 -1
  64. package/components/input/button/index.d.ts +3 -0
  65. package/components/input/checkbox/bundles/index.umd.js +6 -4
  66. package/components/input/checkbox/fesm2022/index.mjs +7 -5
  67. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  68. package/components/input/checkbox/index.d.ts +2 -0
  69. package/components/input/file-upload/bundles/index.umd.js +5 -3
  70. package/components/input/file-upload/fesm2022/index.mjs +6 -4
  71. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  72. package/components/input/file-upload/index.d.ts +3 -0
  73. package/components/input/rating/bundles/index.umd.js +9 -3
  74. package/components/input/rating/fesm2022/index.mjs +10 -4
  75. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  76. package/components/input/rating/index.d.ts +6 -0
  77. package/components/input/slider/bundles/index.umd.js +5 -3
  78. package/components/input/slider/fesm2022/index.mjs +6 -4
  79. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  80. package/components/input/slider/index.d.ts +2 -0
  81. package/components/input/switch/bundles/index.umd.js +6 -3
  82. package/components/input/switch/fesm2022/index.mjs +7 -4
  83. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  84. package/components/input/switch/index.d.ts +2 -0
  85. package/components/input/text/bundles/index.umd.js +7 -5
  86. package/components/input/text/fesm2022/index.mjs +8 -6
  87. package/components/input/text/fesm2022/index.mjs.map +1 -1
  88. package/components/input/text/index.d.ts +2 -0
  89. package/components/navigation/menu/bundles/index.umd.js +4 -3
  90. package/components/navigation/menu/fesm2022/index.mjs +5 -4
  91. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  92. package/components/navigation/menu/index.d.ts +1 -0
  93. package/components/navigation/navbar/bundles/index.umd.js +5 -5
  94. package/components/navigation/navbar/fesm2022/index.mjs +5 -5
  95. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  96. package/components/navigation/navbar/index.d.ts +1 -0
  97. package/npm-shrinkwrap.json +2 -2
  98. package/package-lock.json +2 -2
  99. package/package.json +1 -1
  100. package/runtime/base/bundles/index.umd.js +23 -1
  101. package/runtime/base/fesm2022/index.mjs +23 -1
  102. package/runtime/base/fesm2022/index.mjs.map +1 -1
  103. package/runtime/base/index.d.ts +5 -0
  104. package/transpiler/bundles/index.umd.js +2 -0
  105. package/transpiler/fesm2022/index.mjs +2 -0
  106. package/transpiler/fesm2022/index.mjs.map +1 -1
@@ -15,6 +15,7 @@ declare class ChartComponent extends StylableComponent implements AfterViewInit,
15
15
  isVisuallyGrouped: any;
16
16
  orderby: any;
17
17
  iconclass: string;
18
+ iconurl: string;
18
19
  type: string;
19
20
  showContentLoadError: any;
20
21
  invalidConfig: any;
@@ -34,6 +34,7 @@
34
34
  ['content', base.PROP_STRING],
35
35
  ['dynamicPaneIndex', base.PROP_NUMBER], // internal property
36
36
  ['iconclass', base.PROP_STRING],
37
+ ['iconurl', base.PROP_STRING],
37
38
  ['isdefaultpane', base.PROP_BOOLEAN],
38
39
  ['isdynamic', base.PROP_STRING], // internal property
39
40
  ['name', base.PROP_STRING],
@@ -474,7 +475,7 @@
474
475
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: AccordionPaneComponent, deps: [{ token: i0__namespace.Injector }, { token: AccordionDirective }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i1__namespace.App }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
475
476
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AccordionPaneComponent, isStandalone: true, selector: "div[wmAccordionPane]", providers: [
476
477
  base.provideAsWidgetRef(AccordionPaneComponent)
477
- ], queries: [{ propertyName: "reDrawableComponents", predicate: base.RedrawableDirective, descendants: true }], exportAs: ["wmAccordionPane"], usesInheritance: true, ngImport: i0__namespace, template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i3.CommonModule }, { kind: "directive", type: i3__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
478
+ ], queries: [{ propertyName: "reDrawableComponents", predicate: base.RedrawableDirective, descendants: true }], exportAs: ["wmAccordionPane"], usesInheritance: true, ngImport: i0__namespace, template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" iconClasses=\"panel-icon\" alt=\"Accordion icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i3.CommonModule }, { kind: "directive", type: i3__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
478
479
  };
479
480
  exports.AccordionPaneComponent = tslib.__decorate([
480
481
  base.AutoLayout({ targetSelector: '.panel-body' }),
@@ -482,9 +483,9 @@
482
483
  ], exports.AccordionPaneComponent);
483
484
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: exports.AccordionPaneComponent, decorators: [{
484
485
  type: i0.Component,
485
- args: [{ standalone: true, imports: [i3.CommonModule], selector: 'div[wmAccordionPane]', providers: [
486
+ args: [{ standalone: true, imports: [i3.CommonModule, base.WmAppIconComponent], selector: 'div[wmAccordionPane]', providers: [
486
487
  base.provideAsWidgetRef(exports.AccordionPaneComponent)
487
- ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
488
+ ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" iconClasses=\"panel-icon\" alt=\"Accordion icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
488
489
  }], ctorParameters: () => [{ type: i0__namespace.Injector }, { type: AccordionDirective }, { type: undefined, decorators: [{
489
490
  type: i0.Inject,
490
491
  args: ['EXPLICIT_CONTEXT']
@@ -5,7 +5,7 @@ import * as i0 from '@angular/core';
5
5
  import { ContentChildren, forwardRef, Inject, Optional, Directive, Injector, Component } from '@angular/core';
6
6
  import * as i1 from '@wm/core';
7
7
  import { noop, isDefined, removeAttr, App } from '@wm/core';
8
- import { register, PROP_BOOLEAN, PROP_STRING, PROP_NUMBER, AUTO_LAYOUT_PROPS, PROP_ANY, StylableComponent, styler, APPLY_STYLES_TYPE, createArrayFrom, provideAsWidgetRef, getCurrentWidgets, RedrawableDirective, AutoLayout } from '@wm/components/base';
8
+ import { register, PROP_BOOLEAN, PROP_STRING, PROP_NUMBER, AUTO_LAYOUT_PROPS, PROP_ANY, StylableComponent, styler, APPLY_STYLES_TYPE, createArrayFrom, provideAsWidgetRef, getCurrentWidgets, WmAppIconComponent, RedrawableDirective, AutoLayout } from '@wm/components/base';
9
9
  import { find, isArray, forEach, indexOf, get, isNumber } from 'lodash-es';
10
10
 
11
11
  const registerProps$1 = () => {
@@ -17,6 +17,7 @@ const registerProps$1 = () => {
17
17
  ['content', PROP_STRING],
18
18
  ['dynamicPaneIndex', PROP_NUMBER], // internal property
19
19
  ['iconclass', PROP_STRING],
20
+ ['iconurl', PROP_STRING],
20
21
  ['isdefaultpane', PROP_BOOLEAN],
21
22
  ['isdynamic', PROP_STRING], // internal property
22
23
  ['name', PROP_STRING],
@@ -457,7 +458,7 @@ let AccordionPaneComponent = class AccordionPaneComponent extends StylableCompon
457
458
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AccordionPaneComponent, deps: [{ token: i0.Injector }, { token: AccordionDirective }, { token: 'EXPLICIT_CONTEXT', optional: true }, { token: i1.App }], target: i0.ɵɵFactoryTarget.Component }); }
458
459
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: AccordionPaneComponent, isStandalone: true, selector: "div[wmAccordionPane]", providers: [
459
460
  provideAsWidgetRef(AccordionPaneComponent)
460
- ], queries: [{ propertyName: "reDrawableComponents", predicate: RedrawableDirective, descendants: true }], exportAs: ["wmAccordionPane"], usesInheritance: true, ngImport: i0, template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
461
+ ], queries: [{ propertyName: "reDrawableComponents", predicate: RedrawableDirective, descendants: true }], exportAs: ["wmAccordionPane"], usesInheritance: true, ngImport: i0, template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" iconClasses=\"panel-icon\" alt=\"Accordion icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
461
462
  };
462
463
  AccordionPaneComponent = __decorate([
463
464
  AutoLayout({ targetSelector: '.panel-body' }),
@@ -465,9 +466,9 @@ AccordionPaneComponent = __decorate([
465
466
  ], AccordionPaneComponent);
466
467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AccordionPaneComponent, decorators: [{
467
468
  type: Component,
468
- args: [{ standalone: true, imports: [CommonModule], selector: 'div[wmAccordionPane]', providers: [
469
+ args: [{ standalone: true, imports: [CommonModule, WmAppIconComponent], selector: 'div[wmAccordionPane]', providers: [
469
470
  provideAsWidgetRef(AccordionPaneComponent)
470
- ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
471
+ ], exportAs: 'wmAccordionPane', template: "<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" iconClasses=\"panel-icon\" alt=\"Accordion icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n" }]
471
472
  }], ctorParameters: () => [{ type: i0.Injector }, { type: AccordionDirective }, { type: undefined, decorators: [{
472
473
  type: Inject,
473
474
  args: ['EXPLICIT_CONTEXT']
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { AUTO_LAYOUT_PROPS, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}],\n ...AUTO_LAYOUT_PROPS\n ]\n )\n );\n};\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n forwardRef,\n Inject,\n Injector,\n OnDestroy,\n Optional,\n QueryList\n} from '@angular/core';\nimport {DynamicComponentRefProvider, isDefined, noop, StatePersistence} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport {registerProps} from './accordion.props';\nimport {AccordionPaneComponent} from './accordion-pane/accordion-pane.component';\nimport {find, forEach, get, indexOf, isArray, isNumber} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n private panesChangesSubscription: any;\n private dynamicComponentRefs: any[] = [];\n\n @ContentChildren(forwardRef(() => AccordionPaneComponent)) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function (pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), { name: pane.name });\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n // MEMORY LEAK FIX: Store component reference for cleanup\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, { inj: this.inj })\n .then(componentRef => {\n if (componentRef) {\n this.dynamicComponentRefs.push(componentRef);\n }\n });\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), { name: name });\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.panes.toArray(), (el) => {\n $target = get(el.currentAccordionWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.panes.toArray(), index);\n\n if ($target) {\n return [get($target.currentAccordionWidgets, widgteName)];\n }\n }\n\n get currentAccordionPaneIndex() {\n return this.activePaneIndex;\n }\n\n get isFirstAccordionPane(): boolean {\n return this.panes.first.widgetId === this.activePane.widgetId;\n }\n\n get isLastAccordionPane(): boolean {\n return this.panes.last.widgetId === this.activePane.widgetId;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function (pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panesChangesSubscription = this.panes.changes.subscribe(slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from panes changes\n if (this.panesChangesSubscription) {\n this.panesChangesSubscription.unsubscribe();\n this.panesChangesSubscription = null;\n }\n\n // MEMORY LEAK FIX: Destroy all dynamically created component instances\n if (this.dynamicComponentRefs && this.dynamicComponentRefs.length) {\n this.dynamicComponentRefs.forEach(componentRef => {\n if (componentRef && componentRef.destroy) {\n componentRef.destroy();\n }\n });\n this.dynamicComponentRefs = [];\n }\n\n // MEMORY LEAK FIX: Clear dynamic context\n if (this._dynamicContext) {\n Object.keys(this._dynamicContext).forEach(key => {\n delete this._dynamicContext[key];\n });\n this._dynamicContext = null;\n }\n\n // MEMORY LEAK FIX: Clear dynamic panes array\n if (this.dynamicPanes) {\n this.dynamicPanes = [];\n }\n\n // MEMORY LEAK FIX: Clear field definitions\n this.fieldDefs = null;\n this.activePane = null;\n\n super.ngOnDestroy();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, Component, ContentChildren, Inject, Injector, OnDestroy, Optional} from '@angular/core';\nimport {App, noop, removeAttr} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n AutoLayout,\n getCurrentWidgets,\n IWidgetConfig,\n provideAsWidgetRef,\n RedrawableDirective,\n StylableComponent,\n styler,\n} from '@wm/components/base';\n\nimport {registerProps} from './accordion-pane.props';\nimport {AccordionDirective} from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS };\n\n@AutoLayout({ targetSelector: '.panel-body' })\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n public tabindex;\n public name: string;\n private _currentAccordionWidgets = {};\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, private app: App) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', { $event: evt });\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', { $event: evt });\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n get currentAccordionWidgets() {\n return getCurrentWidgets(this.nativeElement, this._currentAccordionWidgets);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","i2"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.props.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion.directive.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.ts","../../../../../projects/components/widgets/containers/accordion/src/accordion-pane/accordion-pane.component.html","../../../../../projects/components/widgets/containers/accordion/src/index.ts"],"sourcesContent":["import { AUTO_LAYOUT_PROPS, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordionpane',\n new Map(\n [\n ['active', PROP_BOOLEAN], // internal property\n ['badgetype', {value: 'default', ...PROP_STRING}],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['content', PROP_STRING],\n ['dynamicPaneIndex', PROP_NUMBER], // internal property\n ['iconclass', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['isdefaultpane', PROP_BOOLEAN],\n ['isdynamic', PROP_STRING], // internal property\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['smoothscroll', {value: false, ...PROP_BOOLEAN}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', {value: 'Title', ...PROP_STRING}],\n ...AUTO_LAYOUT_PROPS\n ]\n )\n );\n};\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-accordion',\n new Map(\n [\n ['class', PROP_STRING],\n ['closeothers', {value: true, ...PROP_BOOLEAN}],\n ['dataset', PROP_ANY],\n ['defaultpaneindex', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodatamessage', {value: 'No Data Found', ... PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n forwardRef,\n Inject,\n Injector,\n OnDestroy,\n Optional,\n QueryList\n} from '@angular/core';\nimport {DynamicComponentRefProvider, isDefined, noop, StatePersistence} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n createArrayFrom,\n IWidgetConfig,\n provideAsWidgetRef,\n StylableComponent,\n styler\n} from '@wm/components/base';\n\nimport {registerProps} from './accordion.props';\nimport {AccordionPaneComponent} from './accordion-pane/accordion-pane.component';\nimport {find, forEach, get, indexOf, isArray, isNumber} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-accordion panel-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-accordion',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmAccordion]',\n exportAs: 'wmAccordion',\n providers: [\n provideAsWidgetRef(AccordionDirective)\n ]\n})\nexport class AccordionDirective extends StylableComponent implements AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public defaultpaneindex: number;\n public closeothers: boolean;\n public statehandler: any;\n private statePersistence: StatePersistence;\n\n private activePaneIndex: number;\n private activePane: AccordionPaneComponent;\n private promiseResolverFn: Function;\n private dynamicComponentProvider;\n private _dynamicContext;\n private dynamicPaneIndex;\n private dynamicPanes;\n public fieldDefs;\n private panesChangesSubscription: any;\n private dynamicComponentRefs: any[] = [];\n\n @ContentChildren(forwardRef(() => AccordionPaneComponent)) panes: QueryList<AccordionPaneComponent>;\n\n constructor(inj: Injector, statePersistence: StatePersistence, dynamicComponentProvider: DynamicComponentRefProvider, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n let resolveFn: Function = noop;\n super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));\n this.promiseResolverFn = resolveFn;\n this.statePersistence = statePersistence;\n this.dynamicComponentProvider = dynamicComponentProvider;\n this.dynamicPanes = [];\n this.dynamicPaneIndex = 0;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n }\n\n /**\n * AccordionPane children components invoke this method to communicate with the parent\n * if isExpand is true and when closeothers is true, all the other panes are collapsed\n * if the evt argument is defined on-change callback will be invoked.\n * updates the activePane index property\n * @param {AccordionPaneComponent} paneRef\n * @param {boolean} isExpand\n * @param {Event} evt\n */\n public notifyChange(paneRef: AccordionPaneComponent, isExpand: boolean, evt: Event) {\n if (isExpand) {\n this.closePanesExcept(paneRef);\n const index = this.getPaneIndexByRef(paneRef);\n this.activePane = paneRef.getWidget();\n // if the event is defined invoke the change callback.\n // programmatic invocations of expand/collapse on accordion-pane will not trigger change event\n if (evt) {\n this.invokeEventCallback('change', {\n $event: evt,\n newPaneIndex: index,\n oldPaneIndex: this.activePaneIndex\n });\n }\n this.activePaneIndex = index;\n }\n const mode = this.statePersistence.computeMode(this.statehandler);\n if (evt && mode && mode.toLowerCase() !== 'none') {\n const activePanes = [];\n this.panes.forEach(function (pane) {\n if (pane.isActive) {\n activePanes.push(pane.name);\n }\n });\n if (activePanes.length) {\n this.statePersistence.setWidgetState(this, activePanes);\n } else {\n this.statePersistence.removeWidgetState(this);\n }\n }\n }\n\n /**\n * This method is used to register the dynamic panes.\n * After all panes are initialzed, update the querylist manually based on index.\n * @param paneRef - refrence of the tabpane\n */\n public registerDynamicPane(paneRef) {\n this.dynamicPanes.push(paneRef);\n const isLastPane = this.dynamicPanes.length === this.dynamicPaneIndex;\n if (isLastPane) {\n for (let i = 0; i < this.dynamicPanes.length; i++) {\n const newPaneRef = find(this.dynamicPanes, pane => pane.dynamicPaneIndex === i);\n const isDuplicatePane = find(this.panes.toArray(), newPaneRef);\n if (!isDuplicatePane) {\n this.panes.reset([...this.panes.toArray(), newPaneRef]);\n if (newPaneRef.active) {\n newPaneRef.expand();\n }\n }\n }\n }\n }\n\n /**\n * This method is to add the tabpane dynamically\n * @param tabpanes - list of tabpanes\n */\n public addPane(tabpanes) {\n if (!isArray(tabpanes)) {\n tabpanes = [tabpanes];\n }\n const paneNamesList = [];\n forEach(tabpanes, (pane, index) => {\n const isPaneAlreadyCreated = find(this.panes.toArray(), { name: pane.name });\n const isPaneNameExist = indexOf(paneNamesList, pane.name);\n // If user tries to add tabpane with the same name which is already exists then do not create the pane\n if (isPaneAlreadyCreated || isPaneNameExist > 0) {\n console.warn(`The tab pane with name ${pane.name} already exists`);\n return;\n }\n\n let paramMarkup = '';\n let propsTmpl = '';\n this.dynamicPaneIndex++;\n const name = pane.name ? pane.name : `accordionpane${this.panes.toArray().length + (index + 1)}`;\n paneNamesList.push(name);\n const partialParams = get(pane, 'params');\n\n forEach(pane, (value, key) => {\n if (key !== 'params') {\n propsTmpl = `${propsTmpl} ${key}=\"${value}\"`;\n }\n });\n forEach(partialParams, (value, key) => {\n paramMarkup = `${paramMarkup} <wm-param name=\"${key}\" value=\"${value}\"></wm-param>`;\n });\n const markup = `<wm-accordionpane dynamicPaneIndex=\"${this.dynamicPaneIndex - 1}\" isdynamic=\"true\" name=\"${name}\" ${propsTmpl}>\n ${paramMarkup}\n </wm-accordionpane>`;\n\n if (!this._dynamicContext) {\n this._dynamicContext = Object.create(this.viewParent);\n this._dynamicContext[this.getAttr('wmAccordian')] = this;\n }\n\n // MEMORY LEAK FIX: Store component reference for cleanup\n this.dynamicComponentProvider.addComponent(this.getNativeElement(), markup, this._dynamicContext, { inj: this.inj })\n .then(componentRef => {\n if (componentRef) {\n this.dynamicComponentRefs.push(componentRef);\n }\n });\n });\n return paneNamesList;\n }\n\n /**\n * This method is to remove the tabpane\n * @param paneName - name of the pane\n */\n public removePane(paneName) {\n const paneRef = this.getPaneRefByName(paneName);\n if (paneRef) {\n paneRef.remove();\n }\n }\n\n private isValidPaneIndex(index: number): boolean {\n return (index >= 0 && index < this.panes.length);\n }\n\n private getPaneRefByName(name: string): AccordionPaneComponent {\n return find(this.panes.toArray(), { name: name });\n }\n\n private getPaneIndexByRef(paneRef: AccordionPaneComponent): number {\n return this.panes.toArray().indexOf(paneRef);\n }\n\n private getPaneRefByIndex(index: number): AccordionPaneComponent {\n return this.panes.toArray()[index];\n }\n\n // Except the pane provided close all other panes\n private closePanesExcept(paneRef: AccordionPaneComponent | number) {\n if (isNumber(paneRef)) {\n paneRef = this.getPaneRefByIndex(paneRef as number);\n }\n if (this.closeothers) {\n this.panes.forEach(pane => {\n if (pane !== paneRef) {\n pane.collapse();\n }\n });\n }\n }\n\n private expandPane(index: number) {\n this.closePanesExcept(index);\n this.panes.toArray()[index].expand();\n }\n private onDataChange(newVal) {\n this.fieldDefs = createArrayFrom(newVal);\n }\n\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.panes.toArray(), (el) => {\n $target = get(el.currentAccordionWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.panes.toArray(), index);\n\n if ($target) {\n return [get($target.currentAccordionWidgets, widgteName)];\n }\n }\n\n get currentAccordionPaneIndex() {\n return this.activePaneIndex;\n }\n\n get isFirstAccordionPane(): boolean {\n return this.panes.first.widgetId === this.activePane.widgetId;\n }\n\n get isLastAccordionPane(): boolean {\n return this.panes.last.widgetId === this.activePane.widgetId;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'defaultpaneindex') {\n this.defaultpaneindex = nv;\n } else if (key === 'dataset') {\n this.onDataChange(nv);\n } else if (key === 'statehandler') {\n const widgetState = this.statePersistence.getWidgetState(this);\n let paneToSelect: any = [];\n if (nv !== 'none' && isArray(widgetState)) {\n widgetState.forEach(paneName => {\n paneToSelect = this.panes.filter(function (pane) {\n return paneName === pane.name;\n });\n if (!paneToSelect.length) {\n console.warn('Accordion pane name ' + paneName + ' in State is incorrect.');\n } else {\n this.expandPane(this.getPaneIndexByRef(paneToSelect[0]));\n }\n });\n } else {\n if (this.isValidPaneIndex(this.defaultpaneindex)) {\n this.expandPane(this.defaultpaneindex);\n }\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.promiseResolverFn();\n this.panesChangesSubscription = this.panes.changes.subscribe(slides => {\n if (this.panes.length) {\n this.expandPane(this.defaultpaneindex);\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from panes changes\n if (this.panesChangesSubscription) {\n this.panesChangesSubscription.unsubscribe();\n this.panesChangesSubscription = null;\n }\n\n // MEMORY LEAK FIX: Destroy all dynamically created component instances\n if (this.dynamicComponentRefs && this.dynamicComponentRefs.length) {\n this.dynamicComponentRefs.forEach(componentRef => {\n if (componentRef && componentRef.destroy) {\n componentRef.destroy();\n }\n });\n this.dynamicComponentRefs = [];\n }\n\n // MEMORY LEAK FIX: Clear dynamic context\n if (this._dynamicContext) {\n Object.keys(this._dynamicContext).forEach(key => {\n delete this._dynamicContext[key];\n });\n this._dynamicContext = null;\n }\n\n // MEMORY LEAK FIX: Clear dynamic panes array\n if (this.dynamicPanes) {\n this.dynamicPanes = [];\n }\n\n // MEMORY LEAK FIX: Clear field definitions\n this.fieldDefs = null;\n this.activePane = null;\n\n super.ngOnDestroy();\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, Component, ContentChildren, Inject, Injector, OnDestroy, Optional} from '@angular/core';\nimport {App, noop, removeAttr} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n AutoLayout,\n getCurrentWidgets,\n IWidgetConfig,\n provideAsWidgetRef,\n RedrawableDirective,\n StylableComponent,\n styler,\n WmAppIconComponent,\n} from '@wm/components/base';\n\nimport {registerProps} from './accordion-pane.props';\nimport {AccordionDirective} from '../accordion.directive';\n\nconst DEFAULT_CLS = 'app-accordion-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-accordionpane', hostClass: DEFAULT_CLS };\n\n@AutoLayout({ targetSelector: '.panel-body' })\n@Component({\n standalone: true,\n imports: [CommonModule, WmAppIconComponent],\n selector: 'div[wmAccordionPane]',\n templateUrl: './accordion-pane.component.html',\n providers: [\n provideAsWidgetRef(AccordionPaneComponent)\n ],\n exportAs: 'wmAccordionPane'\n})\nexport class AccordionPaneComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public isActive = false;\n public iconclass: string;\n public iconurl: string;\n public title: any;\n public subheading: string;\n public badgetype: any;\n public badgevalue: string;\n public smoothscroll: any;\n private $lazyLoad = noop;\n private isdynamic: boolean;\n public tabindex;\n public name: string;\n private _currentAccordionWidgets = {};\n\n // reference to the components which needs a redraw(eg, grid, chart) when the height of this component changes\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n constructor(inj: Injector, private accordionRef: AccordionDirective, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, private app: App) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n // title property here serves the purpose of heading.\n // remove title property as attribute\n removeAttr(this.nativeElement, 'title');\n }\n\n /**\n * handles the pane expand\n * invoke $lazyLoad method which takes care of loading the partial when the content property is provided - lazyLoading or partial\n * invoke redraw on the re-drawable children\n * invoke expand callback\n * notify parent about the change\n * @param {Event} evt\n */\n public expand(evt?: Event) {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.$lazyLoad();\n this.redrawChildren();\n this.invokeEventCallback('expand', { $event: evt });\n this.notifyParent(true, evt);\n }\n\n /**\n * handles the pane collapse\n * invoke collapse callback\n * notify parent about the change\n * @param {Event} evt\n */\n public collapse(evt?: Event) {\n if (!this.isActive) {\n return;\n }\n this.isActive = false;\n this.invokeEventCallback('collapse', { $event: evt });\n this.notifyParent(false, evt);\n }\n\n public remove() {\n const paneIndex = (this as any).accordionRef.getPaneIndexByRef(this);\n if (this.isActive && this.accordionRef.panes.length > 1) {\n this === this.accordionRef.panes.last ? this.accordionRef.panes.toArray()[paneIndex - 1].expand() : this.accordionRef.panes.toArray()[paneIndex + 1].expand();\n }\n const availablePanes = this.accordionRef.panes.toArray();\n availablePanes.splice((this as any).accordionRef.getPaneIndexByRef(this), 1);\n this.accordionRef.panes.reset([...availablePanes]);\n this.nativeElement.remove();\n }\n\n public toggle(evt: Event) {\n if (this.isActive) {\n this.collapse(evt);\n } else {\n this.expand(evt);\n }\n }\n\n // Todo - Vinay externalize\n private redrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n private notifyParent(isExpand: boolean, evt: Event) {\n this.accordionRef.notifyChange(this, isExpand, evt);\n }\n\n get currentAccordionWidgets() {\n return getCurrentWidgets(this.nativeElement, this._currentAccordionWidgets);\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'content') {\n if (this.isActive) {\n setTimeout(() => this.$lazyLoad(), 100);\n }\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(\n this.nativeElement.querySelector('.panel-body') as HTMLElement,\n this,\n APPLY_STYLES_TYPE.INNER_SHELL\n );\n if (this.isdynamic) {\n this.accordionRef.registerDynamicPane(this);\n }\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","<div class=\"panel-heading clearfix\" (click)=\"toggle($event)\" [ngClass]=\"{active: isActive}\">\n <h3 class=\"panel-title\">\n <a [attr.aria-expanded]=\"isActive\" [tabindex]=\"tabindex\"\n class=\"accordion-toggle clearfix\"\n href=\"javascript:void(0);\" role=\"button\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" iconClasses=\"panel-icon\" alt=\"Accordion icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n <div class=\"panel-actions pull-right\">\n <!-- added class as badge, app-label since it needs this classes to trigger the badge tokens -->\n <span class=\"badge app-label label-{{badgetype}}\">{{ badgevalue }}</span>\n <span class=\"app-icon panel-action wi\"\n title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\">\n <i [ngClass]=\"isActive ? 'wi-minus' : 'wi-plus'\"></i>\n </span>\n </div>\n </a>\n </h3>\n</div>\n<div [ngClass]=\"isActive ? 'collapse in' : 'collapse'\" class=\"panel-collapse collapse\">\n <div class=\"panel-body\" partial-container-target>\n <ng-content></ng-content>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","i2"],"mappings":"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"}
@@ -71,6 +71,7 @@ declare class AccordionPaneComponent extends StylableComponent implements AfterV
71
71
  static initializeProps: void;
72
72
  isActive: boolean;
73
73
  iconclass: string;
74
+ iconurl: string;
74
75
  title: any;
75
76
  subheading: string;
76
77
  badgetype: any;
@@ -192,13 +192,13 @@
192
192
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: PanelComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
193
193
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: PanelComponent, isStandalone: true, selector: "[wmPanel]", providers: [
194
194
  base.provideAsWidgetRef(PanelComponent)
195
- ], queries: [{ propertyName: "reDrawableComponents", predicate: base.RedrawableDirective, descendants: true }], viewQueries: [{ propertyName: "panelHeader", first: true, predicate: ["panelHeading"], descendants: true }, { propertyName: "panelContent", first: true, predicate: ["panelContent"], descendants: true, static: true }, { propertyName: "panelBody", first: true, predicate: ["panelBody"], descendants: true, static: true }], exportAs: ["wmPanel"], usesInheritance: true, ngImport: i0__namespace, template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n", dependencies: [{ kind: "ngmodule", type: i1.BsDropdownModule }, { kind: "directive", type: i1__namespace.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: i2.CommonModule }, { kind: "directive", type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: menu.MenuComponent, selector: "[wmMenu]" }, { kind: "pipe", type: base.TrustAsPipe, name: "trustAs" }] }); }
195
+ ], queries: [{ propertyName: "reDrawableComponents", predicate: base.RedrawableDirective, descendants: true }], viewQueries: [{ propertyName: "panelHeader", first: true, predicate: ["panelHeading"], descendants: true }, { propertyName: "panelContent", first: true, predicate: ["panelContent"], descendants: true, static: true }, { propertyName: "panelBody", first: true, predicate: ["panelBody"], descendants: true, static: true }], exportAs: ["wmPanel"], usesInheritance: true, ngImport: i0__namespace, template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"\n alt=\"Panel icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n", dependencies: [{ kind: "ngmodule", type: i1.BsDropdownModule }, { kind: "directive", type: i1__namespace.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: i2.CommonModule }, { kind: "directive", type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: menu.MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }, { kind: "pipe", type: base.TrustAsPipe, name: "trustAs" }] }); }
196
196
  }
197
197
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: PanelComponent, decorators: [{
198
198
  type: i0.Component,
199
- args: [{ standalone: true, imports: [i1.BsDropdownModule, i2.CommonModule, base.TextContentDirective, base.TrustAsPipe, menu.MenuComponent], selector: '[wmPanel]', providers: [
199
+ args: [{ standalone: true, imports: [i1.BsDropdownModule, i2.CommonModule, base.TextContentDirective, base.TrustAsPipe, menu.MenuComponent, base.WmAppIconComponent], selector: '[wmPanel]', providers: [
200
200
  base.provideAsWidgetRef(PanelComponent)
201
- ], exportAs: 'wmPanel', template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n" }]
201
+ ], exportAs: 'wmPanel', template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"\n alt=\"Panel icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n" }]
202
202
  }], ctorParameters: () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
203
203
  type: i0.Inject,
204
204
  args: ['EXPLICIT_CONTEXT']
@@ -1,6 +1,6 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
- import { register, PROP_STRING, PROP_BOOLEAN, PROP_ANY, styler, APPLY_STYLES_TYPE, TextContentDirective, TrustAsPipe, RedrawableDirective, provideAsWidgetRef } from '@wm/components/base';
3
+ import { register, PROP_STRING, PROP_BOOLEAN, PROP_ANY, styler, APPLY_STYLES_TYPE, TextContentDirective, WmAppIconComponent, TrustAsPipe, RedrawableDirective, provideAsWidgetRef } from '@wm/components/base';
4
4
  import * as i0 from '@angular/core';
5
5
  import { ContentChildren, ViewChild, Inject, Optional, Component } from '@angular/core';
6
6
  import { noop, removeAttr, toggleClass, $appDigest, setCSS } from '@wm/core';
@@ -176,13 +176,13 @@ class PanelComponent extends MenuAdapterComponent {
176
176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PanelComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
177
177
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: PanelComponent, isStandalone: true, selector: "[wmPanel]", providers: [
178
178
  provideAsWidgetRef(PanelComponent)
179
- ], queries: [{ propertyName: "reDrawableComponents", predicate: RedrawableDirective, descendants: true }], viewQueries: [{ propertyName: "panelHeader", first: true, predicate: ["panelHeading"], descendants: true }, { propertyName: "panelContent", first: true, predicate: ["panelContent"], descendants: true, static: true }, { propertyName: "panelBody", first: true, predicate: ["panelBody"], descendants: true, static: true }], exportAs: ["wmPanel"], usesInheritance: true, ngImport: i0, template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n", dependencies: [{ kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i1.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: MenuComponent, selector: "[wmMenu]" }, { kind: "pipe", type: TrustAsPipe, name: "trustAs" }] }); }
179
+ ], queries: [{ propertyName: "reDrawableComponents", predicate: RedrawableDirective, descendants: true }], viewQueries: [{ propertyName: "panelHeader", first: true, predicate: ["panelHeading"], descendants: true }, { propertyName: "panelContent", first: true, predicate: ["panelContent"], descendants: true, static: true }, { propertyName: "panelBody", first: true, predicate: ["panelBody"], descendants: true, static: true }], exportAs: ["wmPanel"], usesInheritance: true, ngImport: i0, template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"\n alt=\"Panel icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n", dependencies: [{ kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i1.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }, { kind: "pipe", type: TrustAsPipe, name: "trustAs" }] }); }
180
180
  }
181
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: PanelComponent, decorators: [{
182
182
  type: Component,
183
- args: [{ standalone: true, imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent], selector: '[wmPanel]', providers: [
183
+ args: [{ standalone: true, imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent, WmAppIconComponent], selector: '[wmPanel]', providers: [
184
184
  provideAsWidgetRef(PanelComponent)
185
- ], exportAs: 'wmPanel', template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n" }]
185
+ ], exportAs: 'wmPanel', template: "@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"\n alt=\"Panel icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n" }]
186
186
  }], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
187
187
  type: Inject,
188
188
  args: ['EXPLICIT_CONTEXT']
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/panel/src/panel.props.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.html","../../../../../projects/components/widgets/containers/panel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-panel',\n new Map(\n [\n ['actions', {}],\n ['animation', PROP_STRING],\n ['autoclose', PROP_STRING],\n ['badgetype', { value: 'default', ...PROP_STRING }],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', PROP_BOOLEAN],\n ['collapsible', PROP_BOOLEAN],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['content', PROP_STRING],\n ['datafield', PROP_STRING],\n ['enablefullscreen', PROP_BOOLEAN],\n ['expanded', { value: true, ...PROP_BOOLEAN }],\n ['fullscreen', PROP_BOOLEAN],\n ['helptext', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['name', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }],\n ['subheading', PROP_STRING],\n ['title', PROP_STRING],\n ['userrole', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { TextContentDirective, TrustAsPipe } from \"@wm/components/base\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\n\nimport { $appDigest, noop, removeAttr, setCSS, toggleClass } from '@wm/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, styler } from '@wm/components/base';\nimport { MenuAdapterComponent, MenuComponent } from '@wm/components/navigation/menu';\nimport { registerProps } from './panel.props';\nimport { omit } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent],\n selector: '[wmPanel]',\n templateUrl: './panel.component.html',\n providers: [\n provideAsWidgetRef(PanelComponent)\n ],\n exportAs: 'wmPanel'\n})\n\nexport class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public $lazyLoad = noop;\n public iconurl: string;\n public iconclass: string;\n public collapsible: boolean;\n public expanded = true;\n public enablefullscreen: boolean;\n public fullscreen: boolean;\n public title: string;\n public subheading: string;\n public actions: any;\n public selectedAction: any;\n\n public helpClass = '';\n public helptext = '';\n private fullScreenTitle: string;\n private expandCollapseTitle: string;\n\n @ViewChild('panelHeading', { static: false }) private panelHeader: ElementRef;\n @ViewChild('panelContent', { static: true }) private panelContent: ElementRef;\n @ViewChild('panelBody', { static: true }) private panelBody: ElementRef;\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n private hasFooter: boolean;\n\n // conditions to show the footer\n public get hideFooter() {\n return !this.hasFooter || !this.expanded;\n }\n\n // conditions to show header\n public get showHeader() {\n return this.iconurl || this.iconclass || this.collapsible || this.actions || this.title || this.subheading || this.enablefullscreen;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;\n this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;\n removeAttr(this.nativeElement, 'title');\n }\n\n // toggle the panel state between collapsed - expanded. invoke the respective callbacks\n public toggle($event) {\n if (this.collapsible) {\n this.invokeEventCallback(this.expanded ? 'collapse' : 'expand', { $event });\n this.expanded = !this.expanded;\n if (this.expanded) {\n this.$lazyLoad();\n this.reDrawChildren();\n }\n }\n }\n\n public expand($event) {\n if (!this.expanded) {\n this.toggle($event);\n }\n }\n\n public collapse($event) {\n if (this.expanded) {\n this.toggle($event);\n }\n }\n\n // toggle the fullscreen state of the panel. invoke the respective callbacks\n protected toggleFullScreen($event) {\n if (this.enablefullscreen) {\n this.invokeEventCallback(this.fullscreen ? 'exitfullscreen' : 'fullscreen', { $event });\n this.fullscreen = !this.fullscreen;\n toggleClass(this.nativeElement, 'fullscreen', this.fullscreen);\n // Re-plot the widgets inside panel\n this.reDrawChildren();\n }\n this.computeDimensions();\n }\n\n // show/hide help\n protected toggleHelp() {\n this.helpClass = this.helpClass ? '' : 'show-help';\n toggleClass(this.nativeElement, 'show-help', !!this.helpClass);\n $appDigest();\n }\n\n // On action item click\n protected menuActionItemClick($event, $item) {\n this.selectedAction = omit($item, ['children', 'value']);\n this.invokeEventCallback('actionsclick', { $event, $item: this.selectedAction });\n }\n\n // hide the panel and invoke the respective event handler\n protected close($event) {\n this.getWidget().show = false;\n this.invokeEventCallback('close', { $event });\n }\n\n // calculation of dimensions when the panel the panel state changes from/to fullscreen\n private computeDimensions() {\n const headerHeight = this.panelHeader.nativeElement.offsetHeight;\n const footer = this.nativeElement.querySelector('.panel-footer') as HTMLElement;\n const content = this.panelContent.nativeElement;\n const vHeight = window.innerHeight;\n\n let inlineHeight;\n\n if (this.fullscreen) {\n inlineHeight = this.hideFooter ? (vHeight - headerHeight) : vHeight - (footer.offsetHeight + headerHeight);\n } else {\n inlineHeight = this.height || '';\n }\n\n setCSS(content, 'height', inlineHeight);\n }\n\n // notify the redrawable components(charts, grid)\n private reDrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'expanded') {\n this.expanded = nv;\n } else if (key === 'content') {\n setTimeout(() => {\n if (this.expanded || !this.collapsible) {\n this.$lazyLoad();\n }\n }, 20);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');\n styler(this.panelBody.nativeElement as HTMLElement, this, APPLY_STYLES_TYPE.INNER_SHELL);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.panelHeader = null;\n this.panelContent = null;\n this.panelBody = null;\n\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n @if (iconclass && !iconurl) {\n <i class=\"app-icon panel-icon {{iconclass}}\"></i>\n }\n @if (iconurl) {\n <img data-identifier=\"img\" title=\"iconurl\" alt=\"Panel icon\" class=\"panel-image-icon\"\n [src]=\"iconurl | image\"\n [ngStyle]=\"{width: iconwidth ,height: iconheight, margin: iconmargin}\" />\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/containers/panel/src/panel.props.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.ts","../../../../../projects/components/widgets/containers/panel/src/panel.component.html","../../../../../projects/components/widgets/containers/panel/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-panel',\n new Map(\n [\n ['actions', {}],\n ['animation', PROP_STRING],\n ['autoclose', PROP_STRING],\n ['badgetype', { value: 'default', ...PROP_STRING }],\n ['badgevalue', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', PROP_BOOLEAN],\n ['collapsible', PROP_BOOLEAN],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['content', PROP_STRING],\n ['datafield', PROP_STRING],\n ['enablefullscreen', PROP_BOOLEAN],\n ['expanded', { value: true, ...PROP_BOOLEAN }],\n ['fullscreen', PROP_BOOLEAN],\n ['helptext', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['name', PROP_STRING],\n ['show', { value: true, ...PROP_BOOLEAN }],\n ['subheading', PROP_STRING],\n ['title', PROP_STRING],\n ['userrole', PROP_STRING],\n ['hint', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { TextContentDirective, TrustAsPipe, WmAppIconComponent } from \"@wm/components/base\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\n\nimport { $appDigest, noop, removeAttr, setCSS, toggleClass } from '@wm/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, RedrawableDirective, styler } from '@wm/components/base';\nimport { MenuAdapterComponent, MenuComponent } from '@wm/components/navigation/menu';\nimport { registerProps } from './panel.props';\nimport { omit } from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-panel panel';\nconst WIDGET_CONFIG: IWidgetConfig = { widgetType: 'wm-panel', hostClass: DEFAULT_CLS };\n\n@Component({\n standalone: true,\n imports: [BsDropdownModule, CommonModule, TextContentDirective, TrustAsPipe, MenuComponent, WmAppIconComponent],\n selector: '[wmPanel]',\n templateUrl: './panel.component.html',\n providers: [\n provideAsWidgetRef(PanelComponent)\n ],\n exportAs: 'wmPanel'\n})\n\nexport class PanelComponent extends MenuAdapterComponent implements OnInit, AfterContentInit, OnDestroy {\n static initializeProps = registerProps();\n\n public $lazyLoad = noop;\n public iconurl: string;\n public iconclass: string;\n public iconwidth: string;\n public iconheight: string;\n public iconmargin: string;\n public collapsible: boolean;\n public expanded = true;\n public enablefullscreen: boolean;\n public fullscreen: boolean;\n public title: string;\n public subheading: string;\n public actions: any;\n public selectedAction: any;\n\n public helpClass = '';\n public helptext = '';\n private fullScreenTitle: string;\n private expandCollapseTitle: string;\n\n @ViewChild('panelHeading', { static: false }) private panelHeader: ElementRef;\n @ViewChild('panelContent', { static: true }) private panelContent: ElementRef;\n @ViewChild('panelBody', { static: true }) private panelBody: ElementRef;\n @ContentChildren(RedrawableDirective, { descendants: true }) reDrawableComponents;\n\n private hasFooter: boolean;\n\n // conditions to show the footer\n public get hideFooter() {\n return !this.hasFooter || !this.expanded;\n }\n\n // conditions to show header\n public get showHeader() {\n return this.iconurl || this.iconclass || this.collapsible || this.actions || this.title || this.subheading || this.enablefullscreen;\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n\n this.fullScreenTitle = `${this.appLocale.LABEL_FULLSCREEN}/${this.appLocale.LABEL_EXITFULLSCREEN}`;\n this.expandCollapseTitle = `${this.appLocale.LABEL_COLLAPSE}/${this.appLocale.LABEL_EXPAND}`;\n removeAttr(this.nativeElement, 'title');\n }\n\n // toggle the panel state between collapsed - expanded. invoke the respective callbacks\n public toggle($event) {\n if (this.collapsible) {\n this.invokeEventCallback(this.expanded ? 'collapse' : 'expand', { $event });\n this.expanded = !this.expanded;\n if (this.expanded) {\n this.$lazyLoad();\n this.reDrawChildren();\n }\n }\n }\n\n public expand($event) {\n if (!this.expanded) {\n this.toggle($event);\n }\n }\n\n public collapse($event) {\n if (this.expanded) {\n this.toggle($event);\n }\n }\n\n // toggle the fullscreen state of the panel. invoke the respective callbacks\n protected toggleFullScreen($event) {\n if (this.enablefullscreen) {\n this.invokeEventCallback(this.fullscreen ? 'exitfullscreen' : 'fullscreen', { $event });\n this.fullscreen = !this.fullscreen;\n toggleClass(this.nativeElement, 'fullscreen', this.fullscreen);\n // Re-plot the widgets inside panel\n this.reDrawChildren();\n }\n this.computeDimensions();\n }\n\n // show/hide help\n protected toggleHelp() {\n this.helpClass = this.helpClass ? '' : 'show-help';\n toggleClass(this.nativeElement, 'show-help', !!this.helpClass);\n $appDigest();\n }\n\n // On action item click\n protected menuActionItemClick($event, $item) {\n this.selectedAction = omit($item, ['children', 'value']);\n this.invokeEventCallback('actionsclick', { $event, $item: this.selectedAction });\n }\n\n // hide the panel and invoke the respective event handler\n protected close($event) {\n this.getWidget().show = false;\n this.invokeEventCallback('close', { $event });\n }\n\n // calculation of dimensions when the panel the panel state changes from/to fullscreen\n private computeDimensions() {\n const headerHeight = this.panelHeader.nativeElement.offsetHeight;\n const footer = this.nativeElement.querySelector('.panel-footer') as HTMLElement;\n const content = this.panelContent.nativeElement;\n const vHeight = window.innerHeight;\n\n let inlineHeight;\n\n if (this.fullscreen) {\n inlineHeight = this.hideFooter ? (vHeight - headerHeight) : vHeight - (footer.offsetHeight + headerHeight);\n } else {\n inlineHeight = this.height || '';\n }\n\n setCSS(content, 'height', inlineHeight);\n }\n\n // notify the redrawable components(charts, grid)\n private reDrawChildren() {\n setTimeout(() => {\n if (this.reDrawableComponents) {\n this.reDrawableComponents.forEach(c => c.redraw());\n }\n }, 100);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'expanded') {\n this.expanded = nv;\n } else if (key === 'content') {\n setTimeout(() => {\n if (this.expanded || !this.collapsible) {\n this.$lazyLoad();\n }\n }, 20);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this.hasFooter = !!this.nativeElement.querySelector('[wmPanelFooter]');\n styler(this.panelBody.nativeElement as HTMLElement, this, APPLY_STYLES_TYPE.INNER_SHELL);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.panelHeader = null;\n this.panelContent = null;\n this.panelBody = null;\n\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.reDrawableComponents) {\n this.reDrawableComponents = null;\n }\n\n // MEMORY LEAK FIX: Clear lazy load function reference\n this.$lazyLoad = null;\n\n super.ngOnDestroy();\n }\n}\n","@if (showHeader) {\n <div class=\"panel-heading {{helpClass}}\" #panelHeading>\n <div class=\"panel-title\">\n <a href=\"javascript:void(0)\" class=\"panel-toggle\" (click)=\"toggle($event)\" [attr.aria-expanded]=\"!!expanded\">\n <div class=\"pull-left\">\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"\n alt=\"Panel icon\"></wm-app-icon>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\" [title]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </a>\n <div class=\"panel-actions\">\n @if (badgevalue) {\n <span\n class=\"app-badge label label-{{badgetype}}\">{{badgevalue}}</span>\n }\n @if (actions) {\n <div wmMenu aria-label=\"dropdown\" dropdown type=\"anchor\" class=\"panel-action\" dataset.bind=\"actions\"\n caption=\"\" menuposition=\"down,left\" iconclass=\"wi wi-more-vert\"\n autoclose.bind=\"autoclose\" datafield.bind=\"datafield\" select.event=\"menuActionItemClick($event,$item)\">\n </div>\n }\n @if (helptext) {\n <button type=\"button\" aria-label=\"Help\" class=\"app-icon panel-action wi\" [title]=\"appLocale.LABEL_HELP\"\n (click)=\"toggleHelp()\"><i class=\"wi-question\"></i></button>\n }\n @if (collapsible) {\n <button type=\"button\" aria-label=\"Collapse/Expand\" class=\"app-icon wi panel-action\"\n [title]=\"expandCollapseTitle\" (click)=\"toggle($event);\" [attr.aria-expanded]=\"!!expanded\"><i\n [ngClass]=\"expanded ? 'wi-minus' : 'wi-plus'\"></i></button>\n }\n @if (enablefullscreen) {\n <button type=\"button\" aria-label=\"Fullscreen/Exit\" class=\"app-icon panel-action wi\"\n [title]=\"fullScreenTitle\" (click)=\"toggleFullScreen($event);\"><i\n [ngClass]=\"fullscreen ? 'wi-fullscreen-exit' : 'wi-fullscreen'\"></i></button>\n }\n @if (closable) {\n <button type=\"button\" aria-label=\"Close button\" class=\"app-icon panel-action\"\n title=\"{{appLocale.LABEL_CLOSE}}\" (click)=\"close($event)\"><i\n class=\"wi wi-close\"></i></button>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"panel-content\" [hidden]=\"!expanded\" #panelContent>\n <!-- Todo Bandhavya - implement smooth scroll -->\n <div partial-container-target #panelBody [ngClass]=\"['panel-body', helpClass]\">\n <ng-content></ng-content>\n </div>\n <aside class=\"panel-help-message\" [ngClass]=\"helpClass\">\n <h5 class=\"panel-help-header\" [textContent]=\"appLocale.LABEL_HELP\"></h5>\n <div class=\"panel-help-content\" [innerHTML]=\"helptext | trustAs : 'html'\"></div>\n </aside>\n </div>\n <div class=\"app-panel-footer panel-footer clearfix\" [hidden]=\"hideFooter\">\n <ng-content select=\"[wmPanelFooter]\"></ng-content>\n </div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ declare class PanelComponent extends MenuAdapterComponent implements OnInit, Aft
7
7
  $lazyLoad: (...args: any[]) => void;
8
8
  iconurl: string;
9
9
  iconclass: string;
10
+ iconwidth: string;
11
+ iconheight: string;
12
+ iconmargin: string;
10
13
  collapsible: boolean;
11
14
  expanded: boolean;
12
15
  enablefullscreen: boolean;