Sfoglia il codice sorgente

Fixes #1859 adds defaultDateLocale setting

main
Eric Amodio 2 anni fa
parent
commit
c30b269b41
17 ha cambiato i file con 78 aggiunte e 26 eliminazioni
  1. +5
    -0
      CHANGELOG.md
  2. +11
    -10
      README.md
  3. +18
    -8
      package.json
  4. +1
    -0
      src/config.ts
  5. +10
    -0
      src/extension.ts
  6. +22
    -8
      src/system/date.ts
  7. +1
    -0
      src/views/branchesView.ts
  8. +1
    -0
      src/views/commitsView.ts
  9. +1
    -0
      src/views/contributorsView.ts
  10. +1
    -0
      src/views/fileHistoryView.ts
  11. +1
    -0
      src/views/lineHistoryView.ts
  12. +1
    -0
      src/views/remotesView.ts
  13. +1
    -0
      src/views/repositoriesView.ts
  14. +1
    -0
      src/views/searchAndCompareView.ts
  15. +1
    -0
      src/views/stashesView.ts
  16. +1
    -0
      src/views/tagsView.ts
  17. +1
    -0
      src/views/worktreesView.ts

+ 5
- 0
CHANGELOG.md Vedi File

@ -6,12 +6,17 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
## [Unreleased]
### Added
- Adds `gitlens.defaultDateFormat` setting to specify the locale, a [BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag), to use for date formatting
### Changes
- Removes dependency on GitKraken Authentication extension
### Fixed
- Fixes [#1859](https://github.com/gitkraken/vscode-gitlens/issues/1859) - GitLens dates use system locale instead of vscode language setting
- Fixes [#1854](https://github.com/gitkraken/vscode-gitlens/issues/1854) - All repos have the same name
- Fixes [#1866](https://github.com/gitkraken/vscode-gitlens/issues/1866) - Copy SHA and Copy Message don't work from the views (commits, branches, etc)
- Fixes [#1865](https://github.com/gitkraken/vscode-gitlens/issues/1865) - Value shortOffset out of range for Intl.DateTimeFormat options property timeZoneName

+ 11
- 10
README.md Vedi File

@ -708,7 +708,7 @@ GitLens is highly customizable and provides many configuration settings to allow
| Name | Description |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gitlens.currentLine.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) for the current line blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| `gitlens.currentLine.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) for the current line blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
| `gitlens.currentLine.enabled` | Specifies whether to provide a blame annotation for the current line, by default. Use the _Toggle Line Blame Annotations_ command (`gitlens.toggleLineBlame`) to toggle the annotations on and off for the current window |
| `gitlens.currentLine.format` | Specifies the format of the current line blame annotation. See [_Commit Tokens_](https://github.com/gitkraken/vscode-gitlens/wiki/Custom-Formatting#commit-tokens) in the GitLens docs. Date formatting is controlled by the `gitlens.currentLine.dateFormat` setting |
| `gitlens.currentLine.pullRequests.enabled` | Specifies whether to provide information about the Pull Request (if any) that introduced the commit in the current line blame annotation. Requires a connection to a supported remote service (e.g. GitHub) |
@ -733,7 +733,7 @@ GitLens is highly customizable and provides many configuration settings to allow
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `gitlens.statusBar.alignment` | Specifies the blame alignment in the status bar<br /><br />`left` - aligns to the left<br />`right` - aligns to the right |
| `gitlens.statusBar.command` | Specifies the command to be executed when the blame status bar item is clicked<br /><br />`gitlens.toggleFileBlame` - toggles file blame annotations<br />`gitlens.toggleFileHeatmap` - toggles file heatmap<br />`gitlens.toggleFileChanges` - toggles file changes since before the commit<br />`gitlens.toggleFileChangesOnly` - toggles file changes from the commit<br />`gitlens.diffWithPrevious` - opens changes with the previous revision<br />`gitlens.revealCommitInView` - reveals the commit in the Side Bar<br />`gitlens.showCommitsInView` - searches for commits within the range<br />`gitlens.showQuickCommitDetails` - shows details of the commit<br />`gitlens.showQuickCommitFileDetails` - show file details of the commit<br />`gitlens.showQuickFileHistory` - shows the current file history<br />`gitlens.showQuickRepoHistory` - shows the current branch history<br />`gitlens.openCommitOnRemote` - opens the commit on the remote service (when available)<br />`gitlens.copyRemoteCommitUrl` - copies the remote commit url to the clipboard (when available)<br />`gitlens.openFileOnRemote` - opens the file revision on the remote service (when available)<br />`gitlens.copyRemoteFileUrl` - copies the remote file url to the clipboard (when available) |
| `gitlens.statusBar.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) in the blame information in the status bar. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| `gitlens.statusBar.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) in the blame information in the status bar. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
| `gitlens.statusBar.enabled` | Specifies whether to provide blame information in the status bar |
| `gitlens.statusBar.format` | Specifies the format of the blame information in the status bar. See [_Commit Tokens_](https://github.com/gitkraken/vscode-gitlens/wiki/Custom-Formatting#commit-tokens) in the GitLens docs. Date formatting is controlled by the `gitlens.statusBar.dateFormat` setting |
| `gitlens.statusBar.pullRequests.enabled` | Specifies whether to provide information about the Pull Request (if any) that introduced the commit in the status bar. Requires a connection to a supported remote service (e.g. GitHub) |
@ -943,7 +943,7 @@ See also [View Settings](#view-settings- 'Jump to the View settings')
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gitlens.blame.avatars` | Specifies whether to show avatar images in the gutter blame annotations |
| `gitlens.blame.compact` | Specifies whether to compact (deduplicate) matching adjacent gutter blame annotations |
| `gitlens.blame.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) in gutter blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| `gitlens.blame.dateFormat` | Specifies how to format absolute dates (e.g. using the `${date}` token) in gutter blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
| `gitlens.blame.format` | Specifies the format of the gutter blame annotations. See [_Commit Tokens_](https://github.com/gitkraken/vscode-gitlens/wiki/Custom-Formatting#commit-tokens) in the GitLens docs. Date formatting is controlled by the `gitlens.blame.dateFormat` setting |
| `gitlens.blame.heatmap.enabled` | Specifies whether to provide a heatmap indicator in the gutter blame annotations |
| `gitlens.blame.heatmap.location` | Specifies where the heatmap indicators will be shown in the gutter blame annotations<br /><br />`left` - adds a heatmap indicator on the left edge of the gutter blame annotations<br />`right` - adds a heatmap indicator on the right edge of the gutter blame annotations |
@ -997,13 +997,14 @@ See also [View Settings](#view-settings- 'Jump to the View settings')
## Date & Time Settings [#](#date--time-settings- 'Date & Time Settings')
| Name | Description |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gitlens.defaultDateFormat` | Specifies how absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| `gitlens.defaultDateShortFormat` | Specifies how short absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| `gitlens.defaultDateSource` | Specifies whether commit dates should use the authored or committed date |
| `gitlens.defaultDateStyle` | Specifies how dates will be displayed by default |
| `gitlens.defaultTimeFormat` | Specifies how times will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats |
| Name | Description |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gitlens.defaultDateFormat` | Specifies how absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
| `gitlens.defaultDateLocale` | Specifies the locale, a [BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag), to use for date formatting. For example: 'en-US' = US English, 'en-GB' = British English, 'de-DE' = German, 'ko-KR' = Korean, 'ar-EG' = Arabic, 'ja-JP = Japanese, etc. |
| `gitlens.defaultDateShortFormat` | Specifies how short absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
| `gitlens.defaultDateSource` | Specifies whether commit dates should use the authored or committed date |
| `gitlens.defaultDateStyle` | Specifies how dates will be displayed by default |
| `gitlens.defaultTimeFormat` | Specifies how times will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats |
## Menu & Toolbar Settings [#](#menu--toolbar-settings- 'Menu & Toolbar Settings')

+ 18
- 8
package.json Vedi File

@ -256,7 +256,7 @@
"null"
],
"default": null,
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) for the current line blame annotation. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) for the current line blame annotation. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 50
}
@ -450,7 +450,7 @@
"null"
],
"default": null,
"markdownDescription": "Specifies how to format absolute dates in the Git CodeLens. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how to format absolute dates in the Git CodeLens. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 73
},
@ -567,7 +567,7 @@
"null"
],
"default": null,
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) in the blame information in the status bar. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) in the blame information in the status bar. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 80
}
@ -1932,7 +1932,7 @@
"null"
],
"default": null,
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) in gutter blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how to format absolute dates (e.g. using the `${date}` token) in gutter blame annotations. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 80
}
@ -2433,27 +2433,37 @@
"null"
],
"default": null,
"markdownDescription": "Specifies how absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 20
},
"gitlens.defaultDateShortFormat": {
"gitlens.defaultDateLocale": {
"type": [
"string",
"null"
],
"default": null,
"markdownDescription": "Specifies how short absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies the locale, a [BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag), to use for date formatting. For example: 'en-US' = US English, 'en-GB' = British English, 'de-DE' = German, 'ko-KR' = Korean, 'ar-EG' = Arabic, 'ja-JP = Japanese, etc.",
"scope": "window",
"order": 21
},
"gitlens.defaultDateShortFormat": {
"type": [
"string",
"null"
],
"default": null,
"markdownDescription": "Specifies how short absolute dates will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 22
},
"gitlens.defaultTimeFormat": {
"type": [
"string",
"null"
],
"default": null,
"markdownDescription": "Specifies how times will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for valid formats",
"markdownDescription": "Specifies how times will be formatted by default. See the [Moment.js docs](https://momentjs.com/docs/#/displaying/format/) for supported formats",
"scope": "window",
"order": 30
},

+ 1
- 0
src/config.ts Vedi File

@ -35,6 +35,7 @@ export interface Config {
};
debug: boolean;
defaultDateFormat: DateTimeFormat | string | null;
defaultDateLocale: string | null;
defaultDateShortFormat: DateTimeFormat | string | null;
defaultDateSource: DateSource;
defaultDateStyle: DateStyle;

+ 10
- 0
src/extension.ts Vedi File

@ -14,6 +14,7 @@ import { Messages } from './messages';
import { registerPartnerActionRunners } from './partners';
import { StorageKeys, SyncedStorageKeys } from './storage';
import { executeCommand, registerCommands } from './system/command';
import { setDefaultDateLocales } from './system/date';
import { once } from './system/event';
import { Stopwatch } from './system/stopwatch';
import { compare } from './system/version';
@ -95,6 +96,15 @@ export async function activate(context: ExtensionContext): Promise
Configuration.configure(context);
const cfg = configuration.get();
setDefaultDateLocales(cfg.defaultDateLocale);
context.subscriptions.push(
configuration.onDidChange(e => {
if (!e.affectsConfiguration('gitlens.defaultDateLocale')) return;
setDefaultDateLocales(configuration.get('defaultDateLocale'));
}),
);
// await migrateSettings(context, previousVersion);
const container = Container.create(context, cfg);

+ 22
- 8
src/system/date.ts Vedi File

@ -1,11 +1,7 @@
// NOTE@eamodio If this changes we need to update the replacement function too (since its parameter number/order relies on the matching)
const customDateTimeFormatParserRegex =
/(?<literal>\[.*?\])|(?<year>YYYY|YY)|(?<month>M{1,4})|(?<day>Do|DD?)|(?<weekday>d{2,4})|(?<hour>HH?|hh?)|(?<minute>mm?)|(?<second>ss?)|(?<fractionalSecond>SSS)|(?<dayPeriod>A|a)|(?<timeZoneName>ZZ?)/g;
const dateTimeFormatCache = new Map<string | undefined, Intl.DateTimeFormat>();
const dateTimeFormatRegex = /(?<dateStyle>full|long|medium|short)(?:\+(?<timeStyle>full|long|medium|short))?/;
let defaultRelativeTimeFormat: InstanceType<typeof Intl.RelativeTimeFormat> | undefined;
let defaultShortRelativeTimeFormat: InstanceType<typeof Intl.RelativeTimeFormat> | undefined;
let locale: string | undefined;
const relativeUnitThresholds: [Intl.RelativeTimeFormatUnit, number, string][] = [
['year', 24 * 60 * 60 * 1000 * 365, 'yr'],
['month', (24 * 60 * 60 * 1000 * 365) / 12, 'mo'],
@ -20,6 +16,24 @@ type DateStyle = 'full' | 'long' | 'medium' | 'short';
type TimeStyle = 'full' | 'long' | 'medium' | 'short';
export type DateTimeFormat = DateStyle | `${DateStyle}+${TimeStyle}`;
let locale: string | undefined;
const dateTimeFormatCache = new Map<string | undefined, Intl.DateTimeFormat>();
let defaultLocales: string[] | undefined;
let defaultRelativeTimeFormat: InstanceType<typeof Intl.RelativeTimeFormat> | undefined;
let defaultShortRelativeTimeFormat: InstanceType<typeof Intl.RelativeTimeFormat> | undefined;
export function setDefaultDateLocales(locales: string | string[] | null | undefined) {
if (typeof locales === 'string') {
defaultLocales = [locales];
} else {
defaultLocales = locales ?? undefined;
}
defaultRelativeTimeFormat = undefined;
defaultShortRelativeTimeFormat = undefined;
dateTimeFormatCache.clear();
locale = undefined;
}
export function createFromDateDelta(
date: Date,
delta: { years?: number; months?: number; days?: number; hours?: number; minutes?: number; seconds?: number },
@ -67,7 +81,7 @@ export function fromNow(date: Date, short?: boolean): string {
} else if (defaultRelativeTimeFormat != null) {
locale = defaultRelativeTimeFormat.resolvedOptions().locale;
} else {
defaultShortRelativeTimeFormat = new Intl.RelativeTimeFormat(undefined, {
defaultShortRelativeTimeFormat = new Intl.RelativeTimeFormat(defaultLocales, {
localeMatcher: 'best fit',
numeric: 'always',
style: 'narrow',
@ -82,7 +96,7 @@ export function fromNow(date: Date, short?: boolean): string {
}
if (defaultShortRelativeTimeFormat == null) {
defaultShortRelativeTimeFormat = new Intl.RelativeTimeFormat(undefined, {
defaultShortRelativeTimeFormat = new Intl.RelativeTimeFormat(defaultLocales, {
localeMatcher: 'best fit',
numeric: 'always',
style: 'narrow',
@ -93,7 +107,7 @@ export function fromNow(date: Date, short?: boolean): string {
}
if (defaultRelativeTimeFormat == null) {
defaultRelativeTimeFormat = new Intl.RelativeTimeFormat(undefined, {
defaultRelativeTimeFormat = new Intl.RelativeTimeFormat(defaultLocales, {
localeMatcher: 'best fit',
numeric: 'auto',
style: 'long',
@ -112,7 +126,7 @@ export function formatDate(date: Date, format: 'full' | 'long' | 'medium' | 'sho
let formatter = dateTimeFormatCache.get(format);
if (formatter == null) {
const options = getDateTimeFormatOptionsFromFormatString(format);
formatter = new Intl.DateTimeFormat(undefined, options);
formatter = new Intl.DateTimeFormat(defaultLocales, options);
dateTimeFormatCache.set(format, formatter);
}

+ 1
- 0
src/views/branchesView.ts Vedi File

@ -204,6 +204,7 @@ export class BranchesView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/commitsView.ts Vedi File

@ -271,6 +271,7 @@ export class CommitsView extends ViewBase {
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/contributorsView.ts Vedi File

@ -204,6 +204,7 @@ export class ContributorsView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/fileHistoryView.ts Vedi File

@ -100,6 +100,7 @@ export class FileHistoryView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/lineHistoryView.ts Vedi File

@ -65,6 +65,7 @@ export class LineHistoryView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/remotesView.ts Vedi File

@ -188,6 +188,7 @@ export class RemotesView extends ViewBase {
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/repositoriesView.ts Vedi File

@ -265,6 +265,7 @@ export class RepositoriesView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/searchAndCompareView.ts Vedi File

@ -345,6 +345,7 @@ export class SearchAndCompareView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/stashesView.ts Vedi File

@ -146,6 +146,7 @@ export class StashesView extends ViewBase {
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/tagsView.ts Vedi File

@ -166,6 +166,7 @@ export class TagsView extends ViewBase {
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

+ 1
- 0
src/views/worktreesView.ts Vedi File

@ -247,6 +247,7 @@ export class WorktreesView extends ViewBase
if (
!changed &&
!configuration.changed(e, 'defaultDateFormat') &&
!configuration.changed(e, 'defaultDateLocale') &&
!configuration.changed(e, 'defaultDateShortFormat') &&
!configuration.changed(e, 'defaultDateSource') &&
!configuration.changed(e, 'defaultDateStyle') &&

Caricamento…
Annulla
Salva