@wavemaker/app-ng-runtime 11.8.0-next.141688 → 11.8.0-next.141689

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 (99) hide show
  1. package/build-task/bundles/index.umd.js +4 -4
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +3 -3
  3. package/build-task/esm2022/containers/repeat-template.build.mjs +3 -3
  4. package/build-task/fesm2022/index.mjs +4 -4
  5. package/build-task/fesm2022/index.mjs.map +1 -1
  6. package/components/advanced/carousel/bundles/index.umd.js +3 -2
  7. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +1 -1
  8. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +4 -3
  9. package/components/advanced/carousel/fesm2022/index.mjs +3 -2
  10. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  11. package/components/base/bundles/index.umd.js +45 -32
  12. package/components/base/directives/show-in-device.directive.d.ts +3 -6
  13. package/components/base/esm2022/directives/show-in-device.directive.mjs +12 -14
  14. package/components/base/esm2022/public_api.mjs +2 -1
  15. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +5 -7
  16. package/components/base/esm2022/widgets/common/base/base.component.mjs +22 -15
  17. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +13 -6
  18. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +4 -3
  19. package/components/base/fesm2022/index.mjs +45 -33
  20. package/components/base/fesm2022/index.mjs.map +1 -1
  21. package/components/base/public_api.d.ts +1 -0
  22. package/components/base/widgets/common/base/base.component.d.ts +18 -1
  23. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -2
  24. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +1 -1
  25. package/components/basic/search/bundles/index.umd.js +10 -9
  26. package/components/basic/search/esm2022/search.component.mjs +11 -10
  27. package/components/basic/search/fesm2022/index.mjs +10 -9
  28. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  29. package/components/data/form/bundles/index.umd.js +1 -1
  30. package/components/data/form/esm2022/form.component.mjs +2 -2
  31. package/components/data/form/fesm2022/index.mjs +1 -1
  32. package/components/data/form/fesm2022/index.mjs.map +1 -1
  33. package/components/data/list/bundles/index.umd.js +10 -7
  34. package/components/data/list/esm2022/list-item.directive.mjs +6 -1
  35. package/components/data/list/esm2022/list.component.mjs +7 -8
  36. package/components/data/list/fesm2022/index.mjs +11 -8
  37. package/components/data/list/fesm2022/index.mjs.map +1 -1
  38. package/components/data/list/list-item.directive.d.ts +4 -0
  39. package/components/data/pagination/bundles/index.umd.js +10 -9
  40. package/components/data/pagination/esm2022/pagination.component.mjs +11 -10
  41. package/components/data/pagination/fesm2022/index.mjs +10 -9
  42. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  43. package/components/data/table/bundles/index.umd.js +3 -1
  44. package/components/data/table/esm2022/table.component.mjs +4 -2
  45. package/components/data/table/fesm2022/index.mjs +3 -1
  46. package/components/data/table/fesm2022/index.mjs.map +1 -1
  47. package/components/input/color-picker/bundles/index.umd.js +2 -2
  48. package/components/input/color-picker/esm2022/color-picker.component.mjs +3 -3
  49. package/components/input/color-picker/fesm2022/index.mjs +2 -2
  50. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  51. package/components/input/default/bundles/index.umd.js +37 -32
  52. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +6 -5
  53. package/components/input/default/esm2022/select/select.component.mjs +6 -5
  54. package/components/input/default/esm2022/text/base/base-input.mjs +3 -2
  55. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -4
  56. package/components/input/default/esm2022/text/color/input-color.component.mjs +5 -4
  57. package/components/input/default/fesm2022/index.mjs +37 -32
  58. package/components/input/default/fesm2022/index.mjs.map +1 -1
  59. package/components/input/default/text/base/base-input.d.ts +1 -0
  60. package/components/input/epoch/bundles/index.umd.js +13 -11
  61. package/components/input/epoch/esm2022/date/date.component.mjs +2 -2
  62. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +6 -5
  63. package/components/input/epoch/esm2022/time/time.component.mjs +6 -5
  64. package/components/input/epoch/fesm2022/index.mjs +13 -11
  65. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  66. package/components/input/rating/bundles/index.umd.js +12 -10
  67. package/components/input/rating/esm2022/rating.component.mjs +13 -11
  68. package/components/input/rating/fesm2022/index.mjs +12 -10
  69. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  70. package/components/input/slider/bundles/index.umd.js +4 -3
  71. package/components/input/slider/esm2022/slider.component.mjs +5 -4
  72. package/components/input/slider/fesm2022/index.mjs +4 -3
  73. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  74. package/components/navigation/menu/bundles/index.umd.js +10 -12
  75. package/components/navigation/menu/esm2022/menu.module.mjs +3 -2
  76. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +3 -2
  77. package/components/navigation/menu/esm2022/nav/nav.component.mjs +8 -12
  78. package/components/navigation/menu/fesm2022/index.mjs +11 -13
  79. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  80. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +1 -1
  81. package/components/navigation/menu/nav/nav.component.d.ts +1 -2
  82. package/core/bundles/index.umd.js +23 -0
  83. package/core/esm2022/public_api.mjs +2 -1
  84. package/core/esm2022/services/custom-icons-loader.service.mjs +26 -0
  85. package/core/fesm2022/index.mjs +25 -3
  86. package/core/fesm2022/index.mjs.map +1 -1
  87. package/core/public_api.d.ts +1 -0
  88. package/core/services/custom-icons-loader.service.d.ts +7 -0
  89. package/package-lock.json +2 -2
  90. package/package.json +1 -1
  91. package/runtime/base/bundles/index.umd.js +19 -8
  92. package/runtime/base/components/app-component/app.component.d.ts +3 -1
  93. package/runtime/base/directives/accessroles.directive.d.ts +4 -3
  94. package/runtime/base/esm2022/components/app-component/app.component.mjs +9 -5
  95. package/runtime/base/esm2022/directives/accessroles.directive.mjs +14 -7
  96. package/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  97. package/runtime/base/fesm2022/index.mjs +20 -9
  98. package/runtime/base/fesm2022/index.mjs.map +1 -1
  99. package/scripts/datatable/datatable.js +1 -1
@@ -19,6 +19,7 @@ export * from './widgets/framework/constants';
19
19
  export { updateDeviceView } from './widgets/framework/deviceview';
20
20
  export * from './widgets/framework/styler';
21
21
  export * from './widgets/framework/types';
22
+ export * from './widgets/framework/widget-id-generator';
22
23
  export { getWidgetPropsByType, register, registerFormWidget, PROP_TYPE, PROP_STRING, PROP_NUMBER, PROP_BOOLEAN, PROP_ANY } from './widgets/framework/widget-props';
23
24
  export * from './widgets/common/dialog/dialog.service';
24
25
  export { ToDatePipe, ToNumberPipe, ToCurrencyPipe, PrefixPipe, SuffixPipe, CustomPipe, TimeFromNowPipe, NumberToStringPipe, StringToNumberPipe, FilterPipe, FileSizePipe, FileIconClassPipe, StateClassPipe, FileExtensionFromMimePipe, TrailingZeroDecimalPipe } from './pipes/custom-pipes';
@@ -96,6 +96,11 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
96
96
  private isMuted;
97
97
  viewContainerRef: ViewContainerRef;
98
98
  viewParentApp: App;
99
+ /**
100
+ * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector
101
+ * (for List, Dynamic Tabs, Accordion, Nav, Carousel)
102
+ */
103
+ trackId: string;
99
104
  protected constructor(inj: Injector, config: IWidgetConfig, explicitContext: any, initPromise?: Promise<any>);
100
105
  getNativeElement(): HTMLElement;
101
106
  getWidgetType(): string;
@@ -226,7 +231,19 @@ export declare abstract class BaseComponent implements OnDestroy, OnInit, AfterV
226
231
  protected execute(operation: any, options: any): any;
227
232
  mute(): void;
228
233
  unmute(): void;
229
- customInjectorMap: any;
234
+ private customInjectorMap;
235
+ /**
236
+ * After the Angular 17 upgrade, Angular is no longer sending ngTemplateContext to components in ng-template.
237
+ * Wavemaker widgets inside ng-template require context to evaluate bind expressions.
238
+ * So we're creating an injectionToken that returns the context as a value.
239
+ * We are passing the injectionToken to the ngTemplateOutletInjector.
240
+ * This injects the context into each widget in the ng-template.
241
+ * In the widget component constructor we are getting the injectionToken using dependency injection.
242
+ * If injectionToken is present, we extend the component context with the value of injectionToken.
243
+ * @param contextKey
244
+ * @param context
245
+ * @returns injector
246
+ */
230
247
  createCustomInjector(contextKey: string, context: any): any;
231
248
  /**
232
249
  * After the host page is attached from cache, this function is called.
@@ -7,9 +7,9 @@ export declare class LazyLoadDirective implements OnDestroy {
7
7
  private readonly context;
8
8
  private embeddedView;
9
9
  private unSubscribeFn;
10
- constructor(inj: Injector, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
10
+ constructor(inj: Injector, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, explicitContext?: any);
11
11
  set lazyLoad(expr: any);
12
12
  ngOnDestroy(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<LazyLoadDirective, never>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<LazyLoadDirective, [null, null, null, { optional: true; }]>;
14
14
  static ɵdir: i0.ɵɵDirectiveDeclaration<LazyLoadDirective, "[lazyLoad]", never, { "lazyLoad": { "alias": "lazyLoad"; "required": false; }; }, {}, never, never, false, never>;
15
15
  }
@@ -5,5 +5,5 @@ export declare class RepeatTemplateDirective extends StylableComponent {
5
5
  static initializeProps: void;
6
6
  constructor(inj: Injector, explicitContext: any);
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<RepeatTemplateDirective, [null, { optional: true; }]>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<RepeatTemplateDirective, "[wmRepeatTemplate]", never, {}, {}, never, never, false, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RepeatTemplateDirective, "[wmRepeatTemplate]", ["repeatItemRef"], {}, {}, never, never, false, never>;
9
9
  }
@@ -311,8 +311,9 @@
311
311
  const _c3 = a0 => ({ customTemplate: a0 });
312
312
  const _c4 = (a0, a1) => ({ active: a0, "list-group-header": a1 });
313
313
  const _c5 = (a0, a1, a2, a3) => ({ item: a0, index: a1, match: a2, query: a3 });
314
- const _c6 = a0 => ({ "show-btn": a0 });
315
- const _c7 = a0 => ({ "disabled": a0 });
314
+ const _c6 = () => ({ standalone: true });
315
+ const _c7 = a0 => ({ "show-btn": a0 });
316
+ const _c8 = a0 => ({ "disabled": a0 });
316
317
  function SearchComponent_ng_template_0_a_0_img_1_Template(rf, ctx) { if (rf & 1) {
317
318
  i0__namespace.ɵɵelement(0, "img", 10);
318
319
  } if (rf & 2) {
@@ -430,7 +431,7 @@
430
431
  i0__namespace.ɵɵadvance();
431
432
  i0__namespace.ɵɵproperty("title", ctx_r1.query || "")("placeholder", ctx_r1.placeholder || "")("disabled", ctx_r1.disabled);
432
433
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx_r1.query);
433
- i0__namespace.ɵɵproperty("readonly", ctx_r1.readonly)("disabled", ctx_r1.disabled)("typeahead", ctx_r1.typeaheadDataSource)("typeaheadWaitMs", ctx_r1.debouncetime)("typeaheadItemTemplate", customItemTemplate_r15)("optionsListTemplate", customListTemplate_r16)("typeaheadMinLength", ctx_r1.minchars)("typeaheadOptionsLimit", ctx_r1.limit)("typeaheadGroupField", ctx_r1.groupby ? "groupby" : null)("typeaheadAsync", true)("typeaheadScrollable", true)("adaptivePosition", true)("typeaheadOptionsInScrollableView", ctx_r1.optionslimitinscrollableview)("dropup", ctx_r1.dropup)("tabindex", ctx_r1.tabindex);
434
+ i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(23, _c6))("readonly", ctx_r1.readonly)("disabled", ctx_r1.disabled)("typeahead", ctx_r1.typeaheadDataSource)("typeaheadWaitMs", ctx_r1.debouncetime)("typeaheadItemTemplate", customItemTemplate_r15)("optionsListTemplate", customListTemplate_r16)("typeaheadMinLength", ctx_r1.minchars)("typeaheadOptionsLimit", ctx_r1.limit)("typeaheadGroupField", ctx_r1.groupby ? "groupby" : null)("typeaheadAsync", true)("typeaheadScrollable", true)("adaptivePosition", true)("typeaheadOptionsInScrollableView", ctx_r1.optionslimitinscrollableview)("dropup", ctx_r1.dropup)("tabindex", ctx_r1.tabindex);
434
435
  i0__namespace.ɵɵattribute("name", ctx_r1.name)("aria-label", ctx_r1.hint || "Search field");
435
436
  i0__namespace.ɵɵadvance();
436
437
  i0__namespace.ɵɵproperty("hidden", !ctx_r1.showClosebtn);
@@ -445,7 +446,7 @@
445
446
  i0__namespace.ɵɵelementEnd()()();
446
447
  } if (rf & 2) {
447
448
  const ctx_r1 = i0__namespace.ɵɵnextContext(2);
448
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(2, _c7, ctx_r1.disabled));
449
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(2, _c8, ctx_r1.disabled));
449
450
  i0__namespace.ɵɵadvance(2);
450
451
  i0__namespace.ɵɵproperty("disabled", ctx_r1.disabled);
451
452
  } }
@@ -477,12 +478,12 @@
477
478
  i0__namespace.ɵɵadvance(3);
478
479
  i0__namespace.ɵɵproperty("title", ctx_r1.query || "")("placeholder", ctx_r1.placeholder || "")("container", ctx_r1.containerTarget || ".wm-app")("disabled", ctx_r1.disabled);
479
480
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx_r1.query);
480
- i0__namespace.ɵɵproperty("readonly", ctx_r1.readonly)("typeahead", ctx_r1.typeaheadDataSource)("typeaheadWaitMs", ctx_r1.debouncetime)("typeaheadItemTemplate", customItemTemplate_r15)("optionsListTemplate", customListTemplate_r16)("typeaheadMinLength", ctx_r1.minchars)("typeaheadOptionsLimit", ctx_r1.limit)("typeaheadGroupField", ctx_r1.groupby ? "groupby" : null)("typeaheadAsync", true)("typeaheadScrollable", true)("adaptivePosition", true)("typeaheadOptionsInScrollableView", ctx_r1.optionslimitinscrollableview)("tabindex", ctx_r1.tabindex)("dropup", ctx_r1.dropup);
481
+ i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(25, _c6))("readonly", ctx_r1.readonly)("typeahead", ctx_r1.typeaheadDataSource)("typeaheadWaitMs", ctx_r1.debouncetime)("typeaheadItemTemplate", customItemTemplate_r15)("optionsListTemplate", customListTemplate_r16)("typeaheadMinLength", ctx_r1.minchars)("typeaheadOptionsLimit", ctx_r1.limit)("typeaheadGroupField", ctx_r1.groupby ? "groupby" : null)("typeaheadAsync", true)("typeaheadScrollable", true)("adaptivePosition", true)("typeaheadOptionsInScrollableView", ctx_r1.optionslimitinscrollableview)("tabindex", ctx_r1.tabindex)("dropup", ctx_r1.dropup);
481
482
  i0__namespace.ɵɵattribute("name", ctx_r1.name)("aria-label", ctx_r1.hint || "Search field");
482
483
  i0__namespace.ɵɵadvance(2);
483
484
  i0__namespace.ɵɵproperty("ngIf", ctx_r1._loadingItems);
484
485
  i0__namespace.ɵɵadvance();
485
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(24, _c6, ctx_r1.isQueryEntered()));
486
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(26, _c7, ctx_r1.isQueryEntered()));
486
487
  i0__namespace.ɵɵadvance(3);
487
488
  i0__namespace.ɵɵproperty("ngIf", ctx_r1.showsearchicon);
488
489
  } }
@@ -1175,8 +1176,8 @@
1175
1176
  i4.provideAs(SearchComponent, i2.NG_VALUE_ACCESSOR, true),
1176
1177
  i4.provideAs(SearchComponent, i2.NG_VALIDATORS, true),
1177
1178
  i4.provideAsWidgetRef(SearchComponent)
1178
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c2, decls: 7, vars: 2, consts: [["customItemTemplate", ""], ["customListTemplate", ""], ["searchTemplate", ""], ["ulElement", ""], ["liElements", ""], [4, "ngIf", "ngIfElse"], [4, "ngIf"], ["partialContainer", "", 3, "ngClass", "wmItemTemplate", "userComponentParams", 4, "ngIf"], ["alt", "Search", 3, "src", "width", 4, "ngIf"], [3, "title", "innerHtml"], ["alt", "Search", 3, "src"], ["partialContainer", "", 3, "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", ""], ["scrollable", "", 1, "app-search", "dropdown-menu"], [3, "ngClass", "mouseenter", "click", 4, "ngFor", "ngForOf"], [1, "status", 3, "hidden"], [3, "textContent"], [1, "fa", "fa-circle-o-notch", "fa-spin"], [3, "mouseenter", "click", "ngClass"], ["class", "group-title", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], [1, "group-title"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["type", "text", "focus-target", "", "container", "body", "autocomplete", "off", "typeaheadOptionField", "label", 1, "app-textbox", "form-control", "list-of-objs", "app-search-input", 3, "ngModelChange", "input", "keydown", "keydown.enter", "keydown.arrowdown", "blur", "click", "focus", "focusout", "typeaheadLoading", "typeaheadOnSelect", "title", "placeholder", "disabled", "ngModel", "readonly", "typeahead", "typeaheadWaitMs", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadMinLength", "typeaheadOptionsLimit", "typeaheadGroupField", "typeaheadAsync", "typeaheadScrollable", "adaptivePosition", "typeaheadOptionsInScrollableView", "dropup", "tabindex"], [1, "btn-close", "wi", "wi-cancel", 3, "click", "hidden"], ["aria-hidden", "true", 1, "wi", "wi-arrow-left", "form-control-feedback", "back-btn", 3, "click"], [1, "sr-only"], ["type", "text", "focus-target", "", "autocomplete", "off", "typeaheadOptionField", "label", 1, "app-textbox", "form-control", "list-of-objs", "app-search-input", 3, "ngModelChange", "input", "keydown", "keydown.enter", "keydown.arrowdown", "blur", "click", "focus", "typeaheadLoading", "typeaheadOnSelect", "title", "placeholder", "container", "disabled", "ngModel", "readonly", "typeahead", "typeaheadWaitMs", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadMinLength", "typeaheadOptionsLimit", "typeaheadGroupField", "typeaheadAsync", "typeaheadScrollable", "adaptivePosition", "typeaheadOptionsInScrollableView", "tabindex", "dropup"], ["ng-model", "proxyModel", "ng-required", "required", "tabindex", "-1", "aria-hidden", "true", 1, "model-holder"], ["aria-hidden", "true", "class", "fa fa-circle-o-notch fa-spin form-control-feedback", 4, "ngIf"], [1, "wi", "wi-close", "form-control-feedback", "clear-btn", 3, "click", "ngClass"], ["class", "input-group-addon", "aria-label", "search icon", 3, "ngClass", 4, "ngIf"], ["aria-hidden", "true", 1, "fa", "fa-circle-o-notch", "fa-spin", "form-control-feedback"], ["aria-label", "search icon", 1, "input-group-addon", 3, "ngClass"], ["title", "Search", "type", "submit", 1, "app-search-button", "wm-sl-l", "sl-search", 3, "click", "disabled"]], template: function SearchComponent_Template(rf, ctx) { if (rf & 1) {
1179
- i0__namespace.ɵɵtemplate(0, SearchComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor)(2, SearchComponent_ng_template_2_Template, 8, 5, "ng-template", null, 1, i0__namespace.ɵɵtemplateRefExtractor)(4, SearchComponent_ng_container_4_Template, 3, 22, "ng-container", 5)(5, SearchComponent_ng_template_5_Template, 10, 26, "ng-template", null, 2, i0__namespace.ɵɵtemplateRefExtractor);
1179
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c2, decls: 7, vars: 2, consts: [["customItemTemplate", ""], ["customListTemplate", ""], ["searchTemplate", ""], ["ulElement", ""], ["liElements", ""], [4, "ngIf", "ngIfElse"], [4, "ngIf"], ["partialContainer", "", 3, "ngClass", "wmItemTemplate", "userComponentParams", 4, "ngIf"], ["alt", "Search", 3, "src", "width", 4, "ngIf"], [3, "title", "innerHtml"], ["alt", "Search", 3, "src"], ["partialContainer", "", 3, "ngClass", "wmItemTemplate", "userComponentParams"], ["partial-container-target", ""], ["scrollable", "", 1, "app-search", "dropdown-menu"], [3, "ngClass", "mouseenter", "click", 4, "ngFor", "ngForOf"], [1, "status", 3, "hidden"], [3, "textContent"], [1, "fa", "fa-circle-o-notch", "fa-spin"], [3, "mouseenter", "click", "ngClass"], ["class", "group-title", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], [1, "group-title"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["type", "text", "focus-target", "", "container", "body", "autocomplete", "off", "typeaheadOptionField", "label", 1, "app-textbox", "form-control", "list-of-objs", "app-search-input", 3, "ngModelChange", "input", "keydown", "keydown.enter", "keydown.arrowdown", "blur", "click", "focus", "focusout", "typeaheadLoading", "typeaheadOnSelect", "title", "placeholder", "disabled", "ngModel", "ngModelOptions", "readonly", "typeahead", "typeaheadWaitMs", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadMinLength", "typeaheadOptionsLimit", "typeaheadGroupField", "typeaheadAsync", "typeaheadScrollable", "adaptivePosition", "typeaheadOptionsInScrollableView", "dropup", "tabindex"], [1, "btn-close", "wi", "wi-cancel", 3, "click", "hidden"], ["aria-hidden", "true", 1, "wi", "wi-arrow-left", "form-control-feedback", "back-btn", 3, "click"], [1, "sr-only"], ["type", "text", "focus-target", "", "autocomplete", "off", "typeaheadOptionField", "label", 1, "app-textbox", "form-control", "list-of-objs", "app-search-input", 3, "ngModelChange", "input", "keydown", "keydown.enter", "keydown.arrowdown", "blur", "click", "focus", "typeaheadLoading", "typeaheadOnSelect", "title", "placeholder", "container", "disabled", "ngModel", "ngModelOptions", "readonly", "typeahead", "typeaheadWaitMs", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadMinLength", "typeaheadOptionsLimit", "typeaheadGroupField", "typeaheadAsync", "typeaheadScrollable", "adaptivePosition", "typeaheadOptionsInScrollableView", "tabindex", "dropup"], ["ng-model", "proxyModel", "ng-required", "required", "tabindex", "-1", "aria-hidden", "true", 1, "model-holder"], ["aria-hidden", "true", "class", "fa fa-circle-o-notch fa-spin form-control-feedback", 4, "ngIf"], [1, "wi", "wi-close", "form-control-feedback", "clear-btn", 3, "click", "ngClass"], ["class", "input-group-addon", "aria-label", "search icon", 3, "ngClass", 4, "ngIf"], ["aria-hidden", "true", 1, "fa", "fa-circle-o-notch", "fa-spin", "form-control-feedback"], ["aria-label", "search icon", 1, "input-group-addon", 3, "ngClass"], ["title", "Search", "type", "submit", 1, "app-search-button", "wm-sl-l", "sl-search", 3, "click", "disabled"]], template: function SearchComponent_Template(rf, ctx) { if (rf & 1) {
1180
+ i0__namespace.ɵɵtemplate(0, SearchComponent_ng_template_0_Template, 2, 2, "ng-template", null, 0, i0__namespace.ɵɵtemplateRefExtractor)(2, SearchComponent_ng_template_2_Template, 8, 5, "ng-template", null, 1, i0__namespace.ɵɵtemplateRefExtractor)(4, SearchComponent_ng_container_4_Template, 3, 24, "ng-container", 5)(5, SearchComponent_ng_template_5_Template, 10, 28, "ng-template", null, 2, i0__namespace.ɵɵtemplateRefExtractor);
1180
1181
  } if (rf & 2) {
1181
1182
  const searchTemplate_r19 = i0__namespace.ɵɵreference(6);
1182
1183
  i0__namespace.ɵɵadvance(4);
@@ -1189,7 +1190,7 @@
1189
1190
  i4.provideAs(SearchComponent, i2.NG_VALUE_ACCESSOR, true),
1190
1191
  i4.provideAs(SearchComponent, i2.NG_VALIDATORS, true),
1191
1192
  i4.provideAsWidgetRef(SearchComponent)
1192
- ], template: "<ng-template #customItemTemplate let-model=\"item\" let-index=\"index\" let-query=\"query\" let-match=\"match\">\n <!-- Default item template -->\n <a *ngIf=\"!content\">\n <img *ngIf=\"model.imgSrc\" [src]=\"model.imgSrc\" alt=\"Search\" [style.width]=\"imagewidth\">\n <span [title]=\"model.label\" [innerHtml]=\"highlight(match, query) || model.label\"></span>\n </a>\n <!-- Custom partial template -->\n <a *ngIf=\"content\" [ngClass]=\"{customTemplate: content}\" partialContainer [wmItemTemplate]=\"content\" [userComponentParams]=\"match.item\">\n <div partial-container-target></div>\n </a>\n</ng-template>\n\n<ng-template #customListTemplate let-matches=\"matches\" let-itemTemplate=\"itemTemplate\" let-query=\"query\">\n <ul #ulElement class=\"app-search dropdown-menu\" scrollable>\n <li #liElements *ngFor=\"let match of matches; let i = index;\" [ngClass]=\"{active: typeaheadContainer && typeaheadContainer.isActive(match), 'list-group-header': match && match.isHeader()}\"\n (mouseenter)=\"typeaheadContainer.selectActive(match);\"\n (click)=\"match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();\">\n <!-- itemTemplate comes from the <input> -->\n <h4 *ngIf=\"match.isHeader()\" class=\"group-title\">{{match.value}}</h4>\n <ng-container *ngIf=\"!match.isHeader()\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-container>\n </li>\n <div class=\"status\" [hidden]=\"_loadingItems || !(datacompletemsg && dataProvider.isLastPage)\">\n <span [textContent]=\"datacompletemsg\"></span>\n </div>\n <div class=\"status\" [hidden]=\"!_loadingItems\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i>\n <span [textContent]=\"loadingdatamsg\"></span>\n </div>\n </ul>\n</ng-template>\n\n<!--This template is for search inside mobile navbar.-->\n<ng-container *ngIf=\"navsearchbar; else searchTemplate\">\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n container=\"body\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event)\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);\"\n (focusout)=\"onFocusOut()\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [dropup]=\"dropup\"\n [tabindex]=\"tabindex\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint || 'Search field'\"/>\n <i class=\"btn-close wi wi-cancel\" [hidden]=\"!showClosebtn\" (click)=\"clearSearch($event);\"></i>\n</ng-container>\n<!--This template is for both web and fullscreen mode in mobile.-->\n<ng-template #searchTemplate>\n <span class=\"wi wi-arrow-left form-control-feedback back-btn\" aria-hidden=\"true\" (click)=\"closeSearch()\"></span>\n <span class=\"sr-only\">Back button</span>\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n [container]=\"containerTarget || '.wm-app'\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event); onFocusOut()\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [tabindex]=\"tabindex\"\n [dropup]=\"dropup\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint || 'Search field'\">\n <input class=\"model-holder\" ng-model=\"proxyModel\" ng-required=\"required\" tabindex=\"-1\" aria-hidden=\"true\">\n <span *ngIf=\"_loadingItems\" aria-hidden=\"true\" class=\"fa fa-circle-o-notch fa-spin form-control-feedback\"></span>\n <span class=\"wi wi-close form-control-feedback clear-btn\" [ngClass]=\"{'show-btn': isQueryEntered()}\" (click)=\"clearSearch($event, true)\"></span>\n <span class=\"sr-only\">Clear button</span>\n <span *ngIf=\"showsearchicon\" class=\"input-group-addon\" aria-label=\"search icon\" [ngClass]=\"{'disabled': disabled}\">\n <form>\n <button title=\"Search\" [disabled]=\"disabled\" class=\"app-search-button wm-sl-l sl-search\" type=\"submit\"\n (click)=\"onSearchSelect($event)\"></button>\n </form>\n </span>\n</ng-template>\n" }]
1193
+ ], template: "<ng-template #customItemTemplate let-model=\"item\" let-index=\"index\" let-query=\"query\" let-match=\"match\">\n <!-- Default item template -->\n <a *ngIf=\"!content\">\n <img *ngIf=\"model.imgSrc\" [src]=\"model.imgSrc\" alt=\"Search\" [style.width]=\"imagewidth\">\n <span [title]=\"model.label\" [innerHtml]=\"highlight(match, query) || model.label\"></span>\n </a>\n <!-- Custom partial template -->\n <a *ngIf=\"content\" [ngClass]=\"{customTemplate: content}\" partialContainer [wmItemTemplate]=\"content\" [userComponentParams]=\"match.item\">\n <div partial-container-target></div>\n </a>\n</ng-template>\n\n<ng-template #customListTemplate let-matches=\"matches\" let-itemTemplate=\"itemTemplate\" let-query=\"query\">\n <ul #ulElement class=\"app-search dropdown-menu\" scrollable>\n <li #liElements *ngFor=\"let match of matches; let i = index;\" [ngClass]=\"{active: typeaheadContainer && typeaheadContainer.isActive(match), 'list-group-header': match && match.isHeader()}\"\n (mouseenter)=\"typeaheadContainer.selectActive(match);\"\n (click)=\"match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();\">\n <!-- itemTemplate comes from the <input> -->\n <h4 *ngIf=\"match.isHeader()\" class=\"group-title\">{{match.value}}</h4>\n <ng-container *ngIf=\"!match.isHeader()\" [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-container>\n </li>\n <div class=\"status\" [hidden]=\"_loadingItems || !(datacompletemsg && dataProvider.isLastPage)\">\n <span [textContent]=\"datacompletemsg\"></span>\n </div>\n <div class=\"status\" [hidden]=\"!_loadingItems\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i>\n <span [textContent]=\"loadingdatamsg\"></span>\n </div>\n </ul>\n</ng-template>\n\n<!--This template is for search inside mobile navbar.-->\n<ng-container *ngIf=\"navsearchbar; else searchTemplate\">\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n container=\"body\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event)\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);\"\n (focusout)=\"onFocusOut()\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [dropup]=\"dropup\"\n [tabindex]=\"tabindex\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint || 'Search field'\"/>\n <i class=\"btn-close wi wi-cancel\" [hidden]=\"!showClosebtn\" (click)=\"clearSearch($event);\"></i>\n</ng-container>\n<!--This template is for both web and fullscreen mode in mobile.-->\n<ng-template #searchTemplate>\n <span class=\"wi wi-arrow-left form-control-feedback back-btn\" aria-hidden=\"true\" (click)=\"closeSearch()\"></span>\n <span class=\"sr-only\">Back button</span>\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n [container]=\"containerTarget || '.wm-app'\"\n [disabled]=\"disabled\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event); onFocusOut()\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [tabindex]=\"tabindex\"\n [dropup]=\"dropup\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint || 'Search field'\">\n <input class=\"model-holder\" ng-model=\"proxyModel\" ng-required=\"required\" tabindex=\"-1\" aria-hidden=\"true\">\n <span *ngIf=\"_loadingItems\" aria-hidden=\"true\" class=\"fa fa-circle-o-notch fa-spin form-control-feedback\"></span>\n <span class=\"wi wi-close form-control-feedback clear-btn\" [ngClass]=\"{'show-btn': isQueryEntered()}\" (click)=\"clearSearch($event, true)\"></span>\n <span class=\"sr-only\">Clear button</span>\n <span *ngIf=\"showsearchicon\" class=\"input-group-addon\" aria-label=\"search icon\" [ngClass]=\"{'disabled': disabled}\">\n <form>\n <button title=\"Search\" [disabled]=\"disabled\" class=\"app-search-button wm-sl-l sl-search\" type=\"submit\"\n (click)=\"onSearchSelect($event)\"></button>\n </form>\n </span>\n</ng-template>\n" }]
1193
1194
  }], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.App }, { type: undefined, decorators: [{
1194
1195
  type: i0.Attribute,
1195
1196
  args: ['datavalue.bind']