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

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 (96) hide show
  1. package/components/base/bundles/index.umd.js +30 -9
  2. package/components/base/fesm2022/index.mjs +30 -9
  3. package/components/base/fesm2022/index.mjs.map +1 -1
  4. package/components/base/index.d.ts +5 -1
  5. package/components/basic/anchor/bundles/index.umd.js +1 -1
  6. package/components/basic/anchor/fesm2022/index.mjs +1 -1
  7. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  8. package/components/basic/icon/bundles/index.umd.js +1 -1
  9. package/components/basic/icon/fesm2022/index.mjs +1 -1
  10. package/components/basic/icon/fesm2022/index.mjs.map +1 -1
  11. package/components/basic/search/bundles/index.umd.js +1 -1
  12. package/components/basic/search/fesm2022/index.mjs +1 -1
  13. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  14. package/components/basic/spinner/bundles/index.umd.js +1 -1
  15. package/components/basic/spinner/fesm2022/index.mjs +1 -1
  16. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  17. package/components/chart/bundles/index.umd.js +1 -1
  18. package/components/chart/fesm2022/index.mjs +1 -1
  19. package/components/chart/fesm2022/index.mjs.map +1 -1
  20. package/components/containers/accordion/bundles/index.umd.js +1 -1
  21. package/components/containers/accordion/fesm2022/index.mjs +1 -1
  22. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  23. package/components/containers/panel/bundles/index.umd.js +1 -1
  24. package/components/containers/panel/fesm2022/index.mjs +1 -1
  25. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  26. package/components/containers/tabs/bundles/index.umd.js +1 -1
  27. package/components/containers/tabs/fesm2022/index.mjs +1 -1
  28. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  29. package/components/containers/wizard/bundles/index.umd.js +1 -1
  30. package/components/containers/wizard/fesm2022/index.mjs +1 -1
  31. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  32. package/components/data/card/bundles/index.umd.js +1 -1
  33. package/components/data/card/fesm2022/index.mjs +1 -1
  34. package/components/data/card/fesm2022/index.mjs.map +1 -1
  35. package/components/data/form/bundles/index.umd.js +1 -1
  36. package/components/data/form/fesm2022/index.mjs +1 -1
  37. package/components/data/form/fesm2022/index.mjs.map +1 -1
  38. package/components/data/list/bundles/index.umd.js +1 -1
  39. package/components/data/list/fesm2022/index.mjs +1 -1
  40. package/components/data/list/fesm2022/index.mjs.map +1 -1
  41. package/components/data/pagination/bundles/index.umd.js +3 -0
  42. package/components/data/pagination/fesm2022/index.mjs +3 -0
  43. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  44. package/components/data/table/bundles/index.umd.js +9 -2
  45. package/components/data/table/fesm2022/index.mjs +9 -2
  46. package/components/data/table/fesm2022/index.mjs.map +1 -1
  47. package/components/dialogs/default/bundles/index.umd.js +1 -1
  48. package/components/dialogs/default/fesm2022/index.mjs +1 -1
  49. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  50. package/components/input/button/bundles/index.umd.js +1 -1
  51. package/components/input/button/fesm2022/index.mjs +1 -1
  52. package/components/input/button/fesm2022/index.mjs.map +1 -1
  53. package/components/input/checkbox/bundles/index.umd.js +1 -1
  54. package/components/input/checkbox/fesm2022/index.mjs +1 -1
  55. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  56. package/components/input/dataset-aware-form/bundles/index.umd.js +1 -1
  57. package/components/input/dataset-aware-form/fesm2022/index.mjs +1 -1
  58. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
  59. package/components/input/file-upload/bundles/index.umd.js +1 -1
  60. package/components/input/file-upload/fesm2022/index.mjs +1 -1
  61. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  62. package/components/input/rating/bundles/index.umd.js +1 -1
  63. package/components/input/rating/fesm2022/index.mjs +1 -1
  64. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  65. package/components/input/slider/bundles/index.umd.js +1 -1
  66. package/components/input/slider/fesm2022/index.mjs +1 -1
  67. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  68. package/components/input/switch/bundles/index.umd.js +1 -1
  69. package/components/input/switch/fesm2022/index.mjs +1 -1
  70. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  71. package/components/input/text/bundles/index.umd.js +1 -1
  72. package/components/input/text/fesm2022/index.mjs +1 -1
  73. package/components/input/text/fesm2022/index.mjs.map +1 -1
  74. package/components/navigation/breadcrumb/bundles/index.umd.js +3 -3
  75. package/components/navigation/breadcrumb/fesm2022/index.mjs +4 -4
  76. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  77. package/components/navigation/menu/bundles/index.umd.js +1 -1
  78. package/components/navigation/menu/fesm2022/index.mjs +1 -1
  79. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  80. package/components/navigation/navbar/bundles/index.umd.js +1 -1
  81. package/components/navigation/navbar/fesm2022/index.mjs +1 -1
  82. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  83. package/components/page/default/bundles/index.umd.js +1 -0
  84. package/components/page/default/fesm2022/index.mjs +1 -0
  85. package/components/page/default/fesm2022/index.mjs.map +1 -1
  86. package/core/fesm2022/index.mjs.map +1 -1
  87. package/npm-shrinkwrap.json +2 -2
  88. package/package-lock.json +2 -2
  89. package/package.json +1 -1
  90. package/runtime/base/bundles/index.umd.js +7 -4
  91. package/runtime/base/fesm2022/index.mjs +7 -4
  92. package/runtime/base/fesm2022/index.mjs.map +1 -1
  93. package/scripts/datatable/datatable.js +3 -3
  94. package/transpiler/bundles/index.umd.js +3 -0
  95. package/transpiler/fesm2022/index.mjs +3 -0
  96. package/transpiler/fesm2022/index.mjs.map +1 -1
@@ -340,7 +340,7 @@
340
340
  this.dialogRef.close();
341
341
  }
342
342
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: DialogHeaderComponent, deps: [{ token: i0__namespace.ElementRef }, { token: base.DialogRef }, { token: i1$1__namespace.App }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
343
- static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DialogHeaderComponent, isStandalone: true, selector: "div[wmDialogHeader]", inputs: { iconwidth: "iconwidth", iconheight: "iconheight", iconmargin: "iconmargin", iconclass: "iconclass", iconurl: "iconurl", closable: "closable", heading: "heading", headinglevel: "headinglevel", subheading: "subheading", titleid: "titleid", title: "title" }, ngImport: i0__namespace, template: "@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: i2.CommonModule }, { kind: "directive", type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
343
+ static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DialogHeaderComponent, isStandalone: true, selector: "div[wmDialogHeader]", inputs: { iconwidth: "iconwidth", iconheight: "iconheight", iconmargin: "iconmargin", iconclass: "iconclass", iconurl: "iconurl", closable: "closable", heading: "heading", headinglevel: "headinglevel", subheading: "subheading", titleid: "titleid", title: "title" }, ngImport: i0__namespace, template: "@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: i2.CommonModule }, { kind: "directive", type: i2__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
344
344
  }
345
345
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: DialogHeaderComponent, decorators: [{
346
346
  type: i0.Component,
@@ -323,7 +323,7 @@ class DialogHeaderComponent {
323
323
  this.dialogRef.close();
324
324
  }
325
325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: DialogHeaderComponent, deps: [{ token: i0.ElementRef }, { token: DialogRef }, { token: i1$1.App }], target: i0.ɵɵFactoryTarget.Component }); }
326
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DialogHeaderComponent, isStandalone: true, selector: "div[wmDialogHeader]", inputs: { iconwidth: "iconwidth", iconheight: "iconheight", iconmargin: "iconmargin", iconclass: "iconclass", iconurl: "iconurl", closable: "closable", heading: "heading", headinglevel: "headinglevel", subheading: "subheading", titleid: "titleid", title: "title" }, ngImport: i0, template: "@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
326
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: DialogHeaderComponent, isStandalone: true, selector: "div[wmDialogHeader]", inputs: { iconwidth: "iconwidth", iconheight: "iconheight", iconmargin: "iconmargin", iconclass: "iconclass", iconurl: "iconurl", closable: "closable", heading: "heading", headinglevel: "headinglevel", subheading: "subheading", titleid: "titleid", title: "title" }, ngImport: i0, template: "@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
327
327
  }
328
328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: DialogHeaderComponent, decorators: [{
329
329
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, getSheetPositionClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective implements OnDestroy {\n @HostBinding('style.height') height;\n private bsModalShownSubscription: Subscription;\n\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const isSheet = this.dialogRef.sheet;\n const sheetPosition = this.dialogRef.sheetPosition;\n if(isSheet) {\n $(dialogRoot).addClass('modal-sheet');\n $(dialogRoot).addClass(getSheetPositionClass(sheetPosition));\n }\n const animation = this.dialogRef.animation;\n if(animation) {\n $(dialogContent).addClass('animated');\n $(dialogContent).addClass(animation);\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n // Clean up subscription after first use\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear dialogRef reference\n this.dialogRef = null;\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import { Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\n\nimport { Subscription } from 'rxjs';\n\nimport { AbstractDialogService, findRootContainer, generateGUId, isMobile } from '@wm/core';\n\nimport { BaseComponent, IDialog, IWidgetConfig, WidgetConfig } from '@wm/components/base';\n\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', { $event: { type: 'opened' } });\n // Focusing the first focusable element when the dialog is opened\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n $(keyboardFocusableElements[0]).focus();\n\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length > 1) {\n const zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n $('bs-modal-backdrop').css('z-index', zIndex + 1);\n }\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length >= 1) {\n const zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n $('bs-modal-backdrop').css('z-index', zIndex - 1);\n }\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: string;\n public titleId: string = 'wmdialog-' + generateGUId();\n public sheet: string | boolean;\n public sheetPosition: string;\n private dialogOriginFocusStack: HTMLElement[] = [];\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({ id }) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => { }),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => { }),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogOriginFocusStack.push(document.activeElement as HTMLElement);\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n $('.cdk-focus-trap-anchor').removeAttr('aria-hidden');\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n const lastDialogOrigin = this.dialogOriginFocusStack.pop();\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n // Return focus to the originating element upon dialog closure\n lastDialogOrigin?.focus();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}","import {CommonModule} from '@angular/common';\nimport {DialogRef, TextContentDirective, WmAppIconComponent} from \"@wm/components/base\";\nimport {Component, ElementRef, Inject, Input} from '@angular/core';\n\nimport {addClass, App, toBoolean} from '@wm/core';\nimport {BaseDialog} from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n @Input() public title: string;\n isPrism: boolean;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) public dialogRef: BaseDialog, public app: App ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n this.isPrism = this.app.isPrism;\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS","i1"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/default/src/dialog-body/dialog-body.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.props.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-footer/dialog-footer.directive.ts","../../../../../projects/components/widgets/dialogs/default/src/base-dialog.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.ts","../../../../../projects/components/widgets/dialogs/default/src/dialog-header/dialog-header.component.html","../../../../../projects/components/widgets/dialogs/default/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, Inject, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { addClass, getSheetPositionClass, setAttr, setCSS } from '@wm/core';\n\nimport { DialogRef } from '@wm/components/base';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-dialog-body modal-body';\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogBody]',\n})\nexport class DialogBodyDirective implements OnDestroy {\n @HostBinding('style.height') height;\n private bsModalShownSubscription: Subscription;\n\n constructor(\n elRef: ElementRef,\n @Inject(DialogRef) private dialogRef,\n bsModal: BsModalService,\n private renderer: Renderer2\n ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n\n this.bsModalShownSubscription = bsModal.onShown.subscribe(() => {\n const dialogRoot = $(elRef.nativeElement).closest('.app-dialog')[0];\n const dialogContent = $(elRef.nativeElement).closest('.modal-content')[0];\n let dialogRootContainer = $('body.wm-app')[0];\n // To identify the microfrontend, if body tag doesn't have wm-app class then app loading as micro-frontend\n if(!dialogRootContainer) {\n const dialogBackrop = $('body > .modal-backdrop')[0];\n const parentContainer = $('body > modal-container')[0];\n dialogRootContainer = $('.wm-app')[0];\n if(dialogRootContainer && parentContainer ){\n if(dialogBackrop){\n this.renderer.appendChild(dialogRootContainer, dialogBackrop);\n }\n this.renderer.appendChild(dialogRootContainer, parentContainer);\n\n }\n }\n const isSheet = this.dialogRef.sheet;\n const sheetPosition = this.dialogRef.sheetPosition;\n if(isSheet) {\n $(dialogRoot).addClass('modal-sheet');\n $(dialogRoot).addClass(getSheetPositionClass(sheetPosition));\n }\n const animation = this.dialogRef.animation;\n if(animation) {\n $(dialogContent).addClass('animated');\n $(dialogContent).addClass(animation);\n }\n const width = this.dialogRef.width;\n const height = this.dialogRef.height;\n if(height){\n setTimeout(e=>{\n setCSS($(elRef.nativeElement)[0], 'height', height);\n });\n }\n if (dialogRoot) {\n if (width) {\n setCSS(dialogRoot, 'width', width);\n }\n setAttr(dialogRoot, 'tabindex', this.dialogRef.tabindex);\n setAttr(dialogRoot, 'name', this.dialogRef.name);\n\n }\n // Clean up subscription after first use\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n });\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Unsubscribe from bsModal.onShown if not already unsubscribed\n if (this.bsModalShownSubscription) {\n this.bsModalShownSubscription.unsubscribe();\n this.bsModalShownSubscription = null;\n }\n\n // MEMORY LEAK FIX: Clear dialogRef reference\n this.dialogRef = null;\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-dialogfooter',\n new Map([\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ])\n );\n};\n","import {Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport { BaseComponent, IWidgetConfig, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './dialog-footer.props';\n\nconst WIDGET_INFO: IWidgetConfig = {\n widgetType: 'wm-dialogfooter',\n hostClass: 'app-dialog-footer modal-footer'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmDialogFooter]',\n providers: [\n provideAsWidgetRef(DialogFooterDirective)\n ]\n})\nexport class DialogFooterDirective extends BaseComponent {\n static initializeProps = registerProps();\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n }\n}\n","import { Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\n\nimport { Subscription } from 'rxjs';\n\nimport { AbstractDialogService, findRootContainer, generateGUId, isMobile } from '@wm/core';\n\nimport { BaseComponent, IDialog, IWidgetConfig, WidgetConfig } from '@wm/components/base';\n\n\nconst invokeOpenedCallback = (ref) => {\n if (ref) {\n setTimeout(() => {\n const root = findRootContainer(ref.$element);\n // if page styles have to be applied to dialog then dialog has to be child of page element.\n if (root) {\n $('body > modal-container > div').wrap('<' + root + '/>');\n }\n ref.invokeEventCallback('opened', { $event: { type: 'opened' } });\n // Focusing the first focusable element when the dialog is opened\n const container = $('[aria-labelledby= ' + ref.titleId + ']')[0];\n const keyboardFocusableElements = [container.querySelectorAll(\n 'a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => {\n return (\n !el[0].hasAttribute('disabled') && !el[0].hasAttribute('hidden'));\n })[0];\n $(keyboardFocusableElements[0]).focus();\n\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length > 1) {\n const zIndex = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 2].titleId + \"]\").css('z-index'));\n $('[aria-labelledby= ' + ref.dialogService.getLastOpenedDialog().titleId + ']').css('z-index', zIndex + 2);\n $('bs-modal-backdrop').css('z-index', zIndex + 1);\n }\n });\n }\n};\n\nconst invokeClosedCallback = (ref) => {\n if (ref) {\n ref.invokeEventCallback('close');\n ref.dialogRef = undefined;\n const openedDialogs = ref.dialogService.getOpenedDialogs();\n if (openedDialogs.length >= 1) {\n const zIndex: any = Number($(\"[aria-labelledby= \" + openedDialogs[openedDialogs.length - 1].titleId + \"]\").css('z-index'));\n $('bs-modal-backdrop').css('z-index', zIndex - 1);\n }\n }\n};\n\n@Injectable()\nexport abstract class BaseDialog extends BaseComponent implements IDialog, OnDestroy {\n\n public name: string;\n\n private readonly dialogService: AbstractDialogService;\n private readonly bsModal: BsModalService;\n\n private dialogRef: BsModalRef;\n private dialogId: string;\n public titleId: string = 'wmdialog-' + generateGUId();\n public sheet: string | boolean;\n public sheetPosition: string;\n private dialogOriginFocusStack: HTMLElement[] = [];\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n protected modalOptions: ModalOptions,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.dialogService = inj.get(AbstractDialogService);\n this.bsModal = inj.get(BsModalService);\n const router = inj.get(Router);\n\n const subscriptions: Subscription[] = [\n this.bsModal.onShown.subscribe(({ id }) => {\n const ref = this.dialogService.getLastOpenedDialog();\n if (ref === this && !this.dialogId) {\n // Always get the reference of last pushed dialog in the array for calling onOpen callback\n invokeOpenedCallback(ref);\n this.dialogId = id;\n }\n }),\n this.bsModal.onShow.subscribe(() => { }),\n this.bsModal.onHidden.subscribe((closeReason) => {\n let ref = this.dialogService.getDialogRefFromClosedDialogs();\n if (this.dialogId && closeReason?.id === this.dialogId) {\n ref = this;\n } else if (closeReason === 'esc' || closeReason === 'backdrop-click') {\n ref = this.dialogService.getLastOpenedDialog();\n }\n if (ref === this) {\n this.dialogId = null;\n // remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(ref);\n this.dialogService.removeFromClosedDialogs(ref);\n invokeClosedCallback(ref);\n if (ref.closeCallBackFn) {\n ref.closeCallBackFn();\n }\n }\n }),\n this.bsModal.onHide.subscribe(() => { }),\n router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.close();\n }\n })\n ];\n this.registerDestroyListener(() => {// remove the dialog reference from opened dialogs and closed dialogs\n this.dialogService.removeFromOpenedDialogs(this);\n this.dialogService.removeFromClosedDialogs(this);\n subscriptions.forEach(s => s.unsubscribe());\n });\n }\n\n /**\n * Opens the dialog\n * Subscribe to the onShown event emitter of bsModal and trigger on-opened event callback\n */\n public open(initState?: any) {\n\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n\n // do not open the dialog again if it is already opened\n const duplicateDialogCheck = (openedDialog) => {\n return openedDialog === this;\n };\n\n if (this.dialogService.getOpenedDialogs().some(duplicateDialogCheck)) {\n return;\n }\n\n this.dialogService.addToOpenedDialogs(this);\n // extend the context with the initState\n Object.assign(this.context, initState);\n this.modalOptions.ariaLabelledBy = this.titleId;\n this.dialogOriginFocusStack.push(document.activeElement as HTMLElement);\n this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);\n // Fix for [WMS-23948]: Focus moving out of active Dialog widget\n if (this.dialogService.getOpenedDialogs().length === 1 && (isMobile())) {\n const parentSelector = $('body > app-root')[0];\n parentSelector.setAttribute('aria-hidden', 'true');\n }\n $('.cdk-focus-trap-anchor').removeAttr('aria-hidden');\n }\n\n /**\n * closes the dialog\n * invokes the on-close event callback\n */\n public close() {\n // remove the popovers in the page to avoid the overlap with dialog\n // closePopover(this.$element); Commenting this line because it is causing regression(if we have dialog inside popover as partail content, then the dialog close is not working because on closing the popover the partial get destroyed.)\n if (this.dialogRef) {\n const lastDialogOrigin = this.dialogOriginFocusStack.pop();\n this.dialogService.addToClosedDialogs(this);\n this.dialogRef.hide();\n // Return focus to the originating element upon dialog closure\n lastDialogOrigin?.focus();\n }\n }\n\n /**\n * Register the dialog with the dialog service for programmatic access\n */\n protected register(scope) {\n // add scope along with name in the dialogRefsCollection Map while registering dialog\n // So that 2 dialogs having same name on different pages won't be overridden.\n this.dialogService.register(this.name, this, scope);\n }\n\n /**\n * De Register the dialog with the dialog service after dialog destruction\n */\n protected deRegister(scope) {\n this.dialogService.deRegister(this.name, scope);\n }\n\n /**\n * subclasses of BaseDialog must implement this method to return the proper template element ref\n * bsModal will use this refence to open the dialog\n * @returns {TemplateRef<any>}\n */\n protected abstract getTemplateRef(): TemplateRef<any>;\n\n protected onPropertyChange(key: string, nv: any, ov?: any) {\n // ignore the class attribute.\n // Prevent the framework from setting the class on the host element.\n if (key === 'class' || key === 'name' || key === 'tabindex') {\n return;\n } else if (key === 'animation') {\n this.modalOptions.class = this.modalOptions.class.replace(' animated ' + ov, '');\n if (nv) {\n this.modalOptions.class = this.modalOptions.class + ' animated ' + nv;\n }\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n public ngOnDestroy() {\n this.close();\n this.deRegister(this.viewParent);\n super.ngOnDestroy();\n }\n}","import {CommonModule} from '@angular/common';\nimport {DialogRef, TextContentDirective, WmAppIconComponent} from \"@wm/components/base\";\nimport {Component, ElementRef, Inject, Input} from '@angular/core';\n\nimport {addClass, App, toBoolean} from '@wm/core';\nimport {BaseDialog} from '../base-dialog';\n\nconst DEFAULT_CLS = 'app-dialog-header modal-header';\nconst DEFAULT_ICON_DIMENSIONS = '21px';\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: 'div[wmDialogHeader]',\n templateUrl: './dialog-header.component.html'\n})\nexport class DialogHeaderComponent {\n\n @Input() public iconwidth = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconheight = DEFAULT_ICON_DIMENSIONS;\n @Input() public iconmargin: string;\n @Input() public iconclass: string;\n @Input() public iconurl: string;\n @Input() public closable = true;\n @Input() public heading: string;\n @Input() public headinglevel?: string = 'h4';\n @Input() public subheading: string;\n @Input() public titleid:string;\n @Input() public title: string;\n isPrism: boolean;\n\n public get isClosable() {\n return toBoolean(this.closable);\n }\n\n constructor(elRef: ElementRef, @Inject(DialogRef) public dialogRef: BaseDialog, public app: App ) {\n addClass(elRef.nativeElement, DEFAULT_CLS);\n this.isPrism = this.app.isPrism;\n }\n\n public closeDialog() {\n this.dialogRef.close();\n }\n}\n","@if (isClosable) {\n <button (click)=\"closeDialog();\"\n [attr.aria-label]=\"'Close ' + (title ? title : '') + ' dialog'\" class=\"app-dialog-close close\" [ngClass]=\"{'btn-text': isPrism}\" [attr.title]=\"title ? 'Close ' + title + ' dialog' : dialogRef.appLocale.LABEL_CLOSE\" >\n <span class=\"app-icon wi wi-clear\" aria-hidden=\"true\"></span>\n </button>\n}\n\n@switch (headinglevel) {\n @case ('h1') {\n <h1 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h3>\n }\n @case ('h4') {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n @case ('h5') {\n <h5 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h5>\n }\n @case ('h6') {\n <h6 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h6>\n }\n @default {\n <h4 class=\"app-dialog-title modal-title\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </h4>\n }\n}\n\n<ng-template #headerTemplate>\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconStyle]=\"{width: iconwidth, height: iconheight, margin: iconmargin, fontSize: iconwidth}\"></wm-app-icon>\n }\n <span class=\"dialog-heading\" [textContent]=\"heading\" [id]=\"titleid\"></span>\n @if (subheading) {\n <span class=\"dialog-sub-heading\" [title]=\"subheading\" [textContent]=\"subheading\"></span>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["DEFAULT_CLS","i1"],"mappings":"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"}
@@ -63,7 +63,7 @@
63
63
  static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: ButtonComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
64
64
  static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ButtonComponent, isStandalone: true, selector: "button[wmButton]", host: { properties: { "type": "this.type", "tabIndex": "this.tabindex", "disabled": "this.disabled", "attr.accesskey": "this.shortcutkey", "attr.icon-position": "this.iconposition" } }, providers: [
65
65
  base.provideAsWidgetRef(ButtonComponent)
66
- ], exportAs: ["wmButton"], usesInheritance: true, ngImport: i0__namespace, template: "@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}", dependencies: [{ kind: "ngmodule", type: common.CommonModule }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
66
+ ], exportAs: ["wmButton"], usesInheritance: true, ngImport: i0__namespace, template: "@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}", dependencies: [{ kind: "ngmodule", type: common.CommonModule }, { kind: "directive", type: base.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
67
67
  }
68
68
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: ButtonComponent, decorators: [{
69
69
  type: i0.Component,
@@ -43,7 +43,7 @@ class ButtonComponent extends StylableComponent {
43
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
44
44
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ButtonComponent, isStandalone: true, selector: "button[wmButton]", host: { properties: { "type": "this.type", "tabIndex": "this.tabindex", "disabled": "this.disabled", "attr.accesskey": "this.shortcutkey", "attr.icon-position": "this.iconposition" } }, providers: [
45
45
  provideAsWidgetRef(ButtonComponent)
46
- ], exportAs: ["wmButton"], usesInheritance: true, ngImport: i0, template: "@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
46
+ ], exportAs: ["wmButton"], usesInheritance: true, ngImport: i0, template: "@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ButtonComponent, decorators: [{
49
49
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/button/src/button.props.ts","../../../../../projects/components/widgets/input/button/src/button.component.ts","../../../../../projects/components/widgets/input/button/src/button.component.html","../../../../../projects/components/widgets/input/button/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-button',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {Component, HostBinding, Inject, Injector, Optional} from '@angular/core';\n\nimport {DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, TextContentDirective, WmAppIconComponent} from '@wm/components/base';\n\nimport {registerProps} from './button.props';\n\nconst DEFAULT_CLS = 'btn app-button';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-button',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: 'button[wmButton]',\n templateUrl: './button.component.html',\n providers: [\n provideAsWidgetRef(ButtonComponent)\n ],\n exportAs: 'wmButton'\n})\nexport class ButtonComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public iconurl: string;\n public iconclass: string;\n public iconwidth: string;\n public iconheight: string;\n public iconmargin: string;\n public caption: string;\n public badgevalue: string;\n public arialabel: string;\n @HostBinding('type') type: string;\n @HostBinding('tabIndex') tabindex: number;\n @HostBinding('disabled') disabled: boolean;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\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/input/button/src/button.props.ts","../../../../../projects/components/widgets/input/button/src/button.component.ts","../../../../../projects/components/widgets/input/button/src/button.component.html","../../../../../projects/components/widgets/input/button/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-button',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","import { CommonModule } from '@angular/common';\nimport {Component, HostBinding, Inject, Injector, Optional} from '@angular/core';\n\nimport {DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, TextContentDirective, WmAppIconComponent} from '@wm/components/base';\n\nimport {registerProps} from './button.props';\n\nconst DEFAULT_CLS = 'btn app-button';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-button',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, WmAppIconComponent],\n selector: 'button[wmButton]',\n templateUrl: './button.component.html',\n providers: [\n provideAsWidgetRef(ButtonComponent)\n ],\n exportAs: 'wmButton'\n})\nexport class ButtonComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public iconurl: string;\n public iconclass: string;\n public iconwidth: string;\n public iconheight: string;\n public iconmargin: string;\n public caption: string;\n public badgevalue: string;\n public arialabel: string;\n @HostBinding('type') type: string;\n @HostBinding('tabIndex') tabindex: number;\n @HostBinding('disabled') disabled: boolean;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","@if (iconclass) {\n <wm-app-icon [iconclass]=\"iconclass\"\n [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n@if (iconurl) {\n <wm-app-icon [iconurl]=\"iconurl\" [defaultClasses]=\"'button-image-icon'\" [iconStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\"></wm-app-icon>\n}\n\n@if (iconclass || iconurl) {\n <span class=\"sr-only\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n}\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n@if (badgevalue) {\n <span class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -168,7 +168,7 @@
168
168
  base.provideAs(CheckboxComponent, i2.NG_VALUE_ACCESSOR, true),
169
169
  base.provideAs(CheckboxComponent, i2.NG_VALIDATORS, true),
170
170
  base.provideAsWidgetRef(CheckboxComponent)
171
- ], viewQueries: [{ propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "checkboxEl", first: true, predicate: ["checkbox"], descendants: true, read: i0.ElementRef, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
171
+ ], viewQueries: [{ propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "checkboxEl", first: true, predicate: ["checkbox"], descendants: true, read: i0.ElementRef, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: base.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
172
172
  }
173
173
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: CheckboxComponent, decorators: [{
174
174
  type: i0.Component,
@@ -151,7 +151,7 @@ class CheckboxComponent extends BaseFormCustomComponent {
151
151
  provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),
152
152
  provideAs(CheckboxComponent, NG_VALIDATORS, true),
153
153
  provideAsWidgetRef(CheckboxComponent)
154
- ], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "checkboxEl", first: true, predicate: ["checkbox"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
154
+ ], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "checkboxEl", first: true, predicate: ["checkbox"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: CheckboxComponent, decorators: [{
157
157
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/checkbox/src/checkbox.props.ts","../../../../../projects/components/widgets/input/checkbox/src/checkbox.component.ts","../../../../../projects/components/widgets/input/checkbox/src/checkbox.component.html","../../../../../projects/components/widgets/input/checkbox/src/index.ts"],"sourcesContent":["import {FormWidgetType} from '@wm/core';\nimport {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\n\nexport const checkboxProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['checkedvalue', {value: true, ...PROP_STRING}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['uncheckedvalue', {value: false, ...PROP_STRING}],\n ['unselectedicon', PROP_STRING],\n ['selectedicon', PROP_STRING],\n ['unselectediconurl', PROP_STRING],\n ['selectediconurl', PROP_STRING]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkbox',\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOX,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.ICONBUTTONTOGGLE,\n checkboxProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, styler, WmAppIconComponent} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\n\nimport {registerProps} from './checkbox.props';\n\nconst DEFAULT_CLS = 'app-checkbox checkbox';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-checkbox',\n hostClass: DEFAULT_CLS\n};\n\n/*\n * try to convert the chekedvalue and unchecked values to boolean/number\n */\nexport const unStringify = (val, defaultVal?) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, WmAppIconComponent],\n selector: '[wmCheckbox]',\n templateUrl: './checkbox.component.html',\n providers: [\n provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxComponent)\n ]\n})\nexport class CheckboxComponent extends BaseFormCustomComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public proxyModel: boolean;\n public disabled: boolean;\n public readonly: boolean;\n public required: boolean;\n public name: string;\n public hint: string;\n public arialabel: string;\n public shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\n public unselectedicon;\n public selectedicon;\n public unselectediconurl;\n public selectediconurl;\n\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('checkbox', { static: true, read: ElementRef }) checkboxEl: ElementRef;\n\n // if the checkbox is checked, return checkedvalue else return uncheckedvalue\n // @ts-ignore\n public get datavalue() {\n return isDefined(this.proxyModel) ? (this.proxyModel ? this._checkedvalue : this._uncheckedvalue) : undefined;\n }\n // when the datavalue is set, update the checked state\n // @ts-ignore\n public set datavalue(v) {\n this.proxyModel = (isDefined(v) && v !== '') ? v === this._checkedvalue : undefined;\n this.updatePrevDatavalue(this.datavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('checkedvalue') checkedVal,\n @Attribute('uncheckedvalue') uncheckedVal,\n @Attribute('type') public type,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if(type === 'button'){\n WIDGET_CONFIG.hostClass = 'app-iconbutton-toggle'\n }else{\n WIDGET_CONFIG.hostClass = DEFAULT_CLS\n }\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._checkedvalue = unStringify(checkedVal, true);\n this._uncheckedvalue = unStringify(uncheckedVal, false);\n\n // if the type of the checkbox is toggle update the related classes on the host node\n toggleClass(this.nativeElement, 'app-toggle', type === 'toggle');\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n\n if (key === 'caption') {\n if (!isDefined(nv) || nv === '') {\n this._caption = '&nbsp;';\n } else {\n this._caption = nv;\n }\n } else if (key === 'checkedvalue') {\n this._checkedvalue = unStringify(nv, true);\n } else if (key === 'uncheckedvalue') {\n this._uncheckedvalue = unStringify(nv, false);\n } else if (key === 'datavalue') {\n this.datavalue = unStringify(nv);\n this._onChange(this.datavalue);\n }else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // change and blur events are handled from template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n // applying tap (Hammer event) on the label as the event handler is not getting triggered on the input.\n const $el = eventName === 'tap' ? this.nativeElement.querySelector('label') : this.checkboxEl.nativeElement;\n super.handleEvent($el, eventName, callback, locals);\n }\n }\n\n handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n this.checkboxEl.nativeElement.click();\n }\n\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('label'), this);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.ngModel = null;\n this.checkboxEl = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\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/input/checkbox/src/checkbox.props.ts","../../../../../projects/components/widgets/input/checkbox/src/checkbox.component.ts","../../../../../projects/components/widgets/input/checkbox/src/checkbox.component.html","../../../../../projects/components/widgets/input/checkbox/src/index.ts"],"sourcesContent":["import {FormWidgetType} from '@wm/core';\nimport {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\n\nexport const checkboxProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['checkedvalue', {value: true, ...PROP_STRING}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['uncheckedvalue', {value: false, ...PROP_STRING}],\n ['unselectedicon', PROP_STRING],\n ['selectedicon', PROP_STRING],\n ['unselectediconurl', PROP_STRING],\n ['selectediconurl', PROP_STRING]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkbox',\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOX,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.ICONBUTTONTOGGLE,\n checkboxProps\n );\n};\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, styler, WmAppIconComponent} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input/base-form-custom';\n\nimport {registerProps} from './checkbox.props';\n\nconst DEFAULT_CLS = 'app-checkbox checkbox';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-checkbox',\n hostClass: DEFAULT_CLS\n};\n\n/*\n * try to convert the chekedvalue and unchecked values to boolean/number\n */\nexport const unStringify = (val, defaultVal?) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, WmAppIconComponent],\n selector: '[wmCheckbox]',\n templateUrl: './checkbox.component.html',\n providers: [\n provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxComponent)\n ]\n})\nexport class CheckboxComponent extends BaseFormCustomComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n public proxyModel: boolean;\n public disabled: boolean;\n public readonly: boolean;\n public required: boolean;\n public name: string;\n public hint: string;\n public arialabel: string;\n public shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\n public unselectedicon;\n public selectedicon;\n public unselectediconurl;\n public selectediconurl;\n\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('checkbox', { static: true, read: ElementRef }) checkboxEl: ElementRef;\n\n // if the checkbox is checked, return checkedvalue else return uncheckedvalue\n // @ts-ignore\n public get datavalue() {\n return isDefined(this.proxyModel) ? (this.proxyModel ? this._checkedvalue : this._uncheckedvalue) : undefined;\n }\n // when the datavalue is set, update the checked state\n // @ts-ignore\n public set datavalue(v) {\n this.proxyModel = (isDefined(v) && v !== '') ? v === this._checkedvalue : undefined;\n this.updatePrevDatavalue(this.datavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('checkedvalue') checkedVal,\n @Attribute('uncheckedvalue') uncheckedVal,\n @Attribute('type') public type,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if(type === 'button'){\n WIDGET_CONFIG.hostClass = 'app-iconbutton-toggle'\n }else{\n WIDGET_CONFIG.hostClass = DEFAULT_CLS\n }\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._checkedvalue = unStringify(checkedVal, true);\n this._uncheckedvalue = unStringify(uncheckedVal, false);\n\n // if the type of the checkbox is toggle update the related classes on the host node\n toggleClass(this.nativeElement, 'app-toggle', type === 'toggle');\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n\n if (key === 'caption') {\n if (!isDefined(nv) || nv === '') {\n this._caption = '&nbsp;';\n } else {\n this._caption = nv;\n }\n } else if (key === 'checkedvalue') {\n this._checkedvalue = unStringify(nv, true);\n } else if (key === 'uncheckedvalue') {\n this._uncheckedvalue = unStringify(nv, false);\n } else if (key === 'datavalue') {\n this.datavalue = unStringify(nv);\n this._onChange(this.datavalue);\n }else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // change and blur events are handled from template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n // applying tap (Hammer event) on the label as the event handler is not getting triggered on the input.\n const $el = eventName === 'tap' ? this.nativeElement.querySelector('label') : this.checkboxEl.nativeElement;\n super.handleEvent($el, eventName, callback, locals);\n }\n }\n\n handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n this.checkboxEl.nativeElement.click();\n }\n\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('label'), this);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ViewChild references\n this.ngModel = null;\n this.checkboxEl = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption), 'icon-button-toggle': type === 'button'}\">\n <input type=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\" *ngIf=\"type != 'button' && type != 'toggle'\"></span>\n <!-- Icon toggle button -->\n <span class=\"caption fa-xs text-center\" *ngIf=\"type == 'toggle'\">\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaulticonclass]=\"'start-icon'\" *ngIf=\"!proxyModel\"></wm-app-icon> \n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaulticonclass]=\"'end-icon'\" *ngIf=\"proxyModel\"></wm-app-icon> \n </span>\n <wm-app-icon [iconclass]=\"unselectedicon\" [iconurl]=\"unselectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Unselected icon'\" *ngIf=\"type === 'button' && !proxyModel\"></wm-app-icon>\n <wm-app-icon [iconclass]=\"selectedicon\" [iconurl]=\"selectediconurl\" [defaultIconClass]=\"'toggle-icon'\" [alt]=\"'Selected icon'\" *ngIf=\"proxyModel && type === 'button'\"></wm-app-icon>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -82,7 +82,7 @@
82
82
  this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');
83
83
  this._debouncedInitDatasetItems = core.debounce(() => {
84
84
  this.initDatasetItems();
85
- core.$appDigest();
85
+ core.$appDigest(true);
86
86
  }, 150);
87
87
  this.handleHeaderClick = core.noop;
88
88
  this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", () => {
@@ -65,7 +65,7 @@ class DatasetAwareFormComponent extends BaseFormCustomComponent {
65
65
  this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');
66
66
  this._debouncedInitDatasetItems = debounce$1(() => {
67
67
  this.initDatasetItems();
68
- $appDigest();
68
+ $appDigest(true);
69
69
  }, 150);
70
70
  this.handleHeaderClick = noop;
71
71
  this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/dataset-aware-form/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/dataset-aware-form/src/index.ts"],"sourcesContent":["import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function | null = null;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n @Attribute('groupby') public groupby?: string, initPromise?: Promise<any>) {\n super(inj, config, explicitContext, initPromise);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest();\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n if(this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)\n this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // Use the latest of toBeProcessedDatavalue, datavalue.\n // IMPORTANT: lodash isEmpty treats 0/false as \"empty\", which breaks default values that legitimately evaluate to 0/false.\n // Only fall back to datavalue when toBeProcessedDatavalue is actually undefined/null.\n const _datavalue = isDefined(this.toBeProcessedDatavalue) ? this.toBeProcessedDatavalue : this.datavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n\n // MEMORY LEAK FIX: Complete and clear Subject observables\n if (this.dataset$) {\n this.dataset$.complete();\n }\n if (this.datavalue$) {\n this.datavalue$.complete();\n }\n\n // MEMORY LEAK FIX: Clear datasetItems array\n this.datasetItems = [];\n\n // MEMORY LEAK FIX: Clear grouped data\n if (this.groupedData) {\n this.groupedData = [];\n }\n\n // MEMORY LEAK FIX: Clear model references\n this._modelByKey = null;\n this._modelByValue = null;\n this.toBeProcessedDatavalue = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_debounce","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/dataset-aware-form/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/dataset-aware-form/src/index.ts"],"sourcesContent":["import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function | null = null;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n @Attribute('groupby') public groupby?: string, initPromise?: Promise<any>) {\n super(inj, config, explicitContext, initPromise);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest(true);\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n if(this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)\n this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // Use the latest of toBeProcessedDatavalue, datavalue.\n // IMPORTANT: lodash isEmpty treats 0/false as \"empty\", which breaks default values that legitimately evaluate to 0/false.\n // Only fall back to datavalue when toBeProcessedDatavalue is actually undefined/null.\n const _datavalue = isDefined(this.toBeProcessedDatavalue) ? this.toBeProcessedDatavalue : this.datavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n\n // MEMORY LEAK FIX: Complete and clear Subject observables\n if (this.dataset$) {\n this.dataset$.complete();\n }\n if (this.datavalue$) {\n this.datavalue$.complete();\n }\n\n // MEMORY LEAK FIX: Clear datasetItems array\n this.datasetItems = [];\n\n // MEMORY LEAK FIX: Clear grouped data\n if (this.groupedData) {\n this.groupedData = [];\n }\n\n // MEMORY LEAK FIX: Clear model references\n this._modelByKey = null;\n this._modelByValue = null;\n this.toBeProcessedDatavalue = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_debounce","debounce"],"mappings":"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"}