@progress/kendo-angular-scheduler 24.0.0-develop.1 → 24.0.0-develop.11

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.
@@ -3,29 +3,6 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use strict";
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
6
  Object.defineProperty(exports, "__esModule", { value: true });
30
7
  exports.tsInterfaceTransformer = exports.tsPropertyValueTransformer = exports.tsPropertyTransformer = exports.tsComponentPropertyRemoval = exports.attributeRemoval = exports.attributeValueUpdate = exports.attributeNameValueUpdate = exports.attributeNameUpdate = exports.eventUpdate = exports.htmlTransformer = exports.blockTextElements = void 0;
31
8
  exports.hasKendoInTemplate = hasKendoInTemplate;
@@ -35,8 +12,12 @@ exports.makePattern = makePattern;
35
12
  exports.writeInstructionMarker = writeInstructionMarker;
36
13
  exports.isApiChangeTarget = isApiChangeTarget;
37
14
  exports.isRenderingChangeTarget = isRenderingChangeTarget;
38
- const fs = __importStar(require("node:fs"));
39
- const path = __importStar(require("node:path"));
15
+ exports.executeCodemodTest = executeCodemodTest;
16
+ const tslib_1 = require("tslib");
17
+ /// <reference types="node" />
18
+ const fs = tslib_1.__importStar(require("fs"));
19
+ const os = tslib_1.__importStar(require("os"));
20
+ const path = tslib_1.__importStar(require("path"));
40
21
  exports.blockTextElements = {
41
22
  script: true,
42
23
  noscript: true,
@@ -320,12 +301,12 @@ const attributeRemoval = (templateContent, tagName, attributeName, propertyToRem
320
301
  // If no propertyToRemove is specified, remove the entire attribute
321
302
  if (!propertyToRemove) {
322
303
  // Remove bound attributes [attribute]="value"
323
- const boundAttributePattern = new RegExp(`(\\s+)\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)`, 'gi');
304
+ const boundAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+\\[${escapedAttr}\\]\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
324
305
  // Remove static attributes attribute="value"
325
- const staticAttributePattern = new RegExp(`(\\s+)${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)`, 'gi');
326
- // Apply removals
327
- let result = templateContent.replace(boundAttributePattern, '');
328
- result = result.replace(staticAttributePattern, '');
306
+ const staticAttributePattern = new RegExp(`(<${escapedTag}[^>]*?)\\s+${escapedAttr}\\s*=\\s*("(?:[^"\\\\]|\\\\.)*?"|'(?:[^'\\\\]|\\\\.)*?'|[^\\s>]+)([^>]*?>)`, 'gi');
307
+ // Apply removals - keep tag prefix and suffix, remove the attribute
308
+ let result = templateContent.replace(boundAttributePattern, '$1$3');
309
+ result = result.replace(staticAttributePattern, '$1$3');
329
310
  return result;
330
311
  }
331
312
  // Remove specific property from object literal attributes
@@ -1428,3 +1409,45 @@ function isRenderingChangeTarget(filePath) {
1428
1409
  const ext = path.extname(filePath);
1429
1410
  return ext === '.ts' || ext === '.html' || ext === '.css' || ext === '.scss' || ext === '.sass' || ext === '.less';
1430
1411
  }
1412
+ /**
1413
+ * Executes a codemod transformation and compares the result with expected output
1414
+ *
1415
+ * @param codemod - The codemod function to execute
1416
+ * @param testDir - Directory containing the test files (__dirname from test file)
1417
+ * @param exampleFileName - Name of the input file (default: 'example.ts')
1418
+ * @param expectedFileName - Name of the expected output file (default: 'expected.ts')
1419
+ * @returns Object containing the transformation result and expected content
1420
+ */
1421
+ function executeCodemodTest(codemod, testDir, exampleFileName = 'example.ts', expectedFileName = 'expected.ts') {
1422
+ const exampleFile = path.join(testDir, exampleFileName);
1423
+ const expectedFile = path.join(testDir, expectedFileName);
1424
+ const sourceCode = fs.readFileSync(exampleFile, 'utf-8');
1425
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codemod-test-'));
1426
+ const tmpFile = path.join(tmpDir, path.basename(exampleFile));
1427
+ fs.writeFileSync(tmpFile, sourceCode, 'utf-8');
1428
+ try {
1429
+ const fileInfo = {
1430
+ path: tmpFile,
1431
+ source: sourceCode
1432
+ };
1433
+ const jscodeshift = require('jscodeshift').withParser('tsx');
1434
+ const api = {
1435
+ jscodeshift,
1436
+ j: jscodeshift
1437
+ };
1438
+ const result = codemod(fileInfo, api);
1439
+ const expectedContent = fs.readFileSync(expectedFile, 'utf-8').trim();
1440
+ return {
1441
+ result: result?.trim(),
1442
+ expected: expectedContent,
1443
+ sourceCode,
1444
+ transformedSuccessfully: result !== undefined
1445
+ };
1446
+ }
1447
+ finally {
1448
+ try {
1449
+ fs.rmSync(tmpDir, { recursive: true });
1450
+ }
1451
+ catch { }
1452
+ }
1453
+ }
@@ -6,15 +6,15 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.aiInstructions = void 0;
8
8
  exports.default = default_1;
9
- const utils_1 = require("../utils");
9
+ const codemods_1 = require("@progress/kendo-angular-common/codemods");
10
10
  exports.aiInstructions = `Review your stylesheets, test files, and any code that references the k-selected class on the show business hours / full day toggle button. It has been removed from that element and the button no longer has an active state.
11
11
  Remove any CSS rules or test assertions that use .k-selected to detect the active state of the show business hours or full day button in the Scheduler.`;
12
12
  const classes = ['k-selected'];
13
- const pattern = (0, utils_1.makePattern)(classes);
13
+ const pattern = (0, codemods_1.makePattern)(classes);
14
14
  function default_1(fileInfo) {
15
- if ((0, utils_1.isRenderingChangeTarget)(fileInfo.path)) {
15
+ if ((0, codemods_1.isRenderingChangeTarget)(fileInfo.path)) {
16
16
  if (pattern.test(fileInfo.source)) {
17
- (0, utils_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
17
+ (0, codemods_1.writeInstructionMarker)(exports.aiInstructions, __filename, fileInfo.path);
18
18
  }
19
19
  }
20
20
  return fileInfo.source;
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1776779197,
47
- version: '24.0.0-develop.1',
46
+ publishDate: 1777399788,
47
+ version: '24.0.0-develop.11',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
49
49
  };
50
50
 
@@ -2422,7 +2422,8 @@ class FocusableDirective {
2422
2422
  const element = this.element.nativeElement;
2423
2423
  const isFooterButton = element.matches('.k-scheduler-navigation .k-button');
2424
2424
  const focusedClass = element.matches('.k-button-group .k-button') || isFooterButton ? 'k-focus' : 'k-selected';
2425
- const renderedEvents = this.element.nativeElement.ownerDocument.querySelectorAll('.k-event');
2425
+ const schedulerElement = element.closest('.k-scheduler');
2426
+ const renderedEvents = schedulerElement ? schedulerElement.querySelectorAll('.k-event') : [];
2426
2427
  const method = value ? 'addClass' : 'removeClass';
2427
2428
  this.renderer[method](element, focusedClass);
2428
2429
  if (renderedEvents.length > 0) {
@@ -9242,7 +9243,7 @@ class SchedulerComponent {
9242
9243
  @if (showLicenseWatermark) {
9243
9244
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
9244
9245
  }
9245
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9246
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9246
9247
  }
9247
9248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SchedulerComponent, decorators: [{
9248
9249
  type: Component,
@@ -16898,9 +16899,11 @@ class DayTimeViewComponent extends BaseView {
16898
16899
  }
16899
16900
  timeSlotClass(slot, date, resourceIndex) {
16900
16901
  if (this.slotClass) {
16902
+ const start = dateWithTime(date, slot.start);
16903
+ const end = dateWithTime(date, slot.end);
16901
16904
  return this.slotClass({
16902
- start: dateWithTime(date, slot.start),
16903
- end: dateWithTime(date, slot.end),
16905
+ start: start,
16906
+ end: end < start ? addDays(end, 1) : end,
16904
16907
  resources: this.resourcesByIndex(resourceIndex),
16905
16908
  isAllDay: false
16906
16909
  });
@@ -18860,7 +18863,9 @@ class WorkWeekViewComponent extends WeekViewComponent {
18860
18863
  * @hidden
18861
18864
  */
18862
18865
  getStartDate(selectedDate) {
18863
- return firstDayInWeek(getDate(selectedDate), this.viewWorkWeekStart);
18866
+ const weekStartDate = firstDayInWeek(getDate(selectedDate), this.viewWeekStart);
18867
+ const workWeekOffset = (DAYS_IN_WEEK + this.viewWorkWeekStart - this.viewWeekStart) % DAYS_IN_WEEK;
18868
+ return getDate(addDays(weekStartDate, workWeekOffset));
18864
18869
  }
18865
18870
  /**
18866
18871
  * @hidden
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1776779197,
11
- "version": "24.0.0-develop.1",
10
+ "publishDate": 1777399788,
11
+ "version": "24.0.0-develop.11",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "24.0.0-develop.1",
3
+ "version": "24.0.0-develop.11",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -34,7 +34,7 @@
34
34
  "package": {
35
35
  "productName": "Kendo UI for Angular",
36
36
  "productCode": "KENDOUIANGULAR",
37
- "publishDate": 1776779197,
37
+ "publishDate": 1777399788,
38
38
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
39
39
  }
40
40
  },
@@ -47,23 +47,23 @@
47
47
  "@progress/kendo-data-query": "^1.7.3",
48
48
  "@progress/kendo-drawing": "^1.24.1",
49
49
  "@progress/kendo-licensing": "^1.11.0",
50
- "@progress/kendo-angular-tooltip": "24.0.0-develop.1",
51
- "@progress/kendo-angular-buttons": "24.0.0-develop.1",
52
- "@progress/kendo-angular-common": "24.0.0-develop.1",
53
- "@progress/kendo-angular-dateinputs": "24.0.0-develop.1",
54
- "@progress/kendo-angular-dialog": "24.0.0-develop.1",
55
- "@progress/kendo-angular-dropdowns": "24.0.0-develop.1",
56
- "@progress/kendo-angular-icons": "24.0.0-develop.1",
57
- "@progress/kendo-angular-inputs": "24.0.0-develop.1",
58
- "@progress/kendo-angular-intl": "24.0.0-develop.1",
59
- "@progress/kendo-angular-l10n": "24.0.0-develop.1",
60
- "@progress/kendo-angular-label": "24.0.0-develop.1",
61
- "@progress/kendo-angular-popup": "24.0.0-develop.1",
50
+ "@progress/kendo-angular-tooltip": "24.0.0-develop.11",
51
+ "@progress/kendo-angular-buttons": "24.0.0-develop.11",
52
+ "@progress/kendo-angular-common": "24.0.0-develop.11",
53
+ "@progress/kendo-angular-dateinputs": "24.0.0-develop.11",
54
+ "@progress/kendo-angular-dialog": "24.0.0-develop.11",
55
+ "@progress/kendo-angular-dropdowns": "24.0.0-develop.11",
56
+ "@progress/kendo-angular-icons": "24.0.0-develop.11",
57
+ "@progress/kendo-angular-inputs": "24.0.0-develop.11",
58
+ "@progress/kendo-angular-intl": "24.0.0-develop.11",
59
+ "@progress/kendo-angular-l10n": "24.0.0-develop.11",
60
+ "@progress/kendo-angular-label": "24.0.0-develop.11",
61
+ "@progress/kendo-angular-popup": "24.0.0-develop.11",
62
62
  "rxjs": "^6.5.3 || ^7.0.0"
63
63
  },
64
64
  "dependencies": {
65
65
  "tslib": "^2.3.1",
66
- "@progress/kendo-angular-schematics": "24.0.0-develop.1",
66
+ "@progress/kendo-angular-schematics": "24.0.0-develop.11",
67
67
  "@progress/kendo-date-math": "^1.3.2",
68
68
  "@progress/kendo-draggable": "^3.0.2",
69
69
  "@progress/kendo-file-saver": "^1.0.7",
@@ -9,10 +9,10 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '24.0.0-develop.1',
13
- '@progress/kendo-angular-navigation': '24.0.0-develop.1',
12
+ '@progress/kendo-angular-treeview': '24.0.0-develop.11',
13
+ '@progress/kendo-angular-navigation': '24.0.0-develop.11',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '24.0.0-develop.1',
15
+ '@progress/kendo-angular-dialog': '24.0.0-develop.11',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'
18
18
  } });