mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 03:12:15 +00:00
* introduce analytics * add user survey backend * add user survey backend * set answers on survey submit Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> * change name to personalization * lint Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> * N8n 2495 add personalization modal (#2280) * update modals * add onboarding modal * implement questions * introduce analytics * simplify impl * implement survey handling * add personalized cateogry * update modal behavior * add thank you view * handle empty cases * rename modal * standarize modal names * update image, add tags to headings * remove unused file * remove unused interfaces * clean up footer spacing * introduce analytics * refactor to fix bug * update endpoint * set min height * update stories * update naming from questions to survey * remove spacing after core categories * fix bug in logic * sort nodes * rename types * merge with be * rename userSurvey * clean up rest api * use constants for keys * use survey keys * clean up types * move personalization to its own file Co-authored-by: ahsan-virani <ahsan.virani@gmail.com> * Survey new options (#2300) * split up options * fix quotes * remove unused import * add user created workflow event (#2301) * simplify env vars * fix versionCli on FE * update personalization env * fix event User opened Credentials panel * fix select modal spacing * fix nodes panel event * fix workflow id in workflow execute event * improve telemetry error logging * fix config and stop process events * add flush call on n8n stop * ready for release * improve telemetry process exit * fix merge * improve n8n stop events Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com> Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
171 lines
4.8 KiB
TypeScript
171 lines
4.8 KiB
TypeScript
// @ts-nocheck
|
|
|
|
import Vue from "vue";
|
|
import Fragment from 'vue-fragment';
|
|
|
|
import "regenerator-runtime/runtime";
|
|
|
|
import Drawer from 'element-ui/lib/drawer';
|
|
import Dialog from 'element-ui/lib/dialog';
|
|
import Dropdown from 'element-ui/lib/dropdown';
|
|
import DropdownMenu from 'element-ui/lib/dropdown-menu';
|
|
import DropdownItem from 'element-ui/lib/dropdown-item';
|
|
import Submenu from 'element-ui/lib/submenu';
|
|
import Radio from 'element-ui/lib/radio';
|
|
import RadioGroup from 'element-ui/lib/radio-group';
|
|
import RadioButton from 'element-ui/lib/radio-button';
|
|
import Checkbox from 'element-ui/lib/checkbox';
|
|
import Switch from 'element-ui/lib/switch';
|
|
import Select from 'element-ui/lib/select';
|
|
import Option from 'element-ui/lib/option';
|
|
import OptionGroup from 'element-ui/lib/option-group';
|
|
import ButtonGroup from 'element-ui/lib/button-group';
|
|
import Table from 'element-ui/lib/table';
|
|
import TableColumn from 'element-ui/lib/table-column';
|
|
import DatePicker from 'element-ui/lib/date-picker';
|
|
import Tabs from 'element-ui/lib/tabs';
|
|
import TabPane from 'element-ui/lib/tab-pane';
|
|
import Tag from 'element-ui/lib/tag';
|
|
import Row from 'element-ui/lib/row';
|
|
import Col from 'element-ui/lib/col';
|
|
import Badge from 'element-ui/lib/badge';
|
|
import Card from 'element-ui/lib/card';
|
|
import ColorPicker from 'element-ui/lib/color-picker';
|
|
import Transfer from 'element-ui/lib/transfer';
|
|
import Container from 'element-ui/lib/container';
|
|
import Loading from 'element-ui/lib/loading';
|
|
import MessageBox from 'element-ui/lib/message-box';
|
|
import Message from 'element-ui/lib/message';
|
|
import Notification from 'element-ui/lib/notification';
|
|
import CollapseTransition from 'element-ui/lib/transitions/collapse-transition';
|
|
|
|
// @ts-ignore
|
|
import lang from 'element-ui/lib/locale/lang/en';
|
|
// @ts-ignore
|
|
import locale from 'element-ui/lib/locale';
|
|
|
|
import {
|
|
N8nIconButton,
|
|
N8nButton,
|
|
N8nInfoTip,
|
|
N8nInput,
|
|
N8nInputLabel,
|
|
N8nInputNumber,
|
|
N8nHeading,
|
|
N8nMenu,
|
|
N8nMenuItem,
|
|
N8nSelect,
|
|
N8nSpinner,
|
|
N8nText,
|
|
N8nTooltip,
|
|
N8nOption,
|
|
} from 'n8n-design-system';
|
|
import { ElMessageBoxOptions } from "element-ui/types/message-box";
|
|
|
|
Vue.use(Fragment.Plugin);
|
|
|
|
// n8n design system
|
|
Vue.use(N8nButton);
|
|
Vue.use(N8nIconButton);
|
|
Vue.use(N8nInfoTip);
|
|
Vue.use(N8nInput);
|
|
Vue.use(N8nInputLabel);
|
|
Vue.use(N8nInputNumber);
|
|
Vue.use(N8nHeading);
|
|
Vue.use(N8nMenu);
|
|
Vue.use(N8nMenuItem);
|
|
Vue.use(N8nSelect);
|
|
Vue.use(N8nSpinner);
|
|
Vue.component('n8n-text', N8nText);
|
|
Vue.use(N8nTooltip);
|
|
Vue.use(N8nOption);
|
|
|
|
// element io
|
|
locale.use(lang);
|
|
|
|
Vue.use(Dialog);
|
|
Vue.use(Drawer);
|
|
Vue.use(Dropdown);
|
|
Vue.use(DropdownMenu);
|
|
Vue.use(DropdownItem);
|
|
Vue.use(Submenu);
|
|
Vue.use(Radio);
|
|
Vue.use(RadioGroup);
|
|
Vue.use(RadioButton);
|
|
Vue.use(Checkbox);
|
|
Vue.use(Switch);
|
|
Vue.use(Select);
|
|
Vue.use(Option);
|
|
Vue.use(OptionGroup);
|
|
Vue.use(ButtonGroup);
|
|
Vue.use(Table);
|
|
Vue.use(TableColumn);
|
|
Vue.use(DatePicker);
|
|
Vue.use(Tabs);
|
|
Vue.use(TabPane);
|
|
Vue.use(Tag);
|
|
Vue.use(Row);
|
|
Vue.use(Col);
|
|
Vue.use(Badge);
|
|
Vue.use(Card);
|
|
Vue.use(ColorPicker);
|
|
Vue.use(Transfer);
|
|
Vue.use(Container);
|
|
|
|
Vue.component(CollapseTransition.name, CollapseTransition);
|
|
|
|
Vue.use(Loading.directive);
|
|
|
|
Vue.prototype.$loading = Loading.service;
|
|
Vue.prototype.$msgbox = MessageBox;
|
|
|
|
Vue.prototype.$alert = async (message: string, configOrTitle: string | ElMessageBoxOptions | undefined, config: ElMessageBoxOptions | undefined) => {
|
|
let temp = config || (typeof configOrTitle === 'object' ? configOrTitle : {});
|
|
temp = {
|
|
...temp,
|
|
roundButton: true,
|
|
cancelButtonClass: 'btn--cancel',
|
|
confirmButtonClass: 'btn--confirm',
|
|
};
|
|
|
|
if (typeof configOrTitle === 'string') {
|
|
return await MessageBox.alert(message, configOrTitle, temp);
|
|
}
|
|
return await MessageBox.alert(message, temp);
|
|
};
|
|
|
|
Vue.prototype.$confirm = async (message: string, configOrTitle: string | ElMessageBoxOptions | undefined, config: ElMessageBoxOptions | undefined) => {
|
|
let temp = config || (typeof configOrTitle === 'object' ? configOrTitle : {});
|
|
temp = {
|
|
...temp,
|
|
roundButton: true,
|
|
cancelButtonClass: 'btn--cancel',
|
|
confirmButtonClass: 'btn--confirm',
|
|
showClose: false,
|
|
closeOnClickModal: false,
|
|
};
|
|
|
|
if (typeof configOrTitle === 'string') {
|
|
return await MessageBox.confirm(message, configOrTitle, temp);
|
|
}
|
|
return await MessageBox.confirm(message, temp);
|
|
};
|
|
|
|
Vue.prototype.$prompt = async (message: string, configOrTitle: string | ElMessageBoxOptions | undefined, config: ElMessageBoxOptions | undefined) => {
|
|
let temp = config || (typeof configOrTitle === 'object' ? configOrTitle : {});
|
|
temp = {
|
|
...temp,
|
|
roundButton: true,
|
|
cancelButtonClass: 'btn--cancel',
|
|
confirmButtonClass: 'btn--confirm',
|
|
};
|
|
|
|
if (typeof configOrTitle === 'string') {
|
|
return await MessageBox.prompt(message, configOrTitle, temp);
|
|
}
|
|
return await MessageBox.prompt(message, temp);
|
|
};
|
|
|
|
Vue.prototype.$notify = Notification;
|
|
Vue.prototype.$message = Message;
|