@tricoteuses/assemblee 1.10.5 → 2.0.0
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.
- package/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +340 -0
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +32 -94
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -74
- package/lib/cleaners/xml.mjs +0 -59
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1215
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -613
- package/lib/scripts/clean_reorganized_data.mjs +0 -276
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -965
- package/lib/types/acteurs_et_organes.mjs +0 -906
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
package/lib/dates.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.define-property.js");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.dateFromNullableDateOrIsoString = dateFromNullableDateOrIsoString;
|
|
8
|
-
exports.dateFromYearMonthDayTimezoneString = dateFromYearMonthDayTimezoneString;
|
|
9
|
-
exports.displayDateFromLocalIsoString = displayDateFromLocalIsoString;
|
|
10
|
-
exports.existingDateToJson = void 0;
|
|
11
|
-
exports.formatRelativeFrenchTime = formatRelativeFrenchTime;
|
|
12
|
-
exports.frenchDateSameYearShortFormat = exports.frenchDateFormat = void 0;
|
|
13
|
-
exports.frenchDateWithoutDayOfWeekFromDateOrString = frenchDateWithoutDayOfWeekFromDateOrString;
|
|
14
|
-
exports.frenchTimeFormat = void 0;
|
|
15
|
-
exports.frenchTimeFromDateOrString = frenchTimeFromDateOrString;
|
|
16
|
-
exports.localIso8601StringFromDate = localIso8601StringFromDate;
|
|
17
|
-
exports.patchedDateToJson = void 0;
|
|
18
|
-
require("core-js/modules/es.date.to-iso-string.js");
|
|
19
|
-
require("core-js/modules/es.date.to-json.js");
|
|
20
|
-
require("core-js/modules/es.date.to-string.js");
|
|
21
|
-
require("core-js/modules/es.object.to-string.js");
|
|
22
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
23
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
24
|
-
require("core-js/modules/es.string.ends-with.js");
|
|
25
|
-
require("core-js/modules/es.string.replace.js");
|
|
26
|
-
var _format = require("date-fns/format");
|
|
27
|
-
var _fr = require("date-fns/locale/fr");
|
|
28
|
-
var _parse = require("date-fns/parse");
|
|
29
|
-
var _parseISO = require("date-fns/parseISO");
|
|
30
|
-
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
31
|
-
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
32
|
-
var existingDateToJson = exports.existingDateToJson = Date.prototype.toJSON;
|
|
33
|
-
var _patchedDateToJson = exports.patchedDateToJson = function patchedDateToJson() {
|
|
34
|
-
try {
|
|
35
|
-
var hours = this.getHours();
|
|
36
|
-
var minutes = this.getMinutes();
|
|
37
|
-
var seconds = this.getSeconds();
|
|
38
|
-
var milliseconds = this.getMilliseconds();
|
|
39
|
-
var timezoneOffsetInHours = -(this.getTimezoneOffset() / 60); //UTC minus local time
|
|
40
|
-
// When year <= 1900, timezoneOffsetInHours is 0.15, minutes is 9 and seconds is 21!
|
|
41
|
-
if (timezoneOffsetInHours === 0.15 && hours === 0 && minutes === 9 && seconds === 21 || hours - timezoneOffsetInHours === 0 && minutes === 0 && seconds === 0 && milliseconds === 0) {
|
|
42
|
-
return this.toISOString().split("T")[0];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// It's a bit unfortunate that we need ttimezoneOffsetInHours = -(this.getTimezoneOffset() / 60) o construct a new Date instance
|
|
46
|
-
// (we don't want _this_ Date instance to be modified).
|
|
47
|
-
var correctedDate = new Date(this.getFullYear(), this.getMonth(), this.getDate(), hours, minutes, seconds, milliseconds);
|
|
48
|
-
correctedDate.setHours(this.getHours() + timezoneOffsetInHours);
|
|
49
|
-
// Remove milliseconds & trailing "Z".
|
|
50
|
-
var iso = correctedDate.toISOString().replace(/(\.0+)?Z$/, "");
|
|
51
|
-
var sign = timezoneOffsetInHours >= 0 ? "+" : "-";
|
|
52
|
-
var leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
53
|
-
return iso + sign + leadingZero + Math.abs(timezoneOffsetInHours).toString().split(".")[0] + ":00";
|
|
54
|
-
} catch (e) {
|
|
55
|
-
Date.prototype.toJSON = existingDateToJson;
|
|
56
|
-
var jsonDate = this.toJSON();
|
|
57
|
-
Date.prototype.toJSON = _patchedDateToJson;
|
|
58
|
-
return jsonDate;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
var frenchDateFormat = exports.frenchDateFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
62
|
-
day: "numeric",
|
|
63
|
-
month: "long",
|
|
64
|
-
weekday: "long",
|
|
65
|
-
year: "numeric"
|
|
66
|
-
});
|
|
67
|
-
var frenchDateSameYearShortFormat = exports.frenchDateSameYearShortFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
68
|
-
day: "numeric",
|
|
69
|
-
month: "short"
|
|
70
|
-
});
|
|
71
|
-
var frenchTimeFormat = exports.frenchTimeFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
72
|
-
hour: "numeric",
|
|
73
|
-
minute: "2-digit"
|
|
74
|
-
});
|
|
75
|
-
function dateFromNullableDateOrIsoString(date, defaultValue) {
|
|
76
|
-
if (date instanceof Date) {
|
|
77
|
-
return date;
|
|
78
|
-
}
|
|
79
|
-
if (typeof date === "string") {
|
|
80
|
-
return (0, _parseISO.parseISO)(date);
|
|
81
|
-
}
|
|
82
|
-
return defaultValue;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/// Convert strings like "2017-11-24+01:00" to dates.
|
|
86
|
-
function dateFromYearMonthDayTimezoneString(dateString) {
|
|
87
|
-
return (0, _parse.parse)(dateString, "yyyy-MM-ddXXX", new Date());
|
|
88
|
-
}
|
|
89
|
-
function displayDateFromLocalIsoString(dateString) {
|
|
90
|
-
var date = (0, _parseISO.parseISO)(dateString);
|
|
91
|
-
dateString = (0, _format.format)(date, "EEEE d LLLL yyyy H'h'mm", {
|
|
92
|
-
locale: _fr.fr
|
|
93
|
-
});
|
|
94
|
-
if (dateString.endsWith(" 0h00")) {
|
|
95
|
-
dateString = dateString.substring(0, dateString.length - 5);
|
|
96
|
-
}
|
|
97
|
-
return dateString;
|
|
98
|
-
}
|
|
99
|
-
function formatRelativeFrenchTime(date, now) {
|
|
100
|
-
if (date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()) {
|
|
101
|
-
return frenchTimeFormat.format(date);
|
|
102
|
-
}
|
|
103
|
-
return frenchDateSameYearShortFormat.format(date);
|
|
104
|
-
}
|
|
105
|
-
function frenchDateWithoutDayOfWeekFromDateOrString(dateOrString) {
|
|
106
|
-
var date = dateOrString instanceof Date ? dateOrString : (0, _parseISO.parseISO)(dateOrString);
|
|
107
|
-
var dateString = (0, _format.format)(date, "d LLLL yyyy H'h'mm", {
|
|
108
|
-
locale: _fr.fr
|
|
109
|
-
});
|
|
110
|
-
if (dateString.endsWith(" 0h00")) {
|
|
111
|
-
dateString = dateString.substring(0, dateString.length - 5);
|
|
112
|
-
}
|
|
113
|
-
return dateString;
|
|
114
|
-
}
|
|
115
|
-
function frenchTimeFromDateOrString(dateOrString) {
|
|
116
|
-
var date = dateOrString instanceof Date ? dateOrString : (0, _parseISO.parseISO)(dateOrString);
|
|
117
|
-
return (0, _format.format)(date, "H'h'mm", {
|
|
118
|
-
locale: _fr.fr
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
function localIso8601StringFromDate(date) {
|
|
122
|
-
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9ybWF0IiwicmVxdWlyZSIsIl9mciIsIl9wYXJzZSIsIl9wYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsImV4cG9ydHMiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJob3VycyIsImdldEhvdXJzIiwibWludXRlcyIsImdldE1pbnV0ZXMiLCJzZWNvbmRzIiwiZ2V0U2Vjb25kcyIsIm1pbGxpc2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsInRpbWV6b25lT2Zmc2V0SW5Ib3VycyIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJzcGxpdCIsImNvcnJlY3RlZERhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInNldEhvdXJzIiwiaXNvIiwicmVwbGFjZSIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJ0b1N0cmluZyIsImUiLCJqc29uRGF0ZSIsImZyZW5jaERhdGVGb3JtYXQiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJkYXkiLCJtb250aCIsIndlZWtkYXkiLCJ5ZWFyIiwiZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQiLCJmcmVuY2hUaW1lRm9ybWF0IiwiaG91ciIsIm1pbnV0ZSIsImRhdGVGcm9tTnVsbGFibGVEYXRlT3JJc29TdHJpbmciLCJkYXRlIiwiZGVmYXVsdFZhbHVlIiwicGFyc2VJU08iLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsInBhcnNlIiwiZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmciLCJmb3JtYXQiLCJsb2NhbGUiLCJmckxvY2FsZSIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lIiwibm93IiwiZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nIiwiZGF0ZU9yU3RyaW5nIiwiZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmciLCJsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZSIsImdldFRpbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdFwiXG5pbXBvcnQgeyBmciBhcyBmckxvY2FsZSB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGUvZnJcIlxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IHsgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VJU09cIlxuXG4vLyBQYXRjaCBEYXRlLnByb3RvdHlwZS50b0pTT04gdG8gZW5zdXJlIHRoYXQgZGF0ZXMga2VlcCB0aGVpciB0aW1lem9uZSB3aGVuIGNvbnZlcnRlZCB0byBzdHJpbmdzLlxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzEwOTYxMzAvaG93LXRvLWpzb24tc3RyaW5naWZ5LWEtamF2YXNjcmlwdC1kYXRlLWFuZC1wcmVzZXJ2ZS10aW1lem9uZVxuZXhwb3J0IGNvbnN0IGV4aXN0aW5nRGF0ZVRvSnNvbiA9IERhdGUucHJvdG90eXBlLnRvSlNPTlxuZXhwb3J0IGNvbnN0IHBhdGNoZWREYXRlVG9Kc29uID0gZnVuY3Rpb24gKHRoaXM6IERhdGUpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIGNvbnN0IGhvdXJzID0gdGhpcy5nZXRIb3VycygpXG4gICAgY29uc3QgbWludXRlcyA9IHRoaXMuZ2V0TWludXRlcygpXG4gICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuZ2V0U2Vjb25kcygpXG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gdGhpcy5nZXRNaWxsaXNlY29uZHMoKVxuXG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIC8vIFdoZW4geWVhciA8PSAxOTAwLCB0aW1lem9uZU9mZnNldEluSG91cnMgaXMgMC4xNSwgbWludXRlcyBpcyA5IGFuZCBzZWNvbmRzIGlzIDIxIVxuICAgIGlmIChcbiAgICAgICh0aW1lem9uZU9mZnNldEluSG91cnMgPT09IDAuMTUgJiZcbiAgICAgICAgaG91cnMgPT09IDAgJiZcbiAgICAgICAgbWludXRlcyA9PT0gOSAmJlxuICAgICAgICBzZWNvbmRzID09PSAyMSkgfHxcbiAgICAgIChob3VycyAtIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSAwICYmXG4gICAgICAgIHNlY29uZHMgPT09IDAgJiZcbiAgICAgICAgbWlsbGlzZWNvbmRzID09PSAwKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICB9XG5cbiAgICAvLyBJdCdzIGEgYml0IHVuZm9ydHVuYXRlIHRoYXQgd2UgbmVlZCB0dGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgbyBjb25zdHJ1Y3QgYSBuZXcgRGF0ZSBpbnN0YW5jZVxuICAgIC8vICh3ZSBkb24ndCB3YW50IF90aGlzXyBEYXRlIGluc3RhbmNlIHRvIGJlIG1vZGlmaWVkKS5cbiAgICBjb25zdCBjb3JyZWN0ZWREYXRlID0gbmV3IERhdGUoXG4gICAgICB0aGlzLmdldEZ1bGxZZWFyKCksXG4gICAgICB0aGlzLmdldE1vbnRoKCksXG4gICAgICB0aGlzLmdldERhdGUoKSxcbiAgICAgIGhvdXJzLFxuICAgICAgbWludXRlcyxcbiAgICAgIHNlY29uZHMsXG4gICAgICBtaWxsaXNlY29uZHMsXG4gICAgKVxuICAgIGNvcnJlY3RlZERhdGUuc2V0SG91cnModGhpcy5nZXRIb3VycygpICsgdGltZXpvbmVPZmZzZXRJbkhvdXJzKVxuICAgIC8vIFJlbW92ZSBtaWxsaXNlY29uZHMgJiB0cmFpbGluZyBcIlpcIi5cbiAgICBjb25zdCBpc28gPSBjb3JyZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvKFxcLjArKT9aJC8sIFwiXCIpXG4gICAgY29uc3Qgc2lnbiA9IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA+PSAwID8gXCIrXCIgOiBcIi1cIlxuICAgIGNvbnN0IGxlYWRpbmdaZXJvID0gTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKSA8IDEwID8gXCIwXCIgOiBcIlwiXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLEdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUVBO0FBQ0E7QUFDTyxJQUFNSSxrQkFBa0IsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHRSxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUNoRCxJQUFNQyxrQkFBaUIsR0FBQUosT0FBQSxDQUFBSSxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBaUM7RUFDN0QsSUFBSTtJQUNGLElBQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLElBQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLElBQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLElBQU1DLHFCQUFxQixHQUFHLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUM7SUFDL0Q7SUFDQSxJQUNHRCxxQkFBcUIsS0FBSyxJQUFJLElBQzdCUixL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
|
package/lib/dates.mjs
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { format } from "date-fns/format";
|
|
2
|
-
import { fr as frLocale } from "date-fns/locale/fr";
|
|
3
|
-
import { parse } from "date-fns/parse";
|
|
4
|
-
import { parseISO } from "date-fns/parseISO";
|
|
5
|
-
|
|
6
|
-
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
7
|
-
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
8
|
-
export const existingDateToJson = Date.prototype.toJSON;
|
|
9
|
-
export const patchedDateToJson = function () {
|
|
10
|
-
try {
|
|
11
|
-
const hours = this.getHours();
|
|
12
|
-
const minutes = this.getMinutes();
|
|
13
|
-
const seconds = this.getSeconds();
|
|
14
|
-
const milliseconds = this.getMilliseconds();
|
|
15
|
-
const timezoneOffsetInHours = -(this.getTimezoneOffset() / 60); //UTC minus local time
|
|
16
|
-
// When year <= 1900, timezoneOffsetInHours is 0.15, minutes is 9 and seconds is 21!
|
|
17
|
-
if (timezoneOffsetInHours === 0.15 && hours === 0 && minutes === 9 && seconds === 21 || hours - timezoneOffsetInHours === 0 && minutes === 0 && seconds === 0 && milliseconds === 0) {
|
|
18
|
-
return this.toISOString().split("T")[0];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// It's a bit unfortunate that we need ttimezoneOffsetInHours = -(this.getTimezoneOffset() / 60) o construct a new Date instance
|
|
22
|
-
// (we don't want _this_ Date instance to be modified).
|
|
23
|
-
const correctedDate = new Date(this.getFullYear(), this.getMonth(), this.getDate(), hours, minutes, seconds, milliseconds);
|
|
24
|
-
correctedDate.setHours(this.getHours() + timezoneOffsetInHours);
|
|
25
|
-
// Remove milliseconds & trailing "Z".
|
|
26
|
-
const iso = correctedDate.toISOString().replace(/(\.0+)?Z$/, "");
|
|
27
|
-
const sign = timezoneOffsetInHours >= 0 ? "+" : "-";
|
|
28
|
-
const leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
29
|
-
return iso + sign + leadingZero + Math.abs(timezoneOffsetInHours).toString().split(".")[0] + ":00";
|
|
30
|
-
} catch (e) {
|
|
31
|
-
Date.prototype.toJSON = existingDateToJson;
|
|
32
|
-
const jsonDate = this.toJSON();
|
|
33
|
-
Date.prototype.toJSON = patchedDateToJson;
|
|
34
|
-
return jsonDate;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
export const frenchDateFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
38
|
-
day: "numeric",
|
|
39
|
-
month: "long",
|
|
40
|
-
weekday: "long",
|
|
41
|
-
year: "numeric"
|
|
42
|
-
});
|
|
43
|
-
export const frenchDateSameYearShortFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
44
|
-
day: "numeric",
|
|
45
|
-
month: "short"
|
|
46
|
-
});
|
|
47
|
-
export const frenchTimeFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
48
|
-
hour: "numeric",
|
|
49
|
-
minute: "2-digit"
|
|
50
|
-
});
|
|
51
|
-
export function dateFromNullableDateOrIsoString(date, defaultValue) {
|
|
52
|
-
if (date instanceof Date) {
|
|
53
|
-
return date;
|
|
54
|
-
}
|
|
55
|
-
if (typeof date === "string") {
|
|
56
|
-
return parseISO(date);
|
|
57
|
-
}
|
|
58
|
-
return defaultValue;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/// Convert strings like "2017-11-24+01:00" to dates.
|
|
62
|
-
export function dateFromYearMonthDayTimezoneString(dateString) {
|
|
63
|
-
return parse(dateString, "yyyy-MM-ddXXX", new Date());
|
|
64
|
-
}
|
|
65
|
-
export function displayDateFromLocalIsoString(dateString) {
|
|
66
|
-
const date = parseISO(dateString);
|
|
67
|
-
dateString = format(date, "EEEE d LLLL yyyy H'h'mm", {
|
|
68
|
-
locale: frLocale
|
|
69
|
-
});
|
|
70
|
-
if (dateString.endsWith(" 0h00")) {
|
|
71
|
-
dateString = dateString.substring(0, dateString.length - 5);
|
|
72
|
-
}
|
|
73
|
-
return dateString;
|
|
74
|
-
}
|
|
75
|
-
export function formatRelativeFrenchTime(date, now) {
|
|
76
|
-
if (date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()) {
|
|
77
|
-
return frenchTimeFormat.format(date);
|
|
78
|
-
}
|
|
79
|
-
return frenchDateSameYearShortFormat.format(date);
|
|
80
|
-
}
|
|
81
|
-
export function frenchDateWithoutDayOfWeekFromDateOrString(dateOrString) {
|
|
82
|
-
const date = dateOrString instanceof Date ? dateOrString : parseISO(dateOrString);
|
|
83
|
-
let dateString = format(date, "d LLLL yyyy H'h'mm", {
|
|
84
|
-
locale: frLocale
|
|
85
|
-
});
|
|
86
|
-
if (dateString.endsWith(" 0h00")) {
|
|
87
|
-
dateString = dateString.substring(0, dateString.length - 5);
|
|
88
|
-
}
|
|
89
|
-
return dateString;
|
|
90
|
-
}
|
|
91
|
-
export function frenchTimeFromDateOrString(dateOrString) {
|
|
92
|
-
const date = dateOrString instanceof Date ? dateOrString : parseISO(dateOrString);
|
|
93
|
-
return format(date, "H'h'mm", {
|
|
94
|
-
locale: frLocale
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
export function localIso8601StringFromDate(date) {
|
|
98
|
-
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXQiLCJmciIsImZyTG9jYWxlIiwicGFyc2UiLCJwYXJzZUlTTyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImhvdXJzIiwiZ2V0SG91cnMiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsInNlY29uZHMiLCJnZXRTZWNvbmRzIiwibWlsbGlzZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwidGltZXpvbmVPZmZzZXRJbkhvdXJzIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJ0b0lTT1N0cmluZyIsInNwbGl0IiwiY29ycmVjdGVkRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwic2V0SG91cnMiLCJpc28iLCJyZXBsYWNlIiwic2lnbiIsImxlYWRpbmdaZXJvIiwiTWF0aCIsImFicyIsInRvU3RyaW5nIiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwibG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0XCJcbmltcG9ydCB7IGZyIGFzIGZyTG9jYWxlIH0gZnJvbSBcImRhdGUtZm5zL2xvY2FsZS9mclwiXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJkYXRlLWZucy9wYXJzZVwiXG5pbXBvcnQgeyBwYXJzZUlTTyB9IGZyb20gXCJkYXRlLWZucy9wYXJzZUlTT1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmdldEhvdXJzKClcbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5nZXRNaW51dGVzKClcbiAgICBjb25zdCBzZWNvbmRzID0gdGhpcy5nZXRTZWNvbmRzKClcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSB0aGlzLmdldE1pbGxpc2Vjb25kcygpXG5cbiAgICBjb25zdCB0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSAvL1VUQyBtaW51cyBsb2NhbCB0aW1lXG4gICAgLy8gV2hlbiB5ZWFyIDw9IDE5MDAsIHRpbWV6b25lT2Zmc2V0SW5Ib3VycyBpcyAwLjE1LCBtaW51dGVzIGlzIDkgYW5kIHNlY29uZHMgaXMgMjEhXG4gICAgaWYgKFxuICAgICAgKHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9PT0gMC4xNSAmJlxuICAgICAgICBob3VycyA9PT0gMCAmJlxuICAgICAgICBtaW51dGVzID09PSA5ICYmXG4gICAgICAgIHNlY29uZHMgPT09IDIxKSB8fFxuICAgICAgKGhvdXJzIC0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID09PSAwICYmXG4gICAgICAgIG1pbnV0ZXMgPT09IDAgJiZcbiAgICAgICAgc2Vjb25kcyA9PT0gMCAmJlxuICAgICAgICBtaWxsaXNlY29uZHMgPT09IDApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgIH1cblxuICAgIC8vIEl0J3MgYSBiaXQgdW5mb3J0dW5hdGUgdGhhdCB3ZSBuZWVkIHR0aW1lem9uZU9mZnNldEluSG91cnMgPSAtKHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDYwKSBvIGNvbnN0cnVjdCBhIG5ldyBEYXRlIGluc3RhbmNlXG4gICAgLy8gKHdlIGRvbid0IHdhbnQgX3RoaXNfIERhdGUgaW5zdGFuY2UgdG8gYmUgbW9kaWZpZWQpLlxuICAgIGNvbnN0IGNvcnJlY3RlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHRoaXMuZ2V0TW9udGgoKSxcbiAgICAgIHRoaXMuZ2V0RGF0ZSgpLFxuICAgICAgaG91cnMsXG4gICAgICBtaW51dGVzLFxuICAgICAgc2Vjb25kcyxcbiAgICAgIG1pbGxpc2Vjb25kcyxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgLy8gUmVtb3ZlIG1pbGxpc2Vjb25kcyAmIHRyYWlsaW5nIFwiWlwiLlxuICAgIGNvbnN0IGlzbyA9IGNvcnJlY3RlZERhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oXFwuMCspP1okLywgXCJcIilcbiAgICBjb25zdCBzaWduID0gdGltZXpvbmVPZmZzZXRJbkhvdXJzID49IDAgPyBcIitcIiA6IFwiLVwiXG4gICAgY29uc3QgbGVhZGluZ1plcm8gPSBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpIDwgMTAgPyBcIjBcIiA6IFwiXCJcbiAgICByZXR1cm4gKFxuICAgICAgaXNvICtcbiAgICAgIHNpZ24gK1xuICAgICAgbGVhZGluZ1plcm8gK1xuICAgICAgTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKS50b1N0cmluZygpLnNwbGl0KFwiLlwiKVswXSArXG4gICAgICBcIjowMFwiXG4gICAgKVxuICB9IGNhdGNoIChlKSB7XG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG4gICAgY29uc3QganNvbkRhdGUgPSB0aGlzLnRvSlNPTigpXG4gICAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gcGF0Y2hlZERhdGVUb0pzb25cbiAgICByZXR1cm4ganNvbkRhdGVcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBkYXk6IFwibnVtZXJpY1wiLFxuICBtb250aDogXCJsb25nXCIsXG4gIHdlZWtkYXk6IFwibG9uZ1wiLFxuICB5ZWFyOiBcIm51bWVyaWNcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwic2hvcnRcIixcbn0pXG5leHBvcnQgY29uc3QgZnJlbmNoVGltZUZvcm1hdCA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFwiZnItRlJcIiwge1xuICBob3VyOiBcIm51bWVyaWNcIixcbiAgbWludXRlOiBcIjItZGlnaXRcIixcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbU51bGxhYmxlRGF0ZU9ySXNvU3RyaW5nKFxuICBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgZGVmYXVsdFZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCxcbik6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuICBpZiAodHlwZW9mIGRhdGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFyc2VJU08oZGF0ZSlcbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlXG59XG5cbi8vLyBDb252ZXJ0IHN0cmluZ3MgbGlrZSBcIjIwMTctMTEtMjQrMDE6MDBcIiB0byBkYXRlcy5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IERhdGUge1xuICByZXR1cm4gcGFyc2UoZGF0ZVN0cmluZywgXCJ5eXl5LU1NLWRkWFhYXCIsIG5ldyBEYXRlKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkYXRlID0gcGFyc2VJU08oZGF0ZVN0cmluZylcbiAgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcIkVFRUUgZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UmVsYXRpdmVGcmVuY2hUaW1lKGRhdGU6IERhdGUsIG5vdzogRGF0ZSkge1xuICBpZiAoXG4gICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSBub3cuZ2V0RnVsbFllYXIoKSAmJlxuICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbm93LmdldE1vbnRoKCkgJiZcbiAgICBkYXRlLmdldERhdGUoKSA9PT0gbm93LmdldERhdGUoKVxuICApIHtcbiAgICByZXR1cm4gZnJlbmNoVGltZUZvcm1hdC5mb3JtYXQoZGF0ZSlcbiAgfVxuICByZXR1cm4gZnJlbmNoRGF0ZVNhbWVZZWFyU2hvcnRGb3JtYXQuZm9ybWF0KGRhdGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIGxldCBkYXRlU3RyaW5nID0gZm9ybWF0KGRhdGUsIFwiZCBMTExMIHl5eXkgSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxuICBpZiAoZGF0ZVN0cmluZy5lbmRzV2l0aChcIiAwaDAwXCIpKSB7XG4gICAgZGF0ZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyaW5nKDAsIGRhdGVTdHJpbmcubGVuZ3RoIC0gNSlcbiAgfVxuICByZXR1cm4gZGF0ZVN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoVGltZUZyb21EYXRlT3JTdHJpbmcoXG4gIGRhdGVPclN0cmluZzogRGF0ZSB8IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGU6IERhdGUgPVxuICAgIGRhdGVPclN0cmluZyBpbnN0YW5jZW9mIERhdGUgPyBkYXRlT3JTdHJpbmcgOiBwYXJzZUlTTyhkYXRlT3JTdHJpbmcpXG4gIHJldHVybiBmb3JtYXQoZGF0ZSwgXCJIJ2gnbW1cIiwgeyBsb2NhbGU6IGZyTG9jYWxlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbElzbzg2MDFTdHJpbmdGcm9tRGF0ZShkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKVxuICAgIC50b0lTT1N0cmluZygpXG4gICAgLnNwbGl0KFwiVFwiKVswXVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsaUJBQWlCO0FBQ3hDLFNBQVNDLEVBQUUsSUFBSUMsUUFBUSxRQUFRLG9CQUFvQjtBQUNuRCxTQUFTQyxLQUFLLFFBQVEsZ0JBQWdCO0FBQ3RDLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7O0FBRTVDO0FBQ0E7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUN2RCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLFNBQUFBLENBQUEsRUFBOEI7RUFDN0QsSUFBSTtJQUNGLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDO0lBRTNDLE1BQU1DLHFCQUFxQixHQUFHLEVBQUUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUM7SUFDL0Q7SUFDQSxJQUNHRCxxQkFBcUIsS0FBSyxJQUFJLElBQzdCUixLQUFLLEtBQUssQ0FBQyxJQUNYRSxPQUFPLEtBQUssQ0FBQyxJQUNiRSxPQUFPLEtBQUssRUFBRSxJQUNmSixLQUFLLEdBQUdRLHFCQUFxQixLQUFLLENBQUMsSUFDbENOLE9BQU8s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
|