diff --git a/.changeset/clever-weeks-grin.md b/.changeset/clever-weeks-grin.md
new file mode 100644
index 00000000000..f11e5cfa9b5
--- /dev/null
+++ b/.changeset/clever-weeks-grin.md
@@ -0,0 +1,7 @@
+---
+"@siemens/ix-angular": minor
+"@siemens/ix": minor
+"@siemens/ix-vue": minor
+---
+
+feat(core/date-dropdown|date-picker|datetime-picker): add missing properties to picker components
diff --git a/packages/angular/src/components.ts b/packages/angular/src/components.ts
index 9eb6d100afe..13560587b85 100644
--- a/packages/angular/src/components.ts
+++ b/packages/angular/src/components.ts
@@ -488,7 +488,7 @@ export declare interface IxContentHeader extends Components.IxContentHeader {
@ProxyCmp({
- inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'disabled', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'maxDate', 'minDate', 'range', 'to'],
+ inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'disabled', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'locale', 'maxDate', 'minDate', 'range', 'to', 'weekStartIndex'],
methods: ['getDateRange']
})
@Component({
@@ -496,7 +496,7 @@ export declare interface IxContentHeader extends Components.IxContentHeader {
changeDetection: ChangeDetectionStrategy.OnPush,
template: '',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
- inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'disabled', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'maxDate', 'minDate', 'range', 'to'],
+ inputs: ['customRangeAllowed', 'dateRangeId', 'dateRangeOptions', 'disabled', 'format', 'from', 'i18nCustomItem', 'i18nDone', 'i18nNoRange', 'locale', 'maxDate', 'minDate', 'range', 'to', 'weekStartIndex'],
})
export class IxDateDropdown {
protected el: HTMLElement;
diff --git a/packages/core/component-doc.json b/packages/core/component-doc.json
index 15c74bf5562..ad52a530aa9 100644
--- a/packages/core/component-doc.json
+++ b/packages/core/component-doc.json
@@ -3579,6 +3579,32 @@
"optional": false,
"required": false
},
+ {
+ "name": "locale",
+ "type": "string",
+ "complexType": {
+ "original": "string",
+ "resolved": "string",
+ "references": {}
+ },
+ "mutable": false,
+ "attr": "locale",
+ "reflectToAttr": false,
+ "docs": "Locale identifier (e.g. 'en' or 'de').",
+ "docsTags": [
+ {
+ "name": "since",
+ "text": "2.6.0"
+ }
+ ],
+ "values": [
+ {
+ "type": "string"
+ }
+ ],
+ "optional": true,
+ "required": false
+ },
{
"name": "maxDate",
"type": "string",
@@ -3666,6 +3692,33 @@
],
"optional": false,
"required": false
+ },
+ {
+ "name": "weekStartIndex",
+ "type": "number",
+ "complexType": {
+ "original": "number",
+ "resolved": "number",
+ "references": {}
+ },
+ "mutable": false,
+ "attr": "week-start-index",
+ "reflectToAttr": false,
+ "docs": "The index of which day to start the week on, based on the Locale#weekdays array.\nE.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.",
+ "docsTags": [
+ {
+ "name": "since",
+ "text": "2.6.0"
+ }
+ ],
+ "default": "0",
+ "values": [
+ {
+ "type": "number"
+ }
+ ],
+ "optional": false,
+ "required": false
}
],
"methods": [
@@ -3954,7 +4007,7 @@
"mutable": false,
"attr": "locale",
"reflectToAttr": false,
- "docs": "Format of time string\nSee {@link \"https://moment.github.io/luxon/#/formatting?id=table-of-tokens\"} for all available tokens.",
+ "docs": "Locale identifier (e.g. 'en' or 'de').",
"docsTags": [
{
"name": "since",
@@ -17749,6 +17802,11 @@
"docstring": "",
"path": "src/components/css-grid/css-grid.tsx"
},
+ "src/components/date-time-card/date-time-card.tsx::DateTimeCardCorners": {
+ "declaration": "export type DateTimeCardCorners = 'rounded' | 'left' | 'right' | 'straight';",
+ "docstring": "",
+ "path": "src/components/date-time-card/date-time-card.tsx"
+ },
"src/components/date-dropdown/date-dropdown.tsx::DateDropdownOption": {
"declaration": "{\n id: string;\n label: string;\n from: string;\n to: string;\n}",
"docstring": "",
@@ -17759,11 +17817,6 @@
"docstring": "",
"path": "src/components/date-dropdown/date-dropdown.tsx"
},
- "src/components/date-time-card/date-time-card.tsx::DateTimeCardCorners": {
- "declaration": "export type DateTimeCardCorners = 'rounded' | 'left' | 'right' | 'straight';",
- "docstring": "",
- "path": "src/components/date-time-card/date-time-card.tsx"
- },
"src/components/date-picker/date-picker.tsx::DateChangeEvent": {
"declaration": "{\n from: string;\n to: string;\n}",
"docstring": "",
@@ -17785,7 +17838,7 @@
"path": "src/components/dropdown-button/dropdown-button.tsx"
},
"src/components/dropdown/placement.ts::AlignedPlacement": {
- "declaration": "\"bottom-start\" | \"top-start\" | \"top-end\" | \"right-start\" | \"right-end\" | \"bottom-end\" | \"left-start\" | \"left-end\"",
+ "declaration": "\"bottom-start\" | \"left-start\" | \"left-end\" | \"right-start\" | \"right-end\" | \"top-start\" | \"top-end\" | \"bottom-end\"",
"docstring": "",
"path": "src/components/dropdown/placement.ts"
},
diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts
index 00edf5ba082..588eb0da58b 100644
--- a/packages/core/src/components.d.ts
+++ b/packages/core/src/components.d.ts
@@ -576,6 +576,11 @@ export namespace Components {
* Text for the done button. Will be used for translation.
*/
"i18nNoRange": string;
+ /**
+ * Locale identifier (e.g. 'en' or 'de').
+ * @since 2.6.0
+ */
+ "locale"?: string;
/**
* The latest date that can be selected by the date picker. If not set there will be no restriction.
*/
@@ -593,6 +598,11 @@ export namespace Components {
*/
"to": string;
"today": string;
+ /**
+ * The index of which day to start the week on, based on the Locale#weekdays array. E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.
+ * @since 2.6.0
+ */
+ "weekStartIndex": number;
}
interface IxDatePicker {
/**
@@ -628,7 +638,7 @@ export namespace Components {
*/
"individual": boolean;
/**
- * Format of time string See {@link "https://moment.github.io/luxon/#/formatting?id=table-of-tokens"} for all available tokens.
+ * Locale identifier (e.g. 'en' or 'de').
* @since 2.1.0
*/
"locale"?: string;
@@ -4669,6 +4679,11 @@ declare namespace LocalJSX {
* Text for the done button. Will be used for translation.
*/
"i18nNoRange"?: string;
+ /**
+ * Locale identifier (e.g. 'en' or 'de').
+ * @since 2.6.0
+ */
+ "locale"?: string;
/**
* The latest date that can be selected by the date picker. If not set there will be no restriction.
*/
@@ -4690,6 +4705,11 @@ declare namespace LocalJSX {
*/
"to"?: string;
"today"?: string;
+ /**
+ * The index of which day to start the week on, based on the Locale#weekdays array. E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.
+ * @since 2.6.0
+ */
+ "weekStartIndex"?: number;
}
interface IxDatePicker {
/**
@@ -4721,7 +4741,7 @@ declare namespace LocalJSX {
*/
"individual"?: boolean;
/**
- * Format of time string See {@link "https://moment.github.io/luxon/#/formatting?id=table-of-tokens"} for all available tokens.
+ * Locale identifier (e.g. 'en' or 'de').
* @since 2.1.0
*/
"locale"?: string;
diff --git a/packages/core/src/components/date-dropdown/date-dropdown.tsx b/packages/core/src/components/date-dropdown/date-dropdown.tsx
index 80a2a0f6f80..78def47fefb 100644
--- a/packages/core/src/components/date-dropdown/date-dropdown.tsx
+++ b/packages/core/src/components/date-dropdown/date-dropdown.tsx
@@ -21,6 +21,7 @@ import {
Watch,
} from '@stencil/core';
import { DateTime } from 'luxon';
+import { IxDatePickerComponent } from '../date-picker/date-picker-component';
import { makeRef } from '../utils/make-ref';
export type DateDropdownOption = {
@@ -44,7 +45,7 @@ export type DateRangeChangeEvent = {
styleUrl: 'date-dropdown.scss',
shadow: true,
})
-export class DateDropdown {
+export class DateDropdown implements Omit {
@Element() hostElement!: HTMLIxDateDropdownElement;
/**
@@ -144,6 +145,21 @@ export class DateDropdown {
this.onDateRangeIdChange();
}
+ /**
+ * Locale identifier (e.g. 'en' or 'de').
+ *
+ * @since 2.6.0
+ */
+ @Prop() locale?: string;
+
+ /**
+ * The index of which day to start the week on, based on the Locale#weekdays array.
+ * E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday.
+ *
+ * @since 2.6.0
+ */
+ @Prop() weekStartIndex = 0;
+
/**
* Text for custom dropdown item. Will be used for translation.
*/
@@ -365,6 +381,7 @@ export class DateDropdown {
{
e.stopPropagation();
this.currentRangeValue = {
@@ -381,6 +398,7 @@ export class DateDropdown {
minDate={this.minDate}
maxDate={this.maxDate}
today={this.today}
+ weekStartIndex={this.weekStartIndex}
>
{this.dayNames.map((name) => (
- {name.slice(0, 3)}
+
{name.slice(0, 3)}
))}
{this.calendar.map((week) => {
diff --git a/packages/core/src/components/datetime-picker/datetime-picker.tsx b/packages/core/src/components/datetime-picker/datetime-picker.tsx
index 7324899a1f0..3c71b684ad4 100644
--- a/packages/core/src/components/datetime-picker/datetime-picker.tsx
+++ b/packages/core/src/components/datetime-picker/datetime-picker.tsx
@@ -9,6 +9,7 @@
import { Component, Event, EventEmitter, h, Host, Prop } from '@stencil/core';
import type { DateChangeEvent } from '../date-picker/date-picker';
+import { IxDatePickerComponent } from '../date-picker/date-picker-component';
export type DateTimeSelectEvent = {
from: string;
@@ -25,7 +26,9 @@ export type DateTimeDateChangeEvent =
styleUrl: 'datetime-picker.scss',
shadow: true,
})
-export class DatetimePicker {
+export class DatetimePicker
+ implements Omit
+{
/**
* If true a date-range can be selected (from/to).
*/
@@ -241,7 +244,6 @@ export class DatetimePicker {
(this.timePickerElement = ref)}
- corners="right"
standaloneAppearance={false}
showHour={this.showHour}
showMinutes={this.showMinutes}
diff --git a/packages/core/src/tests/date-picker/date-picker.e2e.ts b/packages/core/src/tests/date-picker/date-picker.e2e.ts
index 86ab0ad9beb..797d7b82b8c 100644
--- a/packages/core/src/tests/date-picker/date-picker.e2e.ts
+++ b/packages/core/src/tests/date-picker/date-picker.e2e.ts
@@ -13,15 +13,16 @@ import { regressionTest } from '@utils/test';
regressionTest.describe('date picker', () => {
regressionTest('basic', async ({ page }) => {
await page.goto('date-picker/basic');
- expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({
- maxDiffPixels: 4,
- });
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
});
regressionTest('range', async ({ page }) => {
await page.goto('date-picker/range');
- expect(await page.screenshot({ fullPage: true })).toMatchSnapshot({
- maxDiffPixels: 4,
- });
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
+ });
+
+ regressionTest('locales', async ({ page }) => {
+ await page.goto('date-picker/i18n');
+ expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
});
});
diff --git a/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-dark-linux.png b/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-dark-linux.png
new file mode 100644
index 00000000000..6bcd5de2f07
Binary files /dev/null and b/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-dark-linux.png differ
diff --git a/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-light-linux.png b/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-light-linux.png
new file mode 100644
index 00000000000..9e51e94c957
Binary files /dev/null and b/packages/core/src/tests/date-picker/date-picker.e2e.ts-snapshots/date-picker-locales-1-chromium---theme-classic-light-linux.png differ
diff --git a/packages/core/src/tests/date-picker/i18n/index.html b/packages/core/src/tests/date-picker/i18n/index.html
new file mode 100644
index 00000000000..8c00b845498
--- /dev/null
+++ b/packages/core/src/tests/date-picker/i18n/index.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ Stencil Component Starter
+
+
+
+
+
+
+
+
+
diff --git a/packages/vue/src/components.ts b/packages/vue/src/components.ts
index 1ea941c4d8b..7c74b6097b8 100644
--- a/packages/vue/src/components.ts
+++ b/packages/vue/src/components.ts
@@ -285,6 +285,8 @@ export const IxDateDropdown = /*@__PURE__*/ defineContainer(
'dateRangeId',
'customRangeAllowed',
'dateRangeOptions',
+ 'locale',
+ 'weekStartIndex',
'i18nCustomItem',
'i18nDone',
'i18nNoRange',