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