@wellenplan/directus-extension-duration-display
Version:
Duration display extension for [Directus](https://directus.io/).
2 lines (1 loc) • 20.3 kB
JavaScript
import{defineDisplay as n}from"@directus/extensions-sdk";import{defineComponent as t,computed as r,openBlock as u,createElementBlock as e,toDisplayString as i,unref as o}from"vue";var c=function(){function n(){var n=this;this.languages={ar:{y:function(n){return 1===n?"سنة":"سنوات"},mo:function(n){return 1===n?"شهر":"أشهر"},w:function(n){return 1===n?"أسبوع":"أسابيع"},d:function(n){return 1===n?"يوم":"أيام"},h:function(n){return 1===n?"ساعة":"ساعات"},m:function(t){return["دقيقة","دقائق"][n.getArabicForm(t)]},s:function(n){return 1===n?"ثانية":"ثواني"},ms:function(n){return 1===n?"جزء من الثانية":"أجزاء من الثانية"},decimal:","},bg:{y:function(t){return["години","година","години"][n.getSlavicForm(t)]},mo:function(t){return["месеца","месец","месеца"][n.getSlavicForm(t)]},w:function(t){return["седмици","седмица","седмици"][n.getSlavicForm(t)]},d:function(t){return["дни","ден","дни"][n.getSlavicForm(t)]},h:function(t){return["часа","час","часа"][n.getSlavicForm(t)]},m:function(t){return["минути","минута","минути"][n.getSlavicForm(t)]},s:function(t){return["секунди","секунда","секунди"][n.getSlavicForm(t)]},ms:function(t){return["милисекунди","милисекунда","милисекунди"][n.getSlavicForm(t)]},decimal:","},ca:{y:function(n){return"any"+(1===n?"":"s")},mo:function(n){return"mes"+(1===n?"":"os")},w:function(n){return"setman"+(1===n?"a":"es")},d:function(n){return"di"+(1===n?"a":"es")},h:function(n){return"hor"+(1===n?"a":"es")},m:function(n){return"minut"+(1===n?"":"s")},s:function(n){return"segon"+(1===n?"":"s")},ms:function(n){return"milisegon"+(1===n?"":"s")},decimal:","},cs:{y:function(t){return["rok","roku","roky","let"][n.getCzechOrSlovakForm(t)]},mo:function(t){return["měsíc","měsíce","měsíce","měsíců"][n.getCzechOrSlovakForm(t)]},w:function(t){return["týden","týdne","týdny","týdnů"][n.getCzechOrSlovakForm(t)]},d:function(t){return["den","dne","dny","dní"][n.getCzechOrSlovakForm(t)]},h:function(t){return["hodina","hodiny","hodiny","hodin"][n.getCzechOrSlovakForm(t)]},m:function(t){return["minuta","minuty","minuty","minut"][n.getCzechOrSlovakForm(t)]},s:function(t){return["sekunda","sekundy","sekundy","sekund"][n.getCzechOrSlovakForm(t)]},ms:function(t){return["milisekunda","milisekundy","milisekundy","milisekund"][n.getCzechOrSlovakForm(t)]},decimal:","},da:{y:function(){return"år"},mo:function(n){return"måned"+(1===n?"":"er")},w:function(n){return"uge"+(1===n?"":"r")},d:function(n){return"dag"+(1===n?"":"e")},h:function(n){return"time"+(1===n?"":"r")},m:function(n){return"minut"+(1===n?"":"ter")},s:function(n){return"sekund"+(1===n?"":"er")},ms:function(n){return"millisekund"+(1===n?"":"er")},decimal:","},de:{y:function(n){return"Jahr"+(1===n?"":"e")},mo:function(n){return"Monat"+(1===n?"":"e")},w:function(n){return"Woche"+(1===n?"":"n")},d:function(n){return"Tag"+(1===n?"":"e")},h:function(n){return"Stunde"+(1===n?"":"n")},m:function(n){return"Minute"+(1===n?"":"n")},s:function(n){return"Sekunde"+(1===n?"":"n")},ms:function(n){return"Millisekunde"+(1===n?"":"n")},decimal:","},el:{y:function(n){return 1===n?"χρόνος":"χρόνια"},mo:function(n){return 1===n?"μήνας":"μήνες"},w:function(n){return 1===n?"εβδομάδα":"εβδομάδες"},d:function(n){return 1===n?"μέρα":"μέρες"},h:function(n){return 1===n?"ώρα":"ώρες"},m:function(n){return 1===n?"λεπτό":"λεπτά"},s:function(n){return 1===n?"δευτερόλεπτο":"δευτερόλεπτα"},ms:function(n){return 1===n?"χιλιοστό του δευτερολέπτου":"χιλιοστά του δευτερολέπτου"},decimal:","},en:{y:function(n){return"year"+(1===n?"":"s")},mo:function(n){return"month"+(1===n?"":"s")},w:function(n){return"week"+(1===n?"":"s")},d:function(n){return"day"+(1===n?"":"s")},h:function(n){return"hour"+(1===n?"":"s")},m:function(n){return"minute"+(1===n?"":"s")},s:function(n){return"second"+(1===n?"":"s")},ms:function(n){return"millisecond"+(1===n?"":"s")},decimal:"."},es:{y:function(n){return"año"+(1===n?"":"s")},mo:function(n){return"mes"+(1===n?"":"es")},w:function(n){return"semana"+(1===n?"":"s")},d:function(n){return"día"+(1===n?"":"s")},h:function(n){return"hora"+(1===n?"":"s")},m:function(n){return"minuto"+(1===n?"":"s")},s:function(n){return"segundo"+(1===n?"":"s")},ms:function(n){return"milisegundo"+(1===n?"":"s")},decimal:","},et:{y:function(n){return"aasta"+(1===n?"":"t")},mo:function(n){return"kuu"+(1===n?"":"d")},w:function(n){return"nädal"+(1===n?"":"at")},d:function(n){return"päev"+(1===n?"":"a")},h:function(n){return"tund"+(1===n?"":"i")},m:function(n){return"minut"+(1===n?"":"it")},s:function(n){return"sekund"+(1===n?"":"it")},ms:function(n){return"millisekund"+(1===n?"":"it")},decimal:","},fa:{y:function(){return"سال"},mo:function(){return"ماه"},w:function(){return"هفته"},d:function(){return"روز"},h:function(){return"ساعت"},m:function(){return"دقیقه"},s:function(){return"ثانیه"},ms:function(){return"میلی ثانیه"},decimal:"."},fi:{y:function(n){return 1===n?"vuosi":"vuotta"},mo:function(n){return 1===n?"kuukausi":"kuukautta"},w:function(n){return"viikko"+(1===n?"":"a")},d:function(n){return"päivä"+(1===n?"":"ä")},h:function(n){return"tunti"+(1===n?"":"a")},m:function(n){return"minuutti"+(1===n?"":"a")},s:function(n){return"sekunti"+(1===n?"":"a")},ms:function(n){return"millisekunti"+(1===n?"":"a")},decimal:","},fo:{y:function(){return"ár"},mo:function(n){return 1===n?"mánaður":"mánaðir"},w:function(n){return 1===n?"vika":"vikur"},d:function(n){return 1===n?"dagur":"dagar"},h:function(n){return 1===n?"tími":"tímar"},m:function(n){return 1===n?"minuttur":"minuttir"},s:function(){return"sekund"},ms:function(){return"millisekund"},decimal:","},fr:{y:function(n){return"an"+(n>=2?"s":"")},mo:function(){return"mois"},w:function(n){return"semaine"+(n>=2?"s":"")},d:function(n){return"jour"+(n>=2?"s":"")},h:function(n){return"heure"+(n>=2?"s":"")},m:function(n){return"minute"+(n>=2?"s":"")},s:function(n){return"seconde"+(n>=2?"s":"")},ms:function(n){return"milliseconde"+(n>=2?"s":"")},decimal:","},hr:{y:function(n){return n%10==2||n%10==3||n%10==4?"godine":"godina"},mo:function(n){return 1===n?"mjesec":2===n||3===n||4===n?"mjeseca":"mjeseci"},w:function(n){return n%10==1&&11!==n?"tjedan":"tjedna"},d:function(n){return 1===n?"dan":"dana"},h:function(n){return 1===n?"sat":2===n||3===n||4===n?"sata":"sati"},m:function(n){var t=n%10;return 2!==t&&3!==t&&4!==t||!(n<10||n>14)?"minuta":"minute"},s:function(n){return 10===n||11===n||12===n||13===n||14===n||16===n||17===n||18===n||19===n||n%10==5?"sekundi":n%10==1?"sekunda":n%10==2||n%10==3||n%10==4?"sekunde":"sekundi"},ms:function(n){return 1===n?"milisekunda":n%10==2||n%10==3||n%10==4?"milisekunde":"milisekundi"},decimal:","},hu:{y:function(){return"év"},mo:function(){return"hónap"},w:function(){return"hét"},d:function(){return"nap"},h:function(){return"óra"},m:function(){return"perc"},s:function(){return"másodperc"},ms:function(){return"ezredmásodperc"},decimal:","},id:{y:function(){return"tahun"},mo:function(){return"bulan"},w:function(){return"minggu"},d:function(){return"hari"},h:function(){return"jam"},m:function(){return"menit"},s:function(){return"detik"},ms:function(){return"milidetik"},decimal:"."},is:{y:function(){return"ár"},mo:function(n){return"mánuð"+(1===n?"ur":"ir")},w:function(n){return"vik"+(1===n?"a":"ur")},d:function(n){return"dag"+(1===n?"ur":"ar")},h:function(n){return"klukkutím"+(1===n?"i":"ar")},m:function(n){return"mínút"+(1===n?"a":"ur")},s:function(n){return"sekúnd"+(1===n?"a":"ur")},ms:function(n){return"millisekúnd"+(1===n?"a":"ur")},decimal:"."},it:{y:function(n){return"ann"+(1===n?"o":"i")},mo:function(n){return"mes"+(1===n?"e":"i")},w:function(n){return"settiman"+(1===n?"a":"e")},d:function(n){return"giorn"+(1===n?"o":"i")},h:function(n){return"or"+(1===n?"a":"e")},m:function(n){return"minut"+(1===n?"o":"i")},s:function(n){return"second"+(1===n?"o":"i")},ms:function(n){return"millisecond"+(1===n?"o":"i")},decimal:","},ja:{y:function(){return"年"},mo:function(){return"月"},w:function(){return"週"},d:function(){return"日"},h:function(){return"時間"},m:function(){return"分"},s:function(){return"秒"},ms:function(){return"ミリ秒"},decimal:"."},ko:{y:function(){return"년"},mo:function(){return"개월"},w:function(){return"주일"},d:function(){return"일"},h:function(){return"시간"},m:function(){return"분"},s:function(){return"초"},ms:function(){return"밀리 초"},decimal:"."},lo:{y:function(){return"ປີ"},mo:function(){return"ເດືອນ"},w:function(){return"ອາທິດ"},d:function(){return"ມື້"},h:function(){return"ຊົ່ວໂມງ"},m:function(){return"ນາທີ"},s:function(){return"ວິນາທີ"},ms:function(){return"ມິນລິວິນາທີ"},decimal:","},lt:{y:function(n){return n%10==0||n%100>=10&&n%100<=20?"metų":"metai"},mo:function(t){return["mėnuo","mėnesiai","mėnesių"][n.getLithuanianForm(t)]},w:function(t){return["savaitė","savaitės","savaičių"][n.getLithuanianForm(t)]},d:function(t){return["diena","dienos","dienų"][n.getLithuanianForm(t)]},h:function(t){return["valanda","valandos","valandų"][n.getLithuanianForm(t)]},m:function(t){return["minutė","minutės","minučių"][n.getLithuanianForm(t)]},s:function(t){return["sekundė","sekundės","sekundžių"][n.getLithuanianForm(t)]},ms:function(t){return["milisekundė","milisekundės","milisekundžių"][n.getLithuanianForm(t)]},decimal:","},lv:{y:function(t){return["gads","gadi"][n.getLatvianForm(t)]},mo:function(t){return["mēnesis","mēneši"][n.getLatvianForm(t)]},w:function(t){return["nedēļa","nedēļas"][n.getLatvianForm(t)]},d:function(t){return["diena","dienas"][n.getLatvianForm(t)]},h:function(t){return["stunda","stundas"][n.getLatvianForm(t)]},m:function(t){return["minūte","minūtes"][n.getLatvianForm(t)]},s:function(t){return["sekunde","sekundes"][n.getLatvianForm(t)]},ms:function(t){return["milisekunde","milisekundes"][n.getLatvianForm(t)]},decimal:","},ms:{y:function(){return"tahun"},mo:function(){return"bulan"},w:function(){return"minggu"},d:function(){return"hari"},h:function(){return"jam"},m:function(){return"minit"},s:function(){return"saat"},ms:function(){return"milisaat"},decimal:"."},nl:{y:function(){return"jaar"},mo:function(n){return 1===n?"maand":"maanden"},w:function(n){return 1===n?"week":"weken"},d:function(n){return 1===n?"dag":"dagen"},h:function(){return"uur"},m:function(n){return 1===n?"minuut":"minuten"},s:function(n){return 1===n?"seconde":"seconden"},ms:function(n){return 1===n?"milliseconde":"milliseconden"},decimal:","},no:{y:function(){return"år"},mo:function(n){return"måned"+(1===n?"":"er")},w:function(n){return"uke"+(1===n?"":"r")},d:function(n){return"dag"+(1===n?"":"er")},h:function(n){return"time"+(1===n?"":"r")},m:function(n){return"minutt"+(1===n?"":"er")},s:function(n){return"sekund"+(1===n?"":"er")},ms:function(n){return"millisekund"+(1===n?"":"er")},decimal:","},pl:{y:function(t){return["rok","roku","lata","lat"][n.getPolishForm(t)]},mo:function(t){return["miesiąc","miesiąca","miesiące","miesięcy"][n.getPolishForm(t)]},w:function(t){return["tydzień","tygodnia","tygodnie","tygodni"][n.getPolishForm(t)]},d:function(t){return["dzień","dnia","dni","dni"][n.getPolishForm(t)]},h:function(t){return["godzina","godziny","godziny","godzin"][n.getPolishForm(t)]},m:function(t){return["minuta","minuty","minuty","minut"][n.getPolishForm(t)]},s:function(t){return["sekunda","sekundy","sekundy","sekund"][n.getPolishForm(t)]},ms:function(t){return["milisekunda","milisekundy","milisekundy","milisekund"][n.getPolishForm(t)]},decimal:","},pt:{y:function(n){return"ano"+(1===n?"":"s")},mo:function(n){return 1===n?"mês":"meses"},w:function(n){return"semana"+(1===n?"":"s")},d:function(n){return"dia"+(1===n?"":"s")},h:function(n){return"hora"+(1===n?"":"s")},m:function(n){return"minuto"+(1===n?"":"s")},s:function(n){return"segundo"+(1===n?"":"s")},ms:function(n){return"milissegundo"+(1===n?"":"s")},decimal:","},ro:{y:function(n){return 1===n?"an":"ani"},mo:function(n){return 1===n?"lună":"luni"},w:function(n){return 1===n?"săptămână":"săptămâni"},d:function(n){return 1===n?"zi":"zile"},h:function(n){return 1===n?"oră":"ore"},m:function(n){return 1===n?"minut":"minute"},s:function(n){return 1===n?"secundă":"secunde"},ms:function(n){return 1===n?"milisecundă":"milisecunde"},decimal:","},ru:{y:function(t){return["лет","год","года"][n.getSlavicForm(t)]},mo:function(t){return["месяцев","месяц","месяца"][n.getSlavicForm(t)]},w:function(t){return["недель","неделя","недели"][n.getSlavicForm(t)]},d:function(t){return["дней","день","дня"][n.getSlavicForm(t)]},h:function(t){return["часов","час","часа"][n.getSlavicForm(t)]},m:function(t){return["минут","минута","минуты"][n.getSlavicForm(t)]},s:function(t){return["секунд","секунда","секунды"][n.getSlavicForm(t)]},ms:function(t){return["миллисекунд","миллисекунда","миллисекунды"][n.getSlavicForm(t)]},decimal:","},uk:{y:function(t){return["років","рік","роки"][n.getSlavicForm(t)]},mo:function(t){return["місяців","місяць","місяці"][n.getSlavicForm(t)]},w:function(t){return["тижнів","тиждень","тижні"][n.getSlavicForm(t)]},d:function(t){return["днів","день","дні"][n.getSlavicForm(t)]},h:function(t){return["годин","година","години"][n.getSlavicForm(t)]},m:function(t){return["хвилин","хвилина","хвилини"][n.getSlavicForm(t)]},s:function(t){return["секунд","секунда","секунди"][n.getSlavicForm(t)]},ms:function(t){return["мілісекунд","мілісекунда","мілісекунди"][n.getSlavicForm(t)]},decimal:","},ur:{y:function(){return"سال"},mo:function(n){return 1===n?"مہینہ":"مہینے"},w:function(n){return 1===n?"ہفتہ":"ہفتے"},d:function(){return"دن"},h:function(n){return 1===n?"گھنٹہ":"گھنٹے"},m:function(){return"منٹ"},s:function(){return"سیکنڈ"},ms:function(){return"ملی سیکنڈ"},decimal:"."},sk:{y:function(t){return["rok","roky","roky","rokov"][n.getCzechOrSlovakForm(t)]},mo:function(t){return["mesiac","mesiace","mesiace","mesiacov"][n.getCzechOrSlovakForm(t)]},w:function(t){return["týždeň","týždne","týždne","týždňov"][n.getCzechOrSlovakForm(t)]},d:function(t){return["deň","dni","dni","dní"][n.getCzechOrSlovakForm(t)]},h:function(t){return["hodina","hodiny","hodiny","hodín"][n.getCzechOrSlovakForm(t)]},m:function(t){return["minúta","minúty","minúty","minút"][n.getCzechOrSlovakForm(t)]},s:function(t){return["sekunda","sekundy","sekundy","sekúnd"][n.getCzechOrSlovakForm(t)]},ms:function(t){return["milisekunda","milisekundy","milisekundy","milisekúnd"][n.getCzechOrSlovakForm(t)]},decimal:","},sv:{y:function(){return"år"},mo:function(n){return"månad"+(1===n?"":"er")},w:function(n){return"veck"+(1===n?"a":"or")},d:function(n){return"dag"+(1===n?"":"ar")},h:function(n){return"timm"+(1===n?"e":"ar")},m:function(n){return"minut"+(1===n?"":"er")},s:function(n){return"sekund"+(1===n?"":"er")},ms:function(n){return"millisekund"+(1===n?"":"er")},decimal:","},tr:{y:function(){return"yıl"},mo:function(){return"ay"},w:function(){return"hafta"},d:function(){return"gün"},h:function(){return"saat"},m:function(){return"dakika"},s:function(){return"saniye"},ms:function(){return"milisaniye"},decimal:","},th:{y:function(){return"ปี"},mo:function(){return"เดือน"},w:function(){return"อาทิตย์"},d:function(){return"วัน"},h:function(){return"ชั่วโมง"},m:function(){return"นาที"},s:function(){return"วินาที"},ms:function(){return"มิลลิวินาที"},decimal:"."},vi:{y:function(){return"năm"},mo:function(){return"tháng"},w:function(){return"tuần"},d:function(){return"ngày"},h:function(){return"giờ"},m:function(){return"phút"},s:function(){return"giây"},ms:function(){return"mili giây"},decimal:","},zh_CN:{y:function(){return"年"},mo:function(){return"个月"},w:function(){return"周"},d:function(){return"天"},h:function(){return"小时"},m:function(){return"分钟"},s:function(){return"秒"},ms:function(){return"毫秒"},decimal:"."},zh_TW:{y:function(){return"年"},mo:function(){return"個月"},w:function(){return"周"},d:function(){return"天"},h:function(){return"小時"},m:function(){return"分鐘"},s:function(){return"秒"},ms:function(){return"毫秒"},decimal:"."}}}return n.prototype.addLanguage=function(n,t){this.languages[n]=t},n.prototype.getCzechForm=function(n){return 1===n?0:Math.floor(n)!==n?1:n%10>=2&&n%10<=4&&n%100<10?2:3},n.prototype.getPolishForm=function(n){return 1===n?0:Math.floor(n)!==n?1:n%10>=2&&n%10<=4&&!(n%100>10&&n%100<20)?2:3},n.prototype.getSlavicForm=function(n){return Math.floor(n)!==n?2:n>=5&&n<=20||n%10>=5&&n%10<=9||n%10==0?0:n%10==1?1:n>1?2:0},n.prototype.getLithuanianForm=function(n){return 1===n||n%10==1&&n%100>20?0:Math.floor(n)!==n||n%10>=2&&n%100>20||n%10>=2&&n%100<10?1:2},n.prototype.getArabicForm=function(n){return n<=2?0:n>2&&n<11?1:0},n.prototype.getCzechOrSlovakForm=function(n){return 1===n?0:Math.floor(n)!==n?1:n%10>=2&&n%10<=4&&n%100<10?2:3},n.prototype.getLatvianForm=function(n){return 1===n||n%10==1&&n%100!=11?0:1},n}(),m=function(){function n(n){this.languageUtil=n,this.defaultOptions={language:"en",delimiter:", ",spacer:" ",conjunction:"",serialComma:!0,units:["y","mo","w","d","h","m","s"],languages:{},largest:10,decimal:".",round:!1,unitMeasures:{y:315576e5,mo:26298e5,w:6048e5,d:864e5,h:36e5,m:6e4,s:1e3,ms:1}},this.options=void 0,this.options=this.defaultOptions}return n.prototype.humanize=function(n,t){var r=void 0!==t?this.extend(this.options,t):this.defaultOptions;return this.doHumanization(n,r)},n.prototype.setOptions=function(n){this.options=void 0!==n?this.extend(this.defaultOptions,n):this.defaultOptions},n.prototype.getSupportedLanguages=function(){var n=[];for(var t in this.languageUtil.languages)this.languageUtil.languages.hasOwnProperty(t)&&n.push(t);return n},n.prototype.addLanguage=function(n,t){this.languageUtil.addLanguage(n,t)},n.prototype.doHumanization=function(n,t){var r,u,e;n=Math.abs(n);var i=t.languages[t.language]||this.languageUtil.languages[t.language];if(!i)throw new Error("No language "+i+".");var o,c,m,a=[];for(r=0,u=t.units.length;r<u;r++)o=t.units[r],c=t.unitMeasures[o],m=r+1===u?n/c:Math.floor(n/c),a.push({unitCount:m,unitName:o}),n-=m*c;var f=0;for(r=0;r<a.length;r++)if(a[r].unitCount){f=r;break}if(t.round){var s=void 0,d=void 0;for(r=a.length-1;r>=0&&((e=a[r]).unitCount=Math.round(e.unitCount),0!==r);r--)d=a[r-1],s=t.unitMeasures[d.unitName]/t.unitMeasures[e.unitName],(e.unitCount%s==0||t.largest&&t.largest-1<r-f)&&(d.unitCount+=e.unitCount/s,e.unitCount=0)}var l=[];for(r=0,a.length;r<u&&((e=a[r]).unitCount&&l.push(this.render(e.unitCount,e.unitName,i,t)),l.length!==t.largest);r++);return l.length?t.conjunction&&1!==l.length?2===l.length?l.join(t.conjunction):l.length>2?l.slice(0,-1).join(t.delimiter)+(t.serialComma?",":"")+t.conjunction+l.slice(-1):void 0:l.join(t.delimiter):this.render(0,t.units[t.units.length-1],i,t)},n.prototype.render=function(n,t,r,u){var e;e=void 0===u.decimal?r.decimal:u.decimal;var i=n.toString().replace(".",e.toString()),o=r[t](n);return i+u.spacer+o},n.prototype.extend=function(n,t){for(var r in t)n.hasOwnProperty(r)&&(n[r]=t[r]);return n},n}(),a=t({__name:"display",props:{value:{type:Number,required:!1}},setup(n){const t=n,a=new m(new c),f=r((()=>a.humanize(1e3*t.value)));return(n,t)=>(u(),e("span",null,i(o(f)),1))}});a.__file="src/display.vue";var f=n({id:"duration",name:"$:duration.display.name",description:"$:duration.display.description",icon:"timer",component:a,options:null,types:["integer","float","decimal"]});export{f as default};