index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import 'normalize.css/normalize.css'
  2. import { createI18n } from 'vue-i18n'
  3. import MakingForm from './components/Container.vue'
  4. import GenerateForm from './components/GenerateForm.vue'
  5. import GenerateAntdForm from './components/AntdvGenerator/GenerateForm.vue'
  6. import GenerateVantForm from './components/VantGenerator/GenerateForm.vue'
  7. import enUS from './lang/en-us.js'
  8. import zhCN from './lang/zh-cn.js'
  9. import './iconfont/iconfont.css'
  10. import './styles/cover.scss'
  11. import './styles/index.scss'
  12. import './styles/editor.scss'
  13. import './styles/scrollbar.scss'
  14. import './styles/vars.scss'
  15. import './styles/print.scss'
  16. const expire = 253402271999000
  17. const version = '3.9.0'
  18. const displayVersion = () => {
  19. Function(`
  20. window.console && console.log('%cFormMaking %cV${version} https://form.making.link', 'color: #1890ff;font-weight: 500;font-size: 20px;font-family: Source Sans Pro,Helvetica Neue,Arial,sans-serif;', 'color: #ccc;');
  21. `)()
  22. }
  23. const loadLang = function (app, locale, i18n) {
  24. if (i18n) {
  25. i18n.global.setLocaleMessage('zh-cn', {...i18n.global.getLocaleMessage('zh-cn'), ...zhCN})
  26. i18n.global.setLocaleMessage('en', {...i18n.global.getLocaleMessage('en'), ...enUS})
  27. if (i18n.mode === 'legacy') {
  28. i18n.global.locale = locale
  29. } else {
  30. i18n.global.locale.value = locale
  31. }
  32. } else {
  33. const i18n = createI18n({
  34. locale: locale,
  35. fallbackLocale: locale,
  36. messages: {
  37. 'en': enUS,
  38. 'zh-cn': zhCN
  39. }
  40. })
  41. app.use(i18n)
  42. }
  43. }
  44. const loadOptions = (opts) => {
  45. window.FormMaking_OPTIONS = {
  46. ...opts,
  47. aceurl: opts.aceurl ?? 'https://form.making.link/public/lib/ace',
  48. key: '03202501060166M',
  49. version
  50. }
  51. }
  52. MakingForm.install = function (app, opts = {
  53. locale: 'zh-cn',
  54. }) {
  55. loadLang(app, opts.locale, opts.i18n)
  56. if (expire >= new Date().getTime()) {
  57. app.component(MakingForm.name, MakingForm)
  58. }
  59. displayVersion()
  60. loadOptions(opts)
  61. return app
  62. }
  63. GenerateForm.install = function (app, opts = {
  64. locale: 'en'
  65. }) {
  66. loadLang(app, opts.locale, opts.i18n)
  67. if (expire >= new Date().getTime()) {
  68. app.component(GenerateForm.name, GenerateForm)
  69. }
  70. displayVersion()
  71. loadOptions(opts)
  72. }
  73. GenerateAntdForm.install = function (app, opts = {
  74. locale: 'en'
  75. }) {
  76. loadLang(app, opts.locale, opts.i18n)
  77. if (expire >= new Date().getTime()) {
  78. app.component(GenerateAntdForm.name, GenerateAntdForm)
  79. }
  80. displayVersion()
  81. loadOptions(opts)
  82. }
  83. GenerateVantForm.install = function (app, opts = {
  84. locale: 'en'
  85. }) {
  86. loadLang(app, opts.locale, opts.i18n)
  87. if (expire >= new Date().getTime()) {
  88. app.component(GenerateVantForm.name, GenerateVantForm)
  89. }
  90. displayVersion()
  91. loadOptions(opts)
  92. }
  93. const components = [
  94. MakingForm,
  95. GenerateForm,
  96. GenerateAntdForm,
  97. GenerateVantForm
  98. ]
  99. const install = function (app, opts = {
  100. locale: 'en',
  101. i18n: null,
  102. components: []
  103. }) {
  104. opts = {
  105. key: '03202501060166M',
  106. locale: 'en',
  107. i18n: null,
  108. components: [],
  109. ...opts
  110. }
  111. loadLang(app, opts.locale, opts.i18n)
  112. if (expire >= new Date().getTime()) {
  113. components.forEach(component => {
  114. app.component(component.name, component)
  115. })
  116. opts.components && opts.components.forEach(item => {
  117. app.component(item.name, item.component)
  118. })
  119. }
  120. displayVersion()
  121. loadOptions(opts)
  122. }
  123. export {
  124. install,
  125. MakingForm,
  126. GenerateForm,
  127. GenerateAntdForm,
  128. GenerateVantForm
  129. }
  130. export default {
  131. install,
  132. MakingForm,
  133. GenerateForm,
  134. GenerateAntdForm,
  135. GenerateVantForm
  136. }