@wavemaker/app-ng-runtime 11.12.1-rc.6244 → 11.13.0-rc.222

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 (61) hide show
  1. package/build-task/bundles/index.umd.js +26 -24
  2. package/build-task/esm2022/containers/repeat-template.build.mjs +4 -2
  3. package/build-task/esm2022/data/form/form.build.mjs +4 -2
  4. package/build-task/esm2022/data/table/table-row/table-row.build.mjs +5 -3
  5. package/build-task/esm2022/page/page-content/page-content.build.mjs +6 -7
  6. package/build-task/esm2022/page/page.build.mjs +6 -7
  7. package/build-task/esm2022/partial/partial.build.mjs +6 -7
  8. package/build-task/esm2022/prefab/prefab-container/prefab-container.build.mjs +6 -7
  9. package/build-task/fesm2022/index.mjs +26 -24
  10. package/build-task/fesm2022/index.mjs.map +1 -1
  11. package/components/data/live-table/bundles/index.umd.js +4 -2
  12. package/components/data/live-table/esm2022/live-table.component.mjs +5 -3
  13. package/components/data/live-table/fesm2022/index.mjs +4 -2
  14. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  15. package/components/data/pagination/bundles/index.umd.js +4 -4
  16. package/components/data/pagination/esm2022/pagination.component.mjs +5 -5
  17. package/components/data/pagination/fesm2022/index.mjs +4 -4
  18. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  19. package/components/dialogs/design-dialog/bundles/index.umd.js +6 -12
  20. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +7 -13
  21. package/components/dialogs/design-dialog/fesm2022/index.mjs +6 -12
  22. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  23. package/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -16
  24. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +8 -15
  25. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +7 -14
  26. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  27. package/components/input/epoch/base-date-time.component.d.ts +6 -0
  28. package/components/input/epoch/bundles/index.umd.js +54 -31
  29. package/components/input/epoch/esm2022/base-date-time.component.mjs +16 -5
  30. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +22 -15
  31. package/components/input/epoch/esm2022/time/time.component.mjs +19 -14
  32. package/components/input/epoch/fesm2022/index.mjs +54 -31
  33. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  34. package/components/input/slider/bundles/index.umd.js +9 -9
  35. package/components/input/slider/esm2022/slider.component.mjs +10 -10
  36. package/components/input/slider/fesm2022/index.mjs +9 -9
  37. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  38. package/core/bundles/index.umd.js +3 -0
  39. package/core/esm2022/utils/wm-project-properties.mjs +4 -1
  40. package/core/fesm2022/index.mjs +3 -0
  41. package/core/fesm2022/index.mjs.map +1 -1
  42. package/npm-shrinkwrap.json +2 -2
  43. package/package-lock.json +2 -2
  44. package/package.json +1 -1
  45. package/runtime/base/bundles/index.umd.js +1 -1
  46. package/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  47. package/runtime/base/fesm2022/index.mjs +1 -1
  48. package/runtime/base/fesm2022/index.mjs.map +1 -1
  49. package/security/bundles/index.umd.js +2 -2
  50. package/security/esm2022/security.service.mjs +3 -3
  51. package/security/fesm2022/index.mjs +2 -2
  52. package/security/fesm2022/index.mjs.map +1 -1
  53. package/transpiler/bundles/index.umd.js +0 -13
  54. package/transpiler/esm2022/build.mjs +1 -14
  55. package/transpiler/fesm2022/index.mjs +0 -13
  56. package/transpiler/fesm2022/index.mjs.map +1 -1
  57. package/variables/bundles/index.umd.js +1 -1
  58. package/variables/esm2022/service/metadata-service/metadata.service.mjs +2 -2
  59. package/variables/fesm2022/index.mjs +1 -1
  60. package/variables/fesm2022/index.mjs.map +1 -1
  61. package/scripts/hammerjs/hammer.min.js +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.props.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.html","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-iframedialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['encodeurl', {value: false, ...PROP_BOOLEAN}],\n ['height', {value: '400px', ...PROP_STRING}],\n ['iconclass', {value: 'wi wi-globe', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'External Content', ...PROP_STRING}],\n ['url', {value: '//www.wavemaker.com', ...PROP_STRING}]\n ]\n )\n );\n};\n","<ng-template #dialogTemplate>\n @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n }@else if (!showheader && title) {\n <h4 *ngIf=\"(!showHeader && title)\" [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <div wmIframe encodeurl.bind=\"encodeurl\" iframesrc.bind=\"url\" height.bind=\"height\" width.bind=\"width\" hint.bind=\"hint\"></div>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport {\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './iframe-dialog.props';\nimport { IframeComponent } from '@wm/components/basic';\nimport { ButtonComponent } from '@wm/components/input';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-iframe-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-iframedialog'};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, IframeComponent, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmIframeDialog]',\n templateUrl: './iframe-dialog.component.html',\n providers: [\n provideAsWidgetRef(IframeDialogComponent),\n provideAsDialogRef(IframeDialogComponent)\n ]\n})\nexport class IframeDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n\n @ViewChild('dialogTemplate' , { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n },\n explicitContext\n );\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.props.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.html","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/iframe-dialog.component.ts","../../../../../projects/components/widgets/dialogs/iframe-dialog/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-iframedialog',\n new Map(\n [\n ['animation', PROP_STRING],\n ['class', PROP_STRING],\n ['closable', {value: true, PROP_BOOLEAN}],\n ['encodeurl', {value: false, ...PROP_BOOLEAN}],\n ['height', {value: '400px', ...PROP_STRING}],\n ['iconclass', {value: 'wi wi-globe', PROP_STRING}],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['modal', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['oktext', {value: 'OK', ...PROP_STRING}],\n ['showactions', {value: true, ...PROP_BOOLEAN}],\n ['showheader', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['headinglevel', {value: 'h4', ...PROP_STRING}],\n ['title', {value: 'External Content', ...PROP_STRING}],\n ['url', {value: '//www.wavemaker.com', ...PROP_STRING}]\n ]\n )\n );\n};\n","<ng-template #dialogTemplate>\n @if (showheader) {\n <div wmDialogHeader [closable]=\"closable\"\n [iconclass]=\"iconclass\"\n [iconurl]=\"iconurl\"\n [iconwidth]=\"iconwidth\"\n [iconheight]=\"iconheight\"\n [iconmargin]=\"iconmargin\"\n [heading]=\"title\"\n [headinglevel]=\"headinglevel\"\n [title]=\"title\"\n [titleid]=\"titleId\"\n ></div>\n }@else if (!showheader && title) {\n <h4 [id]=\"titleId\" class=\"sr-only\">\n {{ title }}\n </h4>\n }\n <div wmDialogBody>\n <div wmIframe encodeurl.bind=\"encodeurl\" iframesrc.bind=\"url\" height.bind=\"height\" width.bind=\"width\" hint.bind=\"hint\"></div>\n </div>\n @if (showactions) {\n <div wmDialogFooter>\n <button (click)=\"onOk($event)\" [attr.aria-label]=\"oktext\" caption.bind=\"oktext\" class=\"btn-primary ok-action\"\n wmButton></button>\n </div>\n }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport {\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport {toBoolean} from '@wm/core';\nimport { provideAsDialogRef, provideAsWidgetRef } from '@wm/components/base';\nimport { BaseDialog, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent } from '@wm/components/dialogs';\n\nimport { registerProps } from './iframe-dialog.props';\nimport { IframeComponent } from '@wm/components/basic';\nimport { ButtonComponent } from '@wm/components/input';\n\nconst DIALOG_CLS = 'app-dialog modal-dialog app-iframe-dialog';\nconst WIDGET_INFO = {widgetType: 'wm-iframedialog'};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, IframeComponent, DialogBodyDirective, DialogFooterDirective, DialogHeaderComponent, ButtonComponent],\n selector: 'div[wmIframeDialog]',\n templateUrl: './iframe-dialog.component.html',\n providers: [\n provideAsWidgetRef(IframeDialogComponent),\n provideAsDialogRef(IframeDialogComponent)\n ]\n})\nexport class IframeDialogComponent extends BaseDialog implements OnInit {\n static initializeProps = registerProps();\n\n @ViewChild('dialogTemplate' , { static: true }) dialogTemplate: TemplateRef<any>;\n\n constructor(\n inj: Injector,\n @Attribute('class') dialogClass: string,\n @Attribute('modal') modal: string | boolean,\n @Attribute('closable') closable: string | boolean,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n if (modal === null || modal === undefined) {\n modal = false;\n }\n\n if (closable === null || closable === undefined) {\n closable = true;\n }\n\n // setting the backdrop to 'static' will not close the dialog on backdrop click\n const backdrop: boolean | 'static' = toBoolean(modal) ? 'static' : true;\n\n super(\n inj,\n WIDGET_INFO,\n {\n class: `${DIALOG_CLS} ${dialogClass || ''}`,\n backdrop,\n keyboard: !toBoolean(modal)\n },\n explicitContext\n );\n }\n\n protected getTemplateRef(): TemplateRef<any> {\n return this.dialogTemplate;\n }\n\n /**\n * Click event handler for the ok button\n * invokes on-ok event callback\n * @param {Event} $event\n */\n onOk($event: Event) {\n this.invokeEventCallback('ok', {$event});\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.register(this.viewParent);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -48,12 +48,18 @@ export declare abstract class BaseDateTimeComponent extends BaseFormCustomCompon
48
48
  protected dateNotInRange: boolean;
49
49
  protected timeNotInRange: boolean;
50
50
  protected invalidDateTimeFormat: boolean;
51
+ am: string;
52
+ pm: string;
51
53
  private dateOnShowSubscription;
52
54
  private cancelLocaleChangeSubscription;
53
55
  get timeZone(): any;
54
56
  formatsByLocale: {
55
57
  timezone: string;
56
58
  };
59
+ /**
60
+ * Safely replace internal meridians with localized display meridians only for string values
61
+ */
62
+ protected safeReplaceMeridians(value: any): any;
57
63
  /**
58
64
  * This is an internal property used to map the containerClass, showWeekNumbers etc., to the bsDatepicker
59
65
  */
@@ -685,11 +685,20 @@
685
685
  // Providing meridians to the timepicker baesd on selected locale
686
686
  function getTimepickerConfig(i18nService) {
687
687
  return Object.assign(new i5.TimepickerConfig(), {
688
- meridians: i6.getLocaleDayPeriods(i18nService.getSelectedLocale(), i6.FormStyle.Format, i6.TranslationWidth.Abbreviated)
688
+ meridians: [i18nService.getLocalizedMessage("LABEL_AM") || "AM", i18nService.getLocalizedMessage("LABEL_PM") || "PM"]
689
689
  });
690
690
  }
691
691
  class BaseDateTimeComponent extends input.BaseFormCustomComponent {
692
692
  get timeZone() { return this.inj.get(i1$1.AbstractI18nService).getTimezone(this); }
693
+ /**
694
+ * Safely replace internal meridians with localized display meridians only for string values
695
+ */
696
+ safeReplaceMeridians(value) {
697
+ if (typeof value === 'string') {
698
+ return value.replace(this.meridians[0], this.am).replace(this.meridians[1], this.pm);
699
+ }
700
+ return value;
701
+ }
693
702
  constructor(inj, WIDGET_CONFIG, explicitContext) {
694
703
  super(inj, WIDGET_CONFIG, explicitContext);
695
704
  this.isReadOnly = false;
@@ -708,6 +717,8 @@
708
717
  this._dateOptions.clearPosition = 'right';
709
718
  this.meridians = i6.getLocaleDayPeriods(this.selectedLocale, i6.FormStyle.Format, i6.TranslationWidth.Abbreviated);
710
719
  this.loadNativeDateInput = i1$1.isMobile() && !this.showcustompicker;
720
+ this.am = this.i18nService.getLocalizedMessage("LABEL_AM") || "AM";
721
+ this.pm = this.i18nService.getLocalizedMessage("LABEL_PM") || "PM";
711
722
  this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe("locale-changed", (locale) => {
712
723
  this.datePipe.datePipe.locale = locale.angular;
713
724
  this._dateOptions.todayButtonLabel = this.i18nService.getLocalizedMessage('LABEL_TODAY_DATE');
@@ -792,7 +803,7 @@
792
803
  // format the date value only when inputVal is obtained from $event.target.value, as the format doesnt match.
793
804
  inputVal = i1$1.getFormattedDate(this.datePipe, inputVal, pattern, timeZone);
794
805
  }
795
- if (inputVal !== formattedDate) {
806
+ if (inputVal?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]) !== formattedDate) {
796
807
  this.invalidDateTimeFormat = true;
797
808
  this.validateType = 'incorrectformat';
798
809
  this.invokeOnChange(this.datavalue, undefined, false);
@@ -1315,7 +1326,7 @@
1315
1326
  * This function checks whether the given time is valid or not
1316
1327
  */
1317
1328
  timeFormatValidation() {
1318
- const enteredDate = $(this.nativeElement).find('input').val();
1329
+ const enteredDate = $(this.nativeElement).find('input').val()?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]);
1319
1330
  const newVal = i1$1.getNativeDateObject(enteredDate, { meridians: this.meridians, pattern: this.datepattern });
1320
1331
  if (!this.formatValidation(newVal, enteredDate)) {
1321
1332
  return;
@@ -1691,7 +1702,7 @@
1691
1702
  const value = this.datavalue;
1692
1703
  this.datavalue = undefined;
1693
1704
  setTimeout(() => {
1694
- $(this.nativeElement).find('.display-input').val(formattedDisplay);
1705
+ $(this.nativeElement).find('.display-input').val(this.safeReplaceMeridians(formattedDisplay));
1695
1706
  this.minDateMaxDateValidationOnInput(formattedDisplay);
1696
1707
  this.invokeOnChange(value, {}, false);
1697
1708
  });
@@ -2292,19 +2303,23 @@
2292
2303
  const _r4 = i0__namespace.ɵɵgetCurrentView();
2293
2304
  i0__namespace.ɵɵelementStart(0, "div", 13)(1, "button", 14);
2294
2305
  i0__namespace.ɵɵlistener("click", function DatetimeComponent_div_10_Conditional_2_Template_button_click_1_listener() { i0__namespace.ɵɵrestoreView(_r4); const ctx_r2 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r2.setPeriod("AM")); });
2295
- i0__namespace.ɵɵtext(2, "AM");
2306
+ i0__namespace.ɵɵtext(2);
2296
2307
  i0__namespace.ɵɵelementEnd();
2297
2308
  i0__namespace.ɵɵelement(3, "br");
2298
2309
  i0__namespace.ɵɵelementStart(4, "button", 15);
2299
2310
  i0__namespace.ɵɵlistener("click", function DatetimeComponent_div_10_Conditional_2_Template_button_click_4_listener() { i0__namespace.ɵɵrestoreView(_r4); const ctx_r2 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r2.setPeriod("PM")); });
2300
- i0__namespace.ɵɵtext(5, "PM");
2311
+ i0__namespace.ɵɵtext(5);
2301
2312
  i0__namespace.ɵɵelementEnd()();
2302
2313
  } if (rf & 2) {
2303
2314
  const ctx_r2 = i0__namespace.ɵɵnextContext(2);
2304
2315
  i0__namespace.ɵɵadvance();
2305
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(2, _c3$1, ctx_r2.getPeriod() === "AM"));
2306
- i0__namespace.ɵɵadvance(3);
2307
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c3$1, ctx_r2.getPeriod() === "PM"));
2316
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c3$1, ctx_r2.getPeriod() === "AM"));
2317
+ i0__namespace.ɵɵadvance();
2318
+ i0__namespace.ɵɵtextInterpolate(ctx_r2.appLocale.LABEL_AM || "AM");
2319
+ i0__namespace.ɵɵadvance(2);
2320
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(6, _c3$1, ctx_r2.getPeriod() === "PM"));
2321
+ i0__namespace.ɵɵadvance();
2322
+ i0__namespace.ɵɵtextInterpolate(ctx_r2.appLocale.LABEL_PM || "PM");
2308
2323
  } }
2309
2324
  function DatetimeComponent_div_10_Template(rf, ctx) { if (rf & 1) {
2310
2325
  const _r2 = i0__namespace.ɵɵgetCurrentView();
@@ -2314,7 +2329,7 @@
2314
2329
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function DatetimeComponent_div_10_Template_timepicker_ngModelChange_1_listener($event) { i0__namespace.ɵɵrestoreView(_r2); const ctx_r2 = i0__namespace.ɵɵnextContext(); i0__namespace.ɵɵtwoWayBindingSet(ctx_r2.bsTimeValue, $event) || (ctx_r2.bsTimeValue = $event); return i0__namespace.ɵɵresetView($event); });
2315
2330
  i0__namespace.ɵɵlistener("isValid", function DatetimeComponent_div_10_Template_timepicker_isValid_1_listener($event) { i0__namespace.ɵɵrestoreView(_r2); const ctx_r2 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r2.isValid($event)); })("ngModelChange", function DatetimeComponent_div_10_Template_timepicker_ngModelChange_1_listener($event) { i0__namespace.ɵɵrestoreView(_r2); const ctx_r2 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r2.onModelUpdate($event, "time")); });
2316
2331
  i0__namespace.ɵɵelementEnd();
2317
- i0__namespace.ɵɵtemplate(2, DatetimeComponent_div_10_Conditional_2_Template, 6, 6, "div", 13);
2332
+ i0__namespace.ɵɵtemplate(2, DatetimeComponent_div_10_Conditional_2_Template, 6, 8, "div", 13);
2318
2333
  i0__namespace.ɵɵelementEnd();
2319
2334
  } if (rf & 2) {
2320
2335
  const ctx_r2 = i0__namespace.ɵɵnextContext();
@@ -2357,7 +2372,8 @@
2357
2372
  * @returns {any|string}
2358
2373
  */
2359
2374
  get displayValue() {
2360
- return i1$1.getFormattedDate(this.datePipe, this.proxyModel, this.dateInputFormat, this.timeZone, this.key, this.isCurrentDate, this) || '';
2375
+ const display = i1$1.getFormattedDate(this.datePipe, this.proxyModel, this.dateInputFormat, this.timeZone, this.key, this.isCurrentDate, this) || '';
2376
+ return this.safeReplaceMeridians(display);
2361
2377
  }
2362
2378
  get nativeDisplayValue() {
2363
2379
  return i1$1.getFormattedDate(this.datePipe, this.proxyModel, 'yyyy-MM-ddTHH:mm:ss', this.timeZone, this.key, this.isCurrentDate, this) || '';
@@ -2523,7 +2539,8 @@
2523
2539
  onModelUpdate(newVal, type) {
2524
2540
  if (type === 'date') {
2525
2541
  this.invalidDateTimeFormat = false;
2526
- if (i1$1.getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, this.key, this.isCurrentDate, this) === this.displayValue) {
2542
+ const formatted = i1$1.getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, this.key, this.isCurrentDate, this);
2543
+ if (this.safeReplaceMeridians(formatted) === this.displayValue) {
2527
2544
  $(this.nativeElement).find('.display-input').val(this.displayValue);
2528
2545
  }
2529
2546
  }
@@ -2559,7 +2576,7 @@
2559
2576
  }
2560
2577
  if (this.datavalue === this.getPrevDataValue()) {
2561
2578
  const time = i1$1.getFormattedDate(this.datePipe, this.datavalue, this.datepattern, this.timeZone, null, null, this) || '';
2562
- $(this.nativeElement).find('.display-input').val(time);
2579
+ $(this.nativeElement).find('.display-input').val(time?.replace(this.meridians[0], this.am)?.replace(this.meridians[1], this.pm));
2563
2580
  }
2564
2581
  }
2565
2582
  else {
@@ -2571,7 +2588,7 @@
2571
2588
  const timePickerFields = $('.bs-timepicker-field');
2572
2589
  if (this.timeZone && this.key === 'datetimestamp' && timePickerFields.length) {
2573
2590
  const formattedDate = i1$1.getFormattedDate(this.datePipe, newVal, this.getTimePattern(), this.timeZone, this.key, null, this);
2574
- this.updateTimepickerFields(formattedDate, timePickerFields);
2591
+ this.updateTimepickerFields(this.safeReplaceMeridians(formattedDate), timePickerFields);
2575
2592
  }
2576
2593
  }
2577
2594
  // deduces the timepattern from datepattern set in the studio
@@ -2675,7 +2692,7 @@
2675
2692
  return;
2676
2693
  }
2677
2694
  let newVal = $event.target.value.trim();
2678
- newVal = newVal ? i1$1.getNativeDateObject(newVal, { pattern: this.loadNativeDateInput ? this.outputformat : this.datepattern, meridians: this.meridians, isNativePicker: this.loadNativeDateInput }) : undefined;
2695
+ newVal = newVal ? i1$1.getNativeDateObject(newVal?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]), { pattern: this.loadNativeDateInput ? this.outputformat : this.datepattern, meridians: this.meridians, isNativePicker: this.loadNativeDateInput }) : undefined;
2679
2696
  // datetime pattern validation
2680
2697
  // if invalid pattern is entered, device is showing an error.
2681
2698
  if (!this.formatValidation(newVal, $event.target.value, isNativePicker)) {
@@ -2700,6 +2717,7 @@
2700
2717
  newVal = newVal ? i1$1.getNativeDateObject(newVal, { pattern: this.loadNativeDateInput ? this.outputformat : this.datepattern, meridians: this.meridians }) : undefined;
2701
2718
  event.preventDefault();
2702
2719
  const formattedDate = i1$1.getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, this.key, this.isCurrentDate, this);
2720
+ const formattedDateWithMeridians = this.safeReplaceMeridians(formattedDate);
2703
2721
  const inputVal = event.target.value.trim();
2704
2722
  if (inputVal && this.datepattern === 'timestamp') {
2705
2723
  if (!lodashEs.isNaN(inputVal) && lodashEs.parseInt(inputVal) !== formattedDate) {
@@ -2707,7 +2725,7 @@
2707
2725
  this.invokeOnChange(this.datavalue, event, false);
2708
2726
  }
2709
2727
  }
2710
- else if (inputVal && inputVal !== formattedDate) {
2728
+ else if (inputVal && inputVal !== formattedDateWithMeridians) {
2711
2729
  this.invalidDateTimeFormat = true;
2712
2730
  this.invokeOnChange(this.datavalue, event, false);
2713
2731
  }
@@ -2730,7 +2748,7 @@
2730
2748
  }
2731
2749
  isValid(event) {
2732
2750
  if (!event) {
2733
- const enteredDate = $(this.nativeElement).find('input').val();
2751
+ const enteredDate = $(this.nativeElement).find('input').val()?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]);
2734
2752
  const newVal = i1$1.getNativeDateObject(enteredDate, { pattern: this.loadNativeDateInput ? this.outputformat : this.datepattern, meridians: this.meridians, isNativePicker: this.loadNativeDateInput });
2735
2753
  if (!this.formatValidation(newVal, enteredDate)) {
2736
2754
  return;
@@ -2806,7 +2824,7 @@
2806
2824
  base.provideAs(DatetimeComponent, i2$2.NG_VALIDATORS, true),
2807
2825
  base.provideAsWidgetRef(DatetimeComponent),
2808
2826
  { provide: i5.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
2809
- ], template: "<div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n [attr.aria-expanded]=\"isDateOpen\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || '.wm-app'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [ngModelOptions]=\"{standalone: true}\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"\n [ngClass]=\"{ 'showbuttons': showampmbuttons }\"></timepicker>\n @if (ismeridian && showampmbuttons) {\n <div class=\"ampm-toggle text-center\">\n <button class=\"meridian-btn mb-1\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'AM' }\" (click)=\"setPeriod('AM')\">AM</button><br>\n <button class=\"meridian-btn\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'PM' }\" (click)=\"setPeriod('PM')\">PM</button>\n </div>\n }\n </div>\n </div>\n@if (loadNativeDateInput) {\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (click)=\"!(disabled || readonly) && showDatePickerModal(bsDateValue)\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : arialabel || 'Choose Date'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n}\n" }]
2827
+ ], template: "<div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"arialabel\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n [attr.aria-expanded]=\"isDateOpen\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || '.wm-app'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [ngModelOptions]=\"{standalone: true}\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"\n [ngClass]=\"{ 'showbuttons': showampmbuttons }\"></timepicker>\n @if (ismeridian && showampmbuttons) {\n <div class=\"ampm-toggle text-center\">\n <button class=\"meridian-btn mb-1\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'AM' }\" (click)=\"setPeriod('AM')\">{{appLocale.LABEL_AM ||\"AM\"}}</button><br>\n <button class=\"meridian-btn\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'PM' }\" (click)=\"setPeriod('PM')\">{{appLocale.LABEL_PM ||\"PM\"}}</button>\n </div>\n }\n </div>\n </div>\n@if (loadNativeDateInput) {\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (click)=\"!(disabled || readonly) && showDatePickerModal(bsDateValue)\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : arialabel || 'Choose Date'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n}\n" }]
2810
2828
  }], () => [{ type: i0__namespace.Injector }, { type: i0__namespace.NgZone }, { type: i0__namespace.ChangeDetectorRef }, { type: i1$1__namespace.AppDefaults }, { type: i1$1__namespace.App }, { type: undefined, decorators: [{
2811
2829
  type: i0.Inject,
2812
2830
  args: ['EXPLICIT_CONTEXT']
@@ -2859,19 +2877,23 @@
2859
2877
  const _r3 = i0__namespace.ɵɵgetCurrentView();
2860
2878
  i0__namespace.ɵɵelementStart(0, "div", 8)(1, "button", 9);
2861
2879
  i0__namespace.ɵɵlistener("click", function TimeComponent_div_5_Conditional_2_Template_button_click_1_listener() { i0__namespace.ɵɵrestoreView(_r3); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.setPeriod("AM")); });
2862
- i0__namespace.ɵɵtext(2, "AM");
2880
+ i0__namespace.ɵɵtext(2);
2863
2881
  i0__namespace.ɵɵelementEnd();
2864
2882
  i0__namespace.ɵɵelement(3, "br");
2865
2883
  i0__namespace.ɵɵelementStart(4, "button", 10);
2866
2884
  i0__namespace.ɵɵlistener("click", function TimeComponent_div_5_Conditional_2_Template_button_click_4_listener() { i0__namespace.ɵɵrestoreView(_r3); const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.setPeriod("PM")); });
2867
- i0__namespace.ɵɵtext(5, "PM");
2885
+ i0__namespace.ɵɵtext(5);
2868
2886
  i0__namespace.ɵɵelementEnd()();
2869
2887
  } if (rf & 2) {
2870
2888
  const ctx_r1 = i0__namespace.ɵɵnextContext(2);
2871
2889
  i0__namespace.ɵɵadvance();
2872
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(2, _c3, ctx_r1.getPeriod() === "AM"));
2873
- i0__namespace.ɵɵadvance(3);
2874
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c3, ctx_r1.getPeriod() === "PM"));
2890
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(4, _c3, ctx_r1.getPeriod() === "AM"));
2891
+ i0__namespace.ɵɵadvance();
2892
+ i0__namespace.ɵɵtextInterpolate(ctx_r1.appLocale.LABEL_AM || "AM");
2893
+ i0__namespace.ɵɵadvance(2);
2894
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(6, _c3, ctx_r1.getPeriod() === "PM"));
2895
+ i0__namespace.ɵɵadvance();
2896
+ i0__namespace.ɵɵtextInterpolate(ctx_r1.appLocale.LABEL_PM || "PM");
2875
2897
  } }
2876
2898
  function TimeComponent_div_5_Template(rf, ctx) { if (rf & 1) {
2877
2899
  const _r1 = i0__namespace.ɵɵgetCurrentView();
@@ -2881,7 +2903,7 @@
2881
2903
  i0__namespace.ɵɵtwoWayListener("ngModelChange", function TimeComponent_div_5_Template_timepicker_ngModelChange_1_listener($event) { i0__namespace.ɵɵrestoreView(_r1); const ctx_r1 = i0__namespace.ɵɵnextContext(); i0__namespace.ɵɵtwoWayBindingSet(ctx_r1.bsTimeValue, $event) || (ctx_r1.bsTimeValue = $event); return i0__namespace.ɵɵresetView($event); });
2882
2904
  i0__namespace.ɵɵlistener("isValid", function TimeComponent_div_5_Template_timepicker_isValid_1_listener($event) { i0__namespace.ɵɵrestoreView(_r1); const ctx_r1 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r1.isValid($event)); })("ngModelChange", function TimeComponent_div_5_Template_timepicker_ngModelChange_1_listener($event) { i0__namespace.ɵɵrestoreView(_r1); const ctx_r1 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r1.onTimeChange($event)); });
2883
2905
  i0__namespace.ɵɵelementEnd();
2884
- i0__namespace.ɵɵtemplate(2, TimeComponent_div_5_Conditional_2_Template, 6, 6, "div", 8);
2906
+ i0__namespace.ɵɵtemplate(2, TimeComponent_div_5_Conditional_2_Template, 6, 8, "div", 8);
2885
2907
  i0__namespace.ɵɵelementEnd();
2886
2908
  } if (rf & 2) {
2887
2909
  const ctx_r1 = i0__namespace.ɵɵnextContext();
@@ -2948,7 +2970,8 @@
2948
2970
  i1$1.$appDigest();
2949
2971
  }
2950
2972
  get displayValue() {
2951
- return i1$1.getFormattedDate(this.datePipe, this.bsTimeValue, this.timepattern, this.timeZone, null, null, this) || '';
2973
+ const display = i1$1.getFormattedDate(this.datePipe, this.bsTimeValue, this.timepattern, this.timeZone, null, null, this) || '';
2974
+ return this.safeReplaceMeridians(display);
2952
2975
  }
2953
2976
  get nativeDisplayValue() {
2954
2977
  return i1$1.getFormattedDate(this.datePipe, this.bsTimeValue, 'HH:mm:ss', this.timeZone, null, null, this) || '';
@@ -3074,7 +3097,7 @@
3074
3097
  * This is an internal method triggered when the time input changes
3075
3098
  */
3076
3099
  onDisplayTimeChange($event) {
3077
- const newVal = i1$1.getNativeDateObject($event.target.value, { meridians: this.meridians, pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
3100
+ const newVal = i1$1.getNativeDateObject($event.target.value?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]), { meridians: this.meridians, pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
3078
3101
  // time pattern validation
3079
3102
  // if invalid pattern is entered, device is showing an error.
3080
3103
  if (!this.formatValidation(newVal, $event.target.value)) {
@@ -3111,13 +3134,13 @@
3111
3134
  moment(new Date(this.bsTimePicker.max)).format('A');
3112
3135
  timeValue = this.bsTimePicker.hours + ':' + (this.bsTimePicker.minutes || 0) + ':' + (this.bsTimePicker.seconds || 0) + (this.bsTimePicker.showMeridian ? (' ' + minTimeMeridian) : '');
3113
3136
  timeInputValue = i1$1.getNativeDateObject(timeValue, { pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
3114
- this.bsTimePicker.meridian = minTimeMeridian;
3137
+ this.bsTimePicker.meridian = minTimeMeridian?.replace(this.meridians[0], this.am)?.replace(this.meridians[1], this.pm);
3115
3138
  this.timeNotInRange = this.bsTimePicker.min > timeInputValue || this.bsTimePicker.max < timeInputValue;
3116
3139
  if (this.timeNotInRange || this.invalidDateTimeFormat) {
3117
3140
  this.bsTimeValue = this.getPrevDataValue();
3118
3141
  setTimeout(() => {
3119
3142
  const timeStr = i1$1.getFormattedDate(this.datePipe, timeValue, this.timepattern, this.timeZone, null, null, this) || '';
3120
- $(this.nativeElement).find('.display-input').val(timeStr);
3143
+ $(this.nativeElement).find('.display-input').val(this.safeReplaceMeridians(timeStr));
3121
3144
  });
3122
3145
  }
3123
3146
  this.setValidateType(this.bsTimePicker.min, this.bsTimePicker.max, timeInputValue);
@@ -3128,7 +3151,7 @@
3128
3151
  // Update UI display if value hasn't changed
3129
3152
  if (!this.timeNotInRange && this.datavalue === this.getPrevDataValue()) {
3130
3153
  const displayTime = i1$1.getFormattedDate(this.datePipe, this.datavalue, this.timepattern, this.timeZone, null, null, this) || '';
3131
- $(this.nativeElement).find('.display-input').val(displayTime);
3154
+ $(this.nativeElement).find('.display-input').val(this.safeReplaceMeridians(displayTime));
3132
3155
  }
3133
3156
  this.invokeOnTouched();
3134
3157
  this.invokeOnChange(this.datavalue, {}, true);
@@ -3184,7 +3207,7 @@
3184
3207
  }
3185
3208
  isValid(event) {
3186
3209
  if (!event) {
3187
- const enteredDate = $(this.nativeElement).find('input').val();
3210
+ const enteredDate = $(this.nativeElement).find('input').val()?.replace(this.am, this.meridians[0])?.replace(this.pm, this.meridians[1]);
3188
3211
  const newVal = i1$1.getNativeDateObject(enteredDate, { meridians: this.meridians, pattern: this.loadNativeDateInput ? this.outputformat : undefined, isNativePicker: this.loadNativeDateInput });
3189
3212
  if (!this.formatValidation(newVal, enteredDate)) {
3190
3213
  return;
@@ -3249,7 +3272,7 @@
3249
3272
  base.provideAs(TimeComponent, i2$2.NG_VALIDATORS, true),
3250
3273
  base.provideAsWidgetRef(TimeComponent),
3251
3274
  { provide: i5.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
3252
- ], template: "<div dropdown [isOpen]=\"status.isopen\" (onShown)=\"onShown()\" (onHidden)=\"hideTimepickerDropdown()\" [container]=\"'body'\" style=\"display: inherit\">\n <input [attr.aria-label]=\"arialabel\" class=\"form-control app-textbox display-input\"\n focus-target\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n type=\"text\"\n role=\"timer\"\n [value]=\"displayValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [autofocus]=\"autofocus\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-atomic]=\"isCurrentTime ? 'true' : 'false'\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n (click)=\"toggleDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDisplayTimeChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n <span class=\"input-group-btn dropdown-toggle\">\n <button type=\"button\" class=\"btn btn-default btn-date\" [tabindex]=\"tabindex\" [disabled]=\"disabled || readonly || isCurrentTime\" aria-label=\"Select time\" aria-haspopup=\"true\" aria-expanded=\"false\" (click)=\"toggleDropdown($event, false)\"><i aria-hidden=\"true\" class=\"app-icon wm-sl-l sl-time\"></i></button>\n </span>\n <div *dropdownMenu class=\"dropdown-menu\" (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"isDisabled\"\n [(ngModel)]=\"bsTimeValue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\" (ngModelChange)=\"onTimeChange($event)\"\n [ngClass]=\"{ 'showbuttons': showampmbuttons }\"></timepicker>\n @if (ismeridian && showampmbuttons) {\n <div class=\"ampm-toggle text-center\">\n <button class=\"meridian-btn mb-1\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'AM' }\" (click)=\"setPeriod('AM')\">AM</button><br>\n <button class=\"meridian-btn\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'PM' }\" (click)=\"setPeriod('PM')\">PM</button>\n </div>\n }\n </div>\n</div>\n@if (loadNativeDateInput) {\n <wm-datetimepicker\n dateTimePicker\n mode=\"TIME\"\n [minTime]=\"minTime\"\n [maxTime]=\"maxTime\"\n [placement]=\"modal\"\n [displayFormat]=\"timepattern\"\n [value]=\"bsTimeValue\"\n (change)=\"onTimeChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (click)=\"!(disabled || readonly) && showDatePickerModal(bsTimeValue)\"\n [attr.aria-label]=\"displayValue ? 'Change time ' + displayValue : arialabel || 'Select time'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event); assignModel()\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n}\n" }]
3275
+ ], template: "<div dropdown [isOpen]=\"status.isopen\" (onShown)=\"onShown()\" (onHidden)=\"hideTimepickerDropdown()\" [container]=\"'body'\" style=\"display: inherit\">\n <input [attr.aria-label]=\"arialabel\" class=\"form-control app-textbox display-input\"\n focus-target\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n type=\"text\"\n role=\"timer\"\n [value]=\"displayValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [autofocus]=\"autofocus\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-atomic]=\"isCurrentTime ? 'true' : 'false'\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n (click)=\"toggleDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDisplayTimeChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n <span class=\"input-group-btn dropdown-toggle\">\n <button type=\"button\" class=\"btn btn-default btn-date\" [tabindex]=\"tabindex\" [disabled]=\"disabled || readonly || isCurrentTime\" aria-label=\"Select time\" aria-haspopup=\"true\" aria-expanded=\"false\" (click)=\"toggleDropdown($event, false)\"><i aria-hidden=\"true\" class=\"app-icon wm-sl-l sl-time\"></i></button>\n </span>\n <div *dropdownMenu class=\"dropdown-menu\" (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"isDisabled\"\n [(ngModel)]=\"bsTimeValue\"\n [ngModelOptions]=\"{standalone: true}\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\" (ngModelChange)=\"onTimeChange($event)\"\n [ngClass]=\"{ 'showbuttons': showampmbuttons }\"></timepicker>\n @if (ismeridian && showampmbuttons) {\n <div class=\"ampm-toggle text-center\">\n <button class=\"meridian-btn mb-1\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'AM' }\" (click)=\"setPeriod('AM')\">{{appLocale.LABEL_AM ||\"AM\"}}</button><br>\n <button class=\"meridian-btn\" [ngClass]=\"{ 'active btn-secondary': getPeriod() === 'PM' }\" (click)=\"setPeriod('PM')\">{{appLocale.LABEL_PM ||\"PM\"}}</button>\n </div>\n }\n </div>\n</div>\n@if (loadNativeDateInput) {\n <wm-datetimepicker\n dateTimePicker\n mode=\"TIME\"\n [minTime]=\"minTime\"\n [maxTime]=\"maxTime\"\n [placement]=\"modal\"\n [displayFormat]=\"timepattern\"\n [value]=\"bsTimeValue\"\n (change)=\"onTimeChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (click)=\"!(disabled || readonly) && showDatePickerModal(bsTimeValue)\"\n [attr.aria-label]=\"displayValue ? 'Change time ' + displayValue : arialabel || 'Select time'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event); assignModel()\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n}\n" }]
3253
3276
  }], () => [{ type: i0__namespace.Injector }, { type: i0__namespace.NgZone }, { type: i1$1__namespace.AppDefaults }, { type: i1$1__namespace.App }, { type: undefined, decorators: [{
3254
3277
  type: i0.Inject,
3255
3278
  args: ['EXPLICIT_CONTEXT']