@wavemaker-ai/app-ng-runtime 1.0.0-rc.317 → 1.0.0-rc.319

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 (106) hide show
  1. package/build-task/bundles/index.umd.js +16 -7
  2. package/build-task/fesm2022/index.mjs +16 -7
  3. package/build-task/fesm2022/index.mjs.map +1 -1
  4. package/components/base/bundles/index.umd.js +301 -4
  5. package/components/base/fesm2022/index.mjs +300 -4
  6. package/components/base/fesm2022/index.mjs.map +1 -1
  7. package/components/base/index.d.ts +106 -2
  8. package/components/basic/anchor/bundles/index.umd.js +4 -5
  9. package/components/basic/anchor/fesm2022/index.mjs +4 -5
  10. package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
  11. package/components/basic/anchor/index.d.ts +1 -0
  12. package/components/basic/icon/bundles/index.umd.js +3 -3
  13. package/components/basic/icon/fesm2022/index.mjs +4 -4
  14. package/components/basic/icon/fesm2022/index.mjs.map +1 -1
  15. package/components/basic/icon/index.d.ts +1 -0
  16. package/components/basic/search/bundles/index.umd.js +6 -3
  17. package/components/basic/search/fesm2022/index.mjs +7 -4
  18. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  19. package/components/basic/search/index.d.ts +3 -0
  20. package/components/basic/spinner/bundles/index.umd.js +5 -3
  21. package/components/basic/spinner/fesm2022/index.mjs +6 -4
  22. package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
  23. package/components/basic/spinner/index.d.ts +1 -0
  24. package/components/chart/bundles/index.umd.js +4 -3
  25. package/components/chart/fesm2022/index.mjs +5 -4
  26. package/components/chart/fesm2022/index.mjs.map +1 -1
  27. package/components/chart/index.d.ts +1 -0
  28. package/components/containers/accordion/bundles/index.umd.js +4 -3
  29. package/components/containers/accordion/fesm2022/index.mjs +5 -4
  30. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  31. package/components/containers/accordion/index.d.ts +1 -0
  32. package/components/containers/panel/bundles/index.umd.js +3 -3
  33. package/components/containers/panel/fesm2022/index.mjs +4 -4
  34. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  35. package/components/containers/panel/index.d.ts +3 -0
  36. package/components/containers/tabs/bundles/index.umd.js +5 -4
  37. package/components/containers/tabs/fesm2022/index.mjs +6 -5
  38. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  39. package/components/containers/wizard/bundles/index.umd.js +8 -6
  40. package/components/containers/wizard/fesm2022/index.mjs +9 -7
  41. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  42. package/components/containers/wizard/index.d.ts +2 -0
  43. package/components/data/card/bundles/index.umd.js +3 -3
  44. package/components/data/card/fesm2022/index.mjs +4 -4
  45. package/components/data/card/fesm2022/index.mjs.map +1 -1
  46. package/components/data/form/bundles/index.umd.js +6 -3
  47. package/components/data/form/fesm2022/index.mjs +7 -4
  48. package/components/data/form/fesm2022/index.mjs.map +1 -1
  49. package/components/data/form/index.d.ts +2 -0
  50. package/components/data/list/bundles/index.umd.js +5 -3
  51. package/components/data/list/fesm2022/index.mjs +6 -4
  52. package/components/data/list/fesm2022/index.mjs.map +1 -1
  53. package/components/data/list/index.d.ts +2 -0
  54. package/components/data/table/bundles/index.umd.js +4 -3
  55. package/components/data/table/fesm2022/index.mjs +5 -4
  56. package/components/data/table/fesm2022/index.mjs.map +1 -1
  57. package/components/data/table/index.d.ts +1 -0
  58. package/components/dialogs/default/bundles/index.umd.js +2 -2
  59. package/components/dialogs/default/fesm2022/index.mjs +3 -3
  60. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  61. package/components/input/button/bundles/index.umd.js +4 -5
  62. package/components/input/button/fesm2022/index.mjs +4 -5
  63. package/components/input/button/fesm2022/index.mjs.map +1 -1
  64. package/components/input/button/index.d.ts +3 -0
  65. package/components/input/checkbox/bundles/index.umd.js +6 -4
  66. package/components/input/checkbox/fesm2022/index.mjs +7 -5
  67. package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
  68. package/components/input/checkbox/index.d.ts +2 -0
  69. package/components/input/file-upload/bundles/index.umd.js +5 -3
  70. package/components/input/file-upload/fesm2022/index.mjs +6 -4
  71. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  72. package/components/input/file-upload/index.d.ts +3 -0
  73. package/components/input/rating/bundles/index.umd.js +9 -3
  74. package/components/input/rating/fesm2022/index.mjs +10 -4
  75. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  76. package/components/input/rating/index.d.ts +6 -0
  77. package/components/input/slider/bundles/index.umd.js +5 -3
  78. package/components/input/slider/fesm2022/index.mjs +6 -4
  79. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  80. package/components/input/slider/index.d.ts +2 -0
  81. package/components/input/switch/bundles/index.umd.js +6 -3
  82. package/components/input/switch/fesm2022/index.mjs +7 -4
  83. package/components/input/switch/fesm2022/index.mjs.map +1 -1
  84. package/components/input/switch/index.d.ts +2 -0
  85. package/components/input/text/bundles/index.umd.js +7 -5
  86. package/components/input/text/fesm2022/index.mjs +8 -6
  87. package/components/input/text/fesm2022/index.mjs.map +1 -1
  88. package/components/input/text/index.d.ts +2 -0
  89. package/components/navigation/menu/bundles/index.umd.js +4 -3
  90. package/components/navigation/menu/fesm2022/index.mjs +5 -4
  91. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  92. package/components/navigation/menu/index.d.ts +1 -0
  93. package/components/navigation/navbar/bundles/index.umd.js +5 -5
  94. package/components/navigation/navbar/fesm2022/index.mjs +5 -5
  95. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  96. package/components/navigation/navbar/index.d.ts +1 -0
  97. package/npm-shrinkwrap.json +2 -2
  98. package/package-lock.json +2 -2
  99. package/package.json +1 -1
  100. package/runtime/base/bundles/index.umd.js +23 -1
  101. package/runtime/base/fesm2022/index.mjs +23 -1
  102. package/runtime/base/fesm2022/index.mjs.map +1 -1
  103. package/runtime/base/index.d.ts +5 -0
  104. package/transpiler/bundles/index.umd.js +2 -0
  105. package/transpiler/fesm2022/index.mjs +2 -0
  106. package/transpiler/fesm2022/index.mjs.map +1 -1
@@ -1,20 +1,22 @@
1
1
  import * as i1 from '@wm/core';
2
2
  import { FormWidgetType, checkIsCustomPipeExpression, $parseExpr, isValidWebURL, _WM_APP_PROJECT, isValidImageUrl, encodeUrl, stringStartsWith, prettifyLabel, deHyphenate, initCaps, getClonedObject, DataSource, debounce, processFilterExpBindNode, isDefined, MatchMode, $parseEvent, isEqualWithFields, getFormattedDate, isAndroid, isNumberType, DataType, setCSS, IDGenerator, toBoolean, isChangeFromWatch, $unwatch, resetChangeFromWatch, isObject as isObject$1, toDimension, $appDigest, removeClass, addClass, setCSSFromObj, App, findParent, setAttr, switchClass, removeAttr, $invokeWatchers, $watch, findValueOf, validateAccessRoles, ComponentType, noop as noop$1, VALIDATOR, isIos, isMobile, hasOffsetStr, AbstractI18nService, CURRENCY_INFO, replace as replace$1, transformFileURI, isLargeTabletLandscape, isLargeTabletPortrait } from '@wm/core';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, forwardRef, ElementRef, inject, ViewContainerRef, Injector, Injectable, Inject, Optional, Directive, Self, ContentChildren, Attribute, Input, Component, Pipe, SecurityContext } from '@angular/core';
4
+ import { InjectionToken, forwardRef, ElementRef, inject, ViewContainerRef, Injector, Injectable, Inject, Optional, Directive, Self, ContentChildren, Attribute, Input, Component, Pipe, SecurityContext, HostBinding, ViewEncapsulation } from '@angular/core';
5
5
  import { createFocusTrap } from '@wavemaker/focus-trap';
6
6
  import { isNull, get, forEach, join, union, isArray, isObject, includes, split, isString, assignWith, isEmpty, replace, head, keys, isFunction, each, intersection, isUndefined, filter, cloneDeep, orderBy, trim, uniqWith, isEqual, uniqBy, sortBy, groupBy, toLower, values, startsWith, last, extend, camelCase, map, pickBy, first, debounce as debounce$1, omitBy, toUpper, find, concat, assign, isDate } from 'lodash-es';
7
7
  import * as momentLib from 'moment';
8
8
  import * as i1$2 from '@angular/platform-browser';
9
- import { EventManager } from '@angular/platform-browser';
9
+ import { EventManager, DomSanitizer } from '@angular/platform-browser';
10
10
  import { ReplaySubject, Subject } from 'rxjs';
11
11
  import { SecurityService } from '@wm/security';
12
- import { filter as filter$1, debounceTime } from 'rxjs/operators';
12
+ import { filter as filter$1, debounceTime, tap, shareReplay } from 'rxjs/operators';
13
13
  import { Validators } from '@angular/forms';
14
14
  import { SwipeAnimation } from '@swipey';
15
15
  import * as i1$1 from '@angular/common';
16
+ import { NgClass, NgStyle } from '@angular/common';
16
17
  import * as momentLib$1 from 'moment-timezone/moment-timezone';
17
18
  import { __decorate, __metadata } from 'tslib';
19
+ import { HttpClient } from '@angular/common/http';
18
20
 
19
21
  const WidgetConfig = new InjectionToken('WidgetConfig');
20
22
  class WidgetRef {
@@ -5909,9 +5911,303 @@ class ShowInDeviceDirective {
5909
5911
  type: Input
5910
5912
  }] }); })();
5911
5913
 
5914
+ // check if the url is a svg icon url
5915
+ function isSvgIconUrl(url) {
5916
+ if (!url) {
5917
+ return false;
5918
+ }
5919
+ const path = url.split(/[?#]/)[0];
5920
+ return /\.svg$/i.test(path);
5921
+ }
5922
+ /**
5923
+ * Module-level cache for already-normalized SVG markup, keyed by the
5924
+ * pipe-transformed URL. Shared across every directive instance so repeated
5925
+ * usage of the same icon resolves synchronously without another network hit.
5926
+ */
5927
+ const svgCache = new Map();
5928
+ /**
5929
+ * In-flight request cache. Multiple directives mounted at the same time and
5930
+ * pointing at the same URL share a single HTTP request.
5931
+ */
5932
+ const inFlightRequests = new Map();
5933
+ /**
5934
+ * Renders the SVG fetched from `iconUrl` inline on the host element so the
5935
+ * markup behaves like a font icon - it can be sized via `font-size`, supports
5936
+ * `:hover` / transitions on the host, and (for SVGs authored with
5937
+ * `currentColor`) inherits `color` from CSS.
5938
+ *
5939
+ * Usage:
5940
+ * <i class="wm-icon" [iconUrl]="url"></i>
5941
+ *
5942
+ * The incoming URL is first run through `ImagePipe` (so relative project
5943
+ * paths, CDN rewrites, etc. work the same way as `<img [src]>`), then fetched
5944
+ * as text via `HttpClient`. The fetched markup is normalized so the root
5945
+ * `<svg>` gets `width="1em"` / `height="1em"` if not already specified (so
5946
+ * the icon scales with the host's `font-size`) and a root `fill="currentColor"`
5947
+ * fallback when no `fill` attribute is declared.
5948
+ *
5949
+ * Original `fill` / `stroke` values inside the SVG are preserved verbatim so
5950
+ * a multi-color SVG renders with its source colors. To make an SVG themeable
5951
+ * via the host's CSS `color`, author the source with `fill="currentColor"`
5952
+ * (the convention used by Material Icons, Heroicons, Font Awesome, etc.).
5953
+ */
5954
+ class SvgIconDirective {
5955
+ constructor() {
5956
+ /**
5957
+ * Bound to the host's `innerHTML`. Set to a `SafeHtml` value produced by
5958
+ * `DomSanitizer.bypassSecurityTrustHtml` so Angular's renderer skips
5959
+ * re-sanitization and inlines the SVG as-is.
5960
+ */
5961
+ this.hostInnerHtml = null;
5962
+ this.http = inject(HttpClient);
5963
+ this.sanitizer = inject(DomSanitizer);
5964
+ this.imagePipe = inject(ImagePipe);
5965
+ this.lastResolvedUrl = null;
5966
+ }
5967
+ ngOnChanges(changes) {
5968
+ if (changes['iconUrl']) {
5969
+ this.loadSvg(this.iconUrl);
5970
+ }
5971
+ }
5972
+ ngOnDestroy() {
5973
+ this.cancelInflight();
5974
+ }
5975
+ loadSvg(rawUrl) {
5976
+ this.cancelInflight();
5977
+ if (!rawUrl) {
5978
+ this.hostInnerHtml = null;
5979
+ this.lastResolvedUrl = null;
5980
+ return;
5981
+ }
5982
+ const url = this.imagePipe.transform(rawUrl);
5983
+ if (!url) {
5984
+ this.hostInnerHtml = null;
5985
+ this.lastResolvedUrl = null;
5986
+ return;
5987
+ }
5988
+ if (this.lastResolvedUrl === url && this.hostInnerHtml) {
5989
+ return;
5990
+ }
5991
+ const cached = svgCache.get(url);
5992
+ if (cached !== undefined) {
5993
+ this.applySvg(url, cached);
5994
+ return;
5995
+ }
5996
+ let request$ = inFlightRequests.get(url);
5997
+ if (!request$) {
5998
+ request$ = this.http.get(url, { responseType: 'text' }).pipe(tap(svg => {
5999
+ svgCache.set(url, this.normalizeSvg(svg));
6000
+ inFlightRequests.delete(url);
6001
+ }), shareReplay(1));
6002
+ inFlightRequests.set(url, request$);
6003
+ }
6004
+ this.sub = request$.subscribe({
6005
+ next: () => {
6006
+ const normalized = svgCache.get(url);
6007
+ if (normalized !== undefined) {
6008
+ this.applySvg(url, normalized);
6009
+ }
6010
+ },
6011
+ error: () => {
6012
+ inFlightRequests.delete(url);
6013
+ this.hostInnerHtml = null;
6014
+ this.lastResolvedUrl = null;
6015
+ }
6016
+ });
6017
+ }
6018
+ applySvg(url, svg) {
6019
+ this.lastResolvedUrl = url;
6020
+ this.hostInnerHtml = this.sanitizer.bypassSecurityTrustHtml(svg);
6021
+ }
6022
+ cancelInflight() {
6023
+ if (this.sub) {
6024
+ this.sub.unsubscribe();
6025
+ this.sub = undefined;
6026
+ }
6027
+ }
6028
+ /**
6029
+ * Make the fetched SVG behave like a font icon:
6030
+ * - replace any non-"none" fill/stroke attributes (single- or
6031
+ * double-quoted) with currentColor so CSS `color` controls the icon
6032
+ * - replace any non-"none" inline `fill:` / `stroke:` style values with
6033
+ * currentColor
6034
+ * - on the root <svg> tag, add `width="1em"`, `height="1em"`, and a
6035
+ * default `fill="currentColor"` if missing so the icon scales with
6036
+ * the host element's `font-size`
6037
+ */
6038
+ normalizeSvg(svg) {
6039
+ if (!svg)
6040
+ return '';
6041
+ let out = svg;
6042
+ // ── Color ────────────────────────────────────────────────────────
6043
+ out = out
6044
+ .replace(/fill\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'fill="currentColor"')
6045
+ .replace(/fill\s*=\s*'(?!\s*none\s*')[^']*'/gi, "fill='currentColor'")
6046
+ .replace(/stroke\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'stroke="currentColor"')
6047
+ .replace(/stroke\s*=\s*'(?!\s*none\s*')[^']*'/gi, "stroke='currentColor'")
6048
+ .replace(/(fill|stroke)\s*:\s*(?!\s*none\b)[^;"']+/gi, '$1: currentColor');
6049
+ out = out.replace(/<svg\b([^>]*)>/i, (_match, attrs) => {
6050
+ let updated = attrs;
6051
+ updated = updated.replace(/\swidth\s*=\s*("[^"]*"|'[^']*')/gi, '')
6052
+ .replace(/\s+$/, '') + ' width="1em"';
6053
+ updated = updated.replace(/\sheight\s*=\s*("[^"]*"|'[^']*')/gi, '')
6054
+ .replace(/\s+$/, '') + ' height="1em"';
6055
+ updated += ' fill="currentColor"';
6056
+ return `<svg${updated}>`;
6057
+ });
6058
+ return out;
6059
+ }
6060
+ static { this.ɵfac = function SvgIconDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SvgIconDirective)(); }; }
6061
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: SvgIconDirective, selectors: [["", "iconUrl", ""]], hostVars: 1, hostBindings: function SvgIconDirective_HostBindings(rf, ctx) { if (rf & 2) {
6062
+ i0.ɵɵdomProperty("innerHTML", ctx.hostInnerHtml, i0.ɵɵsanitizeHtml);
6063
+ } }, inputs: { iconUrl: "iconUrl" }, exportAs: ["svgIcon"], features: [i0.ɵɵNgOnChangesFeature] }); }
6064
+ }
6065
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SvgIconDirective, [{
6066
+ type: Directive,
6067
+ args: [{
6068
+ standalone: true,
6069
+ selector: '[iconUrl]',
6070
+ exportAs: 'svgIcon'
6071
+ }]
6072
+ }], null, { iconUrl: [{
6073
+ type: Input
6074
+ }], hostInnerHtml: [{
6075
+ type: HostBinding,
6076
+ args: ['innerHTML']
6077
+ }] }); })();
6078
+
6079
+ function WmAppIconComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6080
+ i0.ɵɵelement(0, "i", 0);
6081
+ } if (rf & 2) {
6082
+ const ctx_r0 = i0.ɵɵnextContext();
6083
+ i0.ɵɵproperty("ngClass", ctx_r0._svgClasses)("ngStyle", ctx_r0.iconStyle)("iconUrl", ctx_r0.iconurl);
6084
+ } }
6085
+ function WmAppIconComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6086
+ i0.ɵɵelement(0, "img", 1);
6087
+ i0.ɵɵpipe(1, "image");
6088
+ } if (rf & 2) {
6089
+ const ctx_r0 = i0.ɵɵnextContext();
6090
+ i0.ɵɵproperty("ngClass", ctx_r0._imageClasses)("src", i0.ɵɵpipeBind1(1, 4, ctx_r0.iconurl), i0.ɵɵsanitizeUrl)("ngStyle", ctx_r0.iconStyle);
6091
+ i0.ɵɵattribute("alt", ctx_r0.alt || "");
6092
+ } }
6093
+ function WmAppIconComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
6094
+ i0.ɵɵelement(0, "i", 2);
6095
+ } if (rf & 2) {
6096
+ const ctx_r0 = i0.ɵɵnextContext();
6097
+ i0.ɵɵproperty("ngClass", ctx_r0._fontClasses)("ngStyle", ctx_r0.iconStyle);
6098
+ } }
6099
+ /**
6100
+ * Single, reusable renderer for the SVG / image / font 3-way icon branch
6101
+ * that used to be duplicated across every widget that accepts an
6102
+ * `iconclass` + `iconurl` pair (anchor, button, panel header, card,
6103
+ * dialog-header, form, list, table, chart, accordion, file-upload,
6104
+ * rating, switch, menu, navbar, search, tabs, ...).
6105
+ *
6106
+ * Decision order:
6107
+ * 1. `iconurl` ending in `.svg` -> inline SVG via `[iconUrl]` directive
6108
+ * 2. `iconurl` (anything else) -> `<img [src]="url | image">`
6109
+ * 3. `iconclass` -> `<i class="app-icon {{iconclass}}">`
6110
+ * 4. `defaultIconClass` (if set) -> same as #3 with the fallback class
6111
+ * 5. otherwise -> nothing
6112
+ *
6113
+ * Notes:
6114
+ * - `iconurl` wins over `iconclass` when both are set: a widget owner that
6115
+ * bothered to configure a URL almost certainly wants it visible. Where the
6116
+ * old behavior was "render both" (anchor, button), use TWO `<wm-app-icon>`
6117
+ * elements - one with only `iconurl`, one with only `iconclass`.
6118
+ * - The host is `display: contents` so existing CSS selectors targeting
6119
+ * `.app-icon` directly inside the parent (e.g. `.btn .app-icon`) keep
6120
+ * working - the wrapper element is layout-transparent.
6121
+ */
6122
+ class WmAppIconComponent {
6123
+ get _isSvg() {
6124
+ return isSvgIconUrl(this.iconurl);
6125
+ }
6126
+ get _isImage() {
6127
+ return !!this.iconurl && !this._isSvg;
6128
+ }
6129
+ get _fontClass() {
6130
+ return [this.defaultIconClass, this.iconclass]
6131
+ .filter(Boolean)
6132
+ .join(' ');
6133
+ }
6134
+ _extras() {
6135
+ const extras = this.defaultClasses;
6136
+ if (!extras) {
6137
+ return [];
6138
+ }
6139
+ if (Array.isArray(extras)) {
6140
+ return extras;
6141
+ }
6142
+ return extras.split(/\s+/).filter(Boolean);
6143
+ }
6144
+ get _svgClasses() {
6145
+ return ['app-icon app-icon-svg', ...this._extras()];
6146
+ }
6147
+ get _imageClasses() {
6148
+ return ['app-icon', ...this._extras()];
6149
+ }
6150
+ get _fontClasses() {
6151
+ return ['app-icon', ...this._extras(), ...this._fontClass.split(/\s+/).filter(Boolean)];
6152
+ }
6153
+ static { this.ɵfac = function WmAppIconComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WmAppIconComponent)(); }; }
6154
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WmAppIconComponent, selectors: [["wm-app-icon"]], hostVars: 2, hostBindings: function WmAppIconComponent_HostBindings(rf, ctx) { if (rf & 2) {
6155
+ i0.ɵɵstyleProp("display", "contents");
6156
+ } }, inputs: { iconclass: "iconclass", iconurl: "iconurl", defaultIconClass: "defaultIconClass", defaultClasses: "defaultClasses", iconStyle: "iconStyle", alt: "alt" }, decls: 3, vars: 1, consts: [["role", "img", "aria-hidden", "true", "data-identifier", "svg", 3, "ngClass", "ngStyle", "iconUrl"], ["data-identifier", "img", 3, "ngClass", "src", "ngStyle"], ["aria-hidden", "true", 3, "ngClass", "ngStyle"]], template: function WmAppIconComponent_Template(rf, ctx) { if (rf & 1) {
6157
+ i0.ɵɵconditionalCreate(0, WmAppIconComponent_Conditional_0_Template, 1, 3, "i", 0)(1, WmAppIconComponent_Conditional_1_Template, 2, 6, "img", 1)(2, WmAppIconComponent_Conditional_2_Template, 1, 2, "i", 2);
6158
+ } if (rf & 2) {
6159
+ i0.ɵɵconditional(ctx._isSvg ? 0 : ctx._isImage ? 1 : ctx._fontClass ? 2 : -1);
6160
+ } }, dependencies: [NgClass, NgStyle, SvgIconDirective, ImagePipe], encapsulation: 2 }); }
6161
+ }
6162
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WmAppIconComponent, [{
6163
+ type: Component,
6164
+ args: [{
6165
+ standalone: true,
6166
+ selector: 'wm-app-icon',
6167
+ imports: [NgClass, NgStyle, SvgIconDirective, ImagePipe],
6168
+ encapsulation: ViewEncapsulation.None,
6169
+ host: {
6170
+ '[style.display]': '"contents"'
6171
+ },
6172
+ template: `
6173
+ @if (_isSvg) {
6174
+ <i [ngClass]="_svgClasses"
6175
+ role="img"
6176
+ aria-hidden="true"
6177
+ data-identifier="svg"
6178
+ [ngStyle]="iconStyle"
6179
+ [iconUrl]="iconurl"></i>
6180
+ } @else if (_isImage) {
6181
+ <img [ngClass]="_imageClasses"
6182
+ data-identifier="img"
6183
+ [attr.alt]="alt || ''"
6184
+ [src]="iconurl | image"
6185
+ [ngStyle]="iconStyle"/>
6186
+ } @else if (_fontClass) {
6187
+ <i [ngClass]="_fontClasses"
6188
+ aria-hidden="true"
6189
+ [ngStyle]="iconStyle"></i>
6190
+ }
6191
+ `
6192
+ }]
6193
+ }], null, { iconclass: [{
6194
+ type: Input
6195
+ }], iconurl: [{
6196
+ type: Input
6197
+ }], defaultIconClass: [{
6198
+ type: Input
6199
+ }], defaultClasses: [{
6200
+ type: Input
6201
+ }], iconStyle: [{
6202
+ type: Input
6203
+ }], alt: [{
6204
+ type: Input
6205
+ }] }); })();
6206
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WmAppIconComponent, { className: "WmAppIconComponent", filePath: "widgets/common/base/app-icon-component.ts", lineNumber: 58 }); })();
6207
+
5912
6208
  /**
5913
6209
  * Generated bundle index. Do not edit.
5914
6210
  */
5915
6211
 
5916
- export { ALLFIELDS, APPLY_STYLES_TYPE, AUTOCLOSE_TYPE, AUTO_LAYOUT_PROPS, AutoLayout, BaseComponent, BaseContainerComponent, BaseFieldValidations, ContainerDirective, Context, CustomPipe, CustomWidgetContainerDirective, DEBOUNCE_TIMES, DISPLAY_TYPE, DataSetItem, DatasetAwareNavComponent, DialogRef, DialogServiceImpl, EDIT_MODE, EVENTS_MAP, FileExtensionFromMimePipe, FileIconClassPipe, FileSizePipe, FilterPipe, INPUTMODE, ImagePipe, ItemTemplateDirective, LIVE_CONSTANTS, LazyLoadDirective, Live_Operations, MessageComponent, NAVIGATION_TYPE, NumberToStringPipe, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, PROP_TYPE, PartialContainerDirective, PartialDirective, PartialParamDirective, PartialParamHandlerDirective, PrefixPipe, PullToRefresh, RedrawableDirective, RepeatTemplateDirective, SanitizePipe, ShowInDeviceDirective, StateClassPipe, StringToNumberPipe, StylableComponent, SuffixPipe, TemplateReplacePipe, TextContentDirective, TimeFromNowPipe, ToCurrencyPipe, ToDatePipe, ToNumberPipe, TrailingZeroDecimalPipe, TrustAsPipe, WidgetConfig, WidgetRef, applyFilterOnField, configureDnD, convertDataToObject, createArrayFrom, extractDataAsArray, extractDataSourceName, fetchDistinctValues, fetchRelatedFieldData, filterDate, getBackGroundImageUrl, getConditionalClasses, getContainerTargetClass, getCurrentWidgets, getDataTableFilterWidget, getDefaultValue, getDefaultViewModeWidget, getDistinctFieldProperties, getDistinctValues, getDistinctValuesForField, getEditModeWidget, getEmptyMatchMode, getEnableEmptyFilter, getEvaluatedData, getFieldLayoutConfig, getFieldTypeWidgetTypesMap, getImageUrl, getKeyboardFocusableElements, getMatchModeMsgs, getMatchModeTypesMap, getObjValueByKey, getOrderByExpr, getOrderedDataset, getRangeFieldValue, getRangeMatchMode, getRowOperationsColumn, getUniqObjsByDataField, getWatchIdentifier, getWidgetPropsByType, groupData, handleHeaderClick, hasLinkToCurrentPage, interpolateBindExpressions, isActiveNavItem, isBooleanAttr, isDataSetWidget, isDimensionProp, isStyle, parseValueByType, performDataOperation, prepareFieldDefs, propNameCSSKeyMap, provideAs, provideAsDialogRef, provideAsWidgetRef, refreshDataSource, register$1 as register, registerFormWidget, setFocusTrap, setHeaderConfig, setHeaderConfigForTable, setItemByCompare, styler, toggleAllHeaders, transformData, transformDataWithKeys, transformFormData, unsupportedStatePersistenceTypes, updateDeviceView, widgetIdGenerator };
6212
+ export { ALLFIELDS, APPLY_STYLES_TYPE, AUTOCLOSE_TYPE, AUTO_LAYOUT_PROPS, AutoLayout, BaseComponent, BaseContainerComponent, BaseFieldValidations, ContainerDirective, Context, CustomPipe, CustomWidgetContainerDirective, DEBOUNCE_TIMES, DISPLAY_TYPE, DataSetItem, DatasetAwareNavComponent, DialogRef, DialogServiceImpl, EDIT_MODE, EVENTS_MAP, FileExtensionFromMimePipe, FileIconClassPipe, FileSizePipe, FilterPipe, INPUTMODE, ImagePipe, ItemTemplateDirective, LIVE_CONSTANTS, LazyLoadDirective, Live_Operations, MessageComponent, NAVIGATION_TYPE, NumberToStringPipe, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, PROP_TYPE, PartialContainerDirective, PartialDirective, PartialParamDirective, PartialParamHandlerDirective, PrefixPipe, PullToRefresh, RedrawableDirective, RepeatTemplateDirective, SanitizePipe, ShowInDeviceDirective, StateClassPipe, StringToNumberPipe, StylableComponent, SuffixPipe, SvgIconDirective, TemplateReplacePipe, TextContentDirective, TimeFromNowPipe, ToCurrencyPipe, ToDatePipe, ToNumberPipe, TrailingZeroDecimalPipe, TrustAsPipe, WidgetConfig, WidgetRef, WmAppIconComponent, applyFilterOnField, configureDnD, convertDataToObject, createArrayFrom, extractDataAsArray, extractDataSourceName, fetchDistinctValues, fetchRelatedFieldData, filterDate, getBackGroundImageUrl, getConditionalClasses, getContainerTargetClass, getCurrentWidgets, getDataTableFilterWidget, getDefaultValue, getDefaultViewModeWidget, getDistinctFieldProperties, getDistinctValues, getDistinctValuesForField, getEditModeWidget, getEmptyMatchMode, getEnableEmptyFilter, getEvaluatedData, getFieldLayoutConfig, getFieldTypeWidgetTypesMap, getImageUrl, getKeyboardFocusableElements, getMatchModeMsgs, getMatchModeTypesMap, getObjValueByKey, getOrderByExpr, getOrderedDataset, getRangeFieldValue, getRangeMatchMode, getRowOperationsColumn, getUniqObjsByDataField, getWatchIdentifier, getWidgetPropsByType, groupData, handleHeaderClick, hasLinkToCurrentPage, interpolateBindExpressions, isActiveNavItem, isBooleanAttr, isDataSetWidget, isDimensionProp, isStyle, isSvgIconUrl, parseValueByType, performDataOperation, prepareFieldDefs, propNameCSSKeyMap, provideAs, provideAsDialogRef, provideAsWidgetRef, refreshDataSource, register$1 as register, registerFormWidget, setFocusTrap, setHeaderConfig, setHeaderConfigForTable, setItemByCompare, styler, toggleAllHeaders, transformData, transformDataWithKeys, transformFormData, unsupportedStatePersistenceTypes, updateDeviceView, widgetIdGenerator };
5917
6213
  //# sourceMappingURL=index.mjs.map