@wavemaker/app-ng-runtime 12.0.0-next.140535 → 12.0.0-next.141131

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 (170) hide show
  1. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
  2. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
  3. app-ng-runtime/build-task/bundles/index.umd.js +451 -405
  4. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
  5. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
  6. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -2
  7. app-ng-runtime/build-task/esm2022/public_api.mjs +3 -1
  8. app-ng-runtime/build-task/fesm2022/index.mjs +454 -406
  9. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/build-task/public_api.d.ts +2 -0
  11. app-ng-runtime/components/advanced/custom/.npmignore +2 -0
  12. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +232 -0
  13. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +19 -0
  14. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +2 -0
  15. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +1 -0
  16. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +19 -0
  17. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +10 -0
  18. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +102 -0
  19. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +12 -0
  20. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
  21. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +68 -0
  22. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +32 -0
  23. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +5 -0
  24. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +4 -0
  25. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +215 -0
  26. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -0
  27. app-ng-runtime/components/advanced/custom/index.d.ts +5 -0
  28. app-ng-runtime/components/advanced/custom/package.json +23 -0
  29. app-ng-runtime/components/advanced/custom/public_api.d.ts +3 -0
  30. app-ng-runtime/components/base/bundles/index.umd.js +63 -21
  31. app-ng-runtime/components/base/components.module.d.ts +12 -11
  32. app-ng-runtime/components/base/esm2022/components.module.mjs +5 -1
  33. app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
  34. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +2 -8
  35. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +25 -15
  36. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +39 -0
  37. app-ng-runtime/components/base/fesm2022/index.mjs +63 -22
  38. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/base/public_api.d.ts +1 -0
  40. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +10 -5
  41. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +14 -0
  42. app-ng-runtime/components/basic/search/bundles/index.umd.js +36 -24
  43. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +33 -24
  44. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +5 -2
  45. app-ng-runtime/components/basic/search/fesm2022/index.mjs +36 -24
  46. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  47. app-ng-runtime/components/basic/search/search.component.d.ts +3 -0
  48. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +14 -6
  49. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +14 -7
  50. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +3 -2
  51. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -6
  52. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  53. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +1 -0
  54. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +0 -17
  55. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +1 -18
  56. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +0 -17
  57. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  58. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +0 -1
  59. app-ng-runtime/components/data/form/bundles/index.umd.js +0 -4
  60. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +3 -5
  61. app-ng-runtime/components/data/form/fesm2022/index.mjs +2 -4
  62. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +0 -1
  64. app-ng-runtime/components/data/table/bundles/index.umd.js +2 -2
  65. app-ng-runtime/components/data/table/esm2022/table.component.mjs +3 -3
  66. app-ng-runtime/components/data/table/fesm2022/index.mjs +2 -2
  67. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  68. app-ng-runtime/components/data/table/table.component.d.ts +1 -1
  69. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -0
  70. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +17 -17
  71. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +1 -12
  72. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +14 -2
  73. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +6 -7
  74. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +18 -18
  75. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  76. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +21 -3
  77. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
  78. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +22 -4
  79. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +21 -3
  80. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  81. app-ng-runtime/components/input/default/bundles/index.umd.js +116 -115
  82. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +1 -0
  83. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +8 -5
  84. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +8 -5
  85. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +29 -59
  86. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +64 -38
  87. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  88. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -1
  89. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
  90. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +1 -4
  91. app-ng-runtime/components/input/default/fesm2022/index.mjs +117 -116
  92. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +1 -0
  94. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -2
  95. app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -0
  96. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -3
  97. app-ng-runtime/components/input/epoch/bundles/index.umd.js +0 -3
  98. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +1 -4
  99. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +0 -3
  100. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  101. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +5 -31
  102. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +8 -34
  103. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +6 -32
  104. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  105. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +2 -6
  106. app-ng-runtime/components/input/rating/bundles/index.umd.js +26 -35
  107. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +26 -37
  108. app-ng-runtime/components/input/rating/esm2022/rating.props.mjs +3 -1
  109. app-ng-runtime/components/input/rating/fesm2022/index.mjs +27 -36
  110. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/input/rating/rating.component.d.ts +3 -1
  112. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
  113. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  114. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  115. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
  116. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  117. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +6 -2
  118. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +9 -5
  119. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +8 -4
  120. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  121. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  122. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -2
  123. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +9 -5
  124. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +8 -4
  125. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  126. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  127. app-ng-runtime/core/bundles/index.umd.js +28 -6
  128. app-ng-runtime/core/enums/enums.d.ts +2 -1
  129. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -1
  130. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  131. app-ng-runtime/core/esm2022/types/types.mjs +4 -1
  132. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -1
  133. app-ng-runtime/core/esm2022/utils/utils.mjs +11 -4
  134. app-ng-runtime/core/fesm2022/index.mjs +22 -4
  135. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  136. app-ng-runtime/core/public_api.d.ts +1 -1
  137. app-ng-runtime/core/types/types.d.ts +5 -1
  138. app-ng-runtime/core/utils/utils.d.ts +2 -1
  139. app-ng-runtime/mobile/core/bundles/index.umd.js +2 -18
  140. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +3 -19
  141. app-ng-runtime/mobile/core/fesm2022/index.mjs +2 -18
  142. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  143. app-ng-runtime/package.json +1 -1
  144. app-ng-runtime/runtime/base/bundles/index.umd.js +296 -5
  145. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +73 -0
  146. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +294 -0
  147. app-ng-runtime/runtime/base/esm2022/public_api.mjs +2 -1
  148. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +6 -1
  149. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  150. app-ng-runtime/runtime/base/esm2022/types/types.mjs +4 -1
  151. app-ng-runtime/runtime/base/fesm2022/index.mjs +294 -4
  152. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/runtime/base/public_api.d.ts +1 -0
  154. app-ng-runtime/runtime/base/runtime-base.module.d.ts +9 -8
  155. app-ng-runtime/runtime/base/types/types.d.ts +5 -1
  156. app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +8 -0
  157. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +49 -13
  158. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +8 -3
  159. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +23 -7
  160. app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +22 -0
  161. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +50 -11
  162. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  164. app-ng-runtime/scripts/datatable/datatable.js +4 -7
  165. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +3 -2
  166. app-ng-runtime/transpiler/bundles/index.umd.js +5 -0
  167. app-ng-runtime/transpiler/esm2022/build.mjs +4 -1
  168. app-ng-runtime/transpiler/esm2022/imports.mjs +3 -1
  169. app-ng-runtime/transpiler/fesm2022/index.mjs +5 -0
  170. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
@@ -29,9 +29,6 @@ export class TextareaComponent extends BaseInput {
29
29
  onInputChange() {
30
30
  this.charlength = this.inputEl.nativeElement.value.length;
31
31
  }
32
- ngAfterViewChecked() {
33
- this.charlength = this.inputEl.nativeElement.value.length;
34
- }
35
32
  static { this.ɵfac = function TextareaComponent_Factory(t) { return new (t || TextareaComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
36
33
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TextareaComponent, selectors: [["wm-textarea"]], viewQuery: function TextareaComponent_Query(rf, ctx) { if (rf & 1) {
37
34
  i0.ɵɵviewQuery(_c0, 7);
@@ -79,4 +76,4 @@ export class TextareaComponent extends BaseInput {
79
76
  args: [NgModel]
80
77
  }] }); })();
81
78
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TextareaComponent, { className: "TextareaComponent", filePath: "textarea/textarea.component.ts", lineNumber: 22 }); })();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztJQ2tCcEQsOEJBQStDO0lBQUEsWUFBb0I7SUFBQSxpQkFBTTs7O0lBQTFCLGNBQW9CO0lBQXBCLDZDQUFvQjs7QURqQm5FLE1BQU0sYUFBYSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFNBQVMsRUFBRSxtQkFBbUI7Q0FDakMsQ0FBQztBQVdGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFTO2FBQ3JDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBbUJ6QyxZQUFZLEdBQWEsRUFBMEMsZUFBb0I7UUFDbkYsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOeEMsZUFBVSxHQUFXLENBQUMsQ0FBQztJQU85QixDQUFDO0lBRU0sYUFBYTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDOUQsQ0FBQztJQUNELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1RCxDQUFDO2tGQTdCTSxpQkFBaUIsMERBb0JTLGtCQUFrQjtvRUFwQjVDLGlCQUFpQjs7MkJBa0JmLE9BQU87Ozs7OzhDQXhCUDtnQkFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7O1lDbkJMLHNDQXNCQztZQWxCUyx1UEFBdUI7WUFnQnZCLEFBREEsQUFEQSwwSUFBUSxzQkFBa0IsS0FBQyx5SEFDbEIsbUJBQWUsS0FBQyx5SEFDUix3QkFBb0Isd0JBQUUsbUJBQWUsS0FBRTtZQUVqRSxpQkFBVztZQUVaLGtFQUErQzs7WUFwQnJDLDZDQUF1QjtZQWF2QixBQURBLEFBREEsQUFOQSxBQURBLEFBREEsQUFEQSxBQURBLG1EQUFpQywwQkFDWiwwQkFDQSwwQkFDQSwyQkFDQyw0QkFNQyxpQ0FDSyxpQ0FDQTs7WUFPaEMsZUFBYztZQUFkLG1DQUFjOzs7aUZESFAsaUJBQWlCO2NBVDdCLFNBQVM7MkJBQ0ksYUFBYSxhQUVaO29CQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDakQsa0JBQWtCLG1CQUFtQjtpQkFDeEM7O3NCQXNCMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBSHpCLE9BQU87a0JBQTdDLFNBQVM7bUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztZQUNqQixPQUFPO2tCQUExQixTQUFTO21CQUFDLE9BQU87O2tGQWxCVCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3RleHRhcmVhLnByb3BzJztcbmltcG9ydCB7IEJhc2VJbnB1dCB9IGZyb20gJy4uL3RleHQvYmFzZS9iYXNlLWlucHV0JztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLXRleHRhcmVhJyxcbiAgICBob3N0Q2xhc3M6ICdhcHAtaW5wdXQtd3JhcHBlcidcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd20tdGV4dGFyZWEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhUZXh0YXJlYUNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoVGV4dGFyZWFDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoVGV4dGFyZWFDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBtYXhjaGFyczogbnVtYmVyO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxjbGFzczogYW55O1xuICAgIHB1YmxpYyBjb25kaXRpb25hbHN0eWxlOiBhbnk7XG4gICAgcHVibGljIHRhYmluZGV4OiBhbnk7XG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBhbnk7XG4gICAgcHVibGljIHNob3J0Y3V0a2V5OiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbjtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBsaW1pdGRpc3BsYXl0ZXh0OiBzdHJpbmc7XG4gICAgcHVibGljIGNoYXJsZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgICBAVmlld0NoaWxkKCd0ZXh0YXJlYScsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoTmdNb2RlbCkgbmdNb2RlbDogTmdNb2RlbDtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSW5wdXRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuY2hhcmxlbmd0aCA9IHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYXJsZW5ndGggPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGg7IFxuICAgICAgfVxufVxuIiwiPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIGFwcC10ZXh0YXJlYVwiXG4gICAgICAgICAgZm9jdXMtdGFyZ2V0XG4gICAgICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRhdmFsdWVcIlxuICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJuZ01vZGVsT3B0aW9uc1wiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJtYXhjaGFyc1wiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGludFwiXG4gICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY29uZGl0aW9uYWxjbGFzc1wiXG4gICAgICAgICAgW25nU3R5bGVdPVwiY29uZGl0aW9uYWxzdHlsZVwiXG4gICAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KTsgb25JbnB1dENoYW5nZSgpO1wiXG4gICAgICAgICAgI3RleHRhcmVhXG4+PC90ZXh0YXJlYT5cblxuPGRpdiAqbmdJZj1cIm1heGNoYXJzXCIgY2xhc3M9XCJ0ZXh0YXJlYS1jb3VudFwiICA+e3tsaW1pdGRpc3BsYXl0ZXh0fX08L2Rpdj5cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0lDa0JwRCw4QkFBK0M7SUFBQSxZQUFvQjtJQUFBLGlCQUFNOzs7SUFBMUIsY0FBb0I7SUFBcEIsNkNBQW9COztBRGpCbkUsTUFBTSxhQUFhLEdBQUc7SUFDbEIsVUFBVSxFQUFFLGFBQWE7SUFDekIsU0FBUyxFQUFFLG1CQUFtQjtDQUNqQyxDQUFDO0FBV0YsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQVM7YUFDckMsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFtQnpDLFlBQVksR0FBYSxFQUEwQyxlQUFvQjtRQUNuRixLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQU54QyxlQUFVLEdBQVcsQ0FBQyxDQUFDO0lBTzlCLENBQUM7SUFFTSxhQUFhO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM5RCxDQUFDO2tGQTFCUSxpQkFBaUIsMERBb0JTLGtCQUFrQjtvRUFwQjVDLGlCQUFpQjs7MkJBa0JmLE9BQU87Ozs7OzhDQXhCUDtnQkFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7O1lDbkJMLHNDQXNCQztZQWxCUyx1UEFBdUI7WUFnQnZCLEFBREEsQUFEQSwwSUFBUSxzQkFBa0IsS0FBQyx5SEFDbEIsbUJBQWUsS0FBQyx5SEFDUix3QkFBb0Isd0JBQUUsbUJBQWUsS0FBRTtZQUVqRSxpQkFBVztZQUVaLGtFQUErQzs7WUFwQnJDLDZDQUF1QjtZQWF2QixBQURBLEFBREEsQUFOQSxBQURBLEFBREEsQUFEQSxBQURBLG1EQUFpQywwQkFDWiwwQkFDQSwwQkFDQSwyQkFDQyw0QkFNQyxpQ0FDSyxpQ0FDQTs7WUFPaEMsZUFBYztZQUFkLG1DQUFjOzs7aUZESFAsaUJBQWlCO2NBVDdCLFNBQVM7MkJBQ0ksYUFBYSxhQUVaO29CQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDakQsa0JBQWtCLG1CQUFtQjtpQkFDeEM7O3NCQXNCMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBSHpCLE9BQU87a0JBQTdDLFNBQVM7bUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztZQUNqQixPQUFPO2tCQUExQixTQUFTO21CQUFDLE9BQU87O2tGQWxCVCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsLCBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vdGV4dGFyZWEucHJvcHMnO1xuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi4vdGV4dC9iYXNlL2Jhc2UtaW5wdXQnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tdGV4dGFyZWEnLFxuICAgIGhvc3RDbGFzczogJ2FwcC1pbnB1dC13cmFwcGVyJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd3bS10ZXh0YXJlYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFRleHRhcmVhQ29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhUZXh0YXJlYUNvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihUZXh0YXJlYUNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4Y2hhcnM6IG51bWJlcjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgcHVibGljIGNvbmRpdGlvbmFsY2xhc3M6IGFueTtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxzdHlsZTogYW55O1xuICAgIHB1YmxpYyB0YWJpbmRleDogYW55O1xuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgbGltaXRkaXNwbGF5dGV4dDogc3RyaW5nO1xuICAgIHB1YmxpYyBjaGFybGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgQFZpZXdDaGlsZCgndGV4dGFyZWEnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKE5nTW9kZWwpIG5nTW9kZWw6IE5nTW9kZWw7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbklucHV0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLmNoYXJsZW5ndGggPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgfVxufVxuIiwiPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIGFwcC10ZXh0YXJlYVwiXG4gICAgICAgICAgZm9jdXMtdGFyZ2V0XG4gICAgICAgICAgcm9sZT1cInRleHRib3hcIlxuICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRhdmFsdWVcIlxuICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJuZ01vZGVsT3B0aW9uc1wiXG4gICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW21heGxlbmd0aF09XCJtYXhjaGFyc1wiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGludFwiXG4gICAgICAgICAgYXJpYS1tdWx0aWxpbmU9XCJ0cnVlXCJcbiAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiY29uZGl0aW9uYWxjbGFzc1wiXG4gICAgICAgICAgW25nU3R5bGVdPVwiY29uZGl0aW9uYWxzdHlsZVwiXG4gICAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KTsgb25JbnB1dENoYW5nZSgpO1wiXG4gICAgICAgICAgI3RleHRhcmVhXG4+PC90ZXh0YXJlYT5cblxuPGRpdiAqbmdJZj1cIm1heGNoYXJzXCIgY2xhc3M9XCJ0ZXh0YXJlYS1jb3VudFwiICA+e3tsaW1pdGRpc3BsYXl0ZXh0fX08L2Rpdj5cbiJdfQ==
@@ -9,7 +9,7 @@ import { IMaskDirective, IMaskModule } from 'angular-imask';
9
9
  import * as i2 from '@wm/components/base';
10
10
  import { PROP_STRING, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, register, DISPLAY_TYPE, StylableComponent, styler, provideAsWidgetRef, APPLY_STYLES_TYPE, WidgetConfig, registerFormWidget, provideAs, extractDataAsArray, ToDatePipe, ALLFIELDS, convertDataToObject, getOrderedDataset, transformDataWithKeys, transformFormData, getUniqObjsByDataField, groupData, handleHeaderClick, toggleAllHeaders, WidgetRef, INPUTMODE, TrailingZeroDecimalPipe, WmComponentsModule } from '@wm/components/base';
11
11
  import * as i1$1 from '@wm/core';
12
- import { DataSource, FormWidgetType, isDefined, toggleClass, AppDefaults, $appDigest, debounce as debounce$1, noop, isEqualWithFields, toBoolean, setListClass, switchClass, addForIdAttributes, addClass, AbstractI18nService, isIos, setAttr, removeAttr, setCSS } from '@wm/core';
12
+ import { DataSource, FormWidgetType, isDefined, toggleClass, AppDefaults, $appDigest, debounce as debounce$1, noop, isEqualWithFields, toBoolean, setListClass, switchClass, addForIdAttributes, addClass, AbstractI18nService, setAttr, removeAttr, setCSS } from '@wm/core';
13
13
  import { has, set, isArray, debounce, toString, find, isNull, isObject, isEqual, isEmpty, forEach, includes, isString, get, isUndefined, round, toArray, intersection, findIndex } from 'lodash-es';
14
14
  import { Subject } from 'rxjs';
15
15
  import { __param, __metadata, __decorate } from 'tslib';
@@ -41,21 +41,21 @@ const registerProps$e = () => {
41
41
  const _c0$c = ["wmButton", ""];
42
42
  const _c1$b = [[["", 8, "caret"]]];
43
43
  const _c2$8 = [".caret"];
44
- const _c3$3 = (a0, a1, a2) => ({ width: a0, height: a1, margin: a2 });
45
- const _c4$2 = (a0, a1, a2, a3) => ({ width: a0, height: a1, margin: a2, fontSize: a3 });
44
+ const _c3$4 = (a0, a1, a2) => ({ width: a0, height: a1, margin: a2 });
45
+ const _c4$3 = (a0, a1, a2, a3) => ({ width: a0, height: a1, margin: a2, fontSize: a3 });
46
46
  function ButtonComponent_img_0_Template(rf, ctx) { if (rf & 1) {
47
47
  i0.ɵɵelement(0, "img", 5);
48
48
  i0.ɵɵpipe(1, "image");
49
49
  } if (rf & 2) {
50
50
  const ctx_r0 = i0.ɵɵnextContext();
51
- i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 2, ctx_r0.iconurl), i0.ɵɵsanitizeUrl)("ngStyle", i0.ɵɵpureFunction3(4, _c3$3, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin));
51
+ i0.ɵɵproperty("src", i0.ɵɵpipeBind1(1, 2, ctx_r0.iconurl), i0.ɵɵsanitizeUrl)("ngStyle", i0.ɵɵpureFunction3(4, _c3$4, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin));
52
52
  } }
53
53
  function ButtonComponent_i_1_Template(rf, ctx) { if (rf & 1) {
54
54
  i0.ɵɵelement(0, "i", 6);
55
55
  } if (rf & 2) {
56
56
  const ctx_r0 = i0.ɵɵnextContext();
57
57
  i0.ɵɵclassMapInterpolate1("app-icon ", ctx_r0.iconclass, "");
58
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction4(4, _c4$2, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin, ctx_r0.iconwidth));
58
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction4(4, _c4$3, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin, ctx_r0.iconwidth));
59
59
  } }
60
60
  function ButtonComponent_span_2_Template(rf, ctx) { if (rf & 1) {
61
61
  i0.ɵɵelementStart(0, "span", 7);
@@ -386,7 +386,7 @@ const registerProps$c = () => {
386
386
  const _c0$b = ["checkbox"];
387
387
  const _c1$a = ["wmCheckbox", ""];
388
388
  const _c2$7 = (a0, a1, a2) => ({ "unchecked": a0, "disabled": a1, "required": a2 });
389
- const _c3$2 = () => ({ standalone: true });
389
+ const _c3$3 = () => ({ standalone: true });
390
390
  const DEFAULT_CLS$4 = 'app-checkbox checkbox';
391
391
  const WIDGET_CONFIG$c = {
392
392
  widgetType: 'wm-checkbox',
@@ -509,7 +509,7 @@ class CheckboxComponent extends BaseFormCustomComponent {
509
509
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(14, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
510
510
  i0.ɵɵadvance();
511
511
  i0.ɵɵtwoWayProperty("ngModel", ctx.proxyModel);
512
- i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(18, _c3$2))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
512
+ i0.ɵɵproperty("ngModelOptions", i0.ɵɵpureFunction0(18, _c3$3))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
513
513
  i0.ɵɵattribute("name", ctx.name)("aria-label", ctx.hint)("aria-checked", !!ctx.proxyModel)("accesskey", ctx.shortcutkey);
514
514
  i0.ɵɵadvance(2);
515
515
  i0.ɵɵproperty("innerHtml", ctx._caption, i0.ɵɵsanitizeHtml);
@@ -884,8 +884,8 @@ const registerProps$b = () => {
884
884
  const _c0$a = ["wmCheckboxset", ""];
885
885
  const _c1$9 = (a0, a1) => ["checkbox", "app-checkbox", a0, a1];
886
886
  const _c2$6 = a0 => ({ "disabled": a0 });
887
- const _c3$1 = a0 => ({ "collapsible-content": a0 });
888
- const _c4$1 = (a0, a1) => ["checkbox", "app-checkbox", "group-list-item", a0, a1];
887
+ const _c3$2 = a0 => ({ "collapsible-content": a0 });
888
+ const _c4$2 = (a0, a1) => ["checkbox", "app-checkbox", "group-list-item", a0, a1];
889
889
  function CheckboxsetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf & 1) {
890
890
  i0.ɵɵelementStart(0, "label", 8);
891
891
  i0.ɵɵelement(1, "input", 9)(2, "span", 10);
@@ -993,7 +993,7 @@ function CheckboxsetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf
993
993
  const item_r9 = ctx.$implicit;
994
994
  const ctx_r2 = i0.ɵɵnextContext(3);
995
995
  i0.ɵɵclassProp("active", item_r9.selected);
996
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(7, _c4$1, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
996
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(7, _c4$2, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
997
997
  i0.ɵɵadvance();
998
998
  i0.ɵɵproperty("ngIf", !ctx_r2.content);
999
999
  i0.ɵɵadvance();
@@ -1014,7 +1014,7 @@ function CheckboxsetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1)
1014
1014
  const groupObj_r7 = ctx.$implicit;
1015
1015
  const ctx_r2 = i0.ɵɵnextContext(2);
1016
1016
  i0.ɵɵadvance(2);
1017
- i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3$1, ctx_r2.collapsible));
1017
+ i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3$2, ctx_r2.collapsible));
1018
1018
  i0.ɵɵadvance(2);
1019
1019
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
1020
1020
  i0.ɵɵadvance(2);
@@ -1040,6 +1040,12 @@ class CheckboxsetComponent extends DatasetAwareFormComponent {
1040
1040
  styler(this.nativeElement, this);
1041
1041
  this.multiple = true;
1042
1042
  }
1043
+ triggerInvokeOnChange(keys, $event) {
1044
+ this.modelByKey = keys;
1045
+ this.invokeOnTouched();
1046
+ // invoke on datavalue change.
1047
+ this.invokeOnChange(this.datavalue, $event || {}, true);
1048
+ }
1043
1049
  onCheckboxLabelClick($event, key) {
1044
1050
  if (!$($event.target).is('input')) {
1045
1051
  return;
@@ -1051,10 +1057,7 @@ class CheckboxsetComponent extends DatasetAwareFormComponent {
1051
1057
  // @ts-ignore
1052
1058
  keys.push($el.value);
1053
1059
  });
1054
- this.modelByKey = keys;
1055
- this.invokeOnTouched();
1056
- // invoke on datavalue change.
1057
- this.invokeOnChange(this.datavalue, $event || {}, true);
1060
+ this.triggerInvokeOnChange(keys, $event);
1058
1061
  }
1059
1062
  // change and blur events are added from the template
1060
1063
  handleEvent(node, eventName, callback, locals) {
@@ -1256,6 +1259,9 @@ class BaseInput extends BaseFormCustomComponent {
1256
1259
  /* WMS-18269 | Update Angular about the required attr value change */
1257
1260
  this._onChange(this.datavalue);
1258
1261
  }
1262
+ if (key === 'updateon') {
1263
+ this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;
1264
+ }
1259
1265
  if (key === 'class') {
1260
1266
  if (this.inputEl.nativeElement) {
1261
1267
  switchClass(this.inputEl.nativeElement, nv, ov);
@@ -1354,7 +1360,7 @@ let NumberLocale = class NumberLocale extends BaseInput {
1354
1360
  const prevDataValue = this.prevDatavalue;
1355
1361
  this.displayValue = input.value = this.proxyModel = null;
1356
1362
  this.resetValidations();
1357
- if ((prevDataValue || prevDataValue == 0) && !this.isDefaultQuery) {
1363
+ if (prevDataValue && !this.isDefaultQuery) {
1358
1364
  this.handleChange(value);
1359
1365
  this._onChange();
1360
1366
  }
@@ -1864,8 +1870,8 @@ const registerProps$8 = () => {
1864
1870
  const _c0$8 = ["wmRadioset", ""];
1865
1871
  const _c1$7 = (a0, a1) => ["radio", "app-radio", a0, a1];
1866
1872
  const _c2$5 = a0 => ({ "disabled": a0 });
1867
- const _c3 = a0 => ({ "collapsible-content": a0 });
1868
- const _c4 = (a0, a1) => ["radio", "app-radio", "group-list-item", a0, a1];
1873
+ const _c3$1 = a0 => ({ "collapsible-content": a0 });
1874
+ const _c4$1 = (a0, a1) => ["radio", "app-radio", "group-list-item", a0, a1];
1869
1875
  function RadiosetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf & 1) {
1870
1876
  i0.ɵɵelementStart(0, "label", 7);
1871
1877
  i0.ɵɵelement(1, "input", 8)(2, "span", 9);
@@ -1973,7 +1979,7 @@ function RadiosetComponent_ng_template_3_li_0_li_8_Template(rf, ctx) { if (rf &
1973
1979
  const item_r9 = ctx.$implicit;
1974
1980
  const ctx_r2 = i0.ɵɵnextContext(3);
1975
1981
  i0.ɵɵclassProp("active", item_r9.selected);
1976
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(7, _c4, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
1982
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(7, _c4$1, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
1977
1983
  i0.ɵɵadvance();
1978
1984
  i0.ɵɵproperty("ngIf", !ctx_r2.content);
1979
1985
  i0.ɵɵadvance();
@@ -1994,7 +2000,7 @@ function RadiosetComponent_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
1994
2000
  const groupObj_r7 = ctx.$implicit;
1995
2001
  const ctx_r2 = i0.ɵɵnextContext(2);
1996
2002
  i0.ɵɵadvance(2);
1997
- i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3, ctx_r2.collapsible));
2003
+ i0.ɵɵproperty("title", groupObj_r7.key)("ngClass", i0.ɵɵpureFunction1(6, _c3$1, ctx_r2.collapsible));
1998
2004
  i0.ɵɵadvance(2);
1999
2005
  i0.ɵɵtextInterpolate1("", groupObj_r7.key, " ");
2000
2006
  i0.ɵɵadvance(2);
@@ -2020,6 +2026,12 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2020
2026
  styler(this.nativeElement, this);
2021
2027
  this.multiple = false;
2022
2028
  }
2029
+ triggerInvokeOnChange(key, $event) {
2030
+ this.modelByKey = key;
2031
+ this.invokeOnTouched();
2032
+ // invoke on datavalue change.
2033
+ this.invokeOnChange(this.datavalue, $event || {}, true);
2034
+ }
2023
2035
  /**
2024
2036
  * On click of the option, update the datavalue
2025
2037
  */
@@ -2027,10 +2039,7 @@ class RadiosetComponent extends DatasetAwareFormComponent {
2027
2039
  if (!$($event.target).is('input')) {
2028
2040
  return;
2029
2041
  }
2030
- this.modelByKey = key;
2031
- this.invokeOnTouched();
2032
- // invoke on datavalue change.
2033
- this.invokeOnChange(this.datavalue, $event || {}, true);
2042
+ this.triggerInvokeOnChange(key, $event);
2034
2043
  }
2035
2044
  // change and blur events are added from the template
2036
2045
  handleEvent(node, eventName, callback, locals) {
@@ -2175,38 +2184,10 @@ class SelectComponent extends DatasetAwareFormComponent {
2175
2184
  this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);
2176
2185
  }
2177
2186
  }
2178
- constructor(inj, explicitContext) {
2187
+ constructor(inj, app, explicitContext) {
2179
2188
  super(inj, WIDGET_CONFIG$7, explicitContext);
2189
+ this.app = app;
2180
2190
  this.acceptsArray = true;
2181
- /*
2182
- * When the dataset for a select element is updated and no longer includes the previously selected value:
2183
- * The select element becomes empty, and the ngModel value is updated to reflect this change.
2184
- * However, the change event is not triggered, preventing the form control from recognizing the update and applying necessary validations.
2185
- * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
2186
- * */
2187
- const datasetSubscription = this.dataset$.subscribe(() => {
2188
- if (isIos()) {
2189
- if (this.datavalue) {
2190
- const selectedItem = this.datasetItems.find(item => item.selected);
2191
- if (!selectedItem) {
2192
- setTimeout(() => {
2193
- if (!this.placeholder) {
2194
- this.selectEl.nativeElement.value = '';
2195
- }
2196
- this.modelByKey = undefined;
2197
- }, 100);
2198
- }
2199
- }
2200
- else {
2201
- setTimeout(() => {
2202
- if (!this.placeholder) {
2203
- this.selectEl.nativeElement.value = '';
2204
- }
2205
- }, 100);
2206
- }
2207
- }
2208
- });
2209
- this.registerDestroyListener(() => datasetSubscription.unsubscribe());
2210
2191
  }
2211
2192
  ngAfterViewInit() {
2212
2193
  super.ngAfterViewInit();
@@ -2214,7 +2195,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2214
2195
  }
2215
2196
  // Change event is registered from the template, Prevent the framework from registering one more event
2216
2197
  handleEvent(node, eventName, eventCallback, locals) {
2217
- if (!['blur', 'change'].includes(eventName)) {
2198
+ if (!includes(['blur', 'change'], eventName)) {
2218
2199
  super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);
2219
2200
  }
2220
2201
  }
@@ -2265,40 +2246,36 @@ class SelectComponent extends DatasetAwareFormComponent {
2265
2246
  */
2266
2247
  checkForFloatingLabel($event) {
2267
2248
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
2268
- if (!this.placeholder && isIos()) {
2269
- this.removePlaceholderOption();
2270
- }
2271
2249
  if (captionEl.length > 0) {
2272
- const placeholderOption = this.selectEl.nativeElement.querySelector('#placeholderOption');
2273
- if ($event.type === 'mousedown' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
2274
- if (this.placeholder) {
2275
- placeholderOption.textContent = this.placeholder;
2250
+ if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
2251
+ if (!(this.datavalue || this.placeholder)) {
2252
+ this.removePlaceholderOption();
2253
+ }
2254
+ else {
2255
+ $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);
2276
2256
  }
2277
2257
  }
2278
2258
  else if (!this.datavalue) {
2279
- if (this.placeholder) {
2280
- placeholderOption.textContent = '';
2281
- }
2259
+ $(this.selectEl.nativeElement).find('option:selected').text('');
2282
2260
  captionEl.removeClass('float-active');
2283
2261
  }
2284
2262
  }
2263
+ else if (!(this.datavalue || this.placeholder)) {
2264
+ this.removePlaceholderOption();
2265
+ }
2285
2266
  }
2286
2267
  /*
2287
2268
  * Removing the placeholder option if no placeholder is provided.
2288
- * In html we are hiding the placeholder option using css but in Apple devices and safari option is showing.
2289
- * Styles are not allowed on option tag in ios safari
2290
- * After removing the option, if no datavalue is present and native select element sets value to the first option by default, so we are setting it to empty
2269
+ * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.
2291
2270
  * */
2292
2271
  removePlaceholderOption() {
2293
2272
  const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');
2294
2273
  if (hiddenEle.length) {
2295
2274
  hiddenEle.remove();
2296
- if (!this.datavalue) {
2297
- this.selectEl.nativeElement.value = '';
2298
- }
2275
+ this.selectEl.nativeElement.value = '';
2299
2276
  }
2300
2277
  }
2301
- static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
2278
+ static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1$1.App), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
2302
2279
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectComponent, selectors: [["wm-select"]], viewQuery: function SelectComponent_Query(rf, ctx) { if (rf & 1) {
2303
2280
  i0.ɵɵviewQuery(_c0$7, 7, ElementRef);
2304
2281
  } if (rf & 2) {
@@ -2308,11 +2285,11 @@ class SelectComponent extends DatasetAwareFormComponent {
2308
2285
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2309
2286
  provideAs(SelectComponent, NG_VALIDATORS, true),
2310
2287
  provideAsWidgetRef(SelectComponent)
2311
- ]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "mousedown", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
2288
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "focus", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
2312
2289
  const _r1 = i0.ɵɵgetCurrentView();
2313
2290
  i0.ɵɵelementStart(0, "select", 1, 0);
2314
2291
  i0.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0.ɵɵresetView($event); });
2315
- i0.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSelectValueChange($event)); })("mousedown", function SelectComponent_Template_select_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
2292
+ i0.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSelectValueChange($event)); })("focus", function SelectComponent_Template_select_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
2316
2293
  i0.ɵɵelement(2, "option", 2);
2317
2294
  i0.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3)(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
2318
2295
  i0.ɵɵelementEnd();
@@ -2335,8 +2312,8 @@ class SelectComponent extends DatasetAwareFormComponent {
2335
2312
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
2336
2313
  provideAs(SelectComponent, NG_VALIDATORS, true),
2337
2314
  provideAsWidgetRef(SelectComponent)
2338
- ], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
2339
- }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2315
+ ], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
2316
+ }], () => [{ type: i0.Injector }, { type: i1$1.App }, { type: undefined, decorators: [{
2340
2317
  type: Inject,
2341
2318
  args: ['EXPLICIT_CONTEXT']
2342
2319
  }, {
@@ -2345,7 +2322,7 @@ class SelectComponent extends DatasetAwareFormComponent {
2345
2322
  type: ViewChild,
2346
2323
  args: ['select', { static: true, read: ElementRef }]
2347
2324
  }] }); })();
2348
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 20 }); })();
2325
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 22 }); })();
2349
2326
 
2350
2327
  const switchProps = new Map([
2351
2328
  ['class', PROP_STRING],
@@ -2359,6 +2336,7 @@ const switchProps = new Map([
2359
2336
  ['displayfield', PROP_STRING],
2360
2337
  ['hint', PROP_STRING],
2361
2338
  ['iconclass', PROP_STRING],
2339
+ ['checkediconclass', { value: 'wm-sl-l sl-check', ...PROP_STRING }],
2362
2340
  ['name', PROP_STRING],
2363
2341
  ['orderby', PROP_STRING],
2364
2342
  ['required', PROP_BOOLEAN],
@@ -2372,36 +2350,54 @@ const registerProps$6 = () => {
2372
2350
  };
2373
2351
 
2374
2352
  const _c0$6 = ["wmSwitch", ""];
2375
- const _c1$5 = (a0, a1) => ({ "selected": a0, "disabled": a1 });
2376
- const _c2$3 = a0 => ["app-icon", a0];
2353
+ const _c1$5 = a0 => ({ "multi-select": a0 });
2354
+ const _c2$3 = (a0, a1) => ({ "selected": a0, "disabled": a1 });
2355
+ const _c3 = a0 => ["app-icon", a0];
2356
+ const _c4 = a0 => [a0];
2377
2357
  function SwitchComponent_a_1_i_1_Template(rf, ctx) { if (rf & 1) {
2378
- i0.ɵɵelement(0, "i", 8);
2358
+ i0.ɵɵelement(0, "i", 7);
2379
2359
  } if (rf & 2) {
2380
2360
  const opt_r3 = i0.ɵɵnextContext().$implicit;
2381
2361
  const ctx_r4 = i0.ɵɵnextContext();
2382
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c2$3, opt_r3.dataObject[ctx_r4.iconclass] || opt_r3["icon"]));
2362
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c3, opt_r3.dataObject[ctx_r4.iconclass] || opt_r3["icon"]));
2363
+ } }
2364
+ function SwitchComponent_a_1_i_2_Template(rf, ctx) { if (rf & 1) {
2365
+ i0.ɵɵelement(0, "i", 7);
2366
+ } if (rf & 2) {
2367
+ const ctx_r4 = i0.ɵɵnextContext(2);
2368
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c4, ctx_r4.checkediconclass));
2383
2369
  } }
2384
2370
  function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2385
2371
  const _r1 = i0.ɵɵgetCurrentView();
2386
- i0.ɵɵelementStart(0, "a", 5);
2372
+ i0.ɵɵelementStart(0, "a", 4);
2387
2373
  i0.ɵɵlistener("click", function SwitchComponent_a_1_Template_a_click_0_listener($event) { const ctx_r1 = i0.ɵɵrestoreView(_r1); const opt_r3 = ctx_r1.$implicit; const $index_r4 = ctx_r1.index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.selectOpt($event, $index_r4, opt_r3)); });
2388
- i0.ɵɵtemplate(1, SwitchComponent_a_1_i_1_Template, 1, 3, "i", 6);
2389
- i0.ɵɵelement(2, "span", 7);
2374
+ i0.ɵɵtemplate(1, SwitchComponent_a_1_i_1_Template, 1, 3, "i", 5)(2, SwitchComponent_a_1_i_2_Template, 1, 3, "i", 5);
2375
+ i0.ɵɵelement(3, "span", 6);
2390
2376
  i0.ɵɵelementEnd();
2391
2377
  } if (rf & 2) {
2392
2378
  const opt_r3 = ctx.$implicit;
2393
2379
  const ctx_r4 = i0.ɵɵnextContext();
2394
- i0.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0.ɵɵpureFunction2(4, _c1$5, opt_r3.selected, ctx_r4.disabled));
2380
+ i0.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0.ɵɵpureFunction2(5, _c2$3, opt_r3.selected, ctx_r4.disabled));
2395
2381
  i0.ɵɵadvance();
2396
- i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass]);
2382
+ i0.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
2383
+ i0.ɵɵadvance();
2384
+ i0.ɵɵproperty("ngIf", opt_r3.selected);
2397
2385
  i0.ɵɵadvance();
2398
2386
  i0.ɵɵproperty("textContent", opt_r3[ctx_r4.displayfield] || opt_r3.label);
2399
2387
  } }
2400
- function SwitchComponent_i_3_Template(rf, ctx) { if (rf & 1) {
2401
- i0.ɵɵelement(0, "i");
2388
+ function SwitchComponent_span_2_Template(rf, ctx) { if (rf & 1) {
2389
+ i0.ɵɵelementStart(0, "span", 8);
2390
+ i0.ɵɵelement(1, "i", 9);
2391
+ i0.ɵɵelementStart(2, "span", 10);
2392
+ i0.ɵɵtext(3);
2393
+ i0.ɵɵelementEnd()();
2402
2394
  } if (rf & 2) {
2403
2395
  const ctx_r4 = i0.ɵɵnextContext();
2404
- i0.ɵɵclassMapInterpolate1("app-icon ", ctx_r4.selectedItem && ctx_r4.selectedItem.dataObject && ctx_r4.selectedItem.dataObject[ctx_r4.iconclass], "");
2396
+ i0.ɵɵproperty("title", ctx_r4.selectedItem ? ctx_r4.selectedItem.label : ctx_r4.modelByKey);
2397
+ i0.ɵɵadvance();
2398
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c4, ctx_r4.checkediconclass));
2399
+ i0.ɵɵadvance(2);
2400
+ i0.ɵɵtextInterpolate(ctx_r4.selectedItem ? ctx_r4.selectedItem.label : ctx_r4.modelByKey);
2405
2401
  } }
2406
2402
  const DEFAULT_CLS = 'app-switch';
2407
2403
  const WIDGET_CONFIG$6 = { widgetType: 'wm-switch', hostClass: DEFAULT_CLS };
@@ -2410,6 +2406,8 @@ class SwitchComponent extends DatasetAwareFormComponent {
2410
2406
  constructor(inj, explicitContext) {
2411
2407
  super(inj, WIDGET_CONFIG$6, explicitContext);
2412
2408
  this.options = [];
2409
+ this.multiple = this.getAttr("multiple") === "true";
2410
+ this.checkediconclass = this.getAttr("checkediconclass") || 'wm-sl-l sl-check';
2413
2411
  this._debounceSetSelectedValue = debounce$1((val) => {
2414
2412
  this.setSelectedValue();
2415
2413
  this.updateHighlighter(val);
@@ -2449,7 +2447,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2449
2447
  // set the css for switch overlay element.
2450
2448
  // set the selected index from the datasetItems and highlight the datavalue on switch.
2451
2449
  updateSwitchOptions() {
2452
- if (this.datasetItems.length) {
2450
+ if (this.datasetItems.length && !this.multiple) {
2453
2451
  this.btnwidth = (100 / this.datasetItems.length);
2454
2452
  setCSS(this.nativeElement.querySelector('.app-switch-overlay'), 'width', this.btnwidth + '%');
2455
2453
  }
@@ -2487,18 +2485,30 @@ class SwitchComponent extends DatasetAwareFormComponent {
2487
2485
  if (this.disabled) {
2488
2486
  return;
2489
2487
  }
2490
- this.modelByKey = option.key;
2491
- this.invokeOnTouched();
2492
- if (this.selectedItem && $index === findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2493
- if (this.datasetItems.length === 2) {
2494
- $index = $index === 1 ? 0 : 1;
2495
- }
2496
- else {
2497
- return;
2488
+ if (this.multiple) {
2489
+ const keys = [];
2490
+ this.datasetItems[$index].selected = !this.datasetItems[$index].selected;
2491
+ forEach(this.datasetItems, (item) => {
2492
+ if (item.selected)
2493
+ keys.push(item.key);
2494
+ });
2495
+ this.modelByKey = keys;
2496
+ this.selectedItem = find(this.datasetItems, { selected: true });
2497
+ }
2498
+ else {
2499
+ this.modelByKey = option.key;
2500
+ if (!this.multiple && this.selectedItem && $index === findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2501
+ if (this.datasetItems.length === 2) {
2502
+ $index = $index === 1 ? 0 : 1;
2503
+ }
2504
+ else {
2505
+ return;
2506
+ }
2498
2507
  }
2508
+ this.selectedItem = this.datasetItems[$index];
2509
+ this.updateHighlighter();
2499
2510
  }
2500
- this.selectedItem = this.datasetItems[$index];
2501
- this.updateHighlighter();
2511
+ this.invokeOnTouched();
2502
2512
  // invoke on datavalue change.
2503
2513
  this.invokeOnChange(this.datavalue, $event || {}, true);
2504
2514
  $appDigest();
@@ -2515,24 +2525,18 @@ class SwitchComponent extends DatasetAwareFormComponent {
2515
2525
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0.ɵɵProvidersFeature([
2516
2526
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2517
2527
  provideAsWidgetRef(SwitchComponent)
2518
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 6, vars: 8, consts: [["role", "group", 1, "btn-group", "btn-group-justified"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "class", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2528
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 4, vars: 9, consts: [["role", "group", 1, "btn-group", "btn-group-justified", 3, "ngClass"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "btn btn-primary app-switch-overlay switch-handle", 3, "title", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"], [1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "ngClass"], [1, "caption"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2519
2529
  i0.ɵɵelementStart(0, "div", 0);
2520
- i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 7, "a", 1);
2530
+ i0.ɵɵtemplate(1, SwitchComponent_a_1_Template, 4, 8, "a", 1);
2521
2531
  i0.ɵɵelementEnd();
2522
- i0.ɵɵelementStart(2, "span", 2);
2523
- i0.ɵɵtemplate(3, SwitchComponent_i_3_Template, 1, 3, "i", 3);
2524
- i0.ɵɵtext(4);
2525
- i0.ɵɵelementEnd();
2526
- i0.ɵɵelement(5, "input", 4);
2532
+ i0.ɵɵtemplate(2, SwitchComponent_span_2_Template, 4, 5, "span", 2);
2533
+ i0.ɵɵelement(3, "input", 3);
2527
2534
  } if (rf & 2) {
2535
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1$5, ctx.multiple));
2528
2536
  i0.ɵɵadvance();
2529
2537
  i0.ɵɵproperty("ngForOf", ctx.datasetItems);
2530
2538
  i0.ɵɵadvance();
2531
- i0.ɵɵproperty("title", ctx.selectedItem ? ctx.selectedItem.label : ctx.modelByKey);
2532
- i0.ɵɵadvance();
2533
- i0.ɵɵproperty("ngIf", ctx.iconclass);
2534
- i0.ɵɵadvance();
2535
- i0.ɵɵtextInterpolate1(" ", ctx.selectedItem ? ctx.selectedItem.label : ctx.modelByKey, "\n");
2539
+ i0.ɵɵproperty("ngIf", !ctx.multiple);
2536
2540
  i0.ɵɵadvance();
2537
2541
  i0.ɵɵproperty("name", ctx.name)("disabled", ctx.disabled)("value", ctx.modelByKey)("required", ctx.required);
2538
2542
  } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.TextContentDirective], encapsulation: 2 }); }
@@ -2542,7 +2546,7 @@ class SwitchComponent extends DatasetAwareFormComponent {
2542
2546
  args: [{ selector: '[wmSwitch]', providers: [
2543
2547
  provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),
2544
2548
  provideAsWidgetRef(SwitchComponent)
2545
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass]\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i *ngIf=\"iconclass\"\n class=\"app-icon {{(selectedItem && selectedItem.dataObject) && selectedItem.dataObject[iconclass]}}\"></i>\n {{selectedItem ? selectedItem.label : modelByKey}}\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2549
+ ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2546
2550
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
2547
2551
  type: Inject,
2548
2552
  args: ['EXPLICIT_CONTEXT']
@@ -3122,9 +3126,6 @@ class TextareaComponent extends BaseInput {
3122
3126
  onInputChange() {
3123
3127
  this.charlength = this.inputEl.nativeElement.value.length;
3124
3128
  }
3125
- ngAfterViewChecked() {
3126
- this.charlength = this.inputEl.nativeElement.value.length;
3127
- }
3128
3129
  static { this.ɵfac = function TextareaComponent_Factory(t) { return new (t || TextareaComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
3129
3130
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TextareaComponent, selectors: [["wm-textarea"]], viewQuery: function TextareaComponent_Query(rf, ctx) { if (rf & 1) {
3130
3131
  i0.ɵɵviewQuery(_c0, 7);