@progress/kendo-angular-common 23.4.0-develop.4 → 24.0.0-develop.2

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.
@@ -1103,25 +1103,34 @@ class WatermarkOverlayComponent {
1103
1103
  isMobile = false;
1104
1104
  isNarrow = false;
1105
1105
  isCloseHovered = false;
1106
+ isCTAHovered = false;
1106
1107
  bannerMounted = false;
1107
1108
  get messages() {
1108
- return [
1109
- this.primaryMessage, ...this.extraMessages
1110
- ];
1109
+ return [this.primaryMessage, ...this.extraMessages];
1111
1110
  }
1112
1111
  extraMessages = [];
1113
1112
  get primaryMessage() {
1114
- return this.licenseMessage || {
1113
+ return (this.licenseMessage || {
1115
1114
  severity: 'ERROR',
1116
1115
  productName: '',
1117
1116
  code: '',
1118
1117
  message: '',
1119
1118
  notificationTitle: 'License key missing for Kendo UI for Angular.',
1120
1119
  notificationBody: `We couldn't verify your <a href="${this.licenseKeyUrl}">license key</a> for Kendo UI for Angular.` +
1121
- `Please see the browser console for details and resolution steps.`
1122
- };
1120
+ `Please see the browser console for details and resolution steps.`,
1121
+ });
1123
1122
  }
1124
1123
  licenseKeyUrl = licenseKeyUrl;
1124
+ getContent(msg) {
1125
+ const iconContent = msg.notificationIcon?.content;
1126
+ return {
1127
+ iconSrc: iconContent ? `data:image/svg+xml;base64,${btoa(iconContent)}` : undefined,
1128
+ title: msg.notificationTitle || '',
1129
+ description: msg.notificationBody || msg.notificationMessage || '',
1130
+ buttonText: msg.callToAction?.message || 'Buy Now',
1131
+ buttonLink: msg.callToAction?.link || 'https://prgress.co/3PyHIoH',
1132
+ };
1133
+ }
1125
1134
  unsubscribeLicenseMessage = () => {
1126
1135
  /* noop */
1127
1136
  };
@@ -1176,20 +1185,25 @@ class WatermarkOverlayComponent {
1176
1185
  bannerPresentOnPage = false;
1177
1186
  }
1178
1187
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WatermarkOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1179
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WatermarkOverlayComponent, isStandalone: true, selector: "div[kendoWatermarkOverlay]", inputs: { licenseMessage: "licenseMessage" }, host: { properties: { "style": "this.watermarkStyle" } }, viewQueries: [{ propertyName: "banner", first: true, predicate: ["banner"], descendants: true }], ngImport: i0, template: `
1188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WatermarkOverlayComponent, isStandalone: true, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: { licenseMessage: "licenseMessage" }, host: { properties: { "style": "this.watermarkStyle" } }, viewQueries: [{ propertyName: "banner", first: true, predicate: ["banner"], descendants: true }], ngImport: i0, template: `
1180
1189
  <ng-template #buttonTemplate>
1181
- <button [ngStyle]="{
1182
- backgroundColor: isCloseHovered ? '#3d3d3d14' : 'transparent',
1183
- border: 'none',
1184
- borderRadius: '4px',
1185
- cursor: 'pointer',
1186
- display: 'flex',
1187
- padding: '4px',
1188
- position: isMobile ? 'absolute' : 'static',
1189
- top: isMobile ? '12px' : 'auto',
1190
- right: isMobile ? '12px' : 'auto',
1191
- }"
1192
- title="Close" (click)="closeBanner()" (mouseenter)="isCloseHovered = true" (mouseleave)="isCloseHovered = false">
1190
+ <button
1191
+ [ngStyle]="{
1192
+ backgroundColor: isCloseHovered ? '#3d3d3d14' : 'transparent',
1193
+ border: 'none',
1194
+ borderRadius: '4px',
1195
+ cursor: 'pointer',
1196
+ display: 'flex',
1197
+ padding: '4px',
1198
+ position: isMobile ? 'absolute' : 'static',
1199
+ top: isMobile ? '12px' : 'auto',
1200
+ right: isMobile ? '12px' : 'auto'
1201
+ }"
1202
+ title="Close"
1203
+ (click)="closeBanner()"
1204
+ (mouseenter)="isCloseHovered = true"
1205
+ (mouseleave)="isCloseHovered = false"
1206
+ >
1193
1207
  <svg width="20" height="20" viewBox="0 0 16 16" fill="none">
1194
1208
  <path
1195
1209
  d="M11.9309 3.1838C12.1754 2.93933 12.5712 2.93937 12.8157 3.1838C13.0601 3.4283 13.0601 3.82407 12.8157 4.06857L8.885 7.99923L12.8166 11.9309C13.0611 12.1754 13.0611 12.5721 12.8166 12.8166C12.5721 13.0611 12.1754 13.0611 11.9309 12.8166L7.99925 8.88497L4.06859 12.8166C3.8241 13.0611 3.42732 13.0611 3.18285 12.8166C2.93862 12.5721 2.93851 12.1753 3.18285 11.9309L7.11449 7.99923L3.18382 4.06857C2.93947 3.82413 2.93955 3.42829 3.18382 3.1838C3.42831 2.9393 3.82508 2.9393 4.06957 3.1838L7.99925 7.11349L11.9309 3.1838Z"
@@ -1198,8 +1212,34 @@ class WatermarkOverlayComponent {
1198
1212
  </svg>
1199
1213
  </button>
1200
1214
  </ng-template>
1215
+ <ng-template #ctaTemplate>
1216
+ <a
1217
+ class="k-watermark-trial-button"
1218
+ [attr.title]="getContent(primaryMessage).buttonText"
1219
+ [attr.href]="getContent(primaryMessage).buttonLink"
1220
+ target="_blank"
1221
+ rel="noopener noreferrer"
1222
+ [ngStyle]="{
1223
+ display: 'inline-flex',
1224
+ border: 'none',
1225
+ borderRadius: '4px',
1226
+ backgroundColor: isCTAHovered ? '#b90138' : '#eb0249',
1227
+ color: '#ffffff',
1228
+ transition: 'background-color 0.2s ease-in-out',
1229
+ cursor: 'pointer',
1230
+ padding: '4px 8px',
1231
+ whiteSpace: 'nowrap',
1232
+ textDecoration: 'none',
1233
+ fontFamily: 'system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif'
1234
+ }"
1235
+ (mouseenter)="isCTAHovered = true"
1236
+ (mouseleave)="isCTAHovered = false"
1237
+ >{{ getContent(primaryMessage).buttonText }}</a>
1238
+ </ng-template>
1201
1239
  @if (isOpen && bannerMounted) {
1202
- <div #banner [ngStyle]="{
1240
+ <div
1241
+ #banner
1242
+ [ngStyle]="{
1203
1243
  position: 'fixed',
1204
1244
  top: isNarrow ? '0' : '16px',
1205
1245
  left: '50%',
@@ -1222,116 +1262,106 @@ class WatermarkOverlayComponent {
1222
1262
  maxWidth: isNarrow ? 'none' : '768px',
1223
1263
  width: '100%',
1224
1264
  backgroundColor: '#fff',
1225
- padding: isMobile ? '12px' : '0',
1226
- }">
1227
- @if (isMobile) {
1228
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1229
- }
1230
-
1231
- <span [ngStyle]="{
1232
- display: 'flex',
1233
- alignSelf: isMobile ? 'flex-start' : 'center',
1234
- padding: isMobile ? '0 0 12px 0' : '9px 12px',
1235
- }">
1236
- <svg
1237
- width="32"
1238
- height="32"
1239
- viewBox="0 0 32 32"
1240
- fill="none"
1241
- xmlns="http://www.w3.org/2000/svg"
1242
- >
1243
- <path
1244
- fillRule="evenodd"
1245
- clipRule="evenodd"
1246
- d="M22.702 2.1821C24.3149 2.51082 25.8077 3.27291 27.0199 4.38645C28.2321 5.49999 29.1179 6.92286 29.582 8.5021C30.012 9.9501 30.076 11.4821 29.768 12.9621C29.3228 14.9898 28.2025 16.8063 26.5904 18.1143C24.9783 19.4223 22.9699 20.1443 20.894 20.1621C20.018 20.1621 19.146 20.0361 18.308 19.7821L16.708 21.6581L15.95 22.0081H14V25.0081L13 26.0081H10V29.0081L9 30.0081H3L2 29.0081V24.3941L2.292 23.6881L12.24 13.7401C11.9577 12.8308 11.8226 11.8821 11.84 10.9301C11.8582 9.59817 12.1701 8.28666 12.7533 7.08907C13.3365 5.89147 14.1767 4.83728 15.214 4.00164C16.2514 3.166 17.4603 2.56949 18.7546 2.25464C20.0489 1.93978 21.3967 1.91633 22.702 2.1821ZM25.338 16.5821C26.5944 15.5647 27.4681 14.1509 27.816 12.5721L27.824 12.5821C28.0718 11.4277 28.0272 10.2297 27.6943 9.09691C27.3614 7.96412 26.7507 6.93248 25.9177 6.09572C25.0847 5.25896 24.0558 4.64361 22.9246 4.30557C21.7933 3.96753 20.5955 3.91753 19.44 4.1601C17.8816 4.506 16.4837 5.36334 15.4688 6.59561C14.454 7.82789 13.8806 9.36426 13.84 10.9601C13.82 11.8721 13.98 12.7761 14.318 13.6201L14.098 14.7061L4 24.8081V28.0081H8V25.0081L9 24.0081H12V21.0081L13 20.0081H15.49L17.242 17.9761L18.364 17.6961C19.1728 18.0121 20.0337 18.1736 20.902 18.1721C22.5181 18.1597 24.082 17.5991 25.338 16.5821ZM23.662 11.1181C23.8197 10.9002 23.9318 10.6527 23.9916 10.3905C24.0515 10.1283 24.0578 9.85665 24.0103 9.59192C23.9627 9.32718 23.8622 9.07476 23.7148 8.84975C23.5675 8.62474 23.3762 8.43177 23.1526 8.28238C22.9289 8.133 22.6774 8.03026 22.4131 7.98033C22.1488 7.93039 21.8771 7.93428 21.6144 7.99176C21.3516 8.04925 21.1031 8.15914 20.8838 8.31487C20.6645 8.4706 20.4789 8.66896 20.338 8.8981C20.067 9.33887 19.9774 9.86752 20.088 10.373C20.1985 10.8784 20.5007 11.3214 20.931 11.6087C21.3613 11.8961 21.8862 12.0055 22.3954 11.914C22.9047 11.8226 23.3587 11.5373 23.662 11.1181Z"
1247
- fill="black"
1248
- />
1249
- <path
1250
- d="M23.1299 16.0186L31.1387 31.0273L31.0068 31.25H14.9932L14.8604 31.0273L22.8955 16.0186H23.1299Z"
1251
- fill="#FFC000"
1252
- stroke="black"
1253
- strokeWidth="1.5"
1254
- />
1255
- <rect x="22.25" y="21.2686" width="1.5" height="5" rx="0.75" fill="black" />
1256
- <path
1257
- d="M24 28.2686C24 27.7163 23.5523 27.2686 23 27.2686C22.4479 27.2687 22 27.7164 22 28.2686C22 28.8207 22.4479 29.2684 23 29.2686C23.5523 29.2686 24 28.8208 24 28.2686Z"
1258
- fill="black"
1259
- />
1260
- </svg>
1261
- </span>
1265
+ padding: isMobile ? '12px' : '0'
1266
+ }"
1267
+ >
1268
+ @if (isMobile) {
1269
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1270
+ } @if (getContent(primaryMessage).iconSrc) {
1271
+ <span
1272
+ [ngStyle]="{
1273
+ display: 'flex',
1274
+ alignSelf: isMobile ? 'flex-start' : 'center',
1275
+ padding: isMobile ? '0 0 12px 0' : '9px 12px'
1276
+ }"
1277
+ ><img [src]="getContent(primaryMessage).iconSrc" alt="" /></span>
1278
+ }
1262
1279
 
1263
- <div [ngStyle]="{
1280
+ <div
1281
+ [ngStyle]="{
1282
+ display: 'flex',
1283
+ flexDirection: 'column',
1284
+ gap: '12px',
1285
+ padding: isMobile ? '0 0 12px 0' : '12px',
1286
+ flex: isMobile ? 'none' : '1'
1287
+ }"
1288
+ >
1289
+ @for (msg of messages; track msg.message) {
1290
+ <div
1291
+ [ngStyle]="{
1264
1292
  display: 'flex',
1265
1293
  flexDirection: 'column',
1266
- gap: '12px',
1267
- padding: isMobile ? '0 0 12px 0' : '12px',
1268
- flex: isMobile ? 'none' : '1'}">
1269
- @for (msg of messages; track msg.message) {
1270
- <div [ngStyle]="{
1271
- display: 'flex',
1272
- flexDirection: 'column',
1273
- gap: '4px',
1274
- flex: isMobile ? 'none' : '1'}">
1275
- @if (msg.notificationTitle) {
1276
- <span
1277
- [ngStyle]="{
1278
- fontFamily: 'system-ui, sans-serif',
1279
- fontWeight: 700,
1280
- fontSize: '14px',
1281
- lineHeight: '142%'}"
1282
- >
1283
- {{ msg.notificationTitle }}
1284
- </span>
1285
- }
1286
- <span
1287
- [ngStyle]="{
1294
+ gap: '4px',
1295
+ flex: isMobile ? 'none' : '1'
1296
+ }"
1297
+ >
1298
+ <span
1299
+ [ngStyle]="{
1288
1300
  fontFamily: 'system-ui, sans-serif',
1301
+ fontWeight: 700,
1289
1302
  fontSize: '14px',
1290
- lineHeight: '20px',
1291
- }"
1292
- [innerHTML]="msg.notificationBody || msg.notificationMessage"
1293
- >
1294
- </span>
1295
- </div>
1296
- }
1297
- </div>
1298
-
1299
- @if (!isMobile) {
1300
- <div
1303
+ lineHeight: '142%'
1304
+ }"
1305
+ >
1306
+ {{ getContent(msg).title }}
1307
+ </span>
1308
+ <span
1301
1309
  [ngStyle]="{
1302
- display: 'flex',
1303
- alignItems: 'center',
1304
- padding: isMobile ? '0' : '9px 12px',
1305
- gap: '16px',
1306
- marginLeft: isMobile ? '0' : 'auto',
1307
- width: isMobile ? '100%' : 'auto',
1310
+ fontFamily: 'system-ui, sans-serif',
1311
+ fontSize: '14px',
1312
+ lineHeight: '20px'
1308
1313
  }"
1314
+ [innerHTML]="getContent(msg).description"
1309
1315
  >
1310
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1311
- </div>
1316
+ </span>
1317
+ </div>
1318
+ } @if (isMobile) {
1319
+ <ng-container *ngTemplateOutlet="ctaTemplate"></ng-container>
1312
1320
  }
1313
1321
  </div>
1322
+
1323
+ @if (!isMobile) {
1324
+ <div
1325
+ [ngStyle]="{
1326
+ display: 'flex',
1327
+ alignItems: 'center',
1328
+ padding: isMobile ? '0' : '9px 12px',
1329
+ gap: '16px',
1330
+ marginLeft: isMobile ? '0' : 'auto',
1331
+ width: isMobile ? '100%' : 'auto'
1332
+ }"
1333
+ >
1334
+ <ng-container *ngTemplateOutlet="ctaTemplate"></ng-container>
1335
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1336
+ </div>
1337
+ }
1338
+ </div>
1314
1339
  }
1315
1340
  `, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1316
1341
  }
1317
1342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WatermarkOverlayComponent, decorators: [{
1318
1343
  type: Component,
1319
1344
  args: [{
1320
- selector: 'div[kendoWatermarkOverlay]',
1345
+ selector: 'div[kendoWatermarkOverlay], kendo-watermark-overlay',
1321
1346
  template: `
1322
1347
  <ng-template #buttonTemplate>
1323
- <button [ngStyle]="{
1324
- backgroundColor: isCloseHovered ? '#3d3d3d14' : 'transparent',
1325
- border: 'none',
1326
- borderRadius: '4px',
1327
- cursor: 'pointer',
1328
- display: 'flex',
1329
- padding: '4px',
1330
- position: isMobile ? 'absolute' : 'static',
1331
- top: isMobile ? '12px' : 'auto',
1332
- right: isMobile ? '12px' : 'auto',
1333
- }"
1334
- title="Close" (click)="closeBanner()" (mouseenter)="isCloseHovered = true" (mouseleave)="isCloseHovered = false">
1348
+ <button
1349
+ [ngStyle]="{
1350
+ backgroundColor: isCloseHovered ? '#3d3d3d14' : 'transparent',
1351
+ border: 'none',
1352
+ borderRadius: '4px',
1353
+ cursor: 'pointer',
1354
+ display: 'flex',
1355
+ padding: '4px',
1356
+ position: isMobile ? 'absolute' : 'static',
1357
+ top: isMobile ? '12px' : 'auto',
1358
+ right: isMobile ? '12px' : 'auto'
1359
+ }"
1360
+ title="Close"
1361
+ (click)="closeBanner()"
1362
+ (mouseenter)="isCloseHovered = true"
1363
+ (mouseleave)="isCloseHovered = false"
1364
+ >
1335
1365
  <svg width="20" height="20" viewBox="0 0 16 16" fill="none">
1336
1366
  <path
1337
1367
  d="M11.9309 3.1838C12.1754 2.93933 12.5712 2.93937 12.8157 3.1838C13.0601 3.4283 13.0601 3.82407 12.8157 4.06857L8.885 7.99923L12.8166 11.9309C13.0611 12.1754 13.0611 12.5721 12.8166 12.8166C12.5721 13.0611 12.1754 13.0611 11.9309 12.8166L7.99925 8.88497L4.06859 12.8166C3.8241 13.0611 3.42732 13.0611 3.18285 12.8166C2.93862 12.5721 2.93851 12.1753 3.18285 11.9309L7.11449 7.99923L3.18382 4.06857C2.93947 3.82413 2.93955 3.42829 3.18382 3.1838C3.42831 2.9393 3.82508 2.9393 4.06957 3.1838L7.99925 7.11349L11.9309 3.1838Z"
@@ -1340,8 +1370,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
1340
1370
  </svg>
1341
1371
  </button>
1342
1372
  </ng-template>
1373
+ <ng-template #ctaTemplate>
1374
+ <a
1375
+ class="k-watermark-trial-button"
1376
+ [attr.title]="getContent(primaryMessage).buttonText"
1377
+ [attr.href]="getContent(primaryMessage).buttonLink"
1378
+ target="_blank"
1379
+ rel="noopener noreferrer"
1380
+ [ngStyle]="{
1381
+ display: 'inline-flex',
1382
+ border: 'none',
1383
+ borderRadius: '4px',
1384
+ backgroundColor: isCTAHovered ? '#b90138' : '#eb0249',
1385
+ color: '#ffffff',
1386
+ transition: 'background-color 0.2s ease-in-out',
1387
+ cursor: 'pointer',
1388
+ padding: '4px 8px',
1389
+ whiteSpace: 'nowrap',
1390
+ textDecoration: 'none',
1391
+ fontFamily: 'system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif'
1392
+ }"
1393
+ (mouseenter)="isCTAHovered = true"
1394
+ (mouseleave)="isCTAHovered = false"
1395
+ >{{ getContent(primaryMessage).buttonText }}</a>
1396
+ </ng-template>
1343
1397
  @if (isOpen && bannerMounted) {
1344
- <div #banner [ngStyle]="{
1398
+ <div
1399
+ #banner
1400
+ [ngStyle]="{
1345
1401
  position: 'fixed',
1346
1402
  top: isNarrow ? '0' : '16px',
1347
1403
  left: '50%',
@@ -1364,99 +1420,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
1364
1420
  maxWidth: isNarrow ? 'none' : '768px',
1365
1421
  width: '100%',
1366
1422
  backgroundColor: '#fff',
1367
- padding: isMobile ? '12px' : '0',
1368
- }">
1369
- @if (isMobile) {
1370
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1371
- }
1372
-
1373
- <span [ngStyle]="{
1374
- display: 'flex',
1375
- alignSelf: isMobile ? 'flex-start' : 'center',
1376
- padding: isMobile ? '0 0 12px 0' : '9px 12px',
1377
- }">
1378
- <svg
1379
- width="32"
1380
- height="32"
1381
- viewBox="0 0 32 32"
1382
- fill="none"
1383
- xmlns="http://www.w3.org/2000/svg"
1384
- >
1385
- <path
1386
- fillRule="evenodd"
1387
- clipRule="evenodd"
1388
- d="M22.702 2.1821C24.3149 2.51082 25.8077 3.27291 27.0199 4.38645C28.2321 5.49999 29.1179 6.92286 29.582 8.5021C30.012 9.9501 30.076 11.4821 29.768 12.9621C29.3228 14.9898 28.2025 16.8063 26.5904 18.1143C24.9783 19.4223 22.9699 20.1443 20.894 20.1621C20.018 20.1621 19.146 20.0361 18.308 19.7821L16.708 21.6581L15.95 22.0081H14V25.0081L13 26.0081H10V29.0081L9 30.0081H3L2 29.0081V24.3941L2.292 23.6881L12.24 13.7401C11.9577 12.8308 11.8226 11.8821 11.84 10.9301C11.8582 9.59817 12.1701 8.28666 12.7533 7.08907C13.3365 5.89147 14.1767 4.83728 15.214 4.00164C16.2514 3.166 17.4603 2.56949 18.7546 2.25464C20.0489 1.93978 21.3967 1.91633 22.702 2.1821ZM25.338 16.5821C26.5944 15.5647 27.4681 14.1509 27.816 12.5721L27.824 12.5821C28.0718 11.4277 28.0272 10.2297 27.6943 9.09691C27.3614 7.96412 26.7507 6.93248 25.9177 6.09572C25.0847 5.25896 24.0558 4.64361 22.9246 4.30557C21.7933 3.96753 20.5955 3.91753 19.44 4.1601C17.8816 4.506 16.4837 5.36334 15.4688 6.59561C14.454 7.82789 13.8806 9.36426 13.84 10.9601C13.82 11.8721 13.98 12.7761 14.318 13.6201L14.098 14.7061L4 24.8081V28.0081H8V25.0081L9 24.0081H12V21.0081L13 20.0081H15.49L17.242 17.9761L18.364 17.6961C19.1728 18.0121 20.0337 18.1736 20.902 18.1721C22.5181 18.1597 24.082 17.5991 25.338 16.5821ZM23.662 11.1181C23.8197 10.9002 23.9318 10.6527 23.9916 10.3905C24.0515 10.1283 24.0578 9.85665 24.0103 9.59192C23.9627 9.32718 23.8622 9.07476 23.7148 8.84975C23.5675 8.62474 23.3762 8.43177 23.1526 8.28238C22.9289 8.133 22.6774 8.03026 22.4131 7.98033C22.1488 7.93039 21.8771 7.93428 21.6144 7.99176C21.3516 8.04925 21.1031 8.15914 20.8838 8.31487C20.6645 8.4706 20.4789 8.66896 20.338 8.8981C20.067 9.33887 19.9774 9.86752 20.088 10.373C20.1985 10.8784 20.5007 11.3214 20.931 11.6087C21.3613 11.8961 21.8862 12.0055 22.3954 11.914C22.9047 11.8226 23.3587 11.5373 23.662 11.1181Z"
1389
- fill="black"
1390
- />
1391
- <path
1392
- d="M23.1299 16.0186L31.1387 31.0273L31.0068 31.25H14.9932L14.8604 31.0273L22.8955 16.0186H23.1299Z"
1393
- fill="#FFC000"
1394
- stroke="black"
1395
- strokeWidth="1.5"
1396
- />
1397
- <rect x="22.25" y="21.2686" width="1.5" height="5" rx="0.75" fill="black" />
1398
- <path
1399
- d="M24 28.2686C24 27.7163 23.5523 27.2686 23 27.2686C22.4479 27.2687 22 27.7164 22 28.2686C22 28.8207 22.4479 29.2684 23 29.2686C23.5523 29.2686 24 28.8208 24 28.2686Z"
1400
- fill="black"
1401
- />
1402
- </svg>
1403
- </span>
1423
+ padding: isMobile ? '12px' : '0'
1424
+ }"
1425
+ >
1426
+ @if (isMobile) {
1427
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1428
+ } @if (getContent(primaryMessage).iconSrc) {
1429
+ <span
1430
+ [ngStyle]="{
1431
+ display: 'flex',
1432
+ alignSelf: isMobile ? 'flex-start' : 'center',
1433
+ padding: isMobile ? '0 0 12px 0' : '9px 12px'
1434
+ }"
1435
+ ><img [src]="getContent(primaryMessage).iconSrc" alt="" /></span>
1436
+ }
1404
1437
 
1405
- <div [ngStyle]="{
1438
+ <div
1439
+ [ngStyle]="{
1440
+ display: 'flex',
1441
+ flexDirection: 'column',
1442
+ gap: '12px',
1443
+ padding: isMobile ? '0 0 12px 0' : '12px',
1444
+ flex: isMobile ? 'none' : '1'
1445
+ }"
1446
+ >
1447
+ @for (msg of messages; track msg.message) {
1448
+ <div
1449
+ [ngStyle]="{
1406
1450
  display: 'flex',
1407
1451
  flexDirection: 'column',
1408
- gap: '12px',
1409
- padding: isMobile ? '0 0 12px 0' : '12px',
1410
- flex: isMobile ? 'none' : '1'}">
1411
- @for (msg of messages; track msg.message) {
1412
- <div [ngStyle]="{
1413
- display: 'flex',
1414
- flexDirection: 'column',
1415
- gap: '4px',
1416
- flex: isMobile ? 'none' : '1'}">
1417
- @if (msg.notificationTitle) {
1418
- <span
1419
- [ngStyle]="{
1420
- fontFamily: 'system-ui, sans-serif',
1421
- fontWeight: 700,
1422
- fontSize: '14px',
1423
- lineHeight: '142%'}"
1424
- >
1425
- {{ msg.notificationTitle }}
1426
- </span>
1427
- }
1428
- <span
1429
- [ngStyle]="{
1452
+ gap: '4px',
1453
+ flex: isMobile ? 'none' : '1'
1454
+ }"
1455
+ >
1456
+ <span
1457
+ [ngStyle]="{
1430
1458
  fontFamily: 'system-ui, sans-serif',
1459
+ fontWeight: 700,
1431
1460
  fontSize: '14px',
1432
- lineHeight: '20px',
1433
- }"
1434
- [innerHTML]="msg.notificationBody || msg.notificationMessage"
1435
- >
1436
- </span>
1437
- </div>
1438
- }
1439
- </div>
1440
-
1441
- @if (!isMobile) {
1442
- <div
1461
+ lineHeight: '142%'
1462
+ }"
1463
+ >
1464
+ {{ getContent(msg).title }}
1465
+ </span>
1466
+ <span
1443
1467
  [ngStyle]="{
1444
- display: 'flex',
1445
- alignItems: 'center',
1446
- padding: isMobile ? '0' : '9px 12px',
1447
- gap: '16px',
1448
- marginLeft: isMobile ? '0' : 'auto',
1449
- width: isMobile ? '100%' : 'auto',
1468
+ fontFamily: 'system-ui, sans-serif',
1469
+ fontSize: '14px',
1470
+ lineHeight: '20px'
1450
1471
  }"
1472
+ [innerHTML]="getContent(msg).description"
1451
1473
  >
1452
- <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1453
- </div>
1474
+ </span>
1475
+ </div>
1476
+ } @if (isMobile) {
1477
+ <ng-container *ngTemplateOutlet="ctaTemplate"></ng-container>
1454
1478
  }
1455
1479
  </div>
1480
+
1481
+ @if (!isMobile) {
1482
+ <div
1483
+ [ngStyle]="{
1484
+ display: 'flex',
1485
+ alignItems: 'center',
1486
+ padding: isMobile ? '0' : '9px 12px',
1487
+ gap: '16px',
1488
+ marginLeft: isMobile ? '0' : 'auto',
1489
+ width: isMobile ? '100%' : 'auto'
1490
+ }"
1491
+ >
1492
+ <ng-container *ngTemplateOutlet="ctaTemplate"></ng-container>
1493
+ <ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
1494
+ </div>
1495
+ }
1496
+ </div>
1456
1497
  }
1457
1498
  `,
1458
1499
  standalone: true,
1459
- imports: [NgStyle, NgTemplateOutlet]
1500
+ imports: [NgStyle, NgTemplateOutlet],
1460
1501
  }]
1461
1502
  }], propDecorators: { licenseMessage: [{
1462
1503
  type: Input
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-common",
3
- "version": "23.4.0-develop.4",
3
+ "version": "24.0.0-develop.2",
4
4
  "description": "Kendo UI for Angular - Utility Package",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -23,14 +23,15 @@
23
23
  "@progress/kendo-common": "^1.0.1",
24
24
  "@progress/kendo-draggable": "^3.0.2",
25
25
  "tslib": "^2.3.1",
26
- "@progress/kendo-angular-schematics": "23.4.0-develop.4"
26
+ "@progress/kendo-angular-schematics": "24.0.0-develop.2"
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public"
30
30
  },
31
- "module": "fesm2022/progress-kendo-angular-common.mjs",
32
- "typings": "index.d.ts",
33
31
  "exports": {
32
+ "./codemods": {
33
+ "default": "./codemods/utils.js"
34
+ },
34
35
  "./package.json": {
35
36
  "default": "./package.json"
36
37
  },
@@ -39,5 +40,7 @@
39
40
  "default": "./fesm2022/progress-kendo-angular-common.mjs"
40
41
  }
41
42
  },
43
+ "module": "fesm2022/progress-kendo-angular-common.mjs",
44
+ "typings": "index.d.ts",
42
45
  "sideEffects": false
43
46
  }
@@ -16,11 +16,19 @@ export declare class WatermarkOverlayComponent implements OnInit, AfterViewInit,
16
16
  isMobile: boolean;
17
17
  isNarrow: boolean;
18
18
  isCloseHovered: boolean;
19
+ isCTAHovered: boolean;
19
20
  bannerMounted: boolean;
20
21
  get messages(): LicenseMessage[];
21
22
  extraMessages: LicenseMessage[];
22
23
  get primaryMessage(): LicenseMessage;
23
24
  licenseKeyUrl: string;
25
+ getContent(msg: LicenseMessage): {
26
+ iconSrc?: string;
27
+ title: string;
28
+ description: string;
29
+ buttonText: string;
30
+ buttonLink: string;
31
+ };
24
32
  private unsubscribeLicenseMessage;
25
33
  private unsubscribeResize;
26
34
  ngOnInit(): void;
@@ -32,5 +40,5 @@ export declare class WatermarkOverlayComponent implements OnInit, AfterViewInit,
32
40
  private subscribeResize;
33
41
  resetPresenceCheck(): void;
34
42
  static ɵfac: i0.ɵɵFactoryDeclaration<WatermarkOverlayComponent, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<WatermarkOverlayComponent, "div[kendoWatermarkOverlay]", never, { "licenseMessage": { "alias": "licenseMessage"; "required": false; }; }, {}, never, never, true, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<WatermarkOverlayComponent, "div[kendoWatermarkOverlay], kendo-watermark-overlay", never, { "licenseMessage": { "alias": "licenseMessage"; "required": false; }; }, {}, never, never, true, never>;
36
44
  }