{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-markus/src/external/event-drops/axis.js"],"names":["tickFormat","date","formats","d3","timeSecond","timeFormat","milliseconds","timeMinute","seconds","timeHour","minutes","timeDay","hours","timeMonth","timeWeek","days","weeks","timeYear","months","year","config","xScale","breakpointLabel","label","width","labelWidth","axis","verticalGrid","tickPadding","locale","numberDisplayedTicks","line","height","lineHeight","timeFormatDefaultLocale","selection","selectAll","data","d","exit","remove","axisTop","ticks","tickSizeInner","length","enter","filter","_","i","append","classed","attr","call"],"mappings":";;;;;;;;AAAO,kBAAMA,aAAa,CAACC,IAAD,EAAOC,OAAP,EAAgBC,EAAhB,KAAuB;AAC7C,oBAAIA,GAAGC,UAAH,CAAcH,IAAd,IAAsBA,IAA1B,EAAgC;AAC5B,2BAAOE,GAAGE,UAAH,CAAcH,QAAQI,YAAtB,EAAoCL,IAApC,CAAP;AACH;;AAED,oBAAIE,GAAGI,UAAH,CAAcN,IAAd,IAAsBA,IAA1B,EAAgC;AAC5B,2BAAOE,GAAGE,UAAH,CAAcH,QAAQM,OAAtB,EAA+BP,IAA/B,CAAP;AACH;;AAED,oBAAIE,GAAGM,QAAH,CAAYR,IAAZ,IAAoBA,IAAxB,EAA8B;AAC1B,2BAAOE,GAAGE,UAAH,CAAcH,QAAQQ,OAAtB,EAA+BT,IAA/B,CAAP;AACH;;AAED,oBAAIE,GAAGQ,OAAH,CAAWV,IAAX,IAAmBA,IAAvB,EAA6B;AACzB,2BAAOE,GAAGE,UAAH,CAAcH,QAAQU,KAAtB,EAA6BX,IAA7B,CAAP;AACH;;AAED,oBAAIE,GAAGU,SAAH,CAAaZ,IAAb,IAAqBA,IAAzB,EAA+B;AAC3B,wBAAIE,GAAGW,QAAH,CAAYb,IAAZ,IAAoBA,IAAxB,EAA8B;AAC1B,+BAAOE,GAAGE,UAAH,CAAcH,QAAQa,IAAtB,EAA4Bd,IAA5B,CAAP;AACH;;AAED,2BAAOE,GAAGE,UAAH,CAAcH,QAAQc,KAAtB,EAA6Bf,IAA7B,CAAP;AACH;;AAED,oBAAIE,GAAGc,QAAH,CAAYhB,IAAZ,IAAoBA,IAAxB,EAA8B;AAC1B,2BAAOE,GAAGE,UAAH,CAAcH,QAAQgB,MAAtB,EAA8BjB,IAA9B,CAAP;AACH;;AAED,uBAAOE,GAAGE,UAAH,CAAcH,QAAQiB,IAAtB,EAA4BlB,IAA5B,CAAP;AACH,aA9BM;;;;;;;;;;0CAAMD,2C;;;;;;;;;+BAgCE,CAACG,EAAD,EAAKiB,MAAL,EAAaC,MAAb,EAAqBC,eAArB,KAAyC;AACpD,sBAAM;AACFC,2BAAO,EAAEC,OAAOC,UAAT,EADL;AAEFC,0BAAM,EAAExB,OAAF,EAAWyB,YAAX,EAAyBC,WAAzB,EAFJ;AAGFC,0BAHE;AAIFC,wCAJE;AAKFC,0BAAM,EAAEC,QAAQC,UAAV;AALJ,oBAMFb,MANJ;AAOAjB,mBAAG+B,uBAAH,CAA2BL,MAA3B;AACA,uBAAOM,aAAa;AAChB,0BAAMT,OAAOS,UAAUC,SAAV,CAAoB,OAApB,EAA6BC,IAA7B,CAAkCC,KAAKA,CAAvC,CAAb;;AAEAZ,yBAAKa,IAAL,GAAYC,MAAZ;;AAEA,0BAAMC,UAAUtC,GACXsC,OADW,CACHpB,MADG,EAEXrB,UAFW,CAEAsC,KAAKtC,WAAWsC,CAAX,EAAcpC,OAAd,EAAuBC,EAAvB,CAFL,EAGXuC,KAHW,CAGLZ,qBAAqBR,eAArB,CAHK,EAIXM,WAJW,CAICA,WAJD,CAAhB;;AAMA,wBAAID,YAAJ,EACIc,QAAQE,aAAR,CAAsB,EAAER,UAAUE,IAAV,GAAiB,CAAjB,EAAoBO,MAApB,GAA6BX,UAA/B,CAAtB;;AAEJP,yBAAKmB,KAAL,GACKC,MADL,CACY,CAACC,CAAD,EAAIC,CAAJ,KAAU,CAACA,CADvB,EAEKC,MAFL,CAEY,GAFZ,EAGKC,OAHL,CAGa,MAHb,EAGqB,IAHrB,EAIKC,IAJL,CAIU,WAJV,EAIwB,aAAY1B,UAAW,KAJ/C,EAKK2B,IALL,CAKUX,OALV;;AAOAf,yBAAK0B,IAAL,CAAUX,OAAV;AACH,iBAtBD;AAuBH,a","file":"axis.js","sourcesContent":["export const tickFormat = (date, formats, d3) => {\n    if (d3.timeSecond(date) < date) {\n        return d3.timeFormat(formats.milliseconds)(date);\n    }\n\n    if (d3.timeMinute(date) < date) {\n        return d3.timeFormat(formats.seconds)(date);\n    }\n\n    if (d3.timeHour(date) < date) {\n        return d3.timeFormat(formats.minutes)(date);\n    }\n\n    if (d3.timeDay(date) < date) {\n        return d3.timeFormat(formats.hours)(date);\n    }\n\n    if (d3.timeMonth(date) < date) {\n        if (d3.timeWeek(date) < date) {\n            return d3.timeFormat(formats.days)(date);\n        }\n\n        return d3.timeFormat(formats.weeks)(date);\n    }\n\n    if (d3.timeYear(date) < date) {\n        return d3.timeFormat(formats.months)(date);\n    }\n\n    return d3.timeFormat(formats.year)(date);\n};\n\nexport default (d3, config, xScale, breakpointLabel) => {\n    const {\n        label: { width: labelWidth },\n        axis: { formats, verticalGrid, tickPadding },\n        locale,\n        numberDisplayedTicks,\n        line: { height: lineHeight },\n    } = config;\n    d3.timeFormatDefaultLocale(locale);\n    return selection => {\n        const axis = selection.selectAll('.axis').data(d => d);\n\n        axis.exit().remove();\n\n        const axisTop = d3\n            .axisTop(xScale)\n            .tickFormat(d => tickFormat(d, formats, d3))\n            .ticks(numberDisplayedTicks[breakpointLabel])\n            .tickPadding(tickPadding);\n\n        if (verticalGrid)\n            axisTop.tickSizeInner(-(selection.data()[0].length * lineHeight));\n\n        axis.enter()\n            .filter((_, i) => !i)\n            .append('g')\n            .classed('axis', true)\n            .attr('transform', `translate(${labelWidth},0)`)\n            .call(axisTop);\n\n        axis.call(axisTop);\n    };\n};\n"]}