39 changed files with 903 additions and 36 deletions
@ -0,0 +1,37 @@ |
|||
<template> |
|||
<q-item clickable> |
|||
<q-item-section> |
|||
<q-item-label>{{ $t('math.toolbar.functions.collection') }}</q-item-label> |
|||
</q-item-section> |
|||
<q-item-section side> |
|||
<q-icon name="keyboard_arrow_right" /> |
|||
</q-item-section> |
|||
<q-menu anchor="top end" self="top start"> |
|||
<q-list dense> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.collection.hasElements')" |
|||
draggable="true" |
|||
@dragstart="hasElementsRef?.dragstart" |
|||
@click="hasElementsRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<HasElements ref="hasElementsRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></HasElements> |
|||
</q-item-section> |
|||
</q-item> |
|||
</q-list> |
|||
</q-menu> |
|||
</q-item> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import HasElements from './collection/HasElements.vue'; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const hasElementsRef = ref(); |
|||
</script> |
@ -0,0 +1,44 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>hasElements</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>hasElements</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('hasElements(x)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,122 @@ |
|||
<template> |
|||
<q-item clickable> |
|||
<q-item-section> |
|||
<q-item-label>{{ $t('math.toolbar.functions.date.between') }}</q-item-label> |
|||
</q-item-section> |
|||
<q-item-section side> |
|||
<q-icon name="keyboard_arrow_right" /> |
|||
</q-item-section> |
|||
|
|||
<q-menu anchor="top end" self="top start"> |
|||
<q-list dense> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.years')" |
|||
draggable="true" |
|||
@dragstart="yearsBetweenRef?.dragstart" |
|||
@click="yearsBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<YearsBetween ref="yearsBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></YearsBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.months')" |
|||
draggable="true" |
|||
@dragstart="monthsBetweenRef?.dragstart" |
|||
@click="monthsBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<MonthsBetween ref="monthsBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></MonthsBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.weeks')" |
|||
draggable="true" |
|||
@dragstart="weeksBetweenRef?.dragstart" |
|||
@click="weeksBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<WeeksBetween ref="weeksBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></WeeksBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.days')" |
|||
draggable="true" |
|||
@dragstart="daysBetweenRef?.dragstart" |
|||
@click="daysBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<DaysBetween ref="daysBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></DaysBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.hours')" |
|||
draggable="true" |
|||
@dragstart="hoursBetweenRef?.dragstart" |
|||
@click="hoursBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<HoursBetween ref="hoursBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></HoursBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.minutes')" |
|||
draggable="true" |
|||
@dragstart="minutesBetweenRef?.dragstart" |
|||
@click="minutesBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<MinutesBetween ref="minutesBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></MinutesBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
<q-item |
|||
v-close-popup |
|||
clickable |
|||
:title="$t('math.toolbar.functions.date.between.seconds')" |
|||
draggable="true" |
|||
@dragstart="secondsBetweenRef?.dragstart" |
|||
@click="secondsBetweenRef?.append" |
|||
> |
|||
<q-item-section> |
|||
<SecondsBetween ref="secondsBetweenRef" v-model="modelValueRef" :source-code-editor="sourceCodeEditor"></SecondsBetween> |
|||
</q-item-section> |
|||
</q-item> |
|||
</q-list> |
|||
</q-menu> |
|||
</q-item> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import YearsBetween from './YearsBetween.vue'; |
|||
import MonthsBetween from './MonthsBetween.vue'; |
|||
import WeeksBetween from './WeeksBetween.vue'; |
|||
import DaysBetween from './DaysBetween.vue'; |
|||
import HoursBetween from './HoursBetween.vue'; |
|||
import MinutesBetween from './MinutesBetween.vue'; |
|||
import SecondsBetween from './SecondsBetween.vue'; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const yearsBetweenRef = ref(); |
|||
const monthsBetweenRef = ref(); |
|||
const weeksBetweenRef = ref(); |
|||
const daysBetweenRef = ref(); |
|||
const hoursBetweenRef = ref(); |
|||
const minutesBetweenRef = ref(); |
|||
const secondsBetweenRef = ref(); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>daysBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>daysBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('daysBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>hoursBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>hoursBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('hoursBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>minutesBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>minutesBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('minutesBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>monthsBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>monthsBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('monthsBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>secondsBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>secondsBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('secondsBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>weeksBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>weeksBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('weeksBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
@ -0,0 +1,52 @@ |
|||
<template> |
|||
<span> |
|||
<math display="inline"> |
|||
<mrow> |
|||
<mo>yearBetween</mo> |
|||
<mi>(</mi> |
|||
<mi>x</mi> |
|||
<mo>,</mo> |
|||
<mi>y</mi> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
</math> |
|||
</span> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
const xmlData = ` |
|||
<mspace></mspace> |
|||
<mrow> |
|||
<mo>yearBetween</mo> |
|||
<mi>(</mi> |
|||
<mspace></mspace> |
|||
<mi>x</mi> |
|||
<mspace></mspace> |
|||
<mo>,</mo> |
|||
<mspace></mspace> |
|||
<mi>y</mi> |
|||
<mspace></mspace> |
|||
<mi>)</mi> |
|||
</mrow> |
|||
<mspace></mspace> |
|||
`; |
|||
|
|||
const modelValueRef = defineModel({ type: String, default: '' }); |
|||
const props = defineProps({ |
|||
sourceCodeEditor: { type: Object, default: undefined }, |
|||
}); |
|||
|
|||
const dragstart = (event) => { |
|||
event.dataTransfer.setData('math', xmlData); |
|||
event.dataTransfer.setDragImage(event.srcElement, 0, 0); |
|||
}; |
|||
|
|||
const append = () => { |
|||
props.sourceCodeEditor?.dispatch(props.sourceCodeEditor?.state?.replaceSelection('yearBetween(d1,d2)')); |
|||
modelValueRef.value = modelValueRef.value + xmlData.replace('<mspace></mspace>', ''); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
dragstart, |
|||
append, |
|||
}); |
|||
</script> |
Loading…
Reference in new issue