@wavemaker/app-ng-runtime 12.0.0-next.45031 → 12.0.0-next.45501

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 (119) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +405 -451
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -3
  3. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  4. app-ng-runtime/build-task/fesm2022/index.mjs +406 -454
  5. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  6. app-ng-runtime/build-task/public_api.d.ts +0 -2
  7. app-ng-runtime/components/base/bundles/index.umd.js +14 -62
  8. app-ng-runtime/components/base/components.module.d.ts +11 -12
  9. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  10. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -25
  12. app-ng-runtime/components/base/fesm2022/index.mjs +15 -62
  13. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/base/public_api.d.ts +0 -1
  15. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
  16. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  17. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  18. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  19. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  21. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -3
  22. app-ng-runtime/components/data/form/fesm2022/index.mjs +0 -2
  23. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  24. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +11 -0
  25. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +12 -1
  26. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +11 -0
  27. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  28. app-ng-runtime/components/input/default/bundles/index.umd.js +63 -39
  29. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  30. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +5 -8
  31. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +5 -8
  32. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +57 -29
  33. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  34. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
  35. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +4 -1
  36. app-ng-runtime/components/input/default/fesm2022/index.mjs +63 -39
  37. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  38. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  39. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
  40. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +3 -2
  41. app-ng-runtime/components/input/epoch/bundles/index.umd.js +3 -0
  42. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -1
  43. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +3 -0
  44. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +31 -5
  46. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +34 -8
  47. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +32 -6
  48. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  49. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +6 -2
  50. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
  51. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  52. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  53. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
  54. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  55. app-ng-runtime/core/bundles/index.umd.js +6 -16
  56. app-ng-runtime/core/enums/enums.d.ts +1 -2
  57. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  58. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  59. app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -6
  60. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
  61. app-ng-runtime/core/fesm2022/index.mjs +4 -12
  62. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/core/types/types.d.ts +1 -5
  64. app-ng-runtime/core/utils/utils.d.ts +1 -0
  65. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  66. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  67. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  68. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  69. app-ng-runtime/package.json +1 -1
  70. app-ng-runtime/runtime/base/bundles/index.umd.js +5 -288
  71. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  72. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  73. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  74. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -2
  75. app-ng-runtime/runtime/base/fesm2022/index.mjs +4 -287
  76. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  78. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  79. app-ng-runtime/runtime/base/types/types.d.ts +1 -2
  80. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +9 -27
  81. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +2 -5
  82. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  83. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +7 -26
  84. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  86. app-ng-runtime/scripts/datatable/datatable.js +6 -3
  87. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
  88. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  89. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  90. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  91. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  92. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  94. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  95. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  96. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  97. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  98. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
  99. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
  100. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  101. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  102. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  103. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  104. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
  105. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  106. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  107. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  108. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  109. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  110. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  111. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
  112. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  113. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  114. app-ng-runtime/components/advanced/custom/package.json +0 -23
  115. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  116. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  117. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  118. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -72
  119. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -288
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/default/src/button/button.props.ts","../../../../../projects/components/widgets/input/default/src/button/button.component.html","../../../../../projects/components/widgets/input/default/src/button/button.component.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.props.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.directive.ts","../../../../../projects/components/widgets/input/default/src/base-form.component.ts","../../../../../projects/components/widgets/input/default/src/base-form-custom.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.props.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.html","../../../../../projects/components/widgets/input/default/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.props.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.html","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.props.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.directive.ts","../../../../../projects/components/widgets/input/default/src/number/number.props.ts","../../../../../projects/components/widgets/input/default/src/text/base/base-input.ts","../../../../../projects/components/widgets/input/default/src/text/locale/number-locale.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.props.ts","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.ts","../../../../../projects/components/widgets/input/default/src/select/select.props.ts","../../../../../projects/components/widgets/input/default/src/select/select.component.html","../../../../../projects/components/widgets/input/default/src/select/select.component.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.props.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.component.html","../../../../../projects/components/widgets/input/default/src/switch/switch.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/default/src/text/color/input-color.props.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.html","../../../../../projects/components/widgets/input/default/src/text/email/input-email.props.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.html","../../../../../projects/components/widgets/input/default/src/text/number/input-number.props.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.html","../../../../../projects/components/widgets/input/default/src/text/text/input-text.props.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.props.ts","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.ts","../../../../../projects/components/widgets/input/default/src/caption-position.directive.ts","../../../../../projects/components/widgets/input/default/src/input.module.ts","../../../../../projects/components/widgets/input/default/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 ['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","<img data-identifier=\"img\" alt=\"button image\" class=\"button-image-icon\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n<i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\" *ngIf=\"iconclass\"></i>\n<span class=\"sr-only\" *ngIf=\"iconclass\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n<span *ngIf=\"badgevalue\" class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n","import { Component, HostBinding, Inject, Injector, Optional } from '@angular/core';\n\nimport { DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } 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 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 caption: string;\n public badgevalue: 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: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-buttongroup',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['vertical', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, HostBinding, HostListener, Inject, Injector, Optional} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './button-group.props';\n\nconst DEFAULT_CLS = 'btn-group app-button-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-buttongroup',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmButtonGroup]',\n providers: [\n provideAsWidgetRef(ButtonGroupDirective)\n ]\n})\nexport class ButtonGroupDirective extends StylableComponent {\n static initializeProps = registerProps();\n @HostBinding('class.btn-group-vertical') vertical: boolean;\n @HostListener('click', ['$event']) handleClick(event) {\n const $target = $(event.target).closest('.app-button');\n this.$element.find('.app-button').removeClass('selected');\n $target.addClass('selected');\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n}\n","import {AfterViewInit, Inject, Injectable, Injector, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport { IWidgetConfig, StylableComponent, WidgetConfig } from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit{\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0])) {\n set(this.context, binddatavalue, value);\n } else {\n set(this.viewParent, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n this.$element.keydown(function($event) {\n if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {\n $event.stopPropagation();\n }\n });\n }\n }\n}\n","import { ControlValueAccessor, FormControlName, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { Injectable, OnInit } from '@angular/core';\n\nimport { BaseFormComponent } from './base-form.component';\n\n/*\n * WMS-18269\n * custom 'required' validator for components,\n * as the bound values are resolved at runtime\n * Called on 'required' property change\n *\n * Note: Component needs NG_VALIDATOR provider for this to work\n */\nfunction isValidValue(val): Boolean {\n switch(typeof val) {\n case 'object': return (!!val && (!!val.length || !!Object.keys(val).length));\n case 'number': return (!!val || val === 0);\n default: return !(val === undefined || val === null || val === '');\n }\n}\nfunction validateRequiredBind(required: boolean): ValidatorFn {\n return (control: AbstractControl) =>\n required\n ? (isValidValue(control.value)\n ? null\n : { required: true })\n : null;\n}\n\n@Injectable()\nexport abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, Validator {\n\n private _formControl: FormControlName;\n protected _onChange: any = () => {};\n private _onTouched: any = () => {};\n\n ngOnInit() {\n super.ngOnInit();\n this._formControl = this.inj.get(FormControlName, null);\n }\n\n public registerOnChange(fn) {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn) {\n this._onTouched = fn;\n }\n\n public writeValue(value) {\n if (this.isDestroyed) {\n return;\n }\n if (this._formControl) {\n this.datavalue = value;\n this.onPropertyChange('datavalue', value);\n this.updatePrevDatavalue(value);\n }\n /*\n * WMS:18246\n * Call onChange on default value, so that the Component Model is updated\n * Do only When the Model Value is different from datavalue\n */\n (value!==this.datavalue) && this._onChange(this.datavalue);\n }\n\n public invokeOnChange(value, $event?: Event | any, valid?: boolean) {\n // let the angular know about the change\n this._onChange(value);\n if ($event) {\n super.invokeOnChange(value, $event);\n } else if (valid) {\n // Fix for [WMS-24869]: updating PrevDatavalue when there is a default value for the widget.\n this.updatePrevDatavalue(value);\n }\n }\n\n public invokeOnTouched($event?: Event) {\n this._onTouched();\n\n if ($event) {\n this.invokeEventCallback('blur', {$event});\n }\n }\n\n public invokeOnFocus($event: Event) {\n this.invokeEventCallback('focus', {$event});\n }\n /* WMS-18269 */\n validate(control: AbstractControl):{[key: string]:any} {\n return this['show'] ? validateRequiredBind(this['required'])(control) : null;\n }\n}\n","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 ['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 ]\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};\n","import {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '../base-form-custom.component';\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 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 {\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 shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\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 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","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n role=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-checked]=\"!!proxyModel\"\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\"></span>\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","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 './base-form-custom.component';\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;\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, @Attribute('groupby') public groupby?: string) {\n super(inj, config, explicitContext);\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 this._debouncedInitDatasetItems();\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 }\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 const _datavalue = isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;\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 this._debouncedInitDatasetItems();\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}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxsetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkboxset',\n checkboxsetProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOXSET,\n new Map(checkboxsetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Attribute, Component, HostListener, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {AppDefaults, noop, setListClass, switchClass} from '@wm/core';\nimport { convertDataToObject, IWidgetConfig, groupData, handleHeaderClick, provideAs, provideAsWidgetRef, styler, toggleAllHeaders } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from '../checkboxset/checkboxset.props';\nimport {forEach, includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-checkboxset list-group inline';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-checkboxset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmCheckboxset]',\n exportAs: 'wmCheckboxset',\n templateUrl: 'checkboxset.component.html',\n providers: [\n provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxsetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxsetComponent)\n ]\n})\n\nexport class CheckboxsetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public collapsible: boolean;\n\n protected match: string;\n protected dateformat: string;\n\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = true;\n }\n\n triggerInvokeOnChange(keys, $event) {\n this.modelByKey = keys;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onCheckboxLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n // construct the _model from the checked elements.\n const inputElements = this.nativeElement.querySelectorAll('input:checked');\n const keys = [];\n forEach(inputElements, ($el) => {\n // @ts-ignore\n keys.push($el.value);\n });\n\n this.triggerInvokeOnChange(keys, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n $event.target.click();\n }\n\n onPropertyChange(key, nv, ov?) {\n\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const numberProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['localefilter', PROP_STRING],\n ['minvalue', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['numberfilter', PROP_STRING],\n ['placeholder', {value: 'Enter number', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['updateon', PROP_STRING],\n ['inputmode', {value: 'natural', ...PROP_STRING}],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-number',\n numberProps\n );\n registerFormWidget(\n FormWidgetType.NUMBER,\n new Map(numberProps)\n );\n};\n","import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '../../base-form-custom.component';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n if (key === 'updateon') {\n this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;\n }\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n if (prevDataValue && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&\n this.countDecimals(val) > this.countDecimals(this.step))) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n if (isDefined(value) && (value !== '' || this.datavalue)) {\n this.handleChange(value);\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n if ((value % 1) !== 0) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n return false;\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\n\nimport {AbstractI18nService} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, TrailingZeroDecimalPipe } from '@wm/components/base';\n\nimport { registerProps } from './number.props';\nimport { NumberLocale } from '../text/locale/number-locale';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: '[wmNumber]',\n templateUrl: './number.component.html',\n providers: [\n provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(NumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(NumberComponent)\n ]\n})\nexport class NumberComponent extends NumberLocale {\n static initializeProps = registerProps();\n\n public required: boolean;\n public regexp: string;\n public disabled: boolean;\n public name: string;\n public hint: string;\n public tabindex: any;\n public conditionalclass: any;\n public conditionalstyle: any;\n public shortcutkey: string;\n public autofocus: boolean;\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n\n constructor(inj: Injector, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n role=\"textbox\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const radiosetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-radioset',\n radiosetProps\n );\n registerFormWidget(\n FormWidgetType.RADIOSET,\n new Map(radiosetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {setListClass} from '@wm/core';\n\nimport { provideAsWidgetRef, styler, provideAs } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\nimport { registerProps } from './radioset.props';\nimport { includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-radioset list-group inline';\nconst WIDGET_CONFIG = {widgetType: 'wm-radioset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmRadioset]',\n exportAs: 'wmRadioset',\n templateUrl: './radioset.component.html',\n providers: [\n provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(RadiosetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(RadiosetComponent)\n ]\n})\nexport class RadiosetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = false;\n }\n\n triggerInvokeOnChange(key, $event) {\n this.modelByKey = key;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n /**\n * On click of the option, update the datavalue\n */\n onRadioLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n this.triggerInvokeOnChange(key, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const selectProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', {value: '', ...PROP_STRING}],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['hint', PROP_STRING],\n ['match', PROP_STRING],\n ['multiple', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['placeholder', 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 ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-select',\n selectProps\n );\n registerFormWidget(\n FormWidgetType.SELECT,\n new Map(selectProps)\n );\n registerFormWidget(\n FormWidgetType.TYPEAHEAD,\n new Map(selectProps)\n );\n};\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 (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","import {AfterViewInit, Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {App, DataSource, removeAttr, setAttr} from '@wm/core';\nimport {provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '../dataset-aware-form.component';\n\nimport {registerProps} from './select.props';\nimport {includes} from \"lodash-es\";\n\nconst WIDGET_CONFIG = {widgetType: 'wm-select', hostClass: 'app-select-wrapper'};\n\n@Component({\n selector: 'wm-select',\n templateUrl: './select.component.html',\n providers: [\n provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),\n provideAs(SelectComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(SelectComponent)\n ]\n})\nexport class SelectComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public readonly: boolean;\n public placeholder: string;\n public navsearchbar: any;\n public class: any;\n public required: boolean;\n public disabled: boolean;\n public tabindex: any;\n public name: string;\n public autofocus: boolean;\n public hint: string;\n private app: App;\n\n @ViewChild('select', { static: true, read: ElementRef }) selectEl: ElementRef;\n\n set datasource(ds) {\n if (ds && ds.execute && ds.execute(DataSource.Operation.IS_BOUND_TO_LOCALE)) {\n this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);\n }\n }\n\n constructor(inj: Injector, app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.app = app;\n this.acceptsArray = true;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.selectEl.nativeElement as HTMLElement, this);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (!includes(['blur', 'change'], eventName)) {\n super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n onSelectValueChange($event) {\n if (this.readonly) {\n if (this.placeholder) {\n this.selectEl.nativeElement.value = this.placeholder;\n } else {\n this.selectEl.nativeElement.value = '';\n }\n this.datavalue = (this as any).prevDatavalue;\n return;\n }\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'class' || key === 'tabindex') {\n if(key === 'class') {\n // After NG15 upgrade ng-invalid class is added even the field is valid, so we are removing the ng-invalid manually\n const isNgUntouchedValid = this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid')\n if(isNgUntouchedValid && nv.includes('ng-untouched') && nv.includes('ng-invalid')) {\n setTimeout(()=> {\n if(this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid') && this.selectEl.nativeElement.classList.contains('ng-invalid')) {\n this.selectEl.nativeElement.classList.remove('ng-invalid');\n }\n });\n }\n }\n return;\n } else if (key === 'readonly') {\n (nv === true) ? setAttr(this.selectEl.nativeElement, 'readonly', 'readonly') : removeAttr(this.selectEl.nativeElement, 'readonly') ;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n /**\n * When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field\n * When focused add the placeholder to the option which is selected\n * On blur, remove the placeholder and do not animate the label\n * @param $event event received will be either a blur or focus event\n */\n checkForFloatingLabel($event) {\n const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');\n if (captionEl.length > 0) {\n if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {\n if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n } else {\n $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);\n }\n } else if (!this.datavalue) {\n $(this.selectEl.nativeElement).find('option:selected').text('');\n captionEl.removeClass('float-active');\n }\n } else if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n }\n }\n\n /*\n * Removing the placeholder option if no placeholder is provided.\n * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.\n * */\n private removePlaceholderOption() {\n const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');\n if (hiddenEle.length) {\n hiddenEle.remove();\n this.selectEl.nativeElement.value = '';\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","<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","import {AfterViewInit, Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function;\n public name: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n this._debounceSetSelectedValue(true);\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n this._debounceSetSelectedValue(true);\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.modelByKey = option.key;\n this.invokeOnTouched();\n\n if (this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { registerProps } from './input-calendar.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...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 ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './input-color.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\n\nimport { registerProps } from './input-email.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './input-number.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\n\nimport { inputNumberTypeProps } from '../number/input-number.props';\nimport { inputCalendarTypeProps } from '../calendar/input-calendar.props';\nimport { inputColorTypeProps } from '../color/input-color.props';\nimport { inputEmailTypeProps } from '../email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import {Component, ElementRef, Inject, Injector, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base/base-input';\nimport { IMaskDirective } from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit{\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const textareaProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Place your text', ...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 ['updateon', PROP_STRING],\n ['limitdisplaytext', PROP_STRING],\n ['charlength', PROP_NUMBER],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-textarea',\n textareaProps\n );\n registerFormWidget(\n FormWidgetType.TEXTAREA,\n new Map(textareaProps)\n );\n};\n","<textarea class=\"form-control app-textarea\"\n focus-target\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './textarea.props';\nimport { BaseInput } from '../text/base/base-input';\nconst WIDGET_CONFIG = {\n widgetType: 'wm-textarea',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-textarea',\n templateUrl: './textarea.component.html',\n providers: [\n provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),\n provideAs(TextareaComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(TextareaComponent)\n ]\n})\nexport class TextareaComponent extends BaseInput {\n static initializeProps = registerProps();\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public hint: string;\n public limitdisplaytext: string;\n public charlength: number = 0;\n\n @ViewChild('textarea', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n public onInputChange() {\n this.charlength = this.inputEl.nativeElement.value.length;\n }\n}\n","import {AfterViewInit, Directive, ElementRef, Injector, OnDestroy, OnInit} from '@angular/core';\nimport {App} from '@wm/core';\nimport {forEach} from \"lodash-es\";\n\ndeclare const $;\n@Directive({\n selector: '[wmCaptionPosition]'\n})\nexport class CaptionPositionDirective implements AfterViewInit, OnInit, OnDestroy {\n private elementRef: ElementRef;\n private inputEl;\n private nativeEl;\n private compositeEle;\n private app: App;\n private labelAnimationSubscription;\n private placeholder;\n private _attrObserver;\n private _isPlaceholderBound;\n\n // skip floating caption for the below form fields\n private skipFloatPositionWidgets: string[] = ['radioset', 'checkboxset', 'richtext', 'switch', 'chips', 'checkbox', 'slider', 'rating', 'toggle', 'upload'];\n\n constructor(inj: Injector, app: App) {\n this.elementRef = inj.get(ElementRef);\n this.nativeEl = this.elementRef.nativeElement;\n this.app = app;\n }\n\n private onBlurCb() { // on blur, remove animation and placeholder if there is no value\n let mobileInputVal;\n // In case of mobile date / time picker check for input element's value which has 'mobile-input' class\n if (this.inputEl.length > 1 && this.inputEl.hasClass('mobile-input')) {\n forEach(this.inputEl, (el) => {\n if ($(el).hasClass('mobile-input') && el.value) {\n mobileInputVal = el.value;\n }\n });\n }\n if (!this.inputEl.val() && !mobileInputVal) {\n this.compositeEle.classList.remove('float-active');\n this.inputEl.removeAttr('placeholder');\n }\n }\n\n private onFocusCb() { // on focus, add animation class and the place holder\n this.compositeEle.classList.add('float-active');\n this.inputEl.attr('placeholder', this.placeholder);\n }\n\n // For select widget, display placeholder only on focus else remove the text of the option selected.\n private checkForSelectPlaceholder() {\n if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&\n !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {\n $(this.nativeEl).find('select option:selected').text('');\n }\n }\n\n private setDefaultValueAnimation() { // set animation when default values are present\n // remove placeholder when the input el has placeholder and the placeholder is not bound to any variable\n if (!this._isPlaceholderBound && this.inputEl.attr('placeholder')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n\n // Do not show placeholder as selected by default\n this.checkForSelectPlaceholder();\n\n // check for datavalue attribute in composite element and defaultvalue attribute in form field element\n // check for datavalue.bind attribute to see whether default value is binded via expression or a variable\n // check for displayformat attribute, as in form fields user can set display format to the field\n // check for formdata/bindformdata attribute to see if any default value is binded to the form\n // check for select tag with multiple attribute enabled\n\n if ((this.inputEl.val() && !this.inputEl.is('select')) || $(this.inputEl.closest('[widget-id]')).attr('datavalue') || $(this.inputEl.parent('[widget-id]')).attr('datavalue.bind') || this.nativeEl.getAttribute('defaultvalue')\n || this.nativeEl.getAttribute('displayformat') || $(this.nativeEl).find('select option:selected').text() || $(this.nativeEl).find('select').attr('multiple')) {\n this.compositeEle.classList.add('float-active');\n }\n }\n\n /**\n * Observing placeholder attribute change on DOM instead of having a propChangeHandler fn\n * For composite widgets propertychangehandler function is invoked at independent widgets where as the directive is at composite level\n */\n private observeForPlaceholderAttrChange() {\n this._attrObserver = new MutationObserver(mutations => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'placeholder' && this.inputEl.attr('placeholder') && !this.compositeEle.classList.contains('float-active')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n });\n });\n const config = { attributes: true, childList: false, characterData: false };\n this._attrObserver.observe(this.inputEl[0], config);\n }\n\n // when a form is right aligned and have input-group-btn's like date picker, time picker etc. adjust the css to not overlap the label on the icon\n private checkForRightAlignedForm() {\n const $compositeEle = $(this.compositeEle);\n if ($compositeEle.closest('.align-right').length && $compositeEle.find('.input-group-btn').length) {\n const $label = $compositeEle.find('label');\n if ($compositeEle.find('[wmdatetime]').length) { // for datetime picker, as there will be 2 icons css is different\n $label.addClass('input-grp-dt-icon');\n } else {\n $label.addClass('input-grp-icon');\n }\n }\n }\n\n ngAfterViewInit() {\n this.compositeEle = this.nativeEl;\n const widget = this.nativeEl.widget;\n let captionPosition: string = widget.$attrs.get('captionposition');\n if (widget.form) {\n captionPosition = widget.form.$attrs.get('captionposition');\n this.compositeEle = this.nativeEl.querySelector('.app-composite-widget');\n this._isPlaceholderBound = this.nativeEl.getAttribute('placeholder.bind');\n }\n if (captionPosition === 'floating') {\n if (widget.form) { // for form-fields remove caption-floating and replace it with caption-float or caption-top\n const widgetType: string = this.nativeEl.getAttribute('widgettype'); // fetches the form field type\n if (this.skipFloatPositionWidgets.indexOf(widgetType) > -1) {\n this.compositeEle.classList.remove('caption-floating');\n this.compositeEle.classList.add('caption-top');\n }\n this.checkForRightAlignedForm();\n }\n this.inputEl = $(this.nativeEl).find('input, select, textarea');\n if (!this._isPlaceholderBound) {\n this._isPlaceholderBound = this.inputEl.closest('[widget-id]').attr('placeholder.bind');\n }\n // call the below function to apply float-active class when there are default values to the fields\n setTimeout(this.setDefaultValueAnimation.bind(this), 0);\n\n this.inputEl.focus(this.onFocusCb.bind(this));\n this.inputEl.blur(this.onBlurCb.bind(this));\n\n // observe for placeholder attribute change when placeholder is bound via db variable or an expression\n if (this._isPlaceholderBound) {\n this.observeForPlaceholderAttrChange();\n }\n }\n }\n\n // captionPositionAnimate is only notified for date-time, time and search widgets as input el is not updated with value on selection of dropdown/popups\n ngOnInit() {\n this.labelAnimationSubscription = this.app.subscribe('captionPositionAnimate', (data) => {\n // displayVal is true when there is a value entered in the input field\n // In case of form fields, when the field is in focus, isFocused will be set as true\n // isSelectMultiple is set to true when for select widget, multiple option is enabled\n // Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus\n const isInputElFocused = this.inputEl && this.inputEl.is(':focus');\n if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {\n data.nativeEl.addClass('float-active');\n if (!data.displayVal && isInputElFocused) {\n this.inputEl.attr('placeholder', this.placeholder);\n }\n } else {\n data.nativeEl.removeClass('float-active');\n // Remove placeholder on removing float-active, if not the label and placeholder are collided\n // before placeholder is removed assign it to the placeholder variable\n // check for placeholder in inputel and selectel\n if (this.inputEl) {\n const selectEl = this.inputEl.find('option:first');\n if (this.inputEl.attr('placeholder') || selectEl.text()) {\n if (selectEl.length) {\n selectEl.text('');\n } else {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n }\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.labelAnimationSubscription) {\n this.labelAnimationSubscription();\n }\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IMaskModule } from 'angular-imask';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ButtonComponent } from './button/button.component';\nimport { ButtonGroupDirective } from './button-group/button-group.directive';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { CheckboxsetComponent } from './checkboxset/checkboxset.component';\nimport { CompositeDirective } from './composite/composite.directive';\nimport { NumberComponent } from './number/number.component';\nimport { RadiosetComponent } from './radioset/radioset.component';\nimport { SelectComponent } from './select/select.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { InputCalendarComponent } from './text/calendar/input-calendar.component';\nimport { InputColorComponent } from './text/color/input-color.component';\nimport { InputEmailComponent } from './text/email/input-email.component';\nimport { InputNumberComponent } from './text/number/input-number.component';\nimport { InputTextComponent } from './text/text/input-text.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { CaptionPositionDirective } from './caption-position.directive';\n\nconst components = [\n ButtonComponent,\n ButtonGroupDirective,\n CaptionPositionDirective,\n CheckboxComponent,\n CheckboxsetComponent,\n CompositeDirective,\n NumberComponent,\n RadiosetComponent,\n SelectComponent,\n SwitchComponent,\n InputCalendarComponent,\n InputColorComponent,\n InputEmailComponent,\n InputNumberComponent,\n InputTextComponent,\n TextareaComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule,\n IMaskModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class InputModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c3","_c4","DEFAULT_CLS","WIDGET_CONFIG","_c0","_c2","_c1","_debounce","debounce","i1"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/default/src/button/button.props.ts","../../../../../projects/components/widgets/input/default/src/button/button.component.html","../../../../../projects/components/widgets/input/default/src/button/button.component.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.props.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.directive.ts","../../../../../projects/components/widgets/input/default/src/base-form.component.ts","../../../../../projects/components/widgets/input/default/src/base-form-custom.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.props.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.html","../../../../../projects/components/widgets/input/default/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.props.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.html","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.props.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.directive.ts","../../../../../projects/components/widgets/input/default/src/number/number.props.ts","../../../../../projects/components/widgets/input/default/src/text/base/base-input.ts","../../../../../projects/components/widgets/input/default/src/text/locale/number-locale.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.props.ts","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.ts","../../../../../projects/components/widgets/input/default/src/select/select.props.ts","../../../../../projects/components/widgets/input/default/src/select/select.component.html","../../../../../projects/components/widgets/input/default/src/select/select.component.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.props.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.component.html","../../../../../projects/components/widgets/input/default/src/switch/switch.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/default/src/text/color/input-color.props.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.html","../../../../../projects/components/widgets/input/default/src/text/email/input-email.props.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.html","../../../../../projects/components/widgets/input/default/src/text/number/input-number.props.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.html","../../../../../projects/components/widgets/input/default/src/text/text/input-text.props.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.props.ts","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.ts","../../../../../projects/components/widgets/input/default/src/caption-position.directive.ts","../../../../../projects/components/widgets/input/default/src/input.module.ts","../../../../../projects/components/widgets/input/default/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 ['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","<img data-identifier=\"img\" alt=\"button image\" class=\"button-image-icon\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n<i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\" *ngIf=\"iconclass\"></i>\n<span class=\"sr-only\" *ngIf=\"iconclass\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n<span *ngIf=\"badgevalue\" class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n","import { Component, HostBinding, Inject, Injector, Optional } from '@angular/core';\n\nimport { DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } 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 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 caption: string;\n public badgevalue: 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: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-buttongroup',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['vertical', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, HostBinding, HostListener, Inject, Injector, Optional} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './button-group.props';\n\nconst DEFAULT_CLS = 'btn-group app-button-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-buttongroup',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmButtonGroup]',\n providers: [\n provideAsWidgetRef(ButtonGroupDirective)\n ]\n})\nexport class ButtonGroupDirective extends StylableComponent {\n static initializeProps = registerProps();\n @HostBinding('class.btn-group-vertical') vertical: boolean;\n @HostListener('click', ['$event']) handleClick(event) {\n const $target = $(event.target).closest('.app-button');\n this.$element.find('.app-button').removeClass('selected');\n $target.addClass('selected');\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n}\n","import {AfterViewInit, Inject, Injectable, Injector, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport { IWidgetConfig, StylableComponent, WidgetConfig } from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit{\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0])) {\n set(this.context, binddatavalue, value);\n } else {\n set(this.viewParent, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n this.$element.keydown(function($event) {\n if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {\n $event.stopPropagation();\n }\n });\n }\n }\n}\n","import { ControlValueAccessor, FormControlName, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { Injectable, OnInit } from '@angular/core';\n\nimport { BaseFormComponent } from './base-form.component';\n\n/*\n * WMS-18269\n * custom 'required' validator for components,\n * as the bound values are resolved at runtime\n * Called on 'required' property change\n *\n * Note: Component needs NG_VALIDATOR provider for this to work\n */\nfunction isValidValue(val): Boolean {\n switch(typeof val) {\n case 'object': return (!!val && (!!val.length || !!Object.keys(val).length));\n case 'number': return (!!val || val === 0);\n default: return !(val === undefined || val === null || val === '');\n }\n}\nfunction validateRequiredBind(required: boolean): ValidatorFn {\n return (control: AbstractControl) =>\n required\n ? (isValidValue(control.value)\n ? null\n : { required: true })\n : null;\n}\n\n@Injectable()\nexport abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, Validator {\n\n private _formControl: FormControlName;\n protected _onChange: any = () => {};\n private _onTouched: any = () => {};\n\n ngOnInit() {\n super.ngOnInit();\n this._formControl = this.inj.get(FormControlName, null);\n }\n\n public registerOnChange(fn) {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn) {\n this._onTouched = fn;\n }\n\n public writeValue(value) {\n if (this.isDestroyed) {\n return;\n }\n if (this._formControl) {\n this.datavalue = value;\n this.onPropertyChange('datavalue', value);\n this.updatePrevDatavalue(value);\n }\n /*\n * WMS:18246\n * Call onChange on default value, so that the Component Model is updated\n * Do only When the Model Value is different from datavalue\n */\n (value!==this.datavalue) && this._onChange(this.datavalue);\n }\n\n public invokeOnChange(value, $event?: Event | any, valid?: boolean) {\n // let the angular know about the change\n this._onChange(value);\n if ($event) {\n super.invokeOnChange(value, $event);\n } else if (valid) {\n // Fix for [WMS-24869]: updating PrevDatavalue when there is a default value for the widget.\n this.updatePrevDatavalue(value);\n }\n }\n\n public invokeOnTouched($event?: Event) {\n this._onTouched();\n\n if ($event) {\n this.invokeEventCallback('blur', {$event});\n }\n }\n\n public invokeOnFocus($event: Event) {\n this.invokeEventCallback('focus', {$event});\n }\n /* WMS-18269 */\n validate(control: AbstractControl):{[key: string]:any} {\n return this['show'] ? validateRequiredBind(this['required'])(control) : null;\n }\n}\n","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 ['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 ]\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};\n","import {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '../base-form-custom.component';\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 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 {\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 shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\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 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","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n role=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-checked]=\"!!proxyModel\"\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\"></span>\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","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 './base-form-custom.component';\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;\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, @Attribute('groupby') public groupby?: string) {\n super(inj, config, explicitContext);\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 this._debouncedInitDatasetItems();\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 }\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 const _datavalue = isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;\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 this._debouncedInitDatasetItems();\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}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxsetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkboxset',\n checkboxsetProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOXSET,\n new Map(checkboxsetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Attribute, Component, HostListener, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {AppDefaults, noop, setListClass, switchClass} from '@wm/core';\nimport { convertDataToObject, IWidgetConfig, groupData, handleHeaderClick, provideAs, provideAsWidgetRef, styler, toggleAllHeaders } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from '../checkboxset/checkboxset.props';\nimport {forEach, includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-checkboxset list-group inline';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-checkboxset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmCheckboxset]',\n exportAs: 'wmCheckboxset',\n templateUrl: 'checkboxset.component.html',\n providers: [\n provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxsetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxsetComponent)\n ]\n})\n\nexport class CheckboxsetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public collapsible: boolean;\n\n protected match: string;\n protected dateformat: string;\n\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = true;\n }\n\n onCheckboxLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n // construct the _model from the checked elements.\n const inputElements = this.nativeElement.querySelectorAll('input:checked');\n const keys = [];\n forEach(inputElements, ($el) => {\n // @ts-ignore\n keys.push($el.value);\n });\n\n this.modelByKey = keys;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n $event.target.click();\n }\n\n onPropertyChange(key, nv, ov?) {\n\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const numberProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['localefilter', PROP_STRING],\n ['minvalue', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['numberfilter', PROP_STRING],\n ['placeholder', {value: 'Enter number', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['updateon', PROP_STRING],\n ['inputmode', {value: 'natural', ...PROP_STRING}],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-number',\n numberProps\n );\n registerFormWidget(\n FormWidgetType.NUMBER,\n new Map(numberProps)\n );\n};\n","import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '../../base-form-custom.component';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n if ((prevDataValue || prevDataValue == 0) && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&\n this.countDecimals(val) > this.countDecimals(this.step))) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n if (isDefined(value) && (value !== '' || this.datavalue)) {\n this.handleChange(value);\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n if ((value % 1) !== 0) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n return false;\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\n\nimport {AbstractI18nService} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, TrailingZeroDecimalPipe } from '@wm/components/base';\n\nimport { registerProps } from './number.props';\nimport { NumberLocale } from '../text/locale/number-locale';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: '[wmNumber]',\n templateUrl: './number.component.html',\n providers: [\n provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(NumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(NumberComponent)\n ]\n})\nexport class NumberComponent extends NumberLocale {\n static initializeProps = registerProps();\n\n public required: boolean;\n public regexp: string;\n public disabled: boolean;\n public name: string;\n public hint: string;\n public tabindex: any;\n public conditionalclass: any;\n public conditionalstyle: any;\n public shortcutkey: string;\n public autofocus: boolean;\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n\n constructor(inj: Injector, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n role=\"textbox\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const radiosetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-radioset',\n radiosetProps\n );\n registerFormWidget(\n FormWidgetType.RADIOSET,\n new Map(radiosetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {setListClass} from '@wm/core';\n\nimport { provideAsWidgetRef, styler, provideAs } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\nimport { registerProps } from './radioset.props';\nimport {includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-radioset list-group inline';\nconst WIDGET_CONFIG = {widgetType: 'wm-radioset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmRadioset]',\n exportAs: 'wmRadioset',\n templateUrl: './radioset.component.html',\n providers: [\n provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(RadiosetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(RadiosetComponent)\n ]\n})\nexport class RadiosetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = false;\n }\n\n /**\n * On click of the option, update the datavalue\n */\n onRadioLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n this.modelByKey = key;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const selectProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', {value: '', ...PROP_STRING}],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['hint', PROP_STRING],\n ['match', PROP_STRING],\n ['multiple', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['placeholder', 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 ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-select',\n selectProps\n );\n registerFormWidget(\n FormWidgetType.SELECT,\n new Map(selectProps)\n );\n registerFormWidget(\n FormWidgetType.TYPEAHEAD,\n new Map(selectProps)\n );\n};\n","<!--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","import {AfterViewInit, Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {DataSource, removeAttr, setAttr} from '@wm/core';\nimport {provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '../dataset-aware-form.component';\n\nimport {registerProps} from './select.props';\n\nconst WIDGET_CONFIG = {widgetType: 'wm-select', hostClass: 'app-select-wrapper'};\n\n@Component({\n selector: 'wm-select',\n templateUrl: './select.component.html',\n providers: [\n provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),\n provideAs(SelectComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(SelectComponent)\n ]\n})\nexport class SelectComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public readonly: boolean;\n public placeholder: string;\n public navsearchbar: any;\n public class: any;\n public required: boolean;\n public disabled: boolean;\n public tabindex: any;\n public name: string;\n public autofocus: boolean;\n public hint: string;\n\n @ViewChild('select', { static: true, read: ElementRef }) selectEl: ElementRef;\n\n set datasource(ds) {\n if (ds && ds.execute && ds.execute(DataSource.Operation.IS_BOUND_TO_LOCALE)) {\n this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);\n }\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.acceptsArray = true;\n\n /*\n * When the dataset for a select element is updated and no longer includes the previously selected value:\n * The select element becomes empty, and the ngModel value is updated to reflect this change.\n * However, the change event is not triggered, preventing the form control from recognizing the update and applying necessary validations.\n * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.\n * */\n const datasetSubscription = this.dataset$.subscribe(() => {\n if (this.datavalue) {\n const selectedItem = this.datasetItems.find(item => item.selected);\n if (!selectedItem) {\n setTimeout(() => {\n if(!this.placeholder) {\n this.selectEl.nativeElement.value = '';\n }\n this.modelByKey = undefined;\n }, 100);\n }\n } else {\n setTimeout(() => {\n if(!this.placeholder) {\n this.selectEl.nativeElement.value = '';\n }\n }, 100);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.selectEl.nativeElement as HTMLElement, this);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (!['blur', 'change'].includes(eventName)) {\n super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n onSelectValueChange($event) {\n if (this.readonly) {\n if (this.placeholder) {\n this.selectEl.nativeElement.value = this.placeholder;\n } else {\n this.selectEl.nativeElement.value = '';\n }\n this.datavalue = (this as any).prevDatavalue;\n return;\n }\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'class' || key === 'tabindex') {\n if(key === 'class') {\n // After NG15 upgrade ng-invalid class is added even the field is valid, so we are removing the ng-invalid manually\n const isNgUntouchedValid = this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid')\n if(isNgUntouchedValid && nv.includes('ng-untouched') && nv.includes('ng-invalid')) {\n setTimeout(()=> {\n if(this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid') && this.selectEl.nativeElement.classList.contains('ng-invalid')) {\n this.selectEl.nativeElement.classList.remove('ng-invalid');\n }\n });\n }\n }\n return;\n } else if (key === 'readonly') {\n (nv === true) ? setAttr(this.selectEl.nativeElement, 'readonly', 'readonly') : removeAttr(this.selectEl.nativeElement, 'readonly') ;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n /**\n * When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field\n * When focused add the placeholder to the option which is selected\n * On blur, remove the placeholder and do not animate the label\n * @param $event event received will be either a blur or focus event\n */\n checkForFloatingLabel($event) {\n const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');\n if(!this.placeholder) {\n this.removePlaceholderOption();\n }\n if (captionEl.length > 0) {\n const placeholderOption = this.selectEl.nativeElement.querySelector('#placeholderOption');\n if ($event.type === 'mousedown' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {\n if(this.placeholder) {\n placeholderOption.textContent = this.placeholder;\n }\n } else if (!this.datavalue) {\n if(this.placeholder) {\n placeholderOption.textContent = '';\n }\n captionEl.removeClass('float-active');\n }\n }\n }\n\n /*\n * Removing the placeholder option if no placeholder is provided.\n * In html we are hiding the placeholder option using css but in Apple devices and safari option is showing.\n * Styles are not allowed on option tag in ios safari\n * 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\n * */\n private removePlaceholderOption() {\n const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');\n if (hiddenEle.length) {\n hiddenEle.remove();\n if(!this.datavalue) {\n this.selectEl.nativeElement.value = '';\n }\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","<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","import {AfterViewInit, Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function;\n public name: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n this._debounceSetSelectedValue(true);\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n this._debounceSetSelectedValue(true);\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.modelByKey = option.key;\n this.invokeOnTouched();\n\n if (this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { registerProps } from './input-calendar.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...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 ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './input-color.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\n\nimport { registerProps } from './input-email.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './input-number.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\n\nimport { inputNumberTypeProps } from '../number/input-number.props';\nimport { inputCalendarTypeProps } from '../calendar/input-calendar.props';\nimport { inputColorTypeProps } from '../color/input-color.props';\nimport { inputEmailTypeProps } from '../email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import {Component, ElementRef, Inject, Injector, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base/base-input';\nimport { IMaskDirective } from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit{\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const textareaProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Place your text', ...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 ['updateon', PROP_STRING],\n ['limitdisplaytext', PROP_STRING],\n ['charlength', PROP_NUMBER],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-textarea',\n textareaProps\n );\n registerFormWidget(\n FormWidgetType.TEXTAREA,\n new Map(textareaProps)\n );\n};\n","<textarea class=\"form-control app-textarea\"\n focus-target\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n","import { AfterViewChecked, Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './textarea.props';\nimport { BaseInput } from '../text/base/base-input';\nconst WIDGET_CONFIG = {\n widgetType: 'wm-textarea',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-textarea',\n templateUrl: './textarea.component.html',\n providers: [\n provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),\n provideAs(TextareaComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(TextareaComponent)\n ]\n})\nexport class TextareaComponent extends BaseInput implements AfterViewChecked {\n static initializeProps = registerProps();\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public hint: string;\n public limitdisplaytext: string;\n public charlength: number = 0;\n\n @ViewChild('textarea', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n public onInputChange() {\n this.charlength = this.inputEl.nativeElement.value.length;\n }\n ngAfterViewChecked(): void {\n this.charlength = this.inputEl.nativeElement.value.length; \n }\n}\n","import {AfterViewInit, Directive, ElementRef, Injector, OnDestroy, OnInit} from '@angular/core';\nimport {App} from '@wm/core';\nimport {forEach} from \"lodash-es\";\n\ndeclare const $;\n@Directive({\n selector: '[wmCaptionPosition]'\n})\nexport class CaptionPositionDirective implements AfterViewInit, OnInit, OnDestroy {\n private elementRef: ElementRef;\n private inputEl;\n private nativeEl;\n private compositeEle;\n private app: App;\n private labelAnimationSubscription;\n private placeholder;\n private _attrObserver;\n private _isPlaceholderBound;\n\n // skip floating caption for the below form fields\n private skipFloatPositionWidgets: string[] = ['radioset', 'checkboxset', 'richtext', 'switch', 'chips', 'checkbox', 'slider', 'rating', 'toggle', 'upload'];\n\n constructor(inj: Injector, app: App) {\n this.elementRef = inj.get(ElementRef);\n this.nativeEl = this.elementRef.nativeElement;\n this.app = app;\n }\n\n private onBlurCb() { // on blur, remove animation and placeholder if there is no value\n let mobileInputVal;\n // In case of mobile date / time picker check for input element's value which has 'mobile-input' class\n if (this.inputEl.length > 1 && this.inputEl.hasClass('mobile-input')) {\n forEach(this.inputEl, (el) => {\n if ($(el).hasClass('mobile-input') && el.value) {\n mobileInputVal = el.value;\n }\n });\n }\n if (!this.inputEl.val() && !mobileInputVal) {\n this.compositeEle.classList.remove('float-active');\n this.inputEl.removeAttr('placeholder');\n }\n }\n\n private onFocusCb() { // on focus, add animation class and the place holder\n this.compositeEle.classList.add('float-active');\n this.inputEl.attr('placeholder', this.placeholder);\n }\n\n // For select widget, display placeholder only on focus else remove the text of the option selected.\n private checkForSelectPlaceholder() {\n if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&\n !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {\n $(this.nativeEl).find('select option:selected').text('');\n }\n }\n\n private setDefaultValueAnimation() { // set animation when default values are present\n // remove placeholder when the input el has placeholder and the placeholder is not bound to any variable\n if (!this._isPlaceholderBound && this.inputEl.attr('placeholder')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n\n // Do not show placeholder as selected by default\n this.checkForSelectPlaceholder();\n\n // check for datavalue attribute in composite element and defaultvalue attribute in form field element\n // check for datavalue.bind attribute to see whether default value is binded via expression or a variable\n // check for displayformat attribute, as in form fields user can set display format to the field\n // check for formdata/bindformdata attribute to see if any default value is binded to the form\n // check for select tag with multiple attribute enabled\n\n if ((this.inputEl.val() && !this.inputEl.is('select')) || $(this.inputEl.closest('[widget-id]')).attr('datavalue') || $(this.inputEl.parent('[widget-id]')).attr('datavalue.bind') || this.nativeEl.getAttribute('defaultvalue')\n || this.nativeEl.getAttribute('displayformat') || $(this.nativeEl).find('select option:selected').text() || $(this.nativeEl).find('select').attr('multiple')) {\n this.compositeEle.classList.add('float-active');\n }\n }\n\n /**\n * Observing placeholder attribute change on DOM instead of having a propChangeHandler fn\n * For composite widgets propertychangehandler function is invoked at independent widgets where as the directive is at composite level\n */\n private observeForPlaceholderAttrChange() {\n this._attrObserver = new MutationObserver(mutations => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'placeholder' && this.inputEl.attr('placeholder') && !this.compositeEle.classList.contains('float-active')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n });\n });\n const config = { attributes: true, childList: false, characterData: false };\n this._attrObserver.observe(this.inputEl[0], config);\n }\n\n // when a form is right aligned and have input-group-btn's like date picker, time picker etc. adjust the css to not overlap the label on the icon\n private checkForRightAlignedForm() {\n const $compositeEle = $(this.compositeEle);\n if ($compositeEle.closest('.align-right').length && $compositeEle.find('.input-group-btn').length) {\n const $label = $compositeEle.find('label');\n if ($compositeEle.find('[wmdatetime]').length) { // for datetime picker, as there will be 2 icons css is different\n $label.addClass('input-grp-dt-icon');\n } else {\n $label.addClass('input-grp-icon');\n }\n }\n }\n\n ngAfterViewInit() {\n this.compositeEle = this.nativeEl;\n const widget = this.nativeEl.widget;\n let captionPosition: string = widget.$attrs.get('captionposition');\n if (widget.form) {\n captionPosition = widget.form.$attrs.get('captionposition');\n this.compositeEle = this.nativeEl.querySelector('.app-composite-widget');\n this._isPlaceholderBound = this.nativeEl.getAttribute('placeholder.bind');\n }\n if (captionPosition === 'floating') {\n if (widget.form) { // for form-fields remove caption-floating and replace it with caption-float or caption-top\n const widgetType: string = this.nativeEl.getAttribute('widgettype'); // fetches the form field type\n if (this.skipFloatPositionWidgets.indexOf(widgetType) > -1) {\n this.compositeEle.classList.remove('caption-floating');\n this.compositeEle.classList.add('caption-top');\n }\n this.checkForRightAlignedForm();\n }\n this.inputEl = $(this.nativeEl).find('input, select, textarea');\n if (!this._isPlaceholderBound) {\n this._isPlaceholderBound = this.inputEl.closest('[widget-id]').attr('placeholder.bind');\n }\n // call the below function to apply float-active class when there are default values to the fields\n setTimeout(this.setDefaultValueAnimation.bind(this), 0);\n\n this.inputEl.focus(this.onFocusCb.bind(this));\n this.inputEl.blur(this.onBlurCb.bind(this));\n\n // observe for placeholder attribute change when placeholder is bound via db variable or an expression\n if (this._isPlaceholderBound) {\n this.observeForPlaceholderAttrChange();\n }\n }\n }\n\n // captionPositionAnimate is only notified for date-time, time and search widgets as input el is not updated with value on selection of dropdown/popups\n ngOnInit() {\n this.labelAnimationSubscription = this.app.subscribe('captionPositionAnimate', (data) => {\n // displayVal is true when there is a value entered in the input field\n // In case of form fields, when the field is in focus, isFocused will be set as true\n // isSelectMultiple is set to true when for select widget, multiple option is enabled\n // Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus\n const isInputElFocused = this.inputEl && this.inputEl.is(':focus');\n if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {\n data.nativeEl.addClass('float-active');\n if (!data.displayVal && isInputElFocused) {\n this.inputEl.attr('placeholder', this.placeholder);\n }\n } else {\n data.nativeEl.removeClass('float-active');\n // Remove placeholder on removing float-active, if not the label and placeholder are collided\n // before placeholder is removed assign it to the placeholder variable\n // check for placeholder in inputel and selectel\n if (this.inputEl) {\n const selectEl = this.inputEl.find('option:first');\n if (this.inputEl.attr('placeholder') || selectEl.text()) {\n if (selectEl.length) {\n selectEl.text('');\n } else {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n }\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.labelAnimationSubscription) {\n this.labelAnimationSubscription();\n }\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IMaskModule } from 'angular-imask';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ButtonComponent } from './button/button.component';\nimport { ButtonGroupDirective } from './button-group/button-group.directive';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { CheckboxsetComponent } from './checkboxset/checkboxset.component';\nimport { CompositeDirective } from './composite/composite.directive';\nimport { NumberComponent } from './number/number.component';\nimport { RadiosetComponent } from './radioset/radioset.component';\nimport { SelectComponent } from './select/select.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { InputCalendarComponent } from './text/calendar/input-calendar.component';\nimport { InputColorComponent } from './text/color/input-color.component';\nimport { InputEmailComponent } from './text/email/input-email.component';\nimport { InputNumberComponent } from './text/number/input-number.component';\nimport { InputTextComponent } from './text/text/input-text.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { CaptionPositionDirective } from './caption-position.directive';\n\nconst components = [\n ButtonComponent,\n ButtonGroupDirective,\n CaptionPositionDirective,\n CheckboxComponent,\n CheckboxsetComponent,\n CompositeDirective,\n NumberComponent,\n RadiosetComponent,\n SelectComponent,\n SwitchComponent,\n InputCalendarComponent,\n InputColorComponent,\n InputEmailComponent,\n InputNumberComponent,\n InputTextComponent,\n TextareaComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule,\n IMaskModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class InputModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c3","_c4","DEFAULT_CLS","WIDGET_CONFIG","_c0","_c2","_c1","_debounce","debounce","i1"],"mappings":"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"}