search_ui/stores/entityStore.ts

289 lines
7.9 KiB
TypeScript
Raw Normal View History

2025-02-01 11:06:10 +00:00
import type {
activeResearchType,
ActiveTab,
EntityViewSchema,
ListEntity,
qruleActiveTab,
qruleActiveTabGetter,
SelectedItemEntity,
SimilarInfo,
} from "~/types/entityType";
export const useEntityStore = defineStore("entityStore", {
persist: {
storage: piniaPluginPersistedstate.localStorage(),
pick: [
"draftSchema",
"draftActiveStep",
"draftActiveSchema",
"draftSaveBoxSchema",
"activeTab",
"isReadingMode",
"entityViewSchema",
"qruleActiveTab",
"qruleSchema",
"qruleActiveSchema",
"listHighlightText",
"activeResearchType",
],
},
state: () => ({
entityViewSchema: undefined as EntityViewSchema | undefined,
selectedItemEntity: undefined as SelectedItemEntity | undefined,
listEntity: undefined as ListEntity | undefined,
similarInfo: {} as SimilarInfo | undefined,
vuexEntity: undefined, //پیدا نکردم
qruleActiveSchema: undefined as qruleActiveTabGetter | undefined,
qruleActiveTab: undefined as qruleActiveTab | undefined,
activeResearchType: undefined as activeResearchType | undefined,
isReadingMode: false,
fontSize: undefined as undefined | string,
selectedText: undefined as undefined | string,
showSidebar: false,
statusId: undefined,
statusButton: undefined,
statusEntityViewPage: undefined,
textSteps: [],
listHighlightText: [],
breadCrumb: [],
// draft law
nlpTree: undefined,
draftActiveStep: undefined,
draftActiveSchema: undefined,
draftSchema: undefined,
draftSaveBoxSchema: [],
// draft law
qruleSchema: undefined,
queryParams: undefined,
statusRemovCheckBox: undefined,
requestSimilar: false, // این متغییر دیگه نباید استفاده شود
newSimilar: false, // این متغییر دیگه نباید استفاده شود
showModal: false,
changePagForFish: 0,
itemEditForFish: undefined,
fishActions: undefined,
annotationActions: undefined,
itemEditForAnnotation: undefined,
showModalAnnotation: false,
}),
getters: {
// start: draft page
nlpTreeGetter(state) {
return state.nlpTree;
},
draftActiveStepGetter(state) {
return state.draftActiveStep;
},
draftSchemaGetter(state) {
return state.draftSchema;
},
draftActiveSchemaGetter(state) {
return state.draftActiveSchema;
},
draftSaveBoxSchemaGetter(state) {
return state.draftSaveBoxSchema;
},
// end: draft page
vuexEntityGetter(state) {
return state.vuexEntity;
},
breadCrumbGetter(state) {
return state.breadCrumb;
},
2025-02-11 07:09:05 +00:00
2025-02-01 11:06:10 +00:00
entityViewSchemaGetter(state) {
return state.entityViewSchema;
},
2025-02-11 07:09:05 +00:00
2025-02-01 11:06:10 +00:00
qruleActiveTabGetter(state) {
return state.qruleActiveTab;
},
qruleActiveSchemaGetter(state) {
return state.qruleActiveSchema;
},
selectedItemEntityGetter(state) {
return state.selectedItemEntity;
},
listEntityGetter(state) {
return state.listEntity;
},
fontSizeGerrer(state) {
return state.fontSize;
},
statusButtonGetter(state) {
return state.statusButton;
},
statusEntityViewPageGetter(state) {
return state.statusEntityViewPage;
},
textStepsGetter(state) {
return state.textSteps;
},
showSidebarGetter(state) {
return state.showSidebar;
},
similarInfoGetter(state) {
return state.similarInfo;
},
selectedTextGetter(state) {
return state.selectedText;
},
listHighlightTextGetter(state) {
return state.listHighlightText;
},
activeResearchTypeGetter(state) {
return state.activeResearchType;
},
isReadingModeGetter(state) {
return state.isReadingMode;
},
},
actions: {
// start: draft page
nlpTreeSetter(nlpTree = undefined) {
this.nlpTree = nlpTree;
},
draftActiveStepSetter(draftActiveStep = undefined) {
this.draftActiveStep = draftActiveStep;
},
draftSchemaSetter(draftSchema = undefined) {
this.draftSchema = draftSchema;
},
draftActiveSchemaSetter(draftActiveSchema = undefined) {
this.draftActiveSchema = draftActiveSchema;
},
draftSaveBoxSchemaSetter(draftSaveBoxSchema = []) {
this.draftSaveBoxSchema = draftSaveBoxSchema;
},
// end: draft page
vuexEntitySetter(vuexEntity = undefined) {
this.vuexEntity = vuexEntity;
},
breadCrumbSetter(newItem = undefined) {
if (!newItem) this.breadCrumb = [];
else this.breadCrumb = [...this.breadCrumb, newItem];
},
2025-02-11 07:09:05 +00:00
2025-02-01 11:06:10 +00:00
entityViewSchemaSetter(entityViewSchema = undefined) {
this.entityViewSchema = entityViewSchema;
},
2025-02-11 07:09:05 +00:00
2025-02-01 11:06:10 +00:00
qruleActiveTabSetter(qruleActiveTab = undefined) {
this.qruleActiveTab = qruleActiveTab;
},
qruleSchemaSetter(qruleSchema = undefined) {
this.qruleSchema = qruleSchema;
},
qruleActiveSchemaSetter(qruleActiveSchema = undefined) {
this.qruleActiveSchema = qruleActiveSchema;
},
2025-02-11 07:09:05 +00:00
2025-02-01 11:06:10 +00:00
SET_ITEM_ENTITY(item) {
this.selectedItemEntity = item;
},
SET_LIST_ENTITY(list) {
this.listEntity = list;
},
SET_FONT(fontSize) {
this.fontSize = fontSize;
},
// SET_QUERY( queryParams) {
// this.queryParams = queryParams;
// },
SET_ITEM_LIST_SELECTED_ID(itemListIdSelected) {
this.itemListIdSelected = itemListIdSelected;
},
SET_STATUS_BUTTON(statusButton) {
this.statusButton = statusButton;
},
SET_STATUS_ENTITY_VIEWPAGE(statusEntityViewPage) {
this.statusEntityViewPage = statusEntityViewPage;
},
SET_STATUS_REMOVE_CHECKBOX(statusRemovCheckBox) {
this.statusRemovCheckBox = statusRemovCheckBox;
},
SET_TEXT_STEPS(textSteps) {
this.textSteps = textSteps;
},
SET_SHOW_SIDEBAR(showSidebar) {
this.showSidebar = showSidebar;
},
SET_REQUEST_SIMILAR(requestSimilar) {
this.requestSimilar = requestSimilar;
},
SET_NEW_SIMILAR(newSimilar) {
this.newSimilar = newSimilar;
},
selectedTextSetter(selectedText) {
this.selectedText = selectedText;
},
SET_SHOW_MODAL(showModal) {
this.showModal = showModal;
},
SET_CHANGE_PAG_FOR_FISH(changePagForFish) {
this.changePagForFish = changePagForFish;
},
itemEditForFishSetter(itemEditForFish) {
this.itemEditForFish = itemEditForFish;
},
fishActionsSetter(fishActions) {
this.fishActions = fishActions;
},
annotationActionsSetter(annotationActions) {
this.annotationActions = annotationActions;
},
itemEditForAnnotationSetter(itemEditForAnnotation) {
this.itemEditForAnnotation = itemEditForAnnotation;
},
showModalAnnotationSetter(showModalAnnotation) {
this.showModalAnnotation = showModalAnnotation;
},
similarInfoSetter(similarInfo) {
this.similarInfo = similarInfo;
},
listHighlightTextSetter(listHighlightText) {
// this.listHighlightText = listHighlightText;
// if (!this.listHighlightText.includes(listHighlightText)) {
// this.listHighlightText.push(listHighlightText);
// }
const exists = this.listHighlightText.some(
(item) => item.text === listHighlightText.text
);
if (!exists) {
this.listHighlightText.push(listHighlightText);
}
},
removeHighlightTextSetter(listHighlightText) {
this.listHighlightText = this.listHighlightText.filter(
(item) => item.text !== listHighlightText.text
);
},
toggleShowHighlightSetter(newState) {
this.listHighlightText.forEach((item) => (item.show = newState));
},
activeResearchTypeSetter(activeResearchType) {
this.activeResearchType = activeResearchType;
},
isReadingModeSetter(isReadingMode) {
this.isReadingMode = isReadingMode;
},
},
});
// export default {
// namespaced:true,
// state,
// actions,
// mutations,
// getters
// };