├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .idea
├── codeStyles
│ └── codeStyleConfig.xml
├── dictionaries
│ └── Administrator.xml
├── jsLibraryMappings.xml
├── jsLinters
│ └── jshint.xml
├── misc.xml
├── modules.xml
├── vcs.xml
├── wherehows.iml
└── workspace.xml
├── .postcssrc.js
├── .swp
├── README.md
├── app.js
├── build
├── build.js
├── check-versions.js
├── logo.png
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── common.js
├── config
├── dev.env.js
└── prod.env.js
├── index.html
├── package.json
├── src
├── App.vue
├── assets
│ ├── css
│ │ ├── common.css
│ │ └── elementUiEdit.less
│ ├── element-theme
│ │ └── element-variables.scss
│ ├── font
│ │ ├── iconfont.css
│ │ ├── iconfont.eot
│ │ ├── iconfont.js
│ │ ├── iconfont.svg
│ │ ├── iconfont.ttf
│ │ └── iconfont.woff
│ ├── images
│ │ ├── Entry
│ │ │ ├── icon_cxfx.png
│ │ │ ├── icon_etl.png
│ │ │ ├── icon_rwdd.png
│ │ │ ├── icon_sjjc.png
│ │ │ ├── icon_ysj.png
│ │ │ ├── logo.png
│ │ │ └── user.png
│ │ ├── RelationalGraph
│ │ │ ├── article.png
│ │ │ └── st.png
│ │ ├── approver-dispass.png
│ │ ├── approver-flow.png
│ │ ├── approver-pass.png
│ │ ├── approver-wait.png
│ │ ├── bg_body.png
│ │ ├── bg_body_schema.png
│ │ ├── box.png
│ │ ├── brush_icon.png
│ │ ├── business
│ │ │ ├── bg.png
│ │ │ ├── data_empty.png
│ │ │ └── icon
│ │ │ │ ├── fd.png
│ │ │ │ ├── fh.png
│ │ │ │ ├── gd.png
│ │ │ │ ├── jx.svg
│ │ │ │ ├── sq.png
│ │ │ │ ├── sx.png
│ │ │ │ ├── tj.png
│ │ │ │ └── zk.png
│ │ ├── checkBoxRed.png
│ │ ├── dataImport.png
│ │ ├── dataset.png
│ │ ├── dataset_operate.png
│ │ ├── download.png
│ │ ├── favicon.ico
│ │ ├── file_del.png
│ │ ├── files-views.png
│ │ ├── files
│ │ │ └── no-data.png
│ │ ├── folder_close.png
│ │ ├── folder_open.png
│ │ ├── gif
│ │ │ ├── GIF.gif
│ │ │ ├── GIF2.gif
│ │ │ ├── GIF3.gif
│ │ │ ├── GIF4.gif
│ │ │ ├── GIF5.gif
│ │ │ ├── GIF6.gif
│ │ │ ├── GIF7.gif
│ │ │ ├── GIF8.gif
│ │ │ └── GIF9.gif
│ │ ├── icon
│ │ │ ├── SQL.png
│ │ │ ├── checkbox-checked.png
│ │ │ ├── checkbox-disabled.png
│ │ │ ├── checkbox.png
│ │ │ ├── db.png
│ │ │ ├── email.png
│ │ │ ├── icon1.png
│ │ │ ├── icon1_active.png
│ │ │ ├── icon2.png
│ │ │ ├── icon2_active.png
│ │ │ ├── icon3.png
│ │ │ ├── icon3_active.png
│ │ │ ├── icon4.png
│ │ │ ├── icon41.png
│ │ │ ├── icon41_active.png
│ │ │ ├── icon4_active.png
│ │ │ ├── icon5.png
│ │ │ ├── icon5_active.png
│ │ │ ├── icon6.png
│ │ │ ├── icon6_active.png
│ │ │ ├── icon7.png
│ │ │ ├── icon7_active.png
│ │ │ ├── icon8.png
│ │ │ ├── icon8_active.png
│ │ │ ├── plus.png
│ │ │ ├── qx.png
│ │ │ ├── qxyc.png
│ │ │ ├── remove-hover.png
│ │ │ ├── remove.png
│ │ │ ├── sc.png
│ │ │ ├── sc_.png
│ │ │ ├── sort-icon.png
│ │ │ └── yc.png
│ │ ├── icon_add.png
│ │ ├── icon_addTheme.png
│ │ ├── icon_bang.png
│ │ ├── icon_datePicker.png
│ │ ├── icon_delectInput.png
│ │ ├── icon_delectInputHover.png
│ │ ├── icon_download.png
│ │ ├── icon_login.png
│ │ ├── icon_manage.png
│ │ ├── icon_nav.png
│ │ ├── icon_navSearch.png
│ │ ├── icon_navSearchHover.png
│ │ ├── icon_newdataset.png
│ │ ├── icon_newflow.png
│ │ ├── icon_noPass.png
│ │ ├── icon_nodata.png
│ │ ├── icon_nodata1.png
│ │ ├── icon_pass.png
│ │ ├── icon_pencil.png
│ │ ├── icon_search.png
│ │ ├── icon_select.png
│ │ ├── icon_setting.png
│ │ ├── icon_setting_old.png
│ │ ├── icon_slideDown.png
│ │ ├── icon_slideUp.png
│ │ ├── icon_upload.png
│ │ ├── icon_user.png
│ │ ├── icon_user1.png
│ │ ├── icon_zoom.png
│ │ ├── icons.png
│ │ ├── importExport
│ │ │ └── icon.png
│ │ ├── import_export_icon.png
│ │ ├── leapavartar.png
│ │ ├── leapavatar.png
│ │ ├── left_close.png
│ │ ├── left_close_active.png
│ │ ├── left_open.png
│ │ ├── left_open_active.png
│ │ ├── lifecycle_warn_icon.png
│ │ ├── loading.jpg
│ │ ├── loading_bg.png
│ │ ├── loading_left.gif
│ │ ├── loading_right.gif
│ │ ├── loading_s.gif
│ │ ├── login_bg.jpg
│ │ ├── logo.png
│ │ ├── logo_login.png
│ │ ├── logo_login_header.png
│ │ ├── logo_pro.png
│ │ ├── logo_project.png
│ │ ├── logo_project_b.png
│ │ ├── logo_s.png
│ │ ├── main_nav_list.png
│ │ ├── metaData
│ │ │ ├── add_table.png
│ │ │ ├── add_table_hover.png
│ │ │ ├── header_operator.png
│ │ │ ├── icon
│ │ │ │ ├── bq.png
│ │ │ │ ├── icon1.png
│ │ │ │ ├── icon2.png
│ │ │ │ ├── icon3.png
│ │ │ │ ├── icon4.png
│ │ │ │ ├── icon4_off.png
│ │ │ │ ├── icon5.png
│ │ │ │ ├── icon5_off.png
│ │ │ │ ├── jm1.png
│ │ │ │ ├── jm2.png
│ │ │ │ ├── qx.png
│ │ │ │ ├── sq.png
│ │ │ │ └── zk.png
│ │ │ ├── icon_app.png
│ │ │ ├── icon_comment.png
│ │ │ ├── icon_datasetTree.png
│ │ │ ├── icon_description.png
│ │ │ ├── icon_more.png
│ │ │ ├── icon_quality.png
│ │ │ ├── icon_question.png
│ │ │ ├── icon_search.png
│ │ │ ├── icon_tree-toggle.png
│ │ │ ├── icon_usage.png
│ │ │ ├── importExportIcon.png
│ │ │ ├── import_export.png
│ │ │ ├── import_export_icon.png
│ │ │ ├── import_export_icon2.png
│ │ │ ├── personal_icon.png
│ │ │ └── view_control_icon.png
│ │ ├── nav
│ │ │ ├── icon_delectInput.png
│ │ │ ├── icon_delectInputHover.png
│ │ │ ├── icon_nav.png
│ │ │ ├── icon_navSearch.png
│ │ │ ├── icon_navSearchHover.png
│ │ │ ├── icon_nav_personal.png
│ │ │ └── metadata_icon.png
│ │ ├── no-alert.png
│ │ ├── nodata.png
│ │ ├── owner_operation.png
│ │ ├── personal_icon.png
│ │ ├── private.png
│ │ ├── search_close.png
│ │ ├── search_close_active.png
│ │ ├── search_icon.png
│ │ ├── second_nav_active.png
│ │ ├── source_nav.png
│ │ ├── sub_logo.png
│ │ ├── table_nodata.png
│ │ ├── tj.png
│ │ ├── toast
│ │ │ ├── icon_close_error.png
│ │ │ ├── icon_close_success.png
│ │ │ ├── icon_close_warning.png
│ │ │ ├── icon_type_error.png
│ │ │ ├── icon_type_success.png
│ │ │ └── icon_type_warning.png
│ │ ├── user.png
│ │ ├── wl.png
│ │ ├── yw.png
│ │ └── zy.png
│ ├── js
│ │ ├── CronGen.min.js
│ │ └── go.js
│ ├── less
│ │ ├── Entry.less
│ │ ├── header.less
│ │ ├── metaData-nav.less
│ │ ├── metaData.less
│ │ ├── mixin.less
│ │ ├── source.less
│ │ └── vars.less
│ └── libs
│ │ ├── jsondiffpatch
│ │ ├── .bowerrc
│ │ ├── .codeclimate.yml
│ │ ├── .jscsrc
│ │ ├── .jshintrc
│ │ ├── .npmignore
│ │ ├── .travis.yml
│ │ ├── MIT-LICENSE.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── badges.md
│ │ ├── bin
│ │ │ └── jsondiffpatch
│ │ ├── bower.json
│ │ ├── docs
│ │ │ ├── arrays.md
│ │ │ ├── deltas.md
│ │ │ ├── formatters.md
│ │ │ └── plugins.md
│ │ ├── gulp-tasks
│ │ │ └── fiberglass.js
│ │ ├── gulpfile.js
│ │ ├── jshintrc.json
│ │ ├── karma.conf.js
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── demo
│ │ │ │ ├── consoledemo.js
│ │ │ │ ├── consoledemo.png
│ │ │ │ ├── demo.js
│ │ │ │ ├── index.html
│ │ │ │ ├── left.json
│ │ │ │ ├── numeric-plugin.js
│ │ │ │ ├── right.json
│ │ │ │ └── style.css
│ │ │ ├── external
│ │ │ │ └── diff_match_patch_uncompressed.js
│ │ │ ├── formatters-styles
│ │ │ │ ├── annotated.css
│ │ │ │ └── html.css
│ │ │ ├── index.html
│ │ │ └── test
│ │ │ │ └── index.html
│ │ ├── src
│ │ │ ├── clone.js
│ │ │ ├── contexts
│ │ │ │ ├── context.js
│ │ │ │ ├── diff.js
│ │ │ │ ├── patch.js
│ │ │ │ └── reverse.js
│ │ │ ├── date-reviver.js
│ │ │ ├── diffpatcher.js
│ │ │ ├── environment.js
│ │ │ ├── filters
│ │ │ │ ├── arrays.js
│ │ │ │ ├── dates.js
│ │ │ │ ├── lcs.js
│ │ │ │ ├── nested.js
│ │ │ │ ├── texts.js
│ │ │ │ └── trivial.js
│ │ │ ├── formatters
│ │ │ │ ├── annotated.js
│ │ │ │ ├── base.js
│ │ │ │ ├── console.js
│ │ │ │ ├── html.js
│ │ │ │ ├── index.js
│ │ │ │ └── jsonpatch.js
│ │ │ ├── main-formatters.js
│ │ │ ├── main-full.js
│ │ │ ├── main.js
│ │ │ ├── pipe.js
│ │ │ └── processor.js
│ │ └── test
│ │ │ ├── .jshintrc
│ │ │ ├── examples
│ │ │ └── diffpatch.js
│ │ │ ├── index.js
│ │ │ ├── mocha.opts
│ │ │ └── util
│ │ │ └── globals.js
│ │ ├── qtip
│ │ ├── jquery.qtip.css
│ │ ├── jquery.qtip.js
│ │ ├── jquery.qtip.min.css
│ │ ├── jquery.qtip.min.js
│ │ └── jquery.qtip.min.map
│ │ └── splitter
│ │ ├── jquery.splitter.css
│ │ └── jquery.splitter.js
├── components
│ ├── Business
│ │ ├── Index.vue
│ │ └── children
│ │ │ ├── AddDataset.vue
│ │ │ ├── cascader
│ │ │ └── src
│ │ │ │ ├── main.vue
│ │ │ │ └── menu.vue
│ │ │ └── children
│ │ │ ├── BusinessTree.vue
│ │ │ └── BusinessTreeItem.vue
│ ├── DataImport
│ │ ├── DataImport.vue
│ │ ├── DataImportJob.vue
│ │ ├── DataImportManual.vue
│ │ ├── DataImportRecord.vue
│ │ ├── DataImportTemplate.vue
│ │ ├── DataTreeDialog.vue
│ │ └── UploadItem.vue
│ ├── Files
│ │ ├── Index.vue
│ │ └── children
│ │ │ ├── ExportTree.vue
│ │ │ └── InputTag.vue
│ ├── Footer.vue
│ ├── Header.vue
│ ├── Home
│ │ ├── Home.vue
│ │ ├── HomeIndex.vue
│ │ ├── HomeSearch.vue
│ │ ├── HomeTopList.vue
│ │ ├── HomeUserInfo.vue
│ │ ├── TopicTree.vue
│ │ └── TopicTreeItem.vue
│ ├── ImportExport
│ │ ├── Index.vue
│ │ └── children
│ │ │ ├── Collection.vue
│ │ │ ├── Export.vue
│ │ │ ├── Import.vue
│ │ │ └── children
│ │ │ ├── CompleteData.vue
│ │ │ ├── CreateTask.vue
│ │ │ ├── DataImport.vue
│ │ │ ├── HistoryList.vue
│ │ │ ├── InsertData.vue
│ │ │ ├── TaskList.vue
│ │ │ ├── children
│ │ │ ├── BlackList.vue
│ │ │ └── HdfsSource.vue
│ │ │ └── importHeaderItem.vue
│ ├── MainNav.vue
│ ├── MainPage.vue
│ ├── MetaData
│ │ ├── DataImport
│ │ │ ├── DataImport.vue
│ │ │ ├── DataImportJob.vue
│ │ │ ├── DataImportManual.vue
│ │ │ ├── DataImportRecord.vue
│ │ │ ├── DataImportTemplate.vue
│ │ │ ├── DataTreeDialog.vue
│ │ │ └── UploadItem.vue
│ │ ├── Dataset
│ │ │ ├── Dataset.vue
│ │ │ ├── DatasetDetail.vue
│ │ │ ├── DatasetDetail
│ │ │ │ ├── BusinessDetail.vue
│ │ │ │ ├── BusinessTree.vue
│ │ │ │ ├── BusinessTreeItem.vue
│ │ │ │ ├── Comments.vue
│ │ │ │ ├── DataHistory.vue
│ │ │ │ ├── DataPermission.vue
│ │ │ │ ├── DataTypeDetail.vue
│ │ │ │ ├── DatabaseDetail.vue
│ │ │ │ ├── DatasourceDetail.vue
│ │ │ │ ├── Diagram.vue
│ │ │ │ ├── Dialog
│ │ │ │ │ ├── CompareDialog.vue
│ │ │ │ │ └── TextDialog.vue
│ │ │ │ ├── PermissionItemL.vue
│ │ │ │ ├── PermissionItemR.vue
│ │ │ │ ├── PermissionList.vue
│ │ │ │ ├── Properties.vue
│ │ │ │ ├── PropertiesEditor.vue
│ │ │ │ ├── PropertyItem.vue
│ │ │ │ ├── RelationalGraph.vue
│ │ │ │ ├── SampleData.vue
│ │ │ │ ├── Schema.vue
│ │ │ │ ├── Storage.vue
│ │ │ │ ├── TableDetail.vue
│ │ │ │ ├── VersionControl.vue
│ │ │ │ └── children
│ │ │ │ │ └── LifeCycle.vue
│ │ │ ├── DatasetTree.vue
│ │ │ ├── DatasetTreeHeader.vue
│ │ │ ├── DatasetTreeItem.vue
│ │ │ ├── PhysicalExportTree
│ │ │ │ ├── PhysicalExportTree.vue
│ │ │ │ └── PhysicalExportTreeItem.vue
│ │ │ └── chiildren
│ │ │ │ └── TagDetail.vue
│ │ ├── MetaData.vue
│ │ ├── Nav.vue
│ │ ├── Personal
│ │ │ ├── Personal.vue
│ │ │ ├── PersonalApproval.vue
│ │ │ ├── PersonalAuthority.vue
│ │ │ ├── PersonalChargeMaintain.vue
│ │ │ ├── PersonalCollect.vue
│ │ │ ├── PersonalDel.vue
│ │ │ ├── PersonalMetaMaintain.vue
│ │ │ ├── PersonalOwner.vue
│ │ │ ├── PersonalOwnerTable.vue
│ │ │ ├── PersonalRecord.vue
│ │ │ ├── Setting.vue
│ │ │ ├── Tag.vue
│ │ │ ├── TagDetail.vue
│ │ │ ├── TagList.vue
│ │ │ └── chiildren
│ │ │ │ └── Search.vue
│ │ ├── Search.vue
│ │ └── SearchResult.vue
│ ├── Source
│ │ ├── Detail
│ │ │ ├── NumberRecord.vue
│ │ │ ├── SourceDatabase.vue
│ │ │ └── SourceDataset.vue
│ │ ├── Source.vue
│ │ ├── SourceHome.vue
│ │ └── SourceList.vue
│ └── common
│ │ ├── Cron.vue
│ │ ├── DatePicker.vue
│ │ ├── Error.vue
│ │ ├── ItemJump.vue
│ │ ├── LineChart.vue
│ │ ├── Loading
│ │ ├── Loading.vue
│ │ └── index.js
│ │ ├── MoreLoading
│ │ ├── MoreLoading.vue
│ │ └── index.js
│ │ ├── NoData
│ │ ├── NoData.vue
│ │ └── index.js
│ │ ├── PieChart.vue
│ │ ├── RankList.vue
│ │ ├── Search.vue
│ │ ├── SplitControler.vue
│ │ ├── TableHeader
│ │ ├── TableHeader.vue
│ │ └── index.js
│ │ ├── TableItemJump.vue
│ │ ├── dialogItemTitle.vue
│ │ └── index.js
├── config
│ ├── env.js
│ ├── fetch.js
│ ├── http.js
│ └── mUtils.js
├── directives
│ ├── clickoutside.js
│ ├── ellipsis.js
│ ├── hiddenElement.js
│ └── index.js
├── locale
│ ├── en.js
│ ├── international.js
│ └── zh.js
├── main.js
├── mixins
│ └── common.js
├── plugins
│ ├── MessageBox
│ │ ├── MessageBox.vue
│ │ └── main.js
│ └── index.js
├── router
│ └── index.js
├── service
│ └── getData.js
├── store
│ ├── actions.js
│ ├── index.js
│ ├── mutation-types.js
│ └── mutations.js
├── utils
│ ├── bus.js
│ ├── index.js
│ └── validator.js
└── vars.less
└── static
├── a.json
├── alert.html
├── images
└── favicon.ico
└── outdatedbrowser
├── lang
├── ar.html
├── cs.html
├── da.html
├── de.html
├── el.html
├── en.html
├── es-pe.html
├── es.html
├── et.html
├── fa.html
├── fi.html
├── fr.html
├── hr.html
├── hu.html
├── id.html
├── it.html
├── ja.html
├── ko.html
├── lt.html
├── nb.html
├── nl.html
├── pl.html
├── pt-br.html
├── pt.html
├── ro.html
├── ru.html
├── sk.html
├── sl.html
├── sv.html
├── tr.html
├── uk.html
├── zh-cn.html
└── zh-tw.html
├── outdatedbrowser.css
├── outdatedbrowser.js
├── outdatedbrowser.min.css
├── outdatedbrowser.min.js
└── outdatedbrowser.scss
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-2", "env"],
3 | "plugins": ["transform-runtime", "transform-vue-jsx", "syntax-dynamic-import"],
4 | "comments": false
5 | }
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | end_of_line = crlf
7 | insert_final_newline = true
8 | trim_trailing_whitespace = true
9 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parser: 'babel-eslint',
4 | parserOptions: {
5 | sourceType: 'module'
6 | },
7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
8 | extends: 'vue',
9 | // required to lint *.vue files
10 | plugins: [
11 | 'vuefix',
12 | ],
13 | // add your custom rules here
14 | 'rules': {
15 | // allow paren-less arrow functions
16 | 'arrow-parens': 0,
17 | // allow async-await
18 | 'generator-star-spacing': 0,
19 | // allow debugger during development
20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
21 | 'semi': ['error', 'always'],
22 | 'no-const-assign': 'warn',
23 | 'eqeqeq': 'warn',
24 | 'brace-style': 0,
25 | 'no-mixed-spaces-and-tabs': 0,
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log
3 | test/unit/coverage
4 | test/e2e/reports
5 | selenium-debug.log
6 | *.DS_Store
7 | /config/index.js
8 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/dictionaries/Administrator.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/jsLinters/jshint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/wherehows.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {
9 | "browsers": "> 5%"
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/.swp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/.swp
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | var express = require('express');
2 | var app = express();
3 | var bodyParser = require('body-parser');
4 | var morgan = require('morgan');
5 | var ObjectID = require('mongodb').ObjectID;
6 |
7 | var MongoClient = require('mongodb').MongoClient;
8 | var mongoUrl = 'mongodb://localhost:27017/mission';
9 | var _db;
10 |
11 | app.use(morgan('dev'));
12 | app.use(bodyParser.json());
13 | app.use(express.static('dist'));
14 |
15 | MongoClient.connect(mongoUrl, function (err, db) {
16 | if (err) {
17 | console.error(err);
18 | return;
19 | }
20 |
21 | console.log('connected to mongo');
22 | _db = db;
23 | app.listen(8888, function () {
24 | console.log('server is running...');
25 | });
26 | });
27 |
28 | app.all("*", function (req, res, next) {
29 | res.header('Access-Control-Allow-Origin', '*');
30 | res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
31 | res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
32 | if (req.method == 'OPTIONS') {
33 | res.send(200);
34 | } else {
35 | next();
36 | }
37 | });
38 |
39 | app.get('/time', function(req, res, next) {
40 | var collection = _db.collection('my_mission');
41 | var time = 0;
42 | collection.find({}).toArray(function (err, ret) {
43 | if(err) {
44 | console.error(err);
45 | return;
46 | }
47 |
48 | ret.forEach(function (item, index) {
49 | time += +item.totalTime;
50 | });
51 | res.json({errcode:0,errmsg:"ok",time:time});
52 | });
53 | });
54 |
55 | app.get('/time-entries', function(req, res, next) {
56 | var collection = _db.collection('my_mission');
57 | collection.find({}).toArray(function (err, ret) {
58 | if(err) {
59 | console.error(err);
60 | return;
61 | }
62 | res.json(ret);
63 | });
64 | });
65 |
66 | app.post('/create', function(req, res, next) {
67 | var mission = req.body;
68 | var collection = _db.collection('my_mission');
69 |
70 | if(!mission.comment || !mission.totalTime || !mission.date) {
71 | res.send({errcode:-1,errmsg:"params missed"});
72 | return;
73 | }
74 |
75 | collection.insert({comment: mission.comment, totalTime: mission.totalTime,date:mission.date}, function (err, ret) {
76 | if(err) {
77 | console.error(err);
78 | res.status(500).end();
79 | } else {
80 | res.send({errcode:0,errmsg:"ok"});
81 | }
82 | });
83 | });
84 |
85 | app.delete('/delete/:id', function (req, res, next) {
86 | var _id = req.params.id;
87 | var collection = _db.collection('my_mission');
88 | console.log(_id)
89 | collection.remove({_id: new ObjectID(_id)} ,function (err, result) {
90 | if(err) {
91 | console.error(err);
92 | res.status(500).end();
93 | } else {
94 | res.send({errcode:0,errmsg:"ok"});
95 | }
96 | });
97 | });
98 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/build/logo.png
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const config = require('../config')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const packageConfig = require('../package.json')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 |
12 | return path.posix.join(assetsSubDirectory, _path)
13 | }
14 |
15 | exports.cssLoaders = function (options) {
16 | options = options || {}
17 |
18 | const cssLoader = {
19 | loader: 'css-loader',
20 | options: {
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | const postcssLoader = {
26 | loader: 'postcss-loader',
27 | options: {
28 | sourceMap: options.sourceMap
29 | }
30 | }
31 |
32 | // generate loader string to be used with extract text plugin
33 | function generateLoaders (loader, loaderOptions) {
34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35 |
36 | if (loader) {
37 | loaders.push({
38 | loader: loader + '-loader',
39 | options: Object.assign({}, loaderOptions, {
40 | sourceMap: options.sourceMap
41 | })
42 | })
43 | }
44 |
45 | // Extract CSS when that option is specified
46 | // (which is the case during production build)
47 | if (options.extract) {
48 | return ExtractTextPlugin.extract({
49 | use: loaders,
50 | fallback: 'vue-style-loader'
51 | })
52 | } else {
53 | return ['vue-style-loader'].concat(loaders)
54 | }
55 | }
56 |
57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58 | return {
59 | css: generateLoaders(),
60 | postcss: generateLoaders(),
61 | less: generateLoaders('less'),
62 | sass: generateLoaders('sass', { indentedSyntax: true }),
63 | scss: generateLoaders('sass'),
64 | stylus: generateLoaders('stylus'),
65 | styl: generateLoaders('stylus')
66 | }
67 | }
68 |
69 | // Generate loaders for standalone style files (outside of .vue)
70 | exports.styleLoaders = function (options) {
71 | const output = []
72 | const loaders = exports.cssLoaders(options)
73 |
74 | for (const extension in loaders) {
75 | const loader = loaders[extension]
76 | output.push({
77 | test: new RegExp('\\.' + extension + '$'),
78 | use: loader
79 | })
80 | }
81 |
82 | return output
83 | }
84 |
85 | exports.createNotifierCallback = () => {
86 | const notifier = require('node-notifier')
87 |
88 | return (severity, errors) => {
89 | if (severity !== 'error') return
90 |
91 | const error = errors[0]
92 | const filename = error.file && error.file.split('!').pop()
93 |
94 | notifier.notify({
95 | title: packageConfig.name,
96 | message: severity + ': ' + error.name,
97 | subtitle: filename || '',
98 | icon: path.join(__dirname, 'logo.png')
99 | })
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | },
22 | postcss: [require('autoprefixer')({ browsers: ['last 2 versions'] })]
23 | }
24 |
--------------------------------------------------------------------------------
/common.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([8,6,9],[]);
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | LEAP Metadata
5 |
6 |
7 |
8 |
9 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
42 |
50 |
--------------------------------------------------------------------------------
/src/assets/font/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.eot
--------------------------------------------------------------------------------
/src/assets/font/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/font/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/font/iconfont.woff
--------------------------------------------------------------------------------
/src/assets/images/Entry/icon_cxfx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_cxfx.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/icon_etl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_etl.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/icon_rwdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_rwdd.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/icon_sjjc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_sjjc.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/icon_ysj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/icon_ysj.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/logo.png
--------------------------------------------------------------------------------
/src/assets/images/Entry/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/Entry/user.png
--------------------------------------------------------------------------------
/src/assets/images/RelationalGraph/article.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/RelationalGraph/article.png
--------------------------------------------------------------------------------
/src/assets/images/RelationalGraph/st.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/RelationalGraph/st.png
--------------------------------------------------------------------------------
/src/assets/images/approver-dispass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-dispass.png
--------------------------------------------------------------------------------
/src/assets/images/approver-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-flow.png
--------------------------------------------------------------------------------
/src/assets/images/approver-pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-pass.png
--------------------------------------------------------------------------------
/src/assets/images/approver-wait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/approver-wait.png
--------------------------------------------------------------------------------
/src/assets/images/bg_body.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/bg_body.png
--------------------------------------------------------------------------------
/src/assets/images/bg_body_schema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/bg_body_schema.png
--------------------------------------------------------------------------------
/src/assets/images/box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/box.png
--------------------------------------------------------------------------------
/src/assets/images/brush_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/brush_icon.png
--------------------------------------------------------------------------------
/src/assets/images/business/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/bg.png
--------------------------------------------------------------------------------
/src/assets/images/business/data_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/data_empty.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/fd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/fd.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/fh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/fh.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/gd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/gd.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/jx.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/assets/images/business/icon/sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/sq.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/sx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/sx.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/tj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/tj.png
--------------------------------------------------------------------------------
/src/assets/images/business/icon/zk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/business/icon/zk.png
--------------------------------------------------------------------------------
/src/assets/images/checkBoxRed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/checkBoxRed.png
--------------------------------------------------------------------------------
/src/assets/images/dataImport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataImport.png
--------------------------------------------------------------------------------
/src/assets/images/dataset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataset.png
--------------------------------------------------------------------------------
/src/assets/images/dataset_operate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/dataset_operate.png
--------------------------------------------------------------------------------
/src/assets/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/download.png
--------------------------------------------------------------------------------
/src/assets/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/favicon.ico
--------------------------------------------------------------------------------
/src/assets/images/file_del.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/file_del.png
--------------------------------------------------------------------------------
/src/assets/images/files-views.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/files-views.png
--------------------------------------------------------------------------------
/src/assets/images/files/no-data.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/files/no-data.png
--------------------------------------------------------------------------------
/src/assets/images/folder_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/folder_close.png
--------------------------------------------------------------------------------
/src/assets/images/folder_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/folder_open.png
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF2.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF3.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF4.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF5.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF5.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF6.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF6.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF7.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF7.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF8.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF8.gif
--------------------------------------------------------------------------------
/src/assets/images/gif/GIF9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/gif/GIF9.gif
--------------------------------------------------------------------------------
/src/assets/images/icon/SQL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/SQL.png
--------------------------------------------------------------------------------
/src/assets/images/icon/checkbox-checked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox-checked.png
--------------------------------------------------------------------------------
/src/assets/images/icon/checkbox-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox-disabled.png
--------------------------------------------------------------------------------
/src/assets/images/icon/checkbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/checkbox.png
--------------------------------------------------------------------------------
/src/assets/images/icon/db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/db.png
--------------------------------------------------------------------------------
/src/assets/images/icon/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/email.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon1.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon1_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon1_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon2.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon2_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon2_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon3.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon3_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon3_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon4.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon41.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon41_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon41_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon4_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon4_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon5.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon5_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon5_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon6.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon6_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon6_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon7.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon7_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon7_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon8.png
--------------------------------------------------------------------------------
/src/assets/images/icon/icon8_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/icon8_active.png
--------------------------------------------------------------------------------
/src/assets/images/icon/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/plus.png
--------------------------------------------------------------------------------
/src/assets/images/icon/qx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/qx.png
--------------------------------------------------------------------------------
/src/assets/images/icon/qxyc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/qxyc.png
--------------------------------------------------------------------------------
/src/assets/images/icon/remove-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/remove-hover.png
--------------------------------------------------------------------------------
/src/assets/images/icon/remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/remove.png
--------------------------------------------------------------------------------
/src/assets/images/icon/sc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sc.png
--------------------------------------------------------------------------------
/src/assets/images/icon/sc_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sc_.png
--------------------------------------------------------------------------------
/src/assets/images/icon/sort-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/sort-icon.png
--------------------------------------------------------------------------------
/src/assets/images/icon/yc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon/yc.png
--------------------------------------------------------------------------------
/src/assets/images/icon_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_add.png
--------------------------------------------------------------------------------
/src/assets/images/icon_addTheme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_addTheme.png
--------------------------------------------------------------------------------
/src/assets/images/icon_bang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_bang.png
--------------------------------------------------------------------------------
/src/assets/images/icon_datePicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_datePicker.png
--------------------------------------------------------------------------------
/src/assets/images/icon_delectInput.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_delectInput.png
--------------------------------------------------------------------------------
/src/assets/images/icon_delectInputHover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_delectInputHover.png
--------------------------------------------------------------------------------
/src/assets/images/icon_download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_download.png
--------------------------------------------------------------------------------
/src/assets/images/icon_login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_login.png
--------------------------------------------------------------------------------
/src/assets/images/icon_manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_manage.png
--------------------------------------------------------------------------------
/src/assets/images/icon_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nav.png
--------------------------------------------------------------------------------
/src/assets/images/icon_navSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_navSearch.png
--------------------------------------------------------------------------------
/src/assets/images/icon_navSearchHover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_navSearchHover.png
--------------------------------------------------------------------------------
/src/assets/images/icon_newdataset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_newdataset.png
--------------------------------------------------------------------------------
/src/assets/images/icon_newflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_newflow.png
--------------------------------------------------------------------------------
/src/assets/images/icon_noPass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_noPass.png
--------------------------------------------------------------------------------
/src/assets/images/icon_nodata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nodata.png
--------------------------------------------------------------------------------
/src/assets/images/icon_nodata1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_nodata1.png
--------------------------------------------------------------------------------
/src/assets/images/icon_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_pass.png
--------------------------------------------------------------------------------
/src/assets/images/icon_pencil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_pencil.png
--------------------------------------------------------------------------------
/src/assets/images/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_search.png
--------------------------------------------------------------------------------
/src/assets/images/icon_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_select.png
--------------------------------------------------------------------------------
/src/assets/images/icon_setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_setting.png
--------------------------------------------------------------------------------
/src/assets/images/icon_setting_old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_setting_old.png
--------------------------------------------------------------------------------
/src/assets/images/icon_slideDown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_slideDown.png
--------------------------------------------------------------------------------
/src/assets/images/icon_slideUp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_slideUp.png
--------------------------------------------------------------------------------
/src/assets/images/icon_upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_upload.png
--------------------------------------------------------------------------------
/src/assets/images/icon_user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_user.png
--------------------------------------------------------------------------------
/src/assets/images/icon_user1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_user1.png
--------------------------------------------------------------------------------
/src/assets/images/icon_zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icon_zoom.png
--------------------------------------------------------------------------------
/src/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/icons.png
--------------------------------------------------------------------------------
/src/assets/images/importExport/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/importExport/icon.png
--------------------------------------------------------------------------------
/src/assets/images/import_export_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/import_export_icon.png
--------------------------------------------------------------------------------
/src/assets/images/leapavartar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/leapavartar.png
--------------------------------------------------------------------------------
/src/assets/images/leapavatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/leapavatar.png
--------------------------------------------------------------------------------
/src/assets/images/left_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_close.png
--------------------------------------------------------------------------------
/src/assets/images/left_close_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_close_active.png
--------------------------------------------------------------------------------
/src/assets/images/left_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_open.png
--------------------------------------------------------------------------------
/src/assets/images/left_open_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/left_open_active.png
--------------------------------------------------------------------------------
/src/assets/images/lifecycle_warn_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/lifecycle_warn_icon.png
--------------------------------------------------------------------------------
/src/assets/images/loading.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading.jpg
--------------------------------------------------------------------------------
/src/assets/images/loading_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_bg.png
--------------------------------------------------------------------------------
/src/assets/images/loading_left.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_left.gif
--------------------------------------------------------------------------------
/src/assets/images/loading_right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_right.gif
--------------------------------------------------------------------------------
/src/assets/images/loading_s.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/loading_s.gif
--------------------------------------------------------------------------------
/src/assets/images/login_bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/login_bg.jpg
--------------------------------------------------------------------------------
/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo.png
--------------------------------------------------------------------------------
/src/assets/images/logo_login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_login.png
--------------------------------------------------------------------------------
/src/assets/images/logo_login_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_login_header.png
--------------------------------------------------------------------------------
/src/assets/images/logo_pro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_pro.png
--------------------------------------------------------------------------------
/src/assets/images/logo_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_project.png
--------------------------------------------------------------------------------
/src/assets/images/logo_project_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_project_b.png
--------------------------------------------------------------------------------
/src/assets/images/logo_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/logo_s.png
--------------------------------------------------------------------------------
/src/assets/images/main_nav_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/main_nav_list.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/add_table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/add_table.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/add_table_hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/add_table_hover.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/header_operator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/header_operator.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/bq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/bq.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon1.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon2.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon3.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon4.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon4_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon4_off.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon5.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/icon5_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/icon5_off.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/jm1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/jm1.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/jm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/jm2.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/qx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/qx.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/sq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/sq.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon/zk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon/zk.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_app.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_comment.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_datasetTree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_datasetTree.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_description.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_description.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_more.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_quality.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_quality.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_question.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_search.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_tree-toggle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_tree-toggle.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/icon_usage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/icon_usage.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/importExportIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/importExportIcon.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/import_export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/import_export_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export_icon.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/import_export_icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/import_export_icon2.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/personal_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/personal_icon.png
--------------------------------------------------------------------------------
/src/assets/images/metaData/view_control_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/metaData/view_control_icon.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_delectInput.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_delectInput.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_delectInputHover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_delectInputHover.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_nav.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_navSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_navSearch.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_navSearchHover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_navSearchHover.png
--------------------------------------------------------------------------------
/src/assets/images/nav/icon_nav_personal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/icon_nav_personal.png
--------------------------------------------------------------------------------
/src/assets/images/nav/metadata_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nav/metadata_icon.png
--------------------------------------------------------------------------------
/src/assets/images/no-alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/no-alert.png
--------------------------------------------------------------------------------
/src/assets/images/nodata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/nodata.png
--------------------------------------------------------------------------------
/src/assets/images/owner_operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/owner_operation.png
--------------------------------------------------------------------------------
/src/assets/images/personal_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/personal_icon.png
--------------------------------------------------------------------------------
/src/assets/images/private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/private.png
--------------------------------------------------------------------------------
/src/assets/images/search_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_close.png
--------------------------------------------------------------------------------
/src/assets/images/search_close_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_close_active.png
--------------------------------------------------------------------------------
/src/assets/images/search_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/search_icon.png
--------------------------------------------------------------------------------
/src/assets/images/second_nav_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/second_nav_active.png
--------------------------------------------------------------------------------
/src/assets/images/source_nav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/source_nav.png
--------------------------------------------------------------------------------
/src/assets/images/sub_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/sub_logo.png
--------------------------------------------------------------------------------
/src/assets/images/table_nodata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/table_nodata.png
--------------------------------------------------------------------------------
/src/assets/images/tj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/tj.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_close_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_error.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_close_success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_success.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_close_warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_close_warning.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_type_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_error.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_type_success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_success.png
--------------------------------------------------------------------------------
/src/assets/images/toast/icon_type_warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/toast/icon_type_warning.png
--------------------------------------------------------------------------------
/src/assets/images/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/user.png
--------------------------------------------------------------------------------
/src/assets/images/wl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/wl.png
--------------------------------------------------------------------------------
/src/assets/images/yw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/yw.png
--------------------------------------------------------------------------------
/src/assets/images/zy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/images/zy.png
--------------------------------------------------------------------------------
/src/assets/less/Entry.less:
--------------------------------------------------------------------------------
1 | .content-main {
2 | height: 100%;
3 | background: #EDEEF0;
4 | padding: 15px;
5 | font-size: 12px !important;
6 | }
7 | .content-main h4 {
8 | font-weight: bold;
9 | font-size: 12px;
10 | }
11 | .header-til h3 {
12 | display: inline-block;
13 | margin: 0 0 15px 0;
14 | color: #757B87;
15 | font-size: 1.17em;
16 | }
17 | .header-til span {
18 | color: #757B87;
19 | }
20 | .use-project, .join-project {
21 | min-height: 280px;
22 | margin: 15px 0;
23 | padding: 15px;
24 | background: #FFF;
25 | box-shadow: 1px 0 5px #CCC;
26 | }
27 | .pro-item li {
28 | float: left;
29 | width: 24.1%;
30 | margin: 0 15px 30px 0;
31 | background: #EFF4F6;
32 | }
33 | .pro-item li:nth-child(4n) {
34 | margin-right: 0;
35 | }
36 | .pro-item li a {
37 | display: block;
38 | padding: 15px;
39 | height: 110px;
40 | text-decoration: none;
41 | }
42 | .pro-item .icon {
43 | float: left;
44 | width: 60px;
45 | height: 80px;
46 | margin-right: 10px;
47 | border-right: 1px solid #CDDADE;
48 | }
49 | .pro-item .icon-cxfx {
50 | background: url("~assets/images/Entry/icon_cxfx.png") left center no-repeat;
51 | }
52 | .pro-item .icon-etl {
53 | background: url("~assets/images/Entry/icon_etl.png") left center no-repeat;
54 | }
55 | .pro-item .icon-rwdd {
56 | background: url("~assets/images/Entry/icon_rwdd.png") left center no-repeat;
57 | }
58 | .pro-item .icon-ysj {
59 | background: url("~assets/images/Entry/icon_ysj.png") left center no-repeat;
60 | }
61 | .pro-item .icon-sjjc {
62 | background: url("~assets/images/Entry/icon_sjjc.png") left center no-repeat;
63 | }
64 | .pro-item h4 {
65 | margin: 5px 0;
66 | color: #444;
67 | }
68 | .pro-item p {
69 | margin: 0;
70 | color: #8A919E;
71 | }
72 | .copyright {
73 | text-align: center;
74 | color: #444;
75 | margin-top: 50px;
76 | }
77 |
--------------------------------------------------------------------------------
/src/assets/less/header.less:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | *@header
4 | *
5 | */
6 | @import './vars';
7 | .header {
8 | width: 100%;
9 | height: 60px;
10 | font-size: 12px !important;
11 | .logo {
12 | width: 380px;
13 | height: 60px;
14 | background: @themeColor;
15 | }
16 | .menu {
17 | margin-left: 380px;
18 | height: 60px;
19 | background: @themeColor;
20 | }
21 | }
22 | .menu-nav li, .user-menu li {
23 | float: left;
24 | height: 60px;
25 | }
26 | .menu-nav .split-line {
27 | border-right: 1px solid #346F8D
28 | }
29 | .menu-nav li:last-of-type .split-line {
30 | border: 0;
31 | }
32 | .menu-nav li a, .menu-nav li i {
33 | display: inline-block;
34 | height: 60px;
35 | line-height: 60px;
36 | padding: 0 18px;
37 | text-align: center;
38 | color: #FFF;
39 | text-decoration: none;
40 | cursor: pointer;
41 | font-style: normal;
42 | }
43 | .menu-nav li a:hover, .menu-nav li.active a, .menu-nav li i:hover, .menu-nav li.active i {
44 | background: #01354F;
45 | }
46 | .menu-nav li.active .split-line {
47 | border-right: 1px solid transparent;
48 | }
49 | .user-menu li > a {
50 | display: inline-block;
51 | height: 60px;
52 | line-height: 60px;
53 | padding: 0 10px;
54 | text-align: center;
55 | color: #FFF;
56 | text-decoration: none;
57 | }
58 | .user-menu .user {
59 | position: relative;
60 | border-left: 1px solid #346F8D;
61 | background: #014263;
62 | padding-left: 5px;
63 | }
64 | .user-menu .user:hover .userInfo {
65 | display: block;
66 | }
67 | .user-menu .userInfo {
68 | display: none;
69 | position: absolute;
70 | right: 10px;
71 | width: 180px;
72 | height: 130px;
73 | padding: 10px;
74 | background: #FFF;
75 | box-shadow: 0 0 5px #AAA;
76 | z-index: 2300;
77 | }
78 | .arrow-up {
79 | position: absolute;
80 | top: -5px;
81 | right: 10px;
82 | width: 0;
83 | height: 0;
84 | border-left: 5px solid transparent;
85 | border-right: 5px solid transparent;
86 | border-bottom: 5px solid #FFF;
87 | }
88 | .user-menu p {
89 | margin: 0;
90 | padding: 10px;
91 | text-align: center;
92 | border-bottom: 1px solid #EEE;
93 | line-height: 18px;
94 | }
95 | .user-menu p a {
96 | line-height: 18px;
97 | }
98 | .user-menu p:last-child {
99 | border-bottom: 0;
100 | }
101 | .user-menu p a {
102 | color: #444;
103 | }
104 | .user-menu p a:hover {
105 | color: #F00;
106 | }
107 |
--------------------------------------------------------------------------------
/src/assets/less/mixin.less:
--------------------------------------------------------------------------------
1 | @blue: #3190e8;
2 | @bc: #e4e4e4;
3 | @fc: #fff;
4 | @imgUrl: '../images';
5 |
6 | // 背景图片地址和大小
7 | .bis(@url) {
8 | background-image: url("@{imgUrl}/@{url}");
9 | background-repeat: no-repeat;
10 | background-size: 100% 100%;
11 | }
12 | .bi(@url) {
13 | background-image: url("@{imgUrl}/@{url}");
14 | }
15 | .bg(@url, @color: #fff) {
16 | background: @color url("@{imgUrl}/@{url}") no-repeat;
17 | }
18 |
19 | //定位全屏
20 | .allcover {
21 | position: absolute;
22 | top: 0;
23 | right: 0;
24 | }
25 |
26 | //transform上下左右居中
27 | .ctt {
28 | position: absolute;
29 | top: 50%;
30 | left: 50%;
31 | transform: translate(-50%, -50%);
32 | }
33 | //定位上下左右居中
34 | .ctp(@width, @height) {
35 | position: absolute;
36 | top: 50%;
37 | left: 50%;
38 | margin-top: -@height/2;
39 | margin-left: -@width/2;
40 | }
41 |
42 | //定位上下居中
43 | .tb {
44 | position: absolute;
45 | top: 50%;
46 | transform: translateY(-50%);
47 | }
48 |
49 | //定位左右居中
50 | .lr {
51 | position: absolute;
52 | left: 50%;
53 | transform: translateX(-50%);
54 | }
55 |
56 | //宽高
57 | .wh(@width, @height) {
58 | width: @width;
59 | height: @height;
60 | }
61 |
62 | //字体大小、行高、字体
63 | .ft(@size, @line-height) {
64 | font-size: @size;
65 | line-height: @line-height;
66 | }
67 |
68 | //字体大小,颜色
69 | .sc(@size, @color) {
70 | font-size: @size;
71 | color: @color;
72 | }
73 |
74 | //flex 布局和 子元素 对其方式
75 | .fj(@type: space-between) {
76 | display: flex;
77 | justify-content: @type;
78 |
79 | }
80 |
81 | .ellipsis {
82 | overflow: hidden;
83 | text-overflow: ellipsis;
84 | white-space: nowrap;
85 | }
86 |
--------------------------------------------------------------------------------
/src/assets/less/source.less:
--------------------------------------------------------------------------------
1 | .source-container {
2 | @headerHeight: 30px;
3 | background: #EDEEF0;
4 | height: calc(~"100% - @{headerHeight}");
5 | overflow-y: auto;
6 | }
7 | .source-header {
8 | display: flex;
9 | justify-content: space-between;
10 | height: 60px;
11 | background: #FFF;
12 | border-bottom: 1px solid #D6D7DD;
13 | .source-title {
14 | float: left;
15 | a, span {
16 | display: inline-block;
17 | line-height: 60px;
18 | margin-right: 10px;
19 | }
20 | a {
21 | padding-left: 22px;
22 | font-weight: bold;
23 | font-size: 14px;
24 | }
25 | span {
26 | color: #9DAAB9;
27 | }
28 | .router-link-active {
29 | border: 0;
30 | background: transparent;
31 | }
32 | }
33 | .project-selector {
34 | float: right;
35 | padding: 10px;
36 | }
37 | }
38 | .chart-header-container {
39 | overflow: hidden;
40 | margin-bottom: 10px;
41 | display: flex;
42 | justify-content: space-between;
43 | .rank-list-select {
44 | position: static;
45 | }
46 | }
47 | .source-body {
48 | padding: 20px;
49 | > .row-List {
50 | min-height: 200px;
51 | }
52 | }
53 | .chartContainer {
54 | height: 400px;
55 | width: 100%;
56 | }
57 | .operate-type-add {
58 | color: #64BC89;
59 | }
60 | .operate-type-del {
61 | color: #F87D88;
62 | }
63 | .rankList-left {
64 | overflow: hidden;
65 | }
66 | .rankList-left .rankList-num {
67 | display: block;
68 | font-style: normal;
69 | width: 20px;
70 | height: 20px;
71 | text-align: center;
72 | line-height: 20px;
73 | border-radius: 50%;
74 | color: #FFF;
75 | margin-right: 15px
76 | }
77 | .rankList-left .rankList-name {
78 | float: left;
79 | }
80 |
--------------------------------------------------------------------------------
/src/assets/less/vars.less:
--------------------------------------------------------------------------------
1 | @imgUrl: '../images';
2 |
3 | @themeColor: #014B70;
4 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "public/components"
3 | }
4 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | engines:
2 | eslint:
3 | enabled: true
4 | duplication:
5 | enabled: true
6 | config:
7 | languages:
8 | - javascript
9 | fixme:
10 | enabled: true
11 | ratings:
12 | paths:
13 | - src/**/*.js
14 | - test/**/*.js
15 | exclude_paths:
16 | - public/build/**/*
17 | - public/external/**/*
18 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.jscsrc:
--------------------------------------------------------------------------------
1 | {
2 | "disallowCommaBeforeLineBreak": null,
3 | "disallowDanglingUnderscores": null,
4 | "disallowEmptyBlocks": true,
5 | "disallowImplicitTypeConversion": [ "string" ],
6 | "disallowKeywordsOnNewLine": [ "else" ],
7 | "disallowKeywords": [ "with" ],
8 | "disallowMixedSpacesAndTabs": true,
9 | "disallowMultipleLineBreaks": true,
10 | "disallowMultipleLineStrings": null,
11 | "disallowMultipleVarDecl": true,
12 | "disallowPaddingNewlinesInBlocks": null,
13 | "disallowQuotedKeysInObjects": null,
14 | "disallowSpaceAfterBinaryOperators": null,
15 | "disallowSpaceAfterLineComment": null,
16 | "disallowSpaceAfterObjectKeys": null,
17 | "disallowSpaceAfterPrefixUnaryOperators": true,
18 | "disallowSpaceBeforeBinaryOperators": null,
19 | "disallowSpaceBeforeBlockStatements": null,
20 | "disallowSpaceBeforePostfixUnaryOperators": true,
21 | "disallowSpacesInConditionalExpression": null,
22 | "disallowSpacesInFunctionDeclaration": null,
23 | "disallowSpacesInNamedFunctionExpression": null,
24 | "disallowSpacesInsideArrayBrackets": null,
25 | "disallowSpacesInsideObjectBrackets": null,
26 | "disallowSpacesInsideParentheses": null,
27 | "disallowTrailingComma": null,
28 | "disallowTrailingWhitespace": true,
29 | "disallowYodaConditions": true,
30 | "maximumLineLength": 120,
31 | "requireAlignedObjectValues": null,
32 | "requireBlocksOnNewline": true,
33 | "requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties",
34 | "requireCapitalizedConstructors": true,
35 | "requireCommaBeforeLineBreak": true,
36 | "requireCurlyBraces": [ "if", "else", "for", "while", "do", "try", "catch" ],
37 | "requireDotNotation": true,
38 | "requireKeywordsOnNewLine": null,
39 | "requireLineFeedAtFileEnd": true,
40 | "requireMultipleVarDecl": null,
41 | "requireOperatorBeforeLineBreak": true,
42 | "requirePaddingNewlinesInBlocks": null,
43 | "requireParenthesesAroundIIFE": true,
44 | "requireSpaceAfterBinaryOperators": null,
45 | "requireSpaceAfterKeywords": [ "if", "else", "return", "try", "catch" ],
46 | "requireSpaceAfterLineComment": null,
47 | "requireSpaceAfterObjectKeys": null,
48 | "requireSpaceAfterPrefixUnaryOperators": null,
49 | "requireSpaceBeforeBinaryOperators": true,
50 | "requireSpaceBeforeBlockStatements": true,
51 | "requireSpaceBeforePostfixUnaryOperators": null,
52 | "requireSpacesInConditionalExpression": true,
53 | "requireSpacesInFunctionDeclaration": {
54 | "beforeOpeningCurlyBrace": true
55 | },
56 | "requireSpacesInFunctionExpression": {
57 | "beforeOpeningCurlyBrace": true
58 | },
59 | "requireSpacesInNamedFunctionExpression": {
60 | "beforeOpeningCurlyBrace": true
61 | },
62 | "requireSpacesInsideArrayBrackets": null,
63 | "requireSpacesInsideObjectBrackets": "allButNested",
64 | "requireSpacesInsideParentheses": null,
65 | "requireTrailingComma": null,
66 | "safeContextKeyword": true,
67 | "validateIndentation": 2,
68 | "validateJSDoc": {
69 | "checkParamNames": true,
70 | "requireParamTypes": true
71 | },
72 | "validateLineBreaks": "LF",
73 | "validateQuoteMarks": true
74 | }
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./jshintrc.json"
3 | }
4 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | lib-cov
3 | *.seed
4 | *.log
5 | *.csv
6 | *.dat
7 | *.out
8 | *.pid
9 | *.gz
10 | .DS_Store
11 |
12 | pids
13 | logs
14 | results
15 | coverage
16 |
17 | npm-debug.log
18 |
19 | gh-pages
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 |
5 | before_install:
6 | - "export BROWSERS=Firefox"
7 | - "export DISPLAY=:99.0"
8 | - "sh -e /etc/init.d/xvfb start"
9 |
10 | after_success:
11 | - npm run cover-publish
12 | addons:
13 | code_climate:
14 | repo_token:
15 | # # get your token from https://codeclimate.com/github/benjamine/jsondiffpatch
16 | # gem install travis
17 | # travis encrypt
18 | secure: "IZabDj3HrrCNOfhK0v+Q/am9AE5zYzF13IYB64q8wSUHcSxxhdrxSyLvjIiOfLe9W+h+MAW1+OuQkldUs/yd/fJjy44GE4ugUKY+9RP3TBm7hQRF4KEwIx2BMK4HVNazOkWz8nsnq4cfPy9pFEumcKb/O7TL2gK6RS6dIfNsKw0="
19 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/libs/jsondiffpatch/MIT-LICENSE.txt
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/Makefile:
--------------------------------------------------------------------------------
1 |
2 | bundle: node_modules
3 | @./node_modules/.bin/gulp bundle
4 |
5 | test: node_modules
6 | @./node_modules/.bin/gulp test
7 | node_modules:
8 | npm install
9 | watch: node_modules
10 | @./node_modules/.bin/gulp watch
11 |
12 | test-browser: node_modules
13 | @./node_modules/.bin/gulp test-browser
14 | watch-browser: node_modules
15 | @./node_modules/.bin/gulp watch-browser
16 |
17 | .PHONY: test watch bundle test-browser watch-browser
18 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/badges.md:
--------------------------------------------------------------------------------
1 | [](http://travis-ci.org/benjamine/jsondiffpatch)
2 | [](https://codeclimate.com/github/benjamine/jsondiffpatch)
3 | [](https://codeclimate.com/github/benjamine/jsondiffpatch)
4 | [](http://badge.fury.io/js/jsondiffpatch)
5 | [](https://david-dm.org/benjamine/jsondiffpatch)
6 | [](http://badge.fury.io/bo/jsondiffpatch)
7 |
8 | [
9 | ](https://ci.testling.com/benjamine/jsondiffpatch)
10 |
11 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/bin/jsondiffpatch:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | var jsondiffpatch = require('../src/main');
4 |
5 | var fs = require('fs');
6 |
7 | var fileLeft = process.argv[2], fileRight = process.argv[3];
8 |
9 | if (!fileLeft || !fileRight){
10 | console.log('\n USAGE: jsondiffpatch left.json right.json');
11 | return;
12 | }
13 |
14 | var left = JSON.parse(fs.readFileSync(fileLeft));
15 | var right = JSON.parse(fs.readFileSync(fileRight));
16 |
17 | var delta = jsondiffpatch.diff(left, right);
18 | jsondiffpatch.console.log(delta);
19 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jsondiffpatch",
3 | "description": "Diff & Patch for Javascript objects",
4 | "main": "public/build/jsondiffpatch.js",
5 | "license": "MIT",
6 | "authors": [
7 | "Benjamin Eidelman "
8 | ],
9 | "repository": {
10 | "type": "git",
11 | "url": "git://github.com/benjamine/jsondiffpatch.git"
12 | },
13 | "keywords": [
14 | "json",
15 | "diff",
16 | "patch"
17 | ],
18 | "ignore": [
19 | "test",
20 | "demo",
21 | "docs",
22 | ".travis.yml",
23 | "karma.conf.js",
24 | "gulpfile.js"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/docs/formatters.md:
--------------------------------------------------------------------------------
1 | Formatters
2 | ==========
3 |
4 | Some formatters are included that let you convert a JSON delta into other formats, you can see some of these used in the [Live Demo](http://benjamine.github.com/jsondiffpatch/demo/index.html)
5 |
6 | Html
7 | ----
8 |
9 | add ```build/formatters.js``` and ```src/formatters/html.css``` to your page, and:
10 |
11 | ``` javascript
12 | var delta = jsondiffpatch.diff(left, right);
13 | // left is optional, if specified unchanged values will be visible too
14 | document.getElementBy('the-diff').innerHTML = jsondiffpatch.formatters.html.format(delta, left);
15 |
16 |
17 | // Also you can dinamically show/hide unchanged values
18 | jsondiffpatch.formatters.html.showUnchanged();
19 | jsondiffpatch.formatters.html.hideUnchanged();
20 | // these will also adjust array move arrows (SVG), which is useful if something alters the html layout
21 | ```
22 |
23 | Html can be generated sever-side the same way, just remember to include (or embed) ```/src/formatters/html.css``` when rendering.
24 |
25 | Annotated JSON
26 | ----
27 |
28 | This will render the original JSON delta in html, with annotations aside explaining the meaning of each part. This attempts to make the JSON delta format self-explained.
29 |
30 | add ```build/formatters.js``` and ```src/formatters/annotated.css``` to your page, and:
31 |
32 | ``` javascript
33 | var delta = jsondiffpatch.diff(left, right);
34 | document.getElementBy('the-diff').innerHTML = jsondiffpatch.formatters.annotated.format(delta);
35 | ```
36 |
37 | Html can be generated sever-side the same way, just remember to include (or embed) ```/src/formatters/annotated.css``` when rendering.
38 |
39 | Console
40 | -------
41 |
42 | Node.js colored output (thanks to [chalk](https://github.com/sindresorhus/chalk)!).
43 | It's used by the CLI:
44 |
45 | 
46 |
47 | but you can use it programmatically too:
48 |
49 | ``` javascript
50 | var delta = jsondiffpatch.diff(left, right);
51 | var output = jsondiffpatch.formatters.console.format(delta);
52 | console.log(delta);
53 |
54 | // or simply
55 | jsondiffpatch.console.log(delta);
56 | ```
57 |
58 | Create one
59 | ----------
60 |
61 | Of course, first step to create a formatters is understanding the [delta format](deltas.md).
62 |
63 | To simplify the creation of new formatters, you can base yours in the ```BaseFormatter``` included. All the builtin formatters do, check the [formatters](../src/formatters) folder to get started.
64 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/gulp-tasks/fiberglass.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var gulp = require('gulp');
3 | var fiberglass = require('fiberglass');
4 |
5 | fiberglass.tasks(gulp, path.join(__dirname, '..')).register(
6 | ''
7 | );
8 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/gulpfile.js:
--------------------------------------------------------------------------------
1 | require('bulk-require')(__dirname + '/gulp-tasks', '*.js');
2 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/karma.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = function(config) {
2 | config.set({
3 | basePath: '.',
4 | frameworks: ['mocha'],
5 | files: [
6 | 'public/build/jsondiffpatch.js',
7 | 'public/build/jsondiffpatch-formatters.js',
8 | 'public/external/diff_match_patch_uncompressed.js',
9 | 'public/build/test-bundle.js'
10 | ],
11 | reporters : ['spec', 'growler']
12 | });
13 | };
14 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/demo/consoledemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/src/assets/libs/jsondiffpatch/public/demo/consoledemo.png
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/demo/left.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Pluto",
3 | "orbital_speed_kms": 4.7,
4 | "category": "planet",
5 | "composition": [
6 | "methane",
7 | "nitrogen"
8 | ]
9 | }
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/demo/numeric-plugin.js:
--------------------------------------------------------------------------------
1 | /*
2 | Plugin a new diff filter
3 | */
4 | (function() {
5 | var assertSame = function() {};
6 | /* global jsondiffpatch */
7 | var diffpatcher = jsondiffpatch.create();
8 | var NUMERIC_DIFFERENCE = -8;
9 |
10 | var numericDiffFilter = function(context) {
11 | if (typeof context.left === 'number' && typeof context.right === 'number') {
12 | context.setResult([0, context.right - context.left, NUMERIC_DIFFERENCE]).exit();
13 | }
14 | };
15 | // a filterName is useful if I want to allow other filters to be inserted before/after this one
16 | numericDiffFilter.filterName = 'numeric';
17 |
18 | // to decide where to insert your filter you can look at the pipe's filter list
19 | assertSame(diffpatcher.processor.pipes.diff.list(), ['collectChildren', 'trivial', 'dates', 'texts', 'objects', 'arrays']);
20 |
21 | // insert my new filter, right before trivial one
22 | diffpatcher.processor.pipes.diff.before('trivial', numericDiffFilter);
23 |
24 | // try it
25 | var delta = diffpatcher.diff({
26 | population: 400
27 | }, {
28 | population: 403
29 | });
30 | assertSame(delta, [0, 3, NUMERIC_DIFFERENCE]);
31 |
32 | /*
33 | Let's make the corresponding patch filter that will handle the new delta type
34 | */
35 |
36 | var numericPatchFilter = function(context) {
37 | if (context.delta && Array.isArray(context.delta) && context.delta[2] === NUMERIC_DIFFERENCE) {
38 | context.setResult(context.left + context.delta[1]).exit();
39 | }
40 | };
41 | numericPatchFilter.filterName = 'numeric';
42 | diffpatcher.processor.pipes.patch.before('trivial', numericPatchFilter);
43 |
44 | // try it
45 | var right = diffpatcher.patch({
46 | population: 400
47 | }, delta);
48 | assertSame(right, {
49 | population: 403
50 | });
51 |
52 | // patch twice!
53 | diffpatcher.patch(right, delta);
54 | assertSame(right, {
55 | population: 406
56 | });
57 |
58 | /*
59 | To complete the plugin, let's add the reverse filter, so numeric deltas can be reversed
60 | (this is needed for unpatching too)
61 | */
62 |
63 | var numericReverseFilter = function(context) {
64 | if (context.nested) {
65 | return;
66 | }
67 | if (context.delta && Array.isArray(context.delta) && context.delta[2] === NUMERIC_DIFFERENCE) {
68 | context.setResult([0, -context.delta[1], NUMERIC_DIFFERENCE]).exit();
69 | }
70 | };
71 | numericReverseFilter.filterName = 'numeric';
72 | diffpatcher.processor.pipes.reverse.after('trivial', numericReverseFilter);
73 |
74 | // log pipe steps
75 | diffpatcher.processor.pipes.reverse.debug = true;
76 |
77 | // try it
78 | var reverseDelta = diffpatcher.reverse(delta);
79 | assertSame(reverseDelta, [0, -3, NUMERIC_DIFFERENCE]);
80 |
81 | // unpatch twice!
82 | diffpatcher.unpatch(right, delta);
83 | diffpatcher.unpatch(right, delta);
84 | assertSame(right, {
85 | population: 400
86 | });
87 |
88 | })();
89 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/demo/right.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Pluto",
3 | "orbital_speed_kms": 4.7,
4 | "category": "dwarf planet",
5 | "composition": [
6 | "nitrogen",
7 | "methane",
8 | "carbon monoxide"
9 | ]
10 | }
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/demo/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: Georgia, serif;
3 | min-width: 600px;
4 | }
5 |
6 | h1 {
7 | margin: 4px;
8 | }
9 |
10 | header > * {
11 | display: inline-block;
12 | }
13 |
14 | #description {
15 | margin-left: 10px;
16 | font-size: x-large;
17 | }
18 |
19 | #external-link {
20 | font-size: smaller;
21 | vertical-align: top;
22 | margin-top: 10px;
23 | }
24 |
25 | h2 {
26 | display: inline-block;
27 | margin: 5px 0;
28 | }
29 |
30 |
31 | a#fork_me {
32 | position: absolute;
33 | top: 0;
34 | right: 0;
35 | }
36 |
37 | .json-input > div {
38 | float: left;
39 | width: 50%;
40 | }
41 |
42 | .json-input > div
43 | {
44 | text-align: center;
45 | }
46 |
47 | .CodeMirror
48 | {
49 | text-align: initial;
50 | border: 1px solid #ccc;
51 | }
52 |
53 | .json-input > div > textarea {
54 | width: 95%;
55 | height: 200px;
56 | }
57 |
58 | .prettyfy {
59 | font-weight: bold;
60 | font-size: smaller;
61 | margin-left: 5px;
62 | }
63 |
64 | .buttons {
65 | width: 100%;
66 | text-align:center;
67 | height: 1px;
68 | }
69 |
70 | .buttons > div
71 | {
72 | margin: 0 auto;
73 | }
74 |
75 | .json-error {
76 | background: #ffdfdf;
77 | -webkit-transition: all 1s;
78 | transition: all 1s;
79 | }
80 |
81 | .error-message {
82 | font-weight: bold;
83 | color: red;
84 | font-size: smaller;
85 | min-height: 20px;
86 | display: block;
87 | }
88 |
89 | .header-options {
90 | font-weight: normal;
91 | margin-left: 30px;
92 | display: inline-block;
93 | }
94 |
95 | #delta-panel-visual {
96 | width: 100%;
97 | overflow: auto;
98 | }
99 |
100 | #visualdiff {
101 | margin-top: 4px;
102 | }
103 |
104 | #json-delta {
105 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace;
106 | font-size: 12px;
107 | margin: 0;
108 | padding: 0;
109 | width: 100%;
110 | height: 200px;
111 | }
112 |
113 | #delta-panel-json > p {
114 | margin: 4px;
115 | }
116 |
117 | footer {
118 | font-size: small;
119 | text-align: center;
120 | margin: 40px;
121 | }
122 |
123 | .credits {
124 | font-size: smaller;
125 | }
126 |
127 | .credits a {
128 | text-decoration: none;
129 | color: black;
130 | }
131 |
132 | .credits a:hover {
133 | text-decoration: underline;
134 | }
135 |
136 | .results {
137 | margin-top: 20px;
138 | }
139 |
140 | .results > div {
141 | vertical-align: top;
142 | display: inline-block;
143 | }
144 |
145 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/formatters-styles/annotated.css:
--------------------------------------------------------------------------------
1 | .jsondiffpatch-annotated-delta {
2 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace;
3 | font-size: 12px;
4 | margin: 0;
5 | padding: 0 0 0 12px;
6 | display: inline-block;
7 | }
8 | .jsondiffpatch-annotated-delta pre {
9 | font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Courier, monospace;
10 | font-size: 12px;
11 | margin: 0;
12 | padding: 0;
13 | display: inline-block;
14 | }
15 | .jsondiffpatch-annotated-delta td {
16 | margin: 0;
17 | padding: 0;
18 | }
19 | .jsondiffpatch-annotated-delta td pre:hover {
20 | font-weight: bold;
21 | }
22 | td.jsondiffpatch-delta-note {
23 | font-style: italic;
24 | padding-left: 10px;
25 | }
26 | .jsondiffpatch-delta-note > div {
27 | margin: 0;
28 | padding: 0;
29 | }
30 | .jsondiffpatch-delta-note pre {
31 | font-style: normal;
32 | }
33 | .jsondiffpatch-annotated-delta .jsondiffpatch-delta-note {
34 | color: #777;
35 | }
36 | .jsondiffpatch-annotated-delta tr:hover {
37 | background: #ffc;
38 | }
39 | .jsondiffpatch-annotated-delta tr:hover > td.jsondiffpatch-delta-note {
40 | color: black;
41 | }
42 | .jsondiffpatch-error {
43 | background: red;
44 | color: white;
45 | font-weight: bold;
46 | }
47 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/public/test/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | jsondiffpatch behavior
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
44 |
45 |
46 | jsondiffpatch behavior
47 |
55 |
56 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/clone.js:
--------------------------------------------------------------------------------
1 |
2 | var isArray = (typeof Array.isArray === 'function') ?
3 | // use native function
4 | Array.isArray :
5 | // use instanceof operator
6 | function(a) {
7 | return a instanceof Array;
8 | };
9 |
10 | function cloneRegExp(re) {
11 | var regexMatch = /^\/(.*)\/([gimyu]*)$/.exec(re.toString());
12 | return new RegExp(regexMatch[1], regexMatch[2]);
13 | }
14 |
15 | function clone(arg) {
16 | if (typeof arg !== 'object') {
17 | return arg;
18 | }
19 | if (arg === null) {
20 | return null;
21 | }
22 | if (isArray(arg)) {
23 | return arg.map(clone);
24 | }
25 | if (arg instanceof Date) {
26 | return new Date(arg.getTime());
27 | }
28 | if (arg instanceof RegExp) {
29 | return cloneRegExp(arg);
30 | }
31 | var cloned = {};
32 | for (var name in arg) {
33 | if (Object.prototype.hasOwnProperty.call(arg, name)) {
34 | cloned[name] = clone(arg[name]);
35 | }
36 | }
37 | return cloned;
38 | }
39 |
40 | module.exports = clone;
41 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/contexts/context.js:
--------------------------------------------------------------------------------
1 |
2 | var Pipe = require('../pipe').Pipe;
3 |
4 | var Context = function Context(){
5 | };
6 |
7 | Context.prototype.setResult = function(result) {
8 | this.result = result;
9 | this.hasResult = true;
10 | return this;
11 | };
12 |
13 | Context.prototype.exit = function() {
14 | this.exiting = true;
15 | return this;
16 | };
17 |
18 | Context.prototype.switchTo = function(next, pipe) {
19 | if (typeof next === 'string' || next instanceof Pipe) {
20 | this.nextPipe = next;
21 | } else {
22 | this.next = next;
23 | if (pipe) {
24 | this.nextPipe = pipe;
25 | }
26 | }
27 | return this;
28 | };
29 |
30 | Context.prototype.push = function(child, name) {
31 | child.parent = this;
32 | if (typeof name !== 'undefined') {
33 | child.childName = name;
34 | }
35 | child.root = this.root || this;
36 | child.options = child.options || this.options;
37 | if (!this.children) {
38 | this.children = [child];
39 | this.nextAfterChildren = this.next || null;
40 | this.next = child;
41 | } else {
42 | this.children[this.children.length - 1].next = child;
43 | this.children.push(child);
44 | }
45 | child.next = this;
46 | return this;
47 | };
48 |
49 | exports.Context = Context;
50 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/contexts/diff.js:
--------------------------------------------------------------------------------
1 | var Context = require('./context').Context;
2 | var defaultClone = require('../clone');
3 |
4 | var DiffContext = function DiffContext(left, right) {
5 | this.left = left;
6 | this.right = right;
7 | this.pipe = 'diff';
8 | };
9 |
10 | DiffContext.prototype = new Context();
11 |
12 | DiffContext.prototype.setResult = function(result) {
13 | if (this.options.cloneDiffValues && typeof result === 'object') {
14 | var clone = typeof this.options.cloneDiffValues === 'function' ?
15 | this.options.cloneDiffValues : defaultClone;
16 | if (typeof result[0] === 'object') {
17 | result[0] = clone(result[0]);
18 | }
19 | if (typeof result[1] === 'object') {
20 | result[1] = clone(result[1]);
21 | }
22 | }
23 | return Context.prototype.setResult.apply(this, arguments);
24 | };
25 |
26 | exports.DiffContext = DiffContext;
27 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/contexts/patch.js:
--------------------------------------------------------------------------------
1 | var Context = require('./context').Context;
2 |
3 | var PatchContext = function PatchContext(left, delta) {
4 | this.left = left;
5 | this.delta = delta;
6 | this.pipe = 'patch';
7 | };
8 |
9 | PatchContext.prototype = new Context();
10 |
11 | exports.PatchContext = PatchContext;
12 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/contexts/reverse.js:
--------------------------------------------------------------------------------
1 | var Context = require('./context').Context;
2 |
3 | var ReverseContext = function ReverseContext(delta) {
4 | this.delta = delta;
5 | this.pipe = 'reverse';
6 | };
7 |
8 | ReverseContext.prototype = new Context();
9 |
10 | exports.ReverseContext = ReverseContext;
11 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/date-reviver.js:
--------------------------------------------------------------------------------
1 | // use as 2nd parameter for JSON.parse to revive Date instances
2 | module.exports = function dateReviver(key, value) {
3 | var parts;
4 | if (typeof value === 'string') {
5 | parts = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d*))?(Z|([+\-])(\d{2}):(\d{2}))$/.exec(value);
6 | if (parts) {
7 | return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +(parts[7] || 0)));
8 | }
9 | }
10 | return value;
11 | };
12 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/diffpatcher.js:
--------------------------------------------------------------------------------
1 | var Processor = require('./processor').Processor;
2 | var Pipe = require('./pipe').Pipe;
3 | var DiffContext = require('./contexts/diff').DiffContext;
4 | var PatchContext = require('./contexts/patch').PatchContext;
5 | var ReverseContext = require('./contexts/reverse').ReverseContext;
6 |
7 | var clone = require('./clone');
8 |
9 | var trivial = require('./filters/trivial');
10 | var nested = require('./filters/nested');
11 | var arrays = require('./filters/arrays');
12 | var dates = require('./filters/dates');
13 | var texts = require('./filters/texts');
14 |
15 | var DiffPatcher = function DiffPatcher(options) {
16 | this.processor = new Processor(options);
17 | this.processor.pipe(new Pipe('diff').append(
18 | nested.collectChildrenDiffFilter,
19 | trivial.diffFilter,
20 | dates.diffFilter,
21 | texts.diffFilter,
22 | nested.objectsDiffFilter,
23 | arrays.diffFilter
24 | ).shouldHaveResult());
25 | this.processor.pipe(new Pipe('patch').append(
26 | nested.collectChildrenPatchFilter,
27 | arrays.collectChildrenPatchFilter,
28 | trivial.patchFilter,
29 | texts.patchFilter,
30 | nested.patchFilter,
31 | arrays.patchFilter
32 | ).shouldHaveResult());
33 | this.processor.pipe(new Pipe('reverse').append(
34 | nested.collectChildrenReverseFilter,
35 | arrays.collectChildrenReverseFilter,
36 | trivial.reverseFilter,
37 | texts.reverseFilter,
38 | nested.reverseFilter,
39 | arrays.reverseFilter
40 | ).shouldHaveResult());
41 | };
42 |
43 | DiffPatcher.prototype.options = function() {
44 | return this.processor.options.apply(this.processor, arguments);
45 | };
46 |
47 | DiffPatcher.prototype.diff = function(left, right) {
48 | return this.processor.process(new DiffContext(left, right));
49 | };
50 |
51 | DiffPatcher.prototype.patch = function(left, delta) {
52 | return this.processor.process(new PatchContext(left, delta));
53 | };
54 |
55 | DiffPatcher.prototype.reverse = function(delta) {
56 | return this.processor.process(new ReverseContext(delta));
57 | };
58 |
59 | DiffPatcher.prototype.unpatch = function(right, delta) {
60 | return this.patch(right, this.reverse(delta));
61 | };
62 |
63 | DiffPatcher.prototype.clone = function(value) {
64 | return clone(value);
65 | };
66 |
67 | exports.DiffPatcher = DiffPatcher;
68 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/environment.js:
--------------------------------------------------------------------------------
1 |
2 | exports.isBrowser = typeof window !== 'undefined';
3 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/filters/dates.js:
--------------------------------------------------------------------------------
1 | var diffFilter = function datesDiffFilter(context) {
2 | if (context.left instanceof Date) {
3 | if (context.right instanceof Date) {
4 | if (context.left.getTime() !== context.right.getTime()) {
5 | context.setResult([context.left, context.right]);
6 | } else {
7 | context.setResult(undefined);
8 | }
9 | } else {
10 | context.setResult([context.left, context.right]);
11 | }
12 | context.exit();
13 | } else if (context.right instanceof Date) {
14 | context.setResult([context.left, context.right]).exit();
15 | }
16 | };
17 | diffFilter.filterName = 'dates';
18 |
19 | exports.diffFilter = diffFilter;
20 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/filters/lcs.js:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | LCS implementation that supports arrays or strings
4 |
5 | reference: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem
6 |
7 | */
8 |
9 | var defaultMatch = function(array1, array2, index1, index2) {
10 | return array1[index1] === array2[index2];
11 | };
12 |
13 | var lengthMatrix = function(array1, array2, match, context) {
14 | var len1 = array1.length;
15 | var len2 = array2.length;
16 | var x, y;
17 |
18 | // initialize empty matrix of len1+1 x len2+1
19 | var matrix = [len1 + 1];
20 | for (x = 0; x < len1 + 1; x++) {
21 | matrix[x] = [len2 + 1];
22 | for (y = 0; y < len2 + 1; y++) {
23 | matrix[x][y] = 0;
24 | }
25 | }
26 | matrix.match = match;
27 | // save sequence lengths for each coordinate
28 | for (x = 1; x < len1 + 1; x++) {
29 | for (y = 1; y < len2 + 1; y++) {
30 | if (match(array1, array2, x - 1, y - 1, context)) {
31 | matrix[x][y] = matrix[x - 1][y - 1] + 1;
32 | } else {
33 | matrix[x][y] = Math.max(matrix[x - 1][y], matrix[x][y - 1]);
34 | }
35 | }
36 | }
37 | return matrix;
38 | };
39 |
40 | var backtrack = function(matrix, array1, array2, index1, index2, context) {
41 | if (index1 === 0 || index2 === 0) {
42 | return {
43 | sequence: [],
44 | indices1: [],
45 | indices2: []
46 | };
47 | }
48 |
49 | if (matrix.match(array1, array2, index1 - 1, index2 - 1, context)) {
50 | var subsequence = backtrack(matrix, array1, array2, index1 - 1, index2 - 1, context);
51 | subsequence.sequence.push(array1[index1 - 1]);
52 | subsequence.indices1.push(index1 - 1);
53 | subsequence.indices2.push(index2 - 1);
54 | return subsequence;
55 | }
56 |
57 | if (matrix[index1][index2 - 1] > matrix[index1 - 1][index2]) {
58 | return backtrack(matrix, array1, array2, index1, index2 - 1, context);
59 | } else {
60 | return backtrack(matrix, array1, array2, index1 - 1, index2, context);
61 | }
62 | };
63 |
64 | var get = function(array1, array2, match, context) {
65 | context = context || {};
66 | var matrix = lengthMatrix(array1, array2, match || defaultMatch, context);
67 | var result = backtrack(matrix, array1, array2, array1.length, array2.length, context);
68 | if (typeof array1 === 'string' && typeof array2 === 'string') {
69 | result.sequence = result.sequence.join('');
70 | }
71 | return result;
72 | };
73 |
74 | exports.get = get;
75 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/formatters/index.js:
--------------------------------------------------------------------------------
1 | var environment = require('../environment');
2 |
3 | exports.base = require('./base');
4 | exports.html = require('./html');
5 | exports.annotated = require('./annotated');
6 | exports.jsonpatch = require('./jsonpatch');
7 |
8 | if (!environment.isBrowser) {
9 | var consoleModuleName = './console';
10 | exports.console = require(consoleModuleName);
11 | }
12 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/main-formatters.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./formatters');
3 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/main-full.js:
--------------------------------------------------------------------------------
1 | var environment = require('./environment');
2 |
3 | if (environment.isBrowser) {
4 | /* global window */
5 | /* jshint camelcase: false */
6 | window.diff_match_patch = require('../public/external/diff_match_patch_uncompressed');
7 | /* jshint camelcase: true */
8 | }
9 |
10 | module.exports = require('./main');
11 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/main.js:
--------------------------------------------------------------------------------
1 |
2 | var environment = require('./environment');
3 |
4 | var DiffPatcher = require('./diffpatcher').DiffPatcher;
5 | exports.DiffPatcher = DiffPatcher;
6 |
7 | exports.create = function(options){
8 | return new DiffPatcher(options);
9 | };
10 |
11 | exports.dateReviver = require('./date-reviver');
12 |
13 | var defaultInstance;
14 |
15 | exports.diff = function() {
16 | if (!defaultInstance) {
17 | defaultInstance = new DiffPatcher();
18 | }
19 | return defaultInstance.diff.apply(defaultInstance, arguments);
20 | };
21 |
22 | exports.patch = function() {
23 | if (!defaultInstance) {
24 | defaultInstance = new DiffPatcher();
25 | }
26 | return defaultInstance.patch.apply(defaultInstance, arguments);
27 | };
28 |
29 | exports.unpatch = function() {
30 | if (!defaultInstance) {
31 | defaultInstance = new DiffPatcher();
32 | }
33 | return defaultInstance.unpatch.apply(defaultInstance, arguments);
34 | };
35 |
36 | exports.reverse = function() {
37 | if (!defaultInstance) {
38 | defaultInstance = new DiffPatcher();
39 | }
40 | return defaultInstance.reverse.apply(defaultInstance, arguments);
41 | };
42 |
43 | exports.clone = function() {
44 | if (!defaultInstance) {
45 | defaultInstance = new DiffPatcher();
46 | }
47 | return defaultInstance.clone.apply(defaultInstance, arguments);
48 | };
49 |
50 |
51 | if (environment.isBrowser) {
52 | exports.homepage = '{{package-homepage}}';
53 | exports.version = '{{package-version}}';
54 | } else {
55 | var packageInfoModuleName = '../package.json';
56 | var packageInfo = require(packageInfoModuleName);
57 | exports.homepage = packageInfo.homepage;
58 | exports.version = packageInfo.version;
59 |
60 | var formatterModuleName = './formatters';
61 | var formatters = require(formatterModuleName);
62 | exports.formatters = formatters;
63 | // shortcut for console
64 | exports.console = formatters.console;
65 | }
66 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/src/processor.js:
--------------------------------------------------------------------------------
1 |
2 | var Processor = function Processor(options){
3 | this.selfOptions = options || {};
4 | this.pipes = {};
5 | };
6 |
7 | Processor.prototype.options = function(options) {
8 | if (options) {
9 | this.selfOptions = options;
10 | }
11 | return this.selfOptions;
12 | };
13 |
14 | Processor.prototype.pipe = function(name, pipe) {
15 | if (typeof name === 'string') {
16 | if (typeof pipe === 'undefined') {
17 | return this.pipes[name];
18 | } else {
19 | this.pipes[name] = pipe;
20 | }
21 | }
22 | if (name && name.name) {
23 | pipe = name;
24 | if (pipe.processor === this) { return pipe; }
25 | this.pipes[pipe.name] = pipe;
26 | }
27 | pipe.processor = this;
28 | return pipe;
29 | };
30 |
31 | Processor.prototype.process = function(input, pipe) {
32 | var context = input;
33 | context.options = this.options();
34 | var nextPipe = pipe || input.pipe || 'default';
35 | var lastPipe, lastContext;
36 | while (nextPipe) {
37 | if (typeof context.nextAfterChildren !== 'undefined') {
38 | // children processed and coming back to parent
39 | context.next = context.nextAfterChildren;
40 | context.nextAfterChildren = null;
41 | }
42 |
43 | if (typeof nextPipe === 'string') {
44 | nextPipe = this.pipe(nextPipe);
45 | }
46 | nextPipe.process(context);
47 | lastContext = context;
48 | lastPipe = nextPipe;
49 | nextPipe = null;
50 | if (context) {
51 | if (context.next) {
52 | context = context.next;
53 | nextPipe = lastContext.nextPipe || context.pipe || lastPipe;
54 | }
55 | }
56 | }
57 | return context.hasResult ? context.result : undefined;
58 | };
59 |
60 | exports.Processor = Processor;
61 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/test/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../jshintrc.json",
3 | // Custom Globals
4 | "predef" : [
5 | "mocha",
6 | "describe",
7 | "when",
8 | "before",
9 | "beforeEach",
10 | "after",
11 | "afterEach",
12 | "it",
13 | "expect",
14 | "jsondiffpatch"
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/test/mocha.opts:
--------------------------------------------------------------------------------
1 | --reporter spec
2 | --growl
3 | --ui bdd
4 | test/index.js
5 |
--------------------------------------------------------------------------------
/src/assets/libs/jsondiffpatch/test/util/globals.js:
--------------------------------------------------------------------------------
1 |
2 | global.when = function(){
3 | var args = Array.prototype.slice.apply(arguments);
4 | args[0] = 'when ' + args[0];
5 | describe.apply(this, args);
6 | };
7 | global.expect = require('expect.js');
8 | global.jsondiffpatch = (typeof window !== 'undefined' ? window.jsondiffpatch : null) ||
9 | require('../../' + 'src/main.js');
10 |
--------------------------------------------------------------------------------
/src/assets/libs/splitter/jquery.splitter.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * StyleSheet for JQuery splitter Plugin
3 | * Copyright (C) 2010 Jakub Jankiewicz
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU Lesser General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU Lesser General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU Lesser General Public License
16 | * along with this program. If not, see .
17 | */
18 | .splitter_panel {
19 | position: relative;
20 | }
21 | .splitter_panel .vsplitter {
22 | background-color: #e2e2e2;
23 | cursor: col-resize;
24 | z-index: 900;
25 | width: 1px;
26 | }
27 | .splitter_panel .vsplitter:hover {
28 | background-color: #777;
29 | width: 4px;
30 | }
31 |
32 | .splitter_panel .hsplitter {
33 | background-color: #5F5F5F;
34 | cursor: row-resize;
35 | z-index: 800;
36 | height: 5px;
37 | }
38 | .splitter_panel .vsplitter.splitter-invisible,
39 | .splitter_panel .hsplitter.splitter-invisible {
40 | background: none;
41 | }
42 | .splitter_panel .vsplitter, .splitter_panel .left_panel, .splitter_panel .right_panel,
43 | .splitter_panel .hsplitter, .splitter_panel .top_panel, .splitter_panel .bottom_panel {
44 | position: absolute;
45 | overflow: auto;
46 | }
47 | .splitter_panel .vsplitter, .splitter_panel .left_panel, .splitter_panel .right_panel {
48 | height: 100%;
49 | }
50 | .splitter_panel .hsplitter, .splitter_panel .top_panel, .splitter_panel .bottom_panel {
51 | width: 100%;
52 | }
53 | .splitter_panel .top_panel, .splitter_panel .left_panel, .splitter_panel .vsplitter {
54 | top: 0;
55 | }
56 | .splitter_panel .top_panel, .splitter_panel .bottom_panel, .splitter_panel .left_panel, .splitter_panel .hsplitter {
57 | left: 0;
58 | }
59 | .splitter_panel .bottom_panel {
60 | bottom: 0;
61 | }
62 | .splitter_panel .right_panel {
63 | right: 0;
64 | }
65 | .splitterMask {
66 | position: absolute;
67 | left: 0;
68 | top: 0;
69 | right: 0;
70 | bottom: 0;
71 | z-index: 1000;
72 | }
73 |
--------------------------------------------------------------------------------
/src/components/Business/children/children/BusinessTree.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
35 |
--------------------------------------------------------------------------------
/src/components/DataImport/DataImport.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{$t("content.import.drpz")}}
8 | {{importPath}}
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{$t("content.import.xtdr")}}
16 |
17 |
18 | {{$t("content.import.sdwjdr")}}
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
57 |
60 |
--------------------------------------------------------------------------------
/src/components/DataImport/UploadItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{title}}
6 |
7 |
8 |
9 |
10 |
17 |
18 |
19 |
20 |
61 |
62 |
68 |
--------------------------------------------------------------------------------
/src/components/Footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/src/components/Home/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/components/Home/HomeUserInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
24 |
66 |
67 | q
68 |
--------------------------------------------------------------------------------
/src/components/Home/TopicTree.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
40 |
41 |
--------------------------------------------------------------------------------
/src/components/ImportExport/children/Collection.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
--------------------------------------------------------------------------------
/src/components/ImportExport/children/children/importHeaderItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
39 |
--------------------------------------------------------------------------------
/src/components/MainPage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/MetaData/DataImport/DataImport.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{$t("content.import.drpz")}}
8 | {{importPath}}
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{$t("content.import.xtdr")}}
16 |
17 |
18 | {{$t("content.import.sdwjdr")}}
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
57 |
60 |
--------------------------------------------------------------------------------
/src/components/MetaData/DataImport/UploadItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{title}}
6 |
7 |
8 |
9 |
10 |
17 |
18 |
19 |
20 |
61 |
62 |
68 |
--------------------------------------------------------------------------------
/src/components/MetaData/Dataset/DatasetDetail/BusinessTree.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
15 |
35 |
--------------------------------------------------------------------------------
/src/components/MetaData/Dataset/DatasetDetail/PermissionItemR.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
85 |
107 |
--------------------------------------------------------------------------------
/src/components/MetaData/Dataset/DatasetDetail/PermissionList.vue:
--------------------------------------------------------------------------------
1 |
2 |
28 |
29 |
60 |
87 |
--------------------------------------------------------------------------------
/src/components/MetaData/Dataset/DatasetDetail/PropertiesEditor.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | {{showValue}}
8 | {{placeholder}}
9 |
10 |
11 |
17 |
18 |
19 |
20 |
79 |
--------------------------------------------------------------------------------
/src/components/MetaData/Dataset/PhysicalExportTree/PhysicalExportTree.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
31 |
--------------------------------------------------------------------------------
/src/components/MetaData/MetaData.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
28 |
29 |
33 |
--------------------------------------------------------------------------------
/src/components/MetaData/Personal/Tag.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
39 |
40 |
43 |
--------------------------------------------------------------------------------
/src/components/MetaData/Personal/chiildren/Search.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 | {{$t('content.header.ss')}}
10 |
11 |
12 |
48 |
53 |
--------------------------------------------------------------------------------
/src/components/Source/Source.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
30 |
31 |
32 |
84 |
96 |
--------------------------------------------------------------------------------
/src/components/Source/SourceList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
{{labelTitle}}
12 | {{toThousand(total)}}
13 |
14 |
15 |
16 |
40 |
52 |
--------------------------------------------------------------------------------
/src/components/common/Error.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{tip}}
4 |
5 |
6 |
15 |
21 |
--------------------------------------------------------------------------------
/src/components/common/LineChart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
78 |
80 |
--------------------------------------------------------------------------------
/src/components/common/Loading/Loading.vue:
--------------------------------------------------------------------------------
1 |
6 |
34 |
46 |
--------------------------------------------------------------------------------
/src/components/common/Loading/index.js:
--------------------------------------------------------------------------------
1 | import Loading from './Loading';
2 |
3 | Loading.install = function(Vue) {
4 | Vue.component(Loading.name, Loading);
5 | };
6 | export default Loading;
7 |
--------------------------------------------------------------------------------
/src/components/common/MoreLoading/MoreLoading.vue:
--------------------------------------------------------------------------------
1 |
31 |
47 |
--------------------------------------------------------------------------------
/src/components/common/MoreLoading/index.js:
--------------------------------------------------------------------------------
1 | import MoreLoading from './MoreLoading'
2 |
3 | MoreLoading.install = function(Vue){
4 | Vue.component(MoreLoading.name, MoreLoading)
5 | }
6 | export default MoreLoading
7 |
--------------------------------------------------------------------------------
/src/components/common/NoData/NoData.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
![]()
4 |
5 | {{this.$t('content.common.zwsj')}}
6 |
7 |
8 |
9 |
30 |
47 |
--------------------------------------------------------------------------------
/src/components/common/NoData/index.js:
--------------------------------------------------------------------------------
1 | import NoData from './NoData';
2 |
3 | NoData.install = function(Vue) {
4 | Vue.component(NoData.name, NoData);
5 | };
6 | export default NoData;
--------------------------------------------------------------------------------
/src/components/common/PieChart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
75 |
--------------------------------------------------------------------------------
/src/components/common/SplitControler.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
31 |
--------------------------------------------------------------------------------
/src/components/common/TableHeader/TableHeader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 | {{model.name}}
9 |
13 |
15 |
16 |
18 |
19 |
20 | |
21 |
22 |
23 |
24 |
25 |
26 |
47 |
70 |
--------------------------------------------------------------------------------
/src/components/common/TableHeader/index.js:
--------------------------------------------------------------------------------
1 | import TableHeader from './TableHeader';
2 |
3 | TableHeader.install = function(Vue) {
4 | Vue.component(TableHeader.name, TableHeader);
5 | };
6 | export default TableHeader;
--------------------------------------------------------------------------------
/src/components/common/TableItemJump.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 | |
20 |
21 |
22 |
23 |
88 |
105 |
--------------------------------------------------------------------------------
/src/components/common/dialogItemTitle.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{title}}
4 |
5 |
6 |
17 |
31 |
--------------------------------------------------------------------------------
/src/components/common/index.js:
--------------------------------------------------------------------------------
1 | import TableHeader from "./TableHeader/index"
2 | import Loading from "./Loading/index"
3 | import NoData from "./NoData/index"
4 | import MoreLoading from './MoreLoading/index'
5 |
6 | const components = [
7 | TableHeader,
8 | Loading,
9 | NoData,
10 | MoreLoading
11 | ]
12 | const commonComponents = {
13 | install(Vue) {
14 | components.map((val) => val.install(Vue))
15 | }
16 | }
17 |
18 | export default commonComponents
19 |
--------------------------------------------------------------------------------
/src/config/fetch.js:
--------------------------------------------------------------------------------
1 | import {baseUrl} from './env';
2 | import {parsed} from './mUtils';
3 |
4 | export default async (url = '', data = {}, type = 'GET', method = 'fetch') => {
5 | type = type.toUpperCase();
6 | url = baseUrl + url;
7 |
8 | if (type === 'GET') {
9 | let dataStr = ''; //数据拼接字符串
10 | Object.keys(data).forEach(key => {
11 | dataStr += key + '=' + data[key] + '&';
12 | });
13 |
14 | if (dataStr !== '') {
15 | dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
16 | url = url + '?' + dataStr;
17 | }
18 | }
19 |
20 | if (url.indexOf('?') >= 0) { //判断url中是否已经带有参数
21 | url = url + '&t=' + (new Date()).valueOf();
22 | } else {
23 | url = url + '?t=' + (new Date()).valueOf();
24 | }
25 |
26 | if (window.fetch && method === 'fetch') {
27 | let requestConfig = {
28 | credentials: 'include',
29 | method: type,
30 | headers: {
31 | 'Accept': 'application/json',
32 | 'Content-Type': 'application/json'
33 | },
34 | mode: "cors"
35 | };
36 |
37 | if (type === 'POST') {
38 | Object.defineProperty(requestConfig, 'body', {
39 | value: JSON.stringify(data)
40 | });
41 | }
42 |
43 | try {
44 | const response = await fetch(url, requestConfig);
45 | return parsed(await response.json());
46 | } catch (error) {
47 | throw new Error(error.message);
48 | }
49 | } else {
50 | return new Promise((resolve, reject) => {
51 | let requestObj;
52 | if (window.XMLHttpRequest) {
53 | requestObj = new XMLHttpRequest();
54 | } else {
55 | requestObj = new ActiveXObject;
56 | }
57 |
58 | let sendData = '';
59 | if (type === 'POST') {
60 | sendData = JSON.stringify(data);
61 | }
62 |
63 | requestObj.open(type, url, true);
64 | requestObj.setRequestHeader("Content-type", "application/json");
65 | requestObj.send(sendData);
66 |
67 | requestObj.onreadystatechange = () => {
68 | if (requestObj.readyState === 4) {
69 | if (requestObj.status === 200) {
70 | let obj = requestObj.response;
71 | if (typeof obj !== 'object') {
72 | obj = JSON.parse(obj);
73 | }
74 | resolve(parsed(obj));
75 | } else {
76 | reject(requestObj);
77 | }
78 | }
79 | };
80 | });
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/src/config/http.js:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * http请求配置
4 | */
5 | import axios from 'axios';
6 | import store from '../store';
7 | import {codeMap} from '../config/env';
8 | import {setStore} from '../config/mUtils';
9 | import {Message} from 'element-ui';
10 |
11 | /*
12 | *
13 | * 网页加载时,还没有请求 /lang 接口的时候,如果有提示错误信息,需要获取浏览器设置语言,以提供报错信息
14 | * Firefox Chrome Safari 用 navigator.language
15 | * IE 用 navigator.browserLanguage
16 | *
17 | * */
18 | const navLang = (navigator.language || navigator.browserLanguage).toLowerCase();
19 | let loginOutFlag = false; //用户是否已经登出标记,防止重复报错信息提示
20 |
21 | // axios 配置
22 | axios.defaults.headers.post['Content-Type'] = 'application/json';
23 |
24 | // 请求拦截器
25 | axios.interceptors.request.use(function (config) {
26 | const url = config.url;
27 | if (url.indexOf("?") >= 0) {//判断url中是否已经带有参数
28 | config.url = url + "&t=" + (new Date()).valueOf();
29 | } else {
30 | config.url = url + "?t=" + (new Date()).valueOf();
31 | }
32 | return config;
33 | }, function (error) {
34 | return Promise.reject(error);
35 | });
36 |
37 | // http response 响应拦截器
38 | axios.interceptors.response.use(function (response) {
39 | const url = response.config.url; //请求接口的url
40 | response.body = response.data; //兼容以前的vue-resource
41 |
42 | if (response.headers['content-type'].indexOf('application/json') > -1 &&
43 | url.indexOf('/outerapi/v1/getOutterSql/key/') === -1) { //过滤掉文件上传请求,SQL查询的请求
44 | const code = response.data.statusCode;
45 | const lang = store.state.language; //获取当前设置的语言
46 | if (code === 407) { //用户当前是否已经登陆, 用户每次请求接口时,都要去判断是否已经登陆,否则跳转到登陆页面
47 | if (!loginOutFlag) {
48 | loginOutFlag = true;
49 | setStore("exitingURL", window.location.hash); //登出时候停留的页面保存起来
50 |
51 | //过滤掉这两个接口,因为当前还不确定用户的设置语言,只能以浏览器的设置完成提示
52 | if (url.indexOf('/authenticate') > -1 || url.indexOf('/lang') > -1) {
53 | Message.error(codeMap[navLang.includes('zh') ? 'zh' : 'en']['exit']);
54 | } else {
55 | Message.error(codeMap[lang]['exit']);
56 | }
57 | setTimeout(() => {
58 | window.location.href = "/login";
59 | }, 2000);
60 | }
61 | } else if (code === 200 || code === 403) {
62 | return response;
63 | } else {
64 | Message({
65 | showClose: true,
66 | type: 'warning',
67 | message: codeMap[lang][code]
68 | });
69 | return response;
70 | }
71 | } else {
72 | return response;
73 | }
74 | }, function (error) {
75 | return Promise.reject(error);
76 | });
77 |
78 | export default axios;
79 |
--------------------------------------------------------------------------------
/src/config/mUtils.js:
--------------------------------------------------------------------------------
1 | import {Message} from 'element-ui';
2 | import {codeMap} from './env';
3 |
4 | /**
5 | * 获取成功之后的数据
6 | */
7 | export const parsed = (data) => {
8 | if (data.statusCode === 200) {
9 | return data.message;
10 | } else {
11 | const statusCode = data.message;
12 | Message({
13 | showClose: true,
14 | type: 'warning',
15 | message: codeMap[statusCode]
16 | });
17 | throw new Error(statusCode);
18 | }
19 | };
20 |
21 | /**
22 | * 存储localStorage
23 | */
24 | export const setStore = (name, content) => {
25 | if (!name) return;
26 | if (typeof content !== 'string') {
27 | content = JSON.stringify(content);
28 | }
29 | window.localStorage.setItem(name, content);
30 | };
31 |
32 | /**
33 | * 获取localStorage
34 | */
35 | export const getStore = name => {
36 | if (!name) return;
37 | return window.localStorage.getItem(name);
38 | };
39 |
40 | /**
41 | * 删除localStorage
42 | */
43 | export const removeStore = name => {
44 | if (!name) return;
45 | window.localStorage.removeItem(name);
46 | };
47 |
--------------------------------------------------------------------------------
/src/directives/clickoutside.js:
--------------------------------------------------------------------------------
1 | const clickoutside = {
2 | name: "clickoutside",
3 | install: {
4 | // 初始化指令
5 | bind (el, binding, vnode) {
6 | function documentHandler (e) {
7 | // 这里判断点击的元素是否是本身,是本身,则返回
8 | if (el.contains(e.target)) {
9 | return false;
10 | }
11 | // 判断指令中是否绑定了函数
12 | if (binding.expression) {
13 | // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法
14 | binding.value(e);
15 | }
16 | }
17 |
18 | // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听
19 | el.__vueClickOutside__ = documentHandler;
20 | document.addEventListener('click', documentHandler);
21 | },
22 | update () {
23 | },
24 | unbind (el, binding) {
25 | // 解除事件监听
26 | document.removeEventListener('click', el.__vueClickOutside__);
27 | delete el.__vueClickOutside__;
28 | }
29 | }
30 | };
31 |
32 | export default clickoutside;
33 |
--------------------------------------------------------------------------------
/src/directives/ellipsis.js:
--------------------------------------------------------------------------------
1 | function concatClass(a, b) {
2 | if (a && a.indexOf(b) > -1) return a;
3 | return a ? b ? (a + ' ' + b) : a : (b || '');
4 | };
5 |
6 | const ellipsis = {
7 | name: "ellipsis",
8 | install: (el, {arg = '90%',value}) => {
9 | if (!value) {
10 | value = ""
11 | }
12 | const title = value.replace(/<.*?>/ig, "");
13 | el.className = concatClass(el.className, "commom-overflow")
14 | el.innerHTML = value;
15 | el.style.maxWidth = arg.includes('%') ? arg : `${arg}px`;
16 | el.title = title;
17 | }
18 | }
19 |
20 | export default ellipsis
21 |
--------------------------------------------------------------------------------
/src/directives/hiddenElement.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Bus from 'utils/bus'
3 |
4 | Vue.directive('hidden', {
5 | inserted (el, binding) {
6 | const doms = el.children
7 | const className = el.className
8 | function addEvent(){
9 | getParent(event.target)
10 | function getParent(target){
11 | if (target.className && target.className == className || target.className == 'advance-search-container') {
12 | return;
13 | } else if (target.tagName == 'BODY' && target.text != '高级搜索'){
14 | window.removeEventListener('click', addEvent)
15 | el.style.display = 'none'
16 | Bus.$emit('hidden', false)
17 | return;
18 | } else {
19 | getParent(target.parentNode)
20 | }
21 | }
22 | }
23 | window.addEventListener('click', addEvent)
24 | }
25 | })
26 |
--------------------------------------------------------------------------------
/src/directives/index.js:
--------------------------------------------------------------------------------
1 | import ellipsis from './ellipsis';
2 | import clickoutside from './clickoutside';
3 |
4 | const directiveArr = [
5 | ellipsis,
6 | clickoutside
7 | ];
8 |
9 | function directive (Vue, ...rest) {
10 | return Vue.directive(...rest);
11 | }
12 |
13 | const directivesObj = {
14 | install (Vue) {
15 | directiveArr.map((val) => directive(Vue, val.name, val.install));
16 | }
17 | };
18 | export default directivesObj;
19 |
--------------------------------------------------------------------------------
/src/locale/international.js:
--------------------------------------------------------------------------------
1 | import {cnContent} from './zh';
2 | import {enContent} from './en';
3 |
4 | export {
5 | cnContent,
6 | enContent
7 | };
8 |
--------------------------------------------------------------------------------
/src/plugins/MessageBox/MessageBox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{message}}
6 |
7 |
11 |
12 |
13 |
14 |
35 |
41 |
--------------------------------------------------------------------------------
/src/plugins/MessageBox/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import MessageBox from './MessageBox.vue'
3 |
4 | function messageBox(options){
5 | let instance;
6 | const MessageInstance = Vue.extend(MessageBox)
7 | let newEl = document.createElement('div');
8 | newEl.className = 'message-box';
9 | document.body.appendChild(newEl);
10 | instance = new MessageInstance().$mount(newEl);
11 | for(let prop in options){
12 | instance[prop] = options[prop];
13 | }
14 | return instance;
15 | }
16 | export default messageBox;
17 |
--------------------------------------------------------------------------------
/src/plugins/index.js:
--------------------------------------------------------------------------------
1 | import messageBox from './MessageBox/main'
2 | import Vue from 'vue'
3 | const defaultOptions = {
4 | message: '确认删除?',
5 | title: '提示',
6 | callback: ''
7 | }
8 | const Plugins = {
9 | install: Vue => {
10 | Vue.prototype.$metaMessage = {
11 | confirm(options = defaultOptions){
12 | return messageBox(options)
13 | }
14 | }
15 | }
16 | }
17 | export default Plugins
18 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 | import mutations from './mutations';
4 | import actions from './actions';
5 |
6 | Vue.use(Vuex);
7 | let view = window.sessionStorage.getItem('viewActive');
8 | export default new Vuex.Store({
9 | state: {
10 | username: '', //用户名
11 | selectPath: '',
12 | datasetKeyword: '', //存储dataset搜索关键字
13 | flowKeyword: '', //存储flow搜索关键字
14 | saveUploadDate: '', //上传文件
15 | treeItemActive: {
16 | path: null,
17 | datasetId: null
18 | }, // 当前被选中
19 | defaultSort: '',
20 | viewData: {
21 | viewNotTable: [null],
22 | viewTable: {
23 | id: "",
24 | path: ""
25 | },
26 | viewActive: view ? view : 'datatype'
27 | },
28 | queryFlow: {
29 | process: {
30 | path: ""
31 | },
32 | task: {
33 | path: "",
34 | id: ""
35 | },
36 | isProcess: false
37 | }, //保存process 请求对象
38 | selectItem: "", //选择要移动到的项目
39 | checkList: [],
40 | isBusiness: true,
41 | isBusinessTitle: false,
42 | themeCheckList: [],
43 | headerNav: [], //header导航
44 | sourceUserMessage: {},
45 | sourceTitle: '',
46 | fetchRouter: {},
47 | language: 'zh',
48 | selectItems: [],//权限申请
49 | exportList: [],//导出元数据表,
50 | exportDBList: [],//导出元数据库,
51 | tableName: '',
52 | businessState: {},
53 | hasTreeData: false,
54 | fetchTreeDataEndRequest: false,
55 | importPrivilege: false,
56 | dataStatus: 0,
57 | exportSearh: '',
58 | treeLoading: false, //树状图loading
59 | treeBusinessLoading: false, //物理视图loading
60 | collectCount: 0,
61 | fullLoading: false,
62 | fullTreeLoading: false,
63 | saveRouter: '',
64 | navIsData: true,
65 | isPrivate: 0,
66 | propEditPrivilege: false,
67 | setSourceLink: false,
68 | createTask: {},
69 | addTables: [],
70 | saveBlackList: [],
71 | getSample: false,
72 | searchTable: [],
73 | cronValue: '* * * * * *',
74 | closeDialog: false,
75 | showCron: '',
76 | selectTables: [],
77 | exportTableSource: {},
78 | testBlackList: [],
79 | saveSelectList: [],
80 | setSearchParams: {},
81 | tableTypeOpts: '0,1,2', // 左侧菜单过滤条件
82 | modelOpen: false,
83 | manageInfo: {},
84 | userInfo: {},
85 | ownerActiveTab: {},
86 | navVisible: false,
87 | clearTimeout: null,
88 | sourceType: 'all',
89 | versions: [], //当前表下所有的版本号数组
90 | isEditSetting: false //导入任务管理中,是否修改过配置.
91 | },
92 | mutations,
93 | actions
94 | });
95 |
--------------------------------------------------------------------------------
/src/utils/bus.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | const Bus = new Vue()
3 | export default Bus;
4 |
--------------------------------------------------------------------------------
/src/utils/index.js:
--------------------------------------------------------------------------------
1 | import {FormatSize} from 'mixins/common';
2 | import Vue from 'vue';
3 | import axios from 'axios';
4 |
5 | const ChartColor = ['#fb7a53', '#ffbf01', '#ffdc16', '#92d14f', '#31c45e', '#50da9e', '#76e9e2', '#26d4ff', '#2cabf4', '#1064fe', '#f0f0f0'];
6 |
7 | const getData = async (vm, url) => {
8 | const res = await vm.axios.get(url);
9 | const {statusCode, message} = res.body;
10 | return statusCode === 200 ? message.records : [];
11 | };
12 |
13 | /**
14 | * @desc 使用vue-resource第三方库访问后台服务器,返回封装后的Promise对象
15 | * @param {string} type HTTP请求方式, 默认GET.
16 | * @param {string} url 请求的接口地址, 格式: "/xxx..."
17 | * @param {object} vm vue实例
18 | * @param {object} data 请求的数据, object对象格式
19 | *
20 | */
21 | function httpRequest ({
22 | type = 'get',
23 | url = null,
24 | vm = this,
25 | data = null
26 | }) {
27 | return new Promise((resolve, reject) => {
28 | axios[type](url, data).then(res => {
29 | const {message, statusCode} = res.body;
30 | if (statusCode === 200) {
31 | resolve(message);
32 | }
33 | });
34 | });
35 | }
36 |
37 | /**
38 | *
39 | * @param {*} vm
40 | * @param {*} arr
41 | * @param {*} params
42 | * @param {*} bool
43 | */
44 |
45 | const setRankList = (vm, arr, params = new Map(), bool = false) => {
46 | arr.map(item => {
47 | for (let [key, value] of params) {
48 | if (key == 'num') {
49 | vm.$set(item, key, bool ? FormatSize.methods.formatSize(item[value]) : item[value]);
50 | } else {
51 | vm.$set(item, key, item[value]);
52 | }
53 | }
54 | });
55 | return arr;
56 | };
57 |
58 | const strMapToObj = (map) => {
59 | let obj = Object.create(null);
60 | for (let [k, v] of map) {
61 | obj[k] = v;
62 | }
63 | return obj;
64 | };
65 |
66 | const hiddenClick = (className, visible, vm) => {
67 | window.onclick = function (e) {
68 | let target = $(e.target).hasClass(className) || $(e.target).parents().hasClass(className);
69 | if (!target) {
70 | vm[visible] = false;
71 | }
72 | };
73 | };
74 |
75 | const clickCount = (datasetId) => {
76 | datasetId && axios.post(`/datasets/${datasetId}/access`).catch(err => console.log(err));
77 | };
78 |
79 | export {
80 | ChartColor,
81 | getData,
82 | setRankList,
83 | strMapToObj,
84 | httpRequest,
85 | hiddenClick,
86 | clickCount
87 | };
88 |
--------------------------------------------------------------------------------
/src/vars.less:
--------------------------------------------------------------------------------
1 | @imagesUrl : '../../assets/images';
2 |
--------------------------------------------------------------------------------
/static/alert.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Outdated Browser
6 |
7 |
8 |
9 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/static/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zbwfisher1/vue-metadata/a44763825b1e865aa9401bc5a3b8b3f3c6ecbdd7/static/images/favicon.ico
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/ar.html:
--------------------------------------------------------------------------------
1 | متصفحك يحتاج تحديث!
2 | الرجاء تحديث متصفحك لمشاهدة الموقع بشكل جيد۔ تحديث المتصفح الآن
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/cs.html:
--------------------------------------------------------------------------------
1 | Váš prohlížeč je zastaralý!
2 | Pro správné zobrazení těchto stránek aktualizujte svůj prohlížeč. Aktualizovat prohlížeč nyní
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/da.html:
--------------------------------------------------------------------------------
1 | Din browser er forældet!
2 | Opdatér din browser for at få vist denne hjemmeside ordentligt. Opdater min browser nu
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/de.html:
--------------------------------------------------------------------------------
1 | Ihr Browser ist veraltet!
2 | Bitte aktualisieren Sie Ihren Browser, um diese Website korrekt dazustellen. Den Browser jetzt aktualisieren
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/el.html:
--------------------------------------------------------------------------------
1 | Το προγραμμα περιηγησης (φυλλομετρητης/browser) που χρησιμοποιεις για το internet δεν ειναι ενημερωμενο!
2 | Ενημερωσε το προγραμμα περιηγησης για να δεις αυτη την ιστοσελιδα σωστα. Ενημερωση του προγραμματος περιηγησης τωρα
3 | ×
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/en.html:
--------------------------------------------------------------------------------
1 | Your browser is out of date!
2 | Update your browser to view this website correctly. Update my browser now
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/es-pe.html:
--------------------------------------------------------------------------------
1 | ¡Tu navegador no está actualizado!
2 | Actualiza tu navegador para visualizar esta página correctamente. Actualizar mi navegador ahora!
3 | ×
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/es.html:
--------------------------------------------------------------------------------
1 | ¡Tu navegador está obsoleto!
2 | Actualiza tu navegador para ver esta página correctamente. Actualizar mi navegador ahora
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/et.html:
--------------------------------------------------------------------------------
1 | Sinu veebilehitseja on vananenud!
2 | Palun uuenda oma veebilehitsejat, et näha lehekülge korrektselt. Uuenda oma veebilehitsejat kohe
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/fa.html:
--------------------------------------------------------------------------------
1 | مرورگر شما منسوخ شده است!
2 | جهت مشاهده صحیح این وبسایت، مرورگرتان را بروز رسانی نمایید. همین حالا مرورگرم را بروز کن
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/fi.html:
--------------------------------------------------------------------------------
1 | Selaimesi on vanhentunut!
2 | Lataa ajantasainen selain nähdäksesi tämän sivun oikein. Päivitä selaimeni nyt
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/fr.html:
--------------------------------------------------------------------------------
1 | Votre navigateur est obsolète!
2 | Mettez à jour votre navigateur pour afficher correctement ce site Web. Mettre à jour maintenant
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/hr.html:
--------------------------------------------------------------------------------
1 | Vaš Internet preglednik nije ažuriran!
2 | Ažurirajte Vaš preglednik za ispravan prikaz ove stranice. Ažuriraj odmah
3 | ×
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/hu.html:
--------------------------------------------------------------------------------
1 | A böngészője elavult!
2 | Frissítse vagy cserélje le a böngészőjét. A böngészőm frissítése
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/id.html:
--------------------------------------------------------------------------------
1 | Browser yang Anda gunakan sudah ketinggalan zaman!
2 | Perbaharuilah browser Anda agar bisa menjelajahi website ini dengan nyaman. Perbaharui browser sekarang
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/it.html:
--------------------------------------------------------------------------------
1 | Il tuo browser non è aggiornato!
2 | Aggiornalo per vedere questo sito correttamente. Aggiorna ora
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/ja.html:
--------------------------------------------------------------------------------
1 | あなたのブラウザはもう古いです
2 | こちらのサイトを閲覧するためには、ブラウザをアップグレードしてください。 ブラウザをアップグレードする
3 | ×
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/ko.html:
--------------------------------------------------------------------------------
1 | 브라우저가 오래되었습니다!
2 | 이 웹 페이지가 현재 브라우저에서는 정상적으로 보이지 않을 수 있습니다. 지금 브라우저를 업그레이드하세요!
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/lt.html:
--------------------------------------------------------------------------------
1 | Jūsų naršyklės versija yra pasenusi!
2 | Atnaujinkite savo naršyklę, kad galėtumėte peržiūrėti šią svetainę tinkamai. Atnaujinti naršyklę
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/nb.html:
--------------------------------------------------------------------------------
1 | Nettleseren din er avleggs!
2 | Oppdater nettleseren din for å oppleve nettstedet riktig. Oppdater nettleseren min nå
3 | ×
4 |
5 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/nl.html:
--------------------------------------------------------------------------------
1 | Je gebruikt een verouderde browser!
2 | Update je browser om deze website correct te bekijken. Update mijn browser nu
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/pl.html:
--------------------------------------------------------------------------------
1 | Twoja przeglądarka jest przestarzała!
2 | Zaktualizuj swoją przeglądarkę, aby poprawnie wyświetlić tę stronę. Zaktualizuj przeglądarkę już teraz
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/pt-br.html:
--------------------------------------------------------------------------------
1 | O seu navegador está desatualizado!
2 | Atualize o seu navegador para ter uma melhor experiência e visualização deste site. Atualize o seu navegador agora
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/pt.html:
--------------------------------------------------------------------------------
1 | O seu browser está desatualizado!
2 | Atualize o seu browser para ter uma melhor experiência e visualização deste site. Atualize o seu browser agora
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/ro.html:
--------------------------------------------------------------------------------
1 | Navigatorul este învechit!
2 | Actualizați navigatorul pentru a vizualiza corect acest site. Actualizați navigatorul acum!
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/ru.html:
--------------------------------------------------------------------------------
1 | Ваш браузер устарел!
2 | Обновите ваш браузер для правильного отображения этого сайта. Обновить мой браузер
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/sk.html:
--------------------------------------------------------------------------------
1 | Váš prehliadač je zastaraný!
2 | Pre správne zobrazenie tejto webstránky aktualizujte svoj prehliadač. Aktualizovať prehliadač teraz
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/sl.html:
--------------------------------------------------------------------------------
1 | Vaš brskalnik je zastarel!
2 | Za pravilen prikaz spletne strani posodobite vaš brskalnik. Posodobi brskalnik
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/sv.html:
--------------------------------------------------------------------------------
1 | Din webbläsare stödjs ej längre!
2 | Uppdatera din webbläsare för att webbplatsen ska visas korrekt. Uppdatera min webbläsare nu
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/tr.html:
--------------------------------------------------------------------------------
1 | Tarayıcınız güncel değil!
2 | Web sitemizi düzgün görüntülemek için tarayıcınızı güncelleyin.Şimdi güncelle
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/uk.html:
--------------------------------------------------------------------------------
1 | Ваш браузер застарів!
2 | Оновіть ваш браузер для правильного відображення цього сайта. Оновити мій браузер
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/zh-cn.html:
--------------------------------------------------------------------------------
1 | 您的浏览器已过时
2 | 要正常浏览本网站请升级您的浏览器。现在升级
3 | ×
4 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/lang/zh-tw.html:
--------------------------------------------------------------------------------
1 | 您的瀏覽器已過時
2 | 要正常瀏覽本網站請升級您的瀏覽器。 現在升級
3 | ×
--------------------------------------------------------------------------------
/static/outdatedbrowser/outdatedbrowser.css:
--------------------------------------------------------------------------------
1 | /*!--------------------------------------------------------------------
2 | STYLES "Outdated Browser"
3 | Version: 1.1.2 - 2015
4 | author: Burocratik
5 | website: http://www.burocratik.com
6 | * @preserve
7 | -----------------------------------------------------------------------*/
8 | #outdated{
9 | display: none; position: fixed; top: 0; left: 0; width: 100%; height: 170px;
10 | text-align: center; text-transform: uppercase; z-index:1500;
11 | background-color: #f25648; color: #ffffff;
12 | }
13 | * html #outdated{position: absolute;}
14 | #outdated h6{font-size: 25px; line-height: 25px; margin: 30px 0 10px;}
15 | #outdated p{font-size: 12px; line-height: 12px; margin: 0;}
16 | #outdated #btnUpdateBrowser{
17 | display: block; position: relative; padding: 10px 20px; margin: 30px auto 0; width: 230px; /*need for IE*/
18 | color: #ffffff; text-decoration: none; border: 2px solid #ffffff; cursor: pointer;
19 | }
20 | #outdated #btnUpdateBrowser:hover{color: #f25648; background-color:#ffffff;}
21 | #outdated .last{position: absolute; top: 10px; right: 25px; width: 20px; height: 20px;}
22 | #outdated .last[dir='rtl']{right: auto !important; left: 25px !important;}
23 | #outdated #btnCloseUpdateBrowser{
24 | display: block; position: relative; width: 100%; height: 100%;
25 | text-decoration: none; color: #ffffff; font-size: 36px; line-height: 36px;
26 | }
27 |
--------------------------------------------------------------------------------
/static/outdatedbrowser/outdatedbrowser.min.css:
--------------------------------------------------------------------------------
1 | /*!--------------------------------------------------------------------
2 | STYLES "Outdated Browser"
3 | Version: 1.1.2 - 2015
4 | author: Burocratik
5 | website: http://www.burocratik.com
6 | * @preserve
7 | -----------------------------------------------------------------------*/
8 | #outdated{display:none;position:fixed;top:0;left:0;width:100%;height:170px;text-align:center;text-transform:uppercase;z-index:1500;background-color:#f25648;color:#fff}* html #outdated{position:absolute}#outdated h6{font-size:25px;line-height:25px;margin:30px 0 10px}#outdated p{font-size:12px;line-height:12px;margin:0}#outdated #btnUpdateBrowser{display:block;position:relative;padding:10px 20px;margin:30px auto 0;width:230px;color:#fff;text-decoration:none;border:2px solid #fff;cursor:pointer}#outdated #btnUpdateBrowser:hover{color:#f25648;background-color:#fff}#outdated .last{position:absolute;top:10px;right:25px;width:20px;height:20px}#outdated #btnCloseUpdateBrowser{display:block;position:relative;width:100%;height:100%;text-decoration:none;color:#fff;font-size:36px;line-height:36px}
--------------------------------------------------------------------------------
/static/outdatedbrowser/outdatedbrowser.min.js:
--------------------------------------------------------------------------------
1 | /*!--------------------------------------------------------------------
2 | JAVASCRIPT "Outdated Browser"
3 | Version: 1.1.2 - 2015
4 | author: Burocratik
5 | website: http://www.burocratik.com
6 | * @preserve
7 | -----------------------------------------------------------------------*/
8 | var outdatedBrowser=function(t){function o(t){s.style.opacity=t/100,s.style.filter="alpha(opacity="+t+")"}function e(t){o(t),1==t&&(s.style.display="block"),100==t&&(u=!0)}function r(){var t=document.getElementById("btnCloseUpdateBrowser"),o=document.getElementById("btnUpdateBrowser");s.style.backgroundColor=bkgColor,s.style.color=txtColor,s.children[0].style.color=txtColor,s.children[1].style.color=txtColor,o.style.color=txtColor,o.style.borderColor&&(o.style.borderColor=txtColor),t.style.color=txtColor,t.onmousedown=function(){return s.style.display="none",!1},o.onmouseover=function(){this.style.color=bkgColor,this.style.backgroundColor=txtColor},o.onmouseout=function(){this.style.color=txtColor,this.style.backgroundColor=bkgColor}}function l(){var t=!1;if(window.XMLHttpRequest)t=new XMLHttpRequest;else if(window.ActiveXObject)try{t=new ActiveXObject("Msxml2.XMLHTTP")}catch(o){try{t=new ActiveXObject("Microsoft.XMLHTTP")}catch(o){t=!1}}return t}function a(t){var o=l();return o&&(o.onreadystatechange=function(){n(o)},o.open("GET",t,!0),o.send(null)),!1}function n(t){var o=document.getElementById("outdated");return 4==t.readyState&&(o.innerHTML=200==t.status||304==t.status?t.responseText:d,r()),!1}var s=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"},t?("IE8"==t.lowerThan||"borderSpacing"==t.lowerThan?t.lowerThan="borderSpacing":"IE9"==t.lowerThan||"boxShadow"==t.lowerThan?t.lowerThan="boxShadow":"IE10"==t.lowerThan||"transform"==t.lowerThan||""==t.lowerThan||"undefined"==typeof t.lowerThan?t.lowerThan="transform":("IE11"==t.lowerThan||"borderImage"==t.lowerThan)&&(t.lowerThan="borderImage"),this.defaultOpts.bgColor=t.bgColor,this.defaultOpts.color=t.color,this.defaultOpts.lowerThan=t.lowerThan,this.defaultOpts.languagePath=t.languagePath,bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath):(bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath);var u=!0,i=function(){var t=document.createElement("div"),o="Khtml Ms O Moz Webkit".split(" "),e=o.length;return function(r){if(r in t.style)return!0;for(r=r.replace(/^[a-z]/,function(t){return t.toUpperCase()});e--;)if(o[e]+r in t.style)return!0;return!1}}();if(!i(""+cssProp)){if(u&&"1"!==s.style.opacity){u=!1;for(var c=1;100>=c;c++)setTimeout(function(t){return function(){e(t)}}(c),8*c)}" "===languagePath||0==languagePath.length?r():a(languagePath);var d='Your browser is out-of-date!
Update your browser to view this website correctly. Update my browser now
×
'}};
--------------------------------------------------------------------------------
/static/outdatedbrowser/outdatedbrowser.scss:
--------------------------------------------------------------------------------
1 | /*!--------------------------------------------------------------------
2 | STYLES "Outdated Browser"
3 | Version: 1.1.2 - 2015
4 | author: Burocratik
5 | website: http://www.burocratik.com
6 | * @preserve
7 | -----------------------------------------------------------------------*/
8 | #outdated {
9 | display: none;
10 | position: fixed;
11 | top: 0;
12 | left: 0;
13 | width: 100%;
14 | height: 170px;
15 | text-align: center;
16 | text-transform: uppercase;
17 | z-index:1500;
18 | background-color: #f25648;
19 | color: #ffffff;
20 | h6 {
21 | font-size: 25px;
22 | line-height: 25px;
23 | margin: 30px 0 10px;
24 | }
25 | p {
26 | font-size: 12px;
27 | line-height: 12px;
28 | margin: 0;
29 | }
30 | #btnUpdateBrowser {
31 | display: block;
32 | position: relative;
33 | padding: 10px 20px;
34 | margin: 30px auto 0;
35 | width: 230px; /*need for IE*/
36 | color: #ffffff;
37 | text-decoration: none;
38 | border: 2px solid #ffffff;
39 | cursor: pointer;
40 | &:hover {
41 | color: #f25648;
42 | background-color:#ffffff;
43 | }
44 | }
45 | .last {
46 | position: absolute;
47 | top: 10px;
48 | right: 25px;
49 | width: 20px;
50 | height: 20px;
51 | &[dir='rtl'] {
52 | right: auto !important;
53 | left: 25px !important;
54 | }
55 | }
56 | #btnCloseUpdateBrowser{
57 | display: block;
58 | position: relative;
59 | width: 100%;
60 | height: 100%;
61 | text-decoration: none;
62 | color: #ffffff;
63 | font-size: 36px;
64 | line-height: 36px;
65 | }
66 | * html & {
67 | position: absolute;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------