{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./src/utils/date-helpers.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/selectable/index.ts"],"names":["toLength","repeat","defined","module","exports","that","maxLength","fillString","left","S","String","stringLength","length","fillStr","undefined","intMaxLength","fillLen","stringFiller","call","Math","ceil","slice","createDateString","year","month","day","toString","padStart","getLocaleString","date","locale","toLocaleString","getLocaleStringFromDateString","dateString","Date","parse","getLocaleStringFromDateStringWithOptions","options","getDateTimeString","getTime","getTimezoneOffset","toISOString","getElegantDateString","toLocaleDateString","weekday","getElegantDateStringFromString","dateAsString","getMonthName","monthNumber","getDateStringFromDateTimeAsString","dateTimeAsString","split","getDateString","smartDisplayDays","numberOfDays","years","floor","months","days","result","push","join","differenceInMinutesBetweenDates","date1","date2","round","differenceInDaysBetweenDates","UTC","getFullYear","getMonth","getDate","getMaxDate","dates","reduce","a","b","getTimeSince","referenceDate","onlyMinutes","intervalType","seconds","interval","VCardActions","VCardSubtitle","VCardText","VCardTitle","name","directives","Touch","props","inset","loading","type","Boolean","default","flat","computed","classes","this","attrs","role","validationState","hasError","hasColor","switchData","setTextColor","class","themeClasses","methods","genDefaultSlot","genSwitch","switchAttrs","$createElement","staticClass","genInput","genRipple","value","right","onSwipeRight","genProgress","$slots","progress","color","size","width","indeterminate","onSwipeLeft","onChange","onKeydown","e","$export","$pad","userAgent","WEBKIT_BUG","test","P","F","arguments","ripple","data","center","mixins","model","prop","event","id","inputValue","falseValue","trueValue","multiple","label","lazyValue","computedColor","isDark","isMultiple","Array","isActive","input","item","valueComparator","isDirty","rippleState","watch","genLabel","VInput","click","prevent","Object","disabled","domProps","checked","on","blur","change","focus","keydown","ref","onBlur","onClick","onFocus"],"mappings":"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","file":"dist/js/chunk-472733ce.87a39a40.js","sourcesContent":["// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","/**\n * Retourne un *string* de la forme \"YYYY-MM-DD\" à partir de Year, Month, Day.\n * @param year\n * @param month\n * @param day\n */\nexport const createDateString = (year: number, month: number, day: number) => {\n\treturn `${year}-${month.toString().padStart(2, \"0\")}-${day.toString().padStart(2, \"0\")}`;\n};\n\n/**\n * Retourne un *string* de la forme \"DD/MM/YYYY\" à partir d'une date.\n * @param date\n * @param locale\n */\nexport const getLocaleDateString = (date: Date, locale = \"en-US\") => {\n\treturn date.toLocaleDateString(locale);\n};\n\n/**\n * Retourne un *string* de la forme \"DD/MM/YYYY à HH:mm:ss\" à partir d'une date.\n * @param date\n * @param locale\n */\nexport const getLocaleString = (date: Date, locale = \"en-US\") => {\n\treturn date.toLocaleString(locale);\n};\n\n/**\n * Retourne un *string* de la forme \"DD/MM/YYYY à HH:mm:ss\" à partir d'une date string.\n * @param dateString\n * @param locale\n */\nexport const getLocaleStringFromDateString = (dateString: string, locale = \"en-GB\") => {\n\treturn getLocaleString(new Date(Date.parse(dateString)), locale);\n};\n\n/**\n * Retourne un *string* de la forme \"Aug 22nd 2020 hh:mm:ss UTC\" à partir d'une date string.\n */\nexport const getLocaleStringFromDateStringWithOptions = (dateString: string, options?: Intl.DateTimeFormatOptions, locale = \"en-GB\") => {\n\treturn (new Date(Date.parse(dateString))).toLocaleString(locale, options);\n};\n\n\n/**\n * Retourne un *string* de la forme \"2019-03-20T11:24:06.065Z\".\n * @param date\n */\nexport const getDateTimeString = (date: Date) => {\n\treturn new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString();\n};\n\n\n/**\n * Retourne un *string* de la forme \"lundi 1 janvier 2000\" à partir d'une date.\n * @param date\n * @param locale\n */\nexport const getElegantDateString = (date: Date, locale = \"en-US\") => {\n\treturn date.toLocaleDateString(locale, {\n\t\tweekday: \"long\",\n\t\tyear: \"numeric\",\n\t\tmonth: \"long\",\n\t\tday: \"numeric\"\n\t});\n};\n\n/**\n * Retourne un *string* de la forme \"lundi 1 janvier 2000\" à partir d'une string de la forme yyyy-MM-dd.\n */\nexport const getElegantDateStringFromString = (dateAsString: string, locale = \"en-US\") => {\n\treturn (new Date(`${dateAsString}T00:00:00`)).toLocaleDateString(locale, {\n\t\tweekday: \"long\",\n\t\tyear: \"numeric\",\n\t\tmonth: \"long\",\n\t\tday: \"numeric\"\n\t});\n};\n\n/**\n * Retourne le mois traduit dans la {locale} à partir du numéro du mois.\n * @param monthNumber\n * @param locale\n */\nexport const getMonthName = (monthNumber: number, locale = \"en-US\") => {\n\treturn (new Date(`2000-${monthNumber.toString().padStart(2, \"0\")}-01T00:00:00`)).toLocaleDateString(locale, {\n\t\tmonth: \"long\"\n\t});\n};\n\n\n/**\n * Retourne un *string* de la forme \"janvier\" à partir d'une date.\n * @param date\n * @param locale\n */\nexport const getMonthStringFromDate = (date: Date, locale = \"en-US\") => {\n\treturn date.toLocaleDateString(locale, {\n\t\tmonth: \"long\"\n\t});\n};\n\n/**\n * Retourne le timestamp en nombre de jours (arrondi en floor).\n */\nexport const getTimestampInDays = (timestampInMS: number) => {\n\treturn Math.floor((((timestampInMS / 1000) / 60) / 60) / 24);\n};\n\n/**\n * Retourne un *string* de la forme \"2019-03-20\".\n */\nexport const getDateStringFromDateTimeAsString = (dateTimeAsString: string) => {\n\treturn dateTimeAsString.split(\"T\")[0];\n};\n\n/**\n * Retourne un *string* de la forme \"2019-03-20\".\n * @param date\n */\nexport const getDateString = (date: Date) => {\n\treturn getDateStringFromDateTimeAsString(getDateTimeString(date));\n};\n/**\n * Retourne un *string* de la forme \"2019-03\".\n * @param date\n */\nexport const getYearMonthString = (date: Date) => {\n\tconst dateStringSplit = getDateString(date).split(\"-\");\n\treturn `${dateStringSplit[0]}-${dateStringSplit[1]}`;\n};\n/**\n * Retourne un *string* de la forme \"11:24:06.065Z\".\n * @param date\n */\nexport const getTimeString = (date: Date) => {\n\treturn getDateTimeString(date).split(\"T\")[1];\n};\n/**\n * Retourne un *string* de la forme \"11:24\".\n * @param date\n */\nexport const getShortTimeString = (date: Date) => {\n\tconst timeSplit = getTimeString(date).split(\":\");\n\treturn `${timeSplit[0]}:${timeSplit[1]}`;\n};\n\n/**\n * Ajout un nombre de minutes à un time de la forme \"11:24\".\n * @param time\n * @param nbMinutesToAdd\n */\nexport const addMinutes = (time: string, nbMinutesToAdd: number) => {\n\tconst timeSplit = time.split(\":\");\n\tconst hour = parseInt(timeSplit[0], 10);\n\tconst minute = parseInt(timeSplit[1], 10);\n\n\tconst rawMinuteAfterAddition = minute + nbMinutesToAdd;\n\treturn `${(hour + Math.floor(rawMinuteAfterAddition / 60)).toString().padStart(2, \"0\")}:${(rawMinuteAfterAddition % 60).toString().padStart(2, \"0\")}`;\n};\n\n/**\n * Retourne un affichage *string* intelligent d'une durée en heures ou en minutes.\n * @param minutes\n */\nexport const smartDisplayMinutes = (minutes: number) => {\n\tif (minutes == null) {\n\t\treturn \"-\";\n\t}\n\tif (minutes >= 60) {\n\t\tconst remainingSeconds = minutes % 60;\n\t\treturn `${Math.floor(minutes / 60)}h` + (remainingSeconds > 0 ? remainingSeconds.toString().padStart(2, \"0\") : \"\");\n\t}\n\treturn `${minutes} min`;\n};\n\n/**\n * Retourne un affichage *string* intelligent d'une durée en jours (Y year, M months, D days).\n * @param numberOfDays\n */\nexport const smartDisplayDays = (numberOfDays: number) => {\n\tif (numberOfDays == 0) {\n\t\treturn \"today\";\n\t}\n\n\tconst years = Math.floor(numberOfDays / 365);\n\tconst months = Math.floor(numberOfDays % 365 / 30);\n\tconst days = Math.floor(numberOfDays % 365 % 30);\n\n\tconst result = [];\n\tif (years > 0) {\n\t\tresult.push(years + (years == 1 ? \" year\" : \" years\"));\n\t}\n\tif (months > 0) {\n\t\tresult.push(months + (months == 1 ? \" month\" : \" months\"));\n\t}\n\tif (days > 0) {\n\t\tresult.push(days + (days == 1 ? \" day\" : \" days\"));\n\t}\n\n\treturn result.join(\", \");\n};\n\n/**\n * Retourne la différence en minutes entre *date1* et *date2* telles que date1 < date2.\n */\nexport const differenceInMinutesBetweenDates = (date1: Date, date2: Date) => {\n\treturn Math.round(((date2.getTime() - date1.getTime()) / 1000) / 60); // minutes\n};\n\n/**\n * Retourne la différence en jours entre *date1* et *date2* telles que date1 < date2.\n */\nexport const differenceInDaysBetweenDates = function (date1: Date, date2: Date) {\n\treturn Math.floor((Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()) - Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate())) / (1000 * 60 * 60 * 24));\n};\n\n/**\n * Retourne la différence en minutes entre *hh1:mm1* et *hh2:mm2* telles que hh1:mm1 < hh2:mm2.\n */\nexport const differenceInMinutesBetweenHoursMinutes = (hm1: string, hm2: string) => {\n\tconst h1 = parseInt(hm1.split(\":\")[0], 10);\n\tconst m1 = parseInt(hm1.split(\":\")[1], 10);\n\tconst h2 = parseInt(hm2.split(\":\")[0], 10);\n\tconst m2 = parseInt(hm2.split(\":\")[1], 10);\n\treturn (60 * h2 + m2) - (60 * h1 + m1);\n};\n\n/**\n * Fonction de tri par date croissant si a < b.\n * @param a\n * @param b\n */\nexport const sortByDate = (a: Date, b: Date) => {\n\treturn a > b ? -1 : a < b ? 1 : 0;\n};\n\n\n/**\n * Retourne la date minimale d'un array de dates.\n */\nexport const getMinDate = (dates: Date[]) => {\n\treturn dates.reduce(function (a, b) {\n\t\treturn a < b ? a : b;\n\t});\n};\n\n/**\n * Retourne la date maximale d'un array de dates.\n */\nexport const getMaxDate = (dates: Date[]) => {\n\treturn dates.reduce(function (a, b) {\n\t\treturn a > b ? a : b;\n\t});\n};\n\n/**\n * Retourne la durée formatée entre maintenant et la date passée en paramètre.\n * @param date\n * @param referenceDate\n * @param onlyMinutes\n */\nexport const getTimeSince = (date: Date, referenceDate: Date = new Date(), onlyMinutes = false) => {\n\tif (typeof date !== \"object\") {\n\t\tdate = new Date(date);\n\t}\n\n\tlet seconds = Math.floor((+referenceDate - +date) / 1000);\n\tif (seconds < 0) {\n\t\tseconds = 0;\n\t}\n\tlet intervalType;\n\n\tlet interval = Math.floor(seconds / 31536000);\n\tif (interval >= 1) {\n\t\tintervalType = \"year\";\n\t}\n\telse {\n\t\tinterval = Math.floor(seconds / 2592000);\n\t\tif (interval >= 1) {\n\t\t\tintervalType = \"month\";\n\t\t}\n\t\telse {\n\t\t\tinterval = Math.floor(seconds / 86400);\n\t\t\tif (interval >= 1) {\n\t\t\t\tintervalType = \"day\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\tinterval = Math.floor(seconds / 3600);\n\t\t\t\tif (interval >= 1) {\n\t\t\t\t\tintervalType = \"hour\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tinterval = Math.floor(seconds / 60);\n\t\t\t\t\tif (interval >= 1 || onlyMinutes) {\n\t\t\t\t\t\tintervalType = \"minute\";\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tinterval = seconds;\n\t\t\t\t\t\tintervalType = \"second\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (interval > 1 || interval === 0) {\n\t\tintervalType += \"s\";\n\t}\n\n\n\tif (onlyMinutes) {\n\n\t}\n\n\treturn (interval > 0 ? interval : \"< 1\") + \" \" + intervalType;\n};","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":""}