├── static
└── .gitkeep
├── .eslintignore
├── src
├── assets
│ ├── main.scss
│ └── logo.png
├── App.vue
├── router
│ └── index.js
├── main.js
├── model
│ └── SignatureRepository.js
└── components
│ ├── Detail.vue
│ └── Home.vue
├── config
├── prod.env.js
├── test.env.js
├── dev.env.js
└── index.js
├── dist
├── static
│ ├── fonts
│ │ ├── fontawesome-webfont.674f50d.eot
│ │ ├── fontawesome-webfont.b06871f.ttf
│ │ ├── fontawesome-webfont.fee66e7.woff
│ │ └── fontawesome-webfont.af7ae50.woff2
│ └── js
│ │ ├── manifest.a66735d15b5b6ed28d73.js
│ │ ├── app.3faf3b82bf7c6fde9fa7.js
│ │ ├── manifest.a66735d15b5b6ed28d73.js.map
│ │ └── app.3faf3b82bf7c6fde9fa7.js.map
├── package.json
├── server.js
└── index.html
├── test
├── unit
│ ├── .eslintrc
│ ├── specs
│ │ └── Hello.spec.js
│ ├── index.js
│ └── karma.conf.js
└── e2e
│ ├── specs
│ └── test.js
│ ├── custom-assertions
│ └── elementCount.js
│ ├── runner.js
│ └── nightwatch.conf.js
├── .gitignore
├── .editorconfig
├── index.html
├── .postcssrc.js
├── .babelrc
├── README.md
├── .eslintrc.js
└── package.json
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/src/assets/main.scss:
--------------------------------------------------------------------------------
1 | * {
2 | border-radius: 0 !important;
3 | }
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/540/etherlinks-front/master/src/assets/logo.png
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.674f50d.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/540/etherlinks-front/master/dist/static/fonts/fontawesome-webfont.674f50d.eot
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.b06871f.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/540/etherlinks-front/master/dist/static/fonts/fontawesome-webfont.b06871f.ttf
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.fee66e7.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/540/etherlinks-front/master/dist/static/fonts/fontawesome-webfont.fee66e7.woff
--------------------------------------------------------------------------------
/dist/static/fonts/fontawesome-webfont.af7ae50.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/540/etherlinks-front/master/dist/static/fonts/fontawesome-webfont.af7ae50.woff2
--------------------------------------------------------------------------------
/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "mocha": true
4 | },
5 | "globals": {
6 | "expect": true,
7 | "sinon": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/config/test.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var devEnv = require('./dev.env')
3 |
4 | module.exports = merge(devEnv, {
5 | NODE_ENV: '"testing"'
6 | })
7 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | npm-debug.log*
4 | yarn-debug.log*
5 | yarn-error.log*
6 | test/unit/coverage
7 | test/e2e/reports
8 | selenium-debug.log
9 | .idea
10 |
11 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Etherlinks
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserlist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/dist/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "etherlinks-front",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "Gorka Moreno",
6 | "private": true,
7 | "scripts": {
8 | "postinstall": "npm install express"
9 | }
10 | }
--------------------------------------------------------------------------------
/dist/server.js:
--------------------------------------------------------------------------------
1 | var express = require('express')
2 | var serveStatic = require('serve-static')
3 |
4 | const app = express()
5 | app.use(serveStatic(__dirname))
6 |
7 | var port = process.env.PORT || 5000
8 | app.listen(port)
9 |
10 | console.log('server started ' + port)
11 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "env": {
9 | "test": {
10 | "presets": ["env", "stage-2"],
11 | "plugins": [ "istanbul" ]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/unit/specs/Hello.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Hello from '@/components/Hello'
3 |
4 | describe('Hello.vue', () => {
5 | it('should render correct contents', () => {
6 | const Constructor = Vue.extend(Hello)
7 | const vm = new Constructor().$mount()
8 | expect(vm.$el.querySelector('.hello h1').textContent)
9 | .to.equal('Welcome to Your Vue.js App')
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 | Etherlinks
--------------------------------------------------------------------------------
/test/unit/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 |
3 | Vue.config.productionTip = false
4 |
5 | // require all test files (files that ends with .spec.js)
6 | const testsContext = require.context('./specs', true, /\.spec$/)
7 | testsContext.keys().forEach(testsContext)
8 |
9 | // require all src files except main.js for coverage.
10 | // you can also change this to match only the subset of files that
11 | // you want coverage for.
12 | const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)
13 | srcContext.keys().forEach(srcContext)
14 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
25 |
--------------------------------------------------------------------------------
/test/e2e/specs/test.js:
--------------------------------------------------------------------------------
1 | // For authoring Nightwatch tests, see
2 | // http://nightwatchjs.org/guide#usage
3 |
4 | module.exports = {
5 | 'default e2e tests': function (browser) {
6 | // automatically uses dev Server port from /config.index.js
7 | // default: http://localhost:8080
8 | // see nightwatch.conf.js
9 | const devServer = browser.globals.devServerURL
10 |
11 | browser
12 | .url(devServer)
13 | .waitForElementVisible('#app', 5000)
14 | .assert.elementPresent('.hello')
15 | .assert.containsText('h1', 'Welcome to Your Vue.js App')
16 | .assert.elementCount('img', 1)
17 | .end()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # my-project
2 |
3 | > A Vue.js project
4 |
5 | ## Build Setup
6 |
7 | ``` bash
8 | # install dependencies
9 | npm install
10 |
11 | # serve with hot reload at localhost:8080
12 | npm run dev
13 |
14 | # build for production with minification
15 | npm run build
16 |
17 | # build for production and view the bundle analyzer report
18 | npm run build --report
19 |
20 | # run unit tests
21 | npm run unit
22 |
23 | # run e2e tests
24 | npm run e2e
25 |
26 | # run all tests
27 | npm test
28 | ```
29 |
30 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
31 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import Home from '@/components/Home'
4 | import Detail from '@/components/Detail'
5 |
6 | Vue.use(Router)
7 |
8 | const router = new Router({
9 | mode: 'history',
10 | routes: [
11 | {
12 | path: '/',
13 | name: 'home',
14 | component: Home,
15 | props: true,
16 | meta: {
17 | title: 'Inicio'
18 | }
19 | },
20 | {
21 | path: '/:id',
22 | name: 'detail',
23 | component: Detail,
24 | props: true,
25 | meta: {
26 | title: 'Detalle'
27 | }
28 | }
29 | ]
30 | })
31 |
32 | router.beforeEach((to, from, next) => {
33 | document.title = to.meta.title
34 | next()
35 | })
36 |
37 | export default router
38 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | 'rules': {
20 | // allow paren-less arrow functions
21 | 'arrow-parens': 0,
22 | // allow async-await
23 | 'generator-star-spacing': 0,
24 | // allow debugger during development
25 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
26 | 'no-new': 0
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/test/e2e/custom-assertions/elementCount.js:
--------------------------------------------------------------------------------
1 | // A custom Nightwatch assertion.
2 | // the name of the method is the filename.
3 | // can be used in tests like this:
4 | //
5 | // browser.assert.elementCount(selector, count)
6 | //
7 | // for how to write custom assertions see
8 | // http://nightwatchjs.org/guide#writing-custom-assertions
9 | exports.assertion = function (selector, count) {
10 | this.message = 'Testing if element <' + selector + '> has count: ' + count
11 | this.expected = count
12 | this.pass = function (val) {
13 | return val === this.expected
14 | }
15 | this.value = function (res) {
16 | return res.value
17 | }
18 | this.command = function (cb) {
19 | var self = this
20 | return this.api.execute(function (selector) {
21 | return document.querySelectorAll(selector).length
22 | }, [selector], function (res) {
23 | cb.call(self, res)
24 | })
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/test/unit/karma.conf.js:
--------------------------------------------------------------------------------
1 | // This is a karma config file. For more details see
2 | // http://karma-runner.github.io/0.13/config/configuration-file.html
3 | // we are also using it with karma-webpack
4 | // https://github.com/webpack/karma-webpack
5 |
6 | var webpackConfig = require('../../build/webpack.test.conf')
7 |
8 | module.exports = function (config) {
9 | config.set({
10 | // to run in additional browsers:
11 | // 1. install corresponding karma launcher
12 | // http://karma-runner.github.io/0.13/config/browsers.html
13 | // 2. add it to the `browsers` array below.
14 | browsers: ['PhantomJS'],
15 | frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
16 | reporters: ['spec', 'coverage'],
17 | files: ['./index.js'],
18 | preprocessors: {
19 | './index.js': ['webpack', 'sourcemap']
20 | },
21 | webpack: webpackConfig,
22 | webpackMiddleware: {
23 | noInfo: true
24 | },
25 | coverageReporter: {
26 | dir: './coverage',
27 | reporters: [
28 | { type: 'lcov', subdir: '.' },
29 | { type: 'text-summary' }
30 | ]
31 | }
32 | })
33 | }
34 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import BootstrapVue from 'bootstrap-vue'
5 | import VeeValidate from 'vee-validate'
6 | import validationLocaleEs from '../node_modules/vee-validate/dist/locale/es'
7 |
8 | import SignatureRepository from './model/SignatureRepository'
9 | import './assets/main.scss'
10 | import 'bootstrap/dist/css/bootstrap.css'
11 | import 'bootstrap-vue/dist/bootstrap-vue.css'
12 | import 'font-awesome/scss/font-awesome.scss'
13 |
14 | import moment from 'moment'
15 | const signatureRepository = new SignatureRepository()
16 |
17 | moment.locale('es')
18 |
19 | Vue.use(BootstrapVue)
20 |
21 | VeeValidate.Validator.extend('urlExists', value => signatureRepository.checkUrl(value))
22 |
23 | VeeValidate.Validator.addLocale(validationLocaleEs)
24 | Vue.use(VeeValidate, {locale: 'es'})
25 | VeeValidate.Validator.setLocale('es')
26 |
27 | Vue.config.productionTip = false
28 | Vue.filter('moment', function (value) {
29 | return moment(value).format('D \\d\\e MMMM \\d\\e\\l YYYY')
30 | })
31 |
32 | new Vue({
33 | el: '#app',
34 | router,
35 | template: '',
36 | components: {App}
37 | })
38 |
--------------------------------------------------------------------------------
/test/e2e/runner.js:
--------------------------------------------------------------------------------
1 | // 1. start the dev server using production config
2 | process.env.NODE_ENV = 'testing'
3 | var server = require('../../build/dev-server.js')
4 |
5 | server.ready.then(() => {
6 | // 2. run the nightwatch test suite against it
7 | // to run in additional browsers:
8 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings"
9 | // 2. add it to the --env flag below
10 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
11 | // For more information on Nightwatch's config file, see
12 | // http://nightwatchjs.org/guide#settings-file
13 | var opts = process.argv.slice(2)
14 | if (opts.indexOf('--config') === -1) {
15 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
16 | }
17 | if (opts.indexOf('--env') === -1) {
18 | opts = opts.concat(['--env', 'chrome'])
19 | }
20 |
21 | var spawn = require('cross-spawn')
22 | var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
23 |
24 | runner.on('exit', function (code) {
25 | server.close()
26 | process.exit(code)
27 | })
28 |
29 | runner.on('error', function (err) {
30 | server.close()
31 | throw err
32 | })
33 | })
34 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | require('babel-register')
2 | var config = require('../../config')
3 |
4 | // http://nightwatchjs.org/gettingstarted#settings-file
5 | module.exports = {
6 | src_folders: ['test/e2e/specs'],
7 | output_folder: 'test/e2e/reports',
8 | custom_assertions_path: ['test/e2e/custom-assertions'],
9 |
10 | selenium: {
11 | start_process: true,
12 | server_path: require('selenium-server').path,
13 | host: '127.0.0.1',
14 | port: 4444,
15 | cli_args: {
16 | 'webdriver.chrome.driver': require('chromedriver').path
17 | }
18 | },
19 |
20 | test_settings: {
21 | default: {
22 | selenium_port: 4444,
23 | selenium_host: 'localhost',
24 | silent: true,
25 | globals: {
26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
27 | }
28 | },
29 |
30 | chrome: {
31 | desiredCapabilities: {
32 | browserName: 'chrome',
33 | javascriptEnabled: true,
34 | acceptSslCerts: true
35 | }
36 | },
37 |
38 | firefox: {
39 | desiredCapabilities: {
40 | browserName: 'firefox',
41 | javascriptEnabled: true,
42 | acceptSslCerts: true
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/dist/static/js/manifest.a66735d15b5b6ed28d73.js:
--------------------------------------------------------------------------------
1 | !function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var i,u,f,s=0,l=[];s My Example ',
10 | image: 'http://www.placehold.it/1280x720'
11 | }
12 | }
13 |
14 | checkUrl (url) {
15 | if (url === 'www.google.es') {
16 | return true
17 | }
18 |
19 | return false
20 | }
21 |
22 | new (url) {
23 | return axios.post('https://etherlinks-backend.herokuapp.com/v1/signatures/', {'uri': url})
24 | .then(response => response.data.id)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/components/Detail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Detalle de firma
4 |
5 | ID: {{ signature.id }}
6 |
7 | Hash: {{ signature.hash }}
8 |
9 |
![]()
10 |
11 |
12 |
13 |
14 | Mostrar HTML
15 |
16 |
17 | {{ this.prettiedHtml }}
18 |
19 |
20 |
21 | Creado el {{ this.formattedDate }}
22 |
23 |
24 |
25 |
26 |
27 |
50 |
51 |
94 |
95 |
112 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "my-project",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "Gorka Moreno ",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js",
11 | "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
12 | "e2e": "node test/e2e/runner.js",
13 | "test": "npm run unit && npm run e2e",
14 | "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs",
15 | "deploy": "git subtree push — prefix dist heroku master"
16 | },
17 | "dependencies": {
18 | "axios": "^0.16.1",
19 | "bootstrap": "4.0.0-alpha.6",
20 | "bootstrap-vue": "^0.12.4",
21 | "font-awesome": "^4.7.0",
22 | "moment": "^2.18.1",
23 | "pretty": "^2.0.0",
24 | "urijs": "^1.18.10",
25 | "vee-validate": "^2.0.0-beta.25",
26 | "vue": "^2.2.2",
27 | "vue-router": "^2.3.0"
28 | },
29 | "devDependencies": {
30 | "autoprefixer": "^6.7.2",
31 | "babel-core": "^6.22.1",
32 | "babel-eslint": "^7.1.1",
33 | "babel-loader": "^6.2.10",
34 | "babel-plugin-istanbul": "^3.1.2",
35 | "babel-plugin-transform-runtime": "^6.22.0",
36 | "babel-preset-env": "^1.2.1",
37 | "babel-preset-stage-2": "^6.22.0",
38 | "babel-register": "^6.22.0",
39 | "chai": "^3.5.0",
40 | "chalk": "^1.1.3",
41 | "chromedriver": "^2.27.2",
42 | "connect-history-api-fallback": "^1.3.0",
43 | "copy-webpack-plugin": "^4.0.1",
44 | "cross-env": "^3.1.4",
45 | "cross-spawn": "^5.0.1",
46 | "css-loader": "^0.26.1",
47 | "eslint": "^3.14.1",
48 | "eslint-config-standard": "^6.2.1",
49 | "eslint-friendly-formatter": "^2.0.7",
50 | "eslint-loader": "^1.6.1",
51 | "eslint-plugin-html": "^2.0.0",
52 | "eslint-plugin-promise": "^3.4.0",
53 | "eslint-plugin-standard": "^2.0.1",
54 | "eventsource-polyfill": "^0.9.6",
55 | "express": "^4.14.1",
56 | "extract-text-webpack-plugin": "^2.0.0",
57 | "file-loader": "^0.10.0",
58 | "friendly-errors-webpack-plugin": "^1.1.3",
59 | "html-webpack-plugin": "^2.28.0",
60 | "http-proxy-middleware": "^0.17.3",
61 | "inject-loader": "^2.0.1",
62 | "karma": "^1.4.1",
63 | "karma-coverage": "^1.1.1",
64 | "karma-mocha": "^1.3.0",
65 | "karma-phantomjs-launcher": "^1.0.2",
66 | "karma-phantomjs-shim": "^1.4.0",
67 | "karma-sinon-chai": "^1.2.4",
68 | "karma-sourcemap-loader": "^0.3.7",
69 | "karma-spec-reporter": "0.0.26",
70 | "karma-webpack": "^2.0.2",
71 | "lolex": "^1.5.2",
72 | "mocha": "^3.2.0",
73 | "nightwatch": "^0.9.12",
74 | "node-sass": "^4.5.2",
75 | "opn": "^4.0.2",
76 | "optimize-css-assets-webpack-plugin": "^1.3.0",
77 | "ora": "^1.1.0",
78 | "phantomjs-prebuilt": "^2.1.14",
79 | "rimraf": "^2.6.0",
80 | "sass-loader": "^6.0.3",
81 | "selenium-server": "^3.0.1",
82 | "semver": "^5.3.0",
83 | "shelljs": "^0.7.6",
84 | "sinon": "^2.1.0",
85 | "sinon-chai": "^2.8.0",
86 | "url-loader": "^0.5.8",
87 | "vue-loader": "^11.1.4",
88 | "vue-style-loader": "^2.0.0",
89 | "vue-template-compiler": "^2.2.4",
90 | "webpack": "^2.2.1",
91 | "webpack-bundle-analyzer": "^2.2.1",
92 | "webpack-dev-middleware": "^1.10.0",
93 | "webpack-hot-middleware": "^2.16.1",
94 | "webpack-merge": "^2.6.1"
95 | },
96 | "engines": {
97 | "node": ">= 4.0.0",
98 | "npm": ">= 3.0.0"
99 | },
100 | "browserslist": [
101 | "> 1%",
102 | "last 2 versions",
103 | "not ie <= 8"
104 | ]
105 | }
106 |
--------------------------------------------------------------------------------
/src/components/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Introduce el link al contenido que quieras asegurar
4 |
5 |
7 |
8 |
10 |
11 |
12 |
Firmar
13 |
14 |
15 |
16 |
49 |
50 |
125 |
--------------------------------------------------------------------------------
/dist/static/js/app.3faf3b82bf7c6fde9fa7.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([1],{129:function(s,e,t){"use strict";var a=t(7),n=t(179),r=t(175),o=t.n(r),i=t(174),l=t.n(i);a.a.use(n.a);var c=new n.a({mode:"history",routes:[{path:"/",name:"home",component:o.a,props:!0,meta:{title:"Inicio"}},{path:"/:id",name:"detail",component:l.a,props:!0,meta:{title:"Detalle"}}]});c.beforeEach(function(s,e,t){document.title=s.meta.title,t()}),e.a=c},131:function(s,e){},132:function(s,e){},133:function(s,e){},134:function(s,e){},137:function(s,e,t){t(163);var a=t(6)(t(139),t(178),null,null);s.exports=a.exports},138:function(s,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=t(7),n=t(137),r=t.n(n),o=t(129),i=t(130),l=t(136),c=t.n(l),d=t(135),u=t.n(d),p=t(2),h=t(132),j=(t.n(h),t(134)),m=(t.n(j),t(133)),f=(t.n(m),t(131)),v=(t.n(f),t(0)),b=t.n(v),k=new p.a;b.a.locale("es"),a.a.use(i.a),c.a.Validator.extend("urlExists",function(s){return k.checkUrl(s)}),c.a.Validator.addLocale(u.a),a.a.use(c.a,{locale:"es"}),c.a.Validator.setLocale("es"),a.a.config.productionTip=!1,a.a.filter("moment",function(s){return b()(s).format("D \\d\\e MMMM \\d\\e\\l YYYY")}),new a.a({el:"#app",router:o.a,template:"",components:{App:r.a}})},139:function(s,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"app"}},140:function(s,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=t(172),n=t.n(a),r=t(0),o=t.n(r),i=t(2),l=new i.a;e.default={props:["id"],data:function(){return{signature:l.findById(this.id)}},computed:{prettiedHtml:function(){return n()(this.signature.html)},formattedDate:function(){return o()(this.signature.date).format("D MMMM YYYY [-] HH:mm")}}}},141:function(s,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=t(2),n=new a.a;e.default={data:function(){return{link:"",showTooltip:!1,shake:!1}},methods:{handleSubmission:function(){var s=this;this.$validator.validateAll().then(function(){var e=n.new(s.link);s.$router.push({name:"detail",params:{id:e}})}).catch(function(){s.shake=!1,s.$nextTick(function(){this.shake=!0})})}},watch:{link:function(){this.shake=!1}}}},160:function(s,e){},161:function(s,e){},162:function(s,e){},163:function(s,e){},171:function(s,e,t){function a(s){return t(n(s))}function n(s){var e=r[s];if(!(e+1))throw new Error("Cannot find module '"+s+"'.");return e}var r={"./af":13,"./af.js":13,"./ar":20,"./ar-dz":14,"./ar-dz.js":14,"./ar-kw":15,"./ar-kw.js":15,"./ar-ly":16,"./ar-ly.js":16,"./ar-ma":17,"./ar-ma.js":17,"./ar-sa":18,"./ar-sa.js":18,"./ar-tn":19,"./ar-tn.js":19,"./ar.js":20,"./az":21,"./az.js":21,"./be":22,"./be.js":22,"./bg":23,"./bg.js":23,"./bn":24,"./bn.js":24,"./bo":25,"./bo.js":25,"./br":26,"./br.js":26,"./bs":27,"./bs.js":27,"./ca":28,"./ca.js":28,"./cs":29,"./cs.js":29,"./cv":30,"./cv.js":30,"./cy":31,"./cy.js":31,"./da":32,"./da.js":32,"./de":35,"./de-at":33,"./de-at.js":33,"./de-ch":34,"./de-ch.js":34,"./de.js":35,"./dv":36,"./dv.js":36,"./el":37,"./el.js":37,"./en-au":38,"./en-au.js":38,"./en-ca":39,"./en-ca.js":39,"./en-gb":40,"./en-gb.js":40,"./en-ie":41,"./en-ie.js":41,"./en-nz":42,"./en-nz.js":42,"./eo":43,"./eo.js":43,"./es":45,"./es-do":44,"./es-do.js":44,"./es.js":45,"./et":46,"./et.js":46,"./eu":47,"./eu.js":47,"./fa":48,"./fa.js":48,"./fi":49,"./fi.js":49,"./fo":50,"./fo.js":50,"./fr":53,"./fr-ca":51,"./fr-ca.js":51,"./fr-ch":52,"./fr-ch.js":52,"./fr.js":53,"./fy":54,"./fy.js":54,"./gd":55,"./gd.js":55,"./gl":56,"./gl.js":56,"./gom-latn":57,"./gom-latn.js":57,"./he":58,"./he.js":58,"./hi":59,"./hi.js":59,"./hr":60,"./hr.js":60,"./hu":61,"./hu.js":61,"./hy-am":62,"./hy-am.js":62,"./id":63,"./id.js":63,"./is":64,"./is.js":64,"./it":65,"./it.js":65,"./ja":66,"./ja.js":66,"./jv":67,"./jv.js":67,"./ka":68,"./ka.js":68,"./kk":69,"./kk.js":69,"./km":70,"./km.js":70,"./kn":71,"./kn.js":71,"./ko":72,"./ko.js":72,"./ky":73,"./ky.js":73,"./lb":74,"./lb.js":74,"./lo":75,"./lo.js":75,"./lt":76,"./lt.js":76,"./lv":77,"./lv.js":77,"./me":78,"./me.js":78,"./mi":79,"./mi.js":79,"./mk":80,"./mk.js":80,"./ml":81,"./ml.js":81,"./mr":82,"./mr.js":82,"./ms":84,"./ms-my":83,"./ms-my.js":83,"./ms.js":84,"./my":85,"./my.js":85,"./nb":86,"./nb.js":86,"./ne":87,"./ne.js":87,"./nl":89,"./nl-be":88,"./nl-be.js":88,"./nl.js":89,"./nn":90,"./nn.js":90,"./pa-in":91,"./pa-in.js":91,"./pl":92,"./pl.js":92,"./pt":94,"./pt-br":93,"./pt-br.js":93,"./pt.js":94,"./ro":95,"./ro.js":95,"./ru":96,"./ru.js":96,"./sd":97,"./sd.js":97,"./se":98,"./se.js":98,"./si":99,"./si.js":99,"./sk":100,"./sk.js":100,"./sl":101,"./sl.js":101,"./sq":102,"./sq.js":102,"./sr":104,"./sr-cyrl":103,"./sr-cyrl.js":103,"./sr.js":104,"./ss":105,"./ss.js":105,"./sv":106,"./sv.js":106,"./sw":107,"./sw.js":107,"./ta":108,"./ta.js":108,"./te":109,"./te.js":109,"./tet":110,"./tet.js":110,"./th":111,"./th.js":111,"./tl-ph":112,"./tl-ph.js":112,"./tlh":113,"./tlh.js":113,"./tr":114,"./tr.js":114,"./tzl":115,"./tzl.js":115,"./tzm":117,"./tzm-latn":116,"./tzm-latn.js":116,"./tzm.js":117,"./uk":118,"./uk.js":118,"./ur":119,"./ur.js":119,"./uz":121,"./uz-latn":120,"./uz-latn.js":120,"./uz.js":121,"./vi":122,"./vi.js":122,"./x-pseudo":123,"./x-pseudo.js":123,"./yo":124,"./yo.js":124,"./zh-cn":125,"./zh-cn.js":125,"./zh-hk":126,"./zh-hk.js":126,"./zh-tw":127,"./zh-tw.js":127};a.keys=function(){return Object.keys(r)},a.resolve=n,s.exports=a,a.id=171},174:function(s,e,t){t(161),t(160);var a=t(6)(t(140),t(176),"data-v-2b6cfeed",null);s.exports=a.exports},175:function(s,e,t){t(162);var a=t(6)(t(141),t(177),"data-v-3f33950a",null);s.exports=a.exports},176:function(s,e){s.exports={render:function(){var s=this,e=s.$createElement,t=s._self._c||e;return t("div",[t("h1",[s._v("Detalle de firma")]),s._v(" "),t("div",{staticClass:"text-left"},[s._v("\n ID: "+s._s(s.signature.id)+"\n "),t("br"),s._v("\n Hash: "+s._s(s.signature.hash)+"\n ")]),s._v(" "),t("img",{staticClass:"screenshot center-block",attrs:{src:s.signature.image},on:{click:function(e){s.$root.$emit("show::modal","screenshot")}}}),s._v(" "),t("b-modal",{attrs:{id:"screenshot","hide-header":"","hide-footer":"","hide-body":""}},[t("img",{staticClass:"center-block",attrs:{src:s.signature.image}})]),s._v(" "),t("b-card",{attrs:{"show-footer":""}},[t("b-btn",{directives:[{name:"b-toggle",rawName:"v-b-toggle.htmlCollapse",modifiers:{htmlCollapse:!0}}],staticClass:"collapser"},[s._v("Mostrar HTML")]),s._v(" "),t("b-collapse",{staticClass:"text-left collapse",attrs:{id:"htmlCollapse"}},[t("b-card",{staticClass:"mb-2"},[t("pre",{staticClass:"pre-scrollable"},[t("code",[s._v(s._s(this.prettiedHtml))])])])],1),s._v(" "),t("small",{staticClass:"text-muted",slot:"footer"},[s._v("\n Creado el "+s._s(this.formattedDate)+"\n ")])],1)],1)},staticRenderFns:[]}},177:function(s,e){s.exports={render:function(){var s=this,e=s.$createElement,t=s._self._c||e;return t("div",{staticClass:"content"},[t("span",[s._v("Introduce el link al contenido que quieras asegurar")]),s._v(" "),t("div",{staticClass:"form-group",class:{"has-danger":s.errors.has("link")}},[t("b-form-input",{directives:[{name:"validate",rawName:"v-validate",value:"required|url|urlExists",expression:"'required|url|urlExists'"}],class:{shake:s.shake},attrs:{id:"link",name:"link",type:"text","data-vv-as":"link",state:"warning"},model:{value:s.link,callback:function(e){s.link="string"==typeof e?e.trim():e},expression:"link"}}),s._v(" "),t("b-tooltip",{attrs:{content:"La url no es válida",show:s.showTooltip}},[t("i",{staticClass:"fa fa-times",class:{shake:s.shake},attrs:{"aria-hidden":"true"},on:{onmouseover:function(s){"showTooltip: true"},onmouseleave:function(s){"showTooltip: false"}}})])],1),s._v(" "),t("b-button",{attrs:{type:"submit",variant:"secondary",href:""},on:{click:function(e){e.preventDefault(),s.handleSubmission(e)}}},[s._v("Firmar")])],1)},staticRenderFns:[]}},178:function(s,e){s.exports={render:function(){var s=this,e=s.$createElement,t=s._self._c||e;return t("div",{attrs:{id:"app"}},[t("div",{staticClass:"container"},[t("router-view")],1)])},staticRenderFns:[]}},2:function(s,e,t){"use strict";var a=t(143),n=t.n(a),r=t(144),o=t.n(r),i=function(){function s(){n()(this,s)}return o()(s,[{key:"findById",value:function(s){return{id:1,hash:"asd123c4cwd23f20ii99",date:"01/01/1970 17:02",html:' My Example \x3c!-- Bootstrap CSS --\x3e \x3c!-- HTML Form --\x3e \x3c!-- jQuery library --\x3e ',\n image: 'http://www.placehold.it/1280x720'\n };\n }\n }, {\n key: 'checkUrl',\n value: function checkUrl(url) {\n if (url === 'www.google.es') {\n return true;\n }\n\n return false;\n }\n }, {\n key: 'new',\n value: function _new(url) {\n return '120ad2a';\n }\n }]);\n\n return SignatureRepository;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (SignatureRepository);\n\n/***/ })\n\n},[138]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.3faf3b82bf7c6fde9fa7.js","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport Home from '@/components/Home'\r\nimport Detail from '@/components/Detail'\r\n\r\nVue.use(Router)\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'home',\r\n component: Home,\r\n props: true,\r\n meta: {\r\n title: 'Inicio'\r\n }\r\n },\r\n {\r\n path: '/:id',\r\n name: 'detail',\r\n component: Detail,\r\n props: true,\r\n meta: {\r\n title: 'Detalle'\r\n }\r\n }\r\n ]\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n document.title = to.meta.title\r\n next()\r\n})\r\n\r\nexport default router\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","\n/* styles */\nrequire(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-cb9e81b8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-cb9e81b8\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 137\n// module chunks = 1","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport BootstrapVue from 'bootstrap-vue'\r\nimport VeeValidate from 'vee-validate'\r\nimport validationLocaleEs from '../node_modules/vee-validate/dist/locale/es'\r\n\r\nimport SignatureRepository from './model/SignatureRepository'\r\nimport './assets/main.scss'\r\nimport 'bootstrap/dist/css/bootstrap.css'\r\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\r\nimport 'font-awesome/scss/font-awesome.scss'\r\n\r\nimport moment from 'moment'\r\nconst signatureRepository = new SignatureRepository()\r\n\r\nmoment.locale('es')\r\n\r\nVue.use(BootstrapVue)\r\n\r\nVeeValidate.Validator.extend('urlExists', value => {\r\n return signatureRepository.checkUrl(value)\r\n})\r\n\r\nVeeValidate.Validator.addLocale(validationLocaleEs)\r\nVue.use(VeeValidate, {locale: 'es'})\r\nVeeValidate.Validator.setLocale('es')\r\n\r\nVue.config.productionTip = false\r\nVue.filter('moment', function (value) {\r\n return moment(value).format('D \\\\d\\\\e MMMM \\\\d\\\\e\\\\l YYYY')\r\n})\r\n\r\nnew Vue({\r\n el: '#app',\r\n router,\r\n template: '',\r\n components: {App}\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","\r\n \r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// App.vue?4281a36a","\r\n \r\n
Detalle de firma
\r\n
\r\n ID: {{ signature.id }}\r\n
\r\n Hash: {{ signature.hash }}\r\n
\r\n
![]()
\r\n
\r\n
\r\n \r\n
\r\n Mostrar HTML\r\n \r\n \r\n {{ this.prettiedHtml }}
\r\n \r\n \r\n \r\n Creado el {{ this.formattedDate }}\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// Detail.vue?41cbc1bc","\r\n \r\n
Introduce el link al contenido que quieras asegurar\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Firmar\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// Home.vue?4bb058a4","var map = {\n\t\"./af\": 13,\n\t\"./af.js\": 13,\n\t\"./ar\": 20,\n\t\"./ar-dz\": 14,\n\t\"./ar-dz.js\": 14,\n\t\"./ar-kw\": 15,\n\t\"./ar-kw.js\": 15,\n\t\"./ar-ly\": 16,\n\t\"./ar-ly.js\": 16,\n\t\"./ar-ma\": 17,\n\t\"./ar-ma.js\": 17,\n\t\"./ar-sa\": 18,\n\t\"./ar-sa.js\": 18,\n\t\"./ar-tn\": 19,\n\t\"./ar-tn.js\": 19,\n\t\"./ar.js\": 20,\n\t\"./az\": 21,\n\t\"./az.js\": 21,\n\t\"./be\": 22,\n\t\"./be.js\": 22,\n\t\"./bg\": 23,\n\t\"./bg.js\": 23,\n\t\"./bn\": 24,\n\t\"./bn.js\": 24,\n\t\"./bo\": 25,\n\t\"./bo.js\": 25,\n\t\"./br\": 26,\n\t\"./br.js\": 26,\n\t\"./bs\": 27,\n\t\"./bs.js\": 27,\n\t\"./ca\": 28,\n\t\"./ca.js\": 28,\n\t\"./cs\": 29,\n\t\"./cs.js\": 29,\n\t\"./cv\": 30,\n\t\"./cv.js\": 30,\n\t\"./cy\": 31,\n\t\"./cy.js\": 31,\n\t\"./da\": 32,\n\t\"./da.js\": 32,\n\t\"./de\": 35,\n\t\"./de-at\": 33,\n\t\"./de-at.js\": 33,\n\t\"./de-ch\": 34,\n\t\"./de-ch.js\": 34,\n\t\"./de.js\": 35,\n\t\"./dv\": 36,\n\t\"./dv.js\": 36,\n\t\"./el\": 37,\n\t\"./el.js\": 37,\n\t\"./en-au\": 38,\n\t\"./en-au.js\": 38,\n\t\"./en-ca\": 39,\n\t\"./en-ca.js\": 39,\n\t\"./en-gb\": 40,\n\t\"./en-gb.js\": 40,\n\t\"./en-ie\": 41,\n\t\"./en-ie.js\": 41,\n\t\"./en-nz\": 42,\n\t\"./en-nz.js\": 42,\n\t\"./eo\": 43,\n\t\"./eo.js\": 43,\n\t\"./es\": 45,\n\t\"./es-do\": 44,\n\t\"./es-do.js\": 44,\n\t\"./es.js\": 45,\n\t\"./et\": 46,\n\t\"./et.js\": 46,\n\t\"./eu\": 47,\n\t\"./eu.js\": 47,\n\t\"./fa\": 48,\n\t\"./fa.js\": 48,\n\t\"./fi\": 49,\n\t\"./fi.js\": 49,\n\t\"./fo\": 50,\n\t\"./fo.js\": 50,\n\t\"./fr\": 53,\n\t\"./fr-ca\": 51,\n\t\"./fr-ca.js\": 51,\n\t\"./fr-ch\": 52,\n\t\"./fr-ch.js\": 52,\n\t\"./fr.js\": 53,\n\t\"./fy\": 54,\n\t\"./fy.js\": 54,\n\t\"./gd\": 55,\n\t\"./gd.js\": 55,\n\t\"./gl\": 56,\n\t\"./gl.js\": 56,\n\t\"./gom-latn\": 57,\n\t\"./gom-latn.js\": 57,\n\t\"./he\": 58,\n\t\"./he.js\": 58,\n\t\"./hi\": 59,\n\t\"./hi.js\": 59,\n\t\"./hr\": 60,\n\t\"./hr.js\": 60,\n\t\"./hu\": 61,\n\t\"./hu.js\": 61,\n\t\"./hy-am\": 62,\n\t\"./hy-am.js\": 62,\n\t\"./id\": 63,\n\t\"./id.js\": 63,\n\t\"./is\": 64,\n\t\"./is.js\": 64,\n\t\"./it\": 65,\n\t\"./it.js\": 65,\n\t\"./ja\": 66,\n\t\"./ja.js\": 66,\n\t\"./jv\": 67,\n\t\"./jv.js\": 67,\n\t\"./ka\": 68,\n\t\"./ka.js\": 68,\n\t\"./kk\": 69,\n\t\"./kk.js\": 69,\n\t\"./km\": 70,\n\t\"./km.js\": 70,\n\t\"./kn\": 71,\n\t\"./kn.js\": 71,\n\t\"./ko\": 72,\n\t\"./ko.js\": 72,\n\t\"./ky\": 73,\n\t\"./ky.js\": 73,\n\t\"./lb\": 74,\n\t\"./lb.js\": 74,\n\t\"./lo\": 75,\n\t\"./lo.js\": 75,\n\t\"./lt\": 76,\n\t\"./lt.js\": 76,\n\t\"./lv\": 77,\n\t\"./lv.js\": 77,\n\t\"./me\": 78,\n\t\"./me.js\": 78,\n\t\"./mi\": 79,\n\t\"./mi.js\": 79,\n\t\"./mk\": 80,\n\t\"./mk.js\": 80,\n\t\"./ml\": 81,\n\t\"./ml.js\": 81,\n\t\"./mr\": 82,\n\t\"./mr.js\": 82,\n\t\"./ms\": 84,\n\t\"./ms-my\": 83,\n\t\"./ms-my.js\": 83,\n\t\"./ms.js\": 84,\n\t\"./my\": 85,\n\t\"./my.js\": 85,\n\t\"./nb\": 86,\n\t\"./nb.js\": 86,\n\t\"./ne\": 87,\n\t\"./ne.js\": 87,\n\t\"./nl\": 89,\n\t\"./nl-be\": 88,\n\t\"./nl-be.js\": 88,\n\t\"./nl.js\": 89,\n\t\"./nn\": 90,\n\t\"./nn.js\": 90,\n\t\"./pa-in\": 91,\n\t\"./pa-in.js\": 91,\n\t\"./pl\": 92,\n\t\"./pl.js\": 92,\n\t\"./pt\": 94,\n\t\"./pt-br\": 93,\n\t\"./pt-br.js\": 93,\n\t\"./pt.js\": 94,\n\t\"./ro\": 95,\n\t\"./ro.js\": 95,\n\t\"./ru\": 96,\n\t\"./ru.js\": 96,\n\t\"./sd\": 97,\n\t\"./sd.js\": 97,\n\t\"./se\": 98,\n\t\"./se.js\": 98,\n\t\"./si\": 99,\n\t\"./si.js\": 99,\n\t\"./sk\": 100,\n\t\"./sk.js\": 100,\n\t\"./sl\": 101,\n\t\"./sl.js\": 101,\n\t\"./sq\": 102,\n\t\"./sq.js\": 102,\n\t\"./sr\": 104,\n\t\"./sr-cyrl\": 103,\n\t\"./sr-cyrl.js\": 103,\n\t\"./sr.js\": 104,\n\t\"./ss\": 105,\n\t\"./ss.js\": 105,\n\t\"./sv\": 106,\n\t\"./sv.js\": 106,\n\t\"./sw\": 107,\n\t\"./sw.js\": 107,\n\t\"./ta\": 108,\n\t\"./ta.js\": 108,\n\t\"./te\": 109,\n\t\"./te.js\": 109,\n\t\"./tet\": 110,\n\t\"./tet.js\": 110,\n\t\"./th\": 111,\n\t\"./th.js\": 111,\n\t\"./tl-ph\": 112,\n\t\"./tl-ph.js\": 112,\n\t\"./tlh\": 113,\n\t\"./tlh.js\": 113,\n\t\"./tr\": 114,\n\t\"./tr.js\": 114,\n\t\"./tzl\": 115,\n\t\"./tzl.js\": 115,\n\t\"./tzm\": 117,\n\t\"./tzm-latn\": 116,\n\t\"./tzm-latn.js\": 116,\n\t\"./tzm.js\": 117,\n\t\"./uk\": 118,\n\t\"./uk.js\": 118,\n\t\"./ur\": 119,\n\t\"./ur.js\": 119,\n\t\"./uz\": 121,\n\t\"./uz-latn\": 120,\n\t\"./uz-latn.js\": 120,\n\t\"./uz.js\": 121,\n\t\"./vi\": 122,\n\t\"./vi.js\": 122,\n\t\"./x-pseudo\": 123,\n\t\"./x-pseudo.js\": 123,\n\t\"./yo\": 124,\n\t\"./yo.js\": 124,\n\t\"./zh-cn\": 125,\n\t\"./zh-cn.js\": 125,\n\t\"./zh-hk\": 126,\n\t\"./zh-hk.js\": 126,\n\t\"./zh-tw\": 127,\n\t\"./zh-tw.js\": 127\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 171;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 171\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2b6cfeed\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Detail.vue\")\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-2b6cfeed\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=1!./Detail.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Detail.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2b6cfeed\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Detail.vue\"),\n /* scopeId */\n \"data-v-2b6cfeed\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Detail.vue\n// module id = 174\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-3f33950a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Home.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Home.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f33950a\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Home.vue\"),\n /* scopeId */\n \"data-v-3f33950a\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Home.vue\n// module id = 175\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('h1', [_vm._v(\"Detalle de firma\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"text-left\"\n }, [_vm._v(\"\\n ID: \" + _vm._s(_vm.signature.id) + \"\\n \"), _c('br'), _vm._v(\"\\n Hash: \" + _vm._s(_vm.signature.hash) + \"\\n \")]), _vm._v(\" \"), _c('img', {\n staticClass: \"screenshot center-block\",\n attrs: {\n \"src\": _vm.signature.image\n },\n on: {\n \"click\": function($event) {\n _vm.$root.$emit('show::modal', 'screenshot')\n }\n }\n }), _vm._v(\" \"), _c('b-modal', {\n attrs: {\n \"id\": \"screenshot\",\n \"hide-header\": \"\",\n \"hide-footer\": \"\",\n \"hide-body\": \"\"\n }\n }, [_c('img', {\n staticClass: \"center-block\",\n attrs: {\n \"src\": _vm.signature.image\n }\n })]), _vm._v(\" \"), _c('b-card', {\n attrs: {\n \"show-footer\": \"\"\n }\n }, [_c('b-btn', {\n directives: [{\n name: \"b-toggle\",\n rawName: \"v-b-toggle.htmlCollapse\",\n modifiers: {\n \"htmlCollapse\": true\n }\n }],\n staticClass: \"collapser\"\n }, [_vm._v(\"Mostrar HTML\")]), _vm._v(\" \"), _c('b-collapse', {\n staticClass: \"text-left collapse\",\n attrs: {\n \"id\": \"htmlCollapse\"\n }\n }, [_c('b-card', {\n staticClass: \"mb-2\"\n }, [_c('pre', {\n staticClass: \"pre-scrollable\"\n }, [_c('code', [_vm._v(_vm._s(this.prettiedHtml))])])])], 1), _vm._v(\" \"), _c('small', {\n staticClass: \"text-muted\",\n slot: \"footer\"\n }, [_vm._v(\"\\n Creado el \" + _vm._s(this.formattedDate) + \"\\n \")])], 1)], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2b6cfeed\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Detail.vue\n// module id = 176\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"content\"\n }, [_c('span', [_vm._v(\"Introduce el link al contenido que quieras asegurar\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"form-group\",\n class: {\n 'has-danger': _vm.errors.has('link')\n }\n }, [_c('b-form-input', {\n directives: [{\n name: \"validate\",\n rawName: \"v-validate\",\n value: ('required|url|urlExists'),\n expression: \"'required|url|urlExists'\"\n }],\n class: {\n 'shake': _vm.shake\n },\n attrs: {\n \"id\": \"link\",\n \"name\": \"link\",\n \"type\": \"text\",\n \"data-vv-as\": \"link\",\n \"state\": 'warning'\n },\n model: {\n value: (_vm.link),\n callback: function($$v) {\n _vm.link = (typeof $$v === 'string' ? $$v.trim() : $$v)\n },\n expression: \"link\"\n }\n }), _vm._v(\" \"), _c('b-tooltip', {\n attrs: {\n \"content\": \"La url no es válida\",\n \"show\": _vm.showTooltip\n }\n }, [_c('i', {\n staticClass: \"fa fa-times\",\n class: {\n 'shake': _vm.shake\n },\n attrs: {\n \"aria-hidden\": \"true\"\n },\n on: {\n \"onmouseover\": function($event) {\n 'showTooltip: true'\n },\n \"onmouseleave\": function($event) {\n 'showTooltip: false'\n }\n }\n })])], 1), _vm._v(\" \"), _c('b-button', {\n attrs: {\n \"type\": \"submit\",\n \"variant\": 'secondary',\n \"href\": \"\"\n },\n on: {\n \"click\": function($event) {\n $event.preventDefault();\n _vm.handleSubmission($event)\n }\n }\n }, [_vm._v(\"Firmar\")])], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3f33950a\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Home.vue\n// module id = 177\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n staticClass: \"container\"\n }, [_c('router-view')], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-cb9e81b8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 178\n// module chunks = 1","export default class SignatureRepository {\r\n findById (id) {\r\n return {\r\n id: 1,\r\n hash: 'asd123c4cwd23f20ii99',\r\n date: '01/01/1970 17:02',\r\n html: ' My Example ',\r\n image: 'http://www.placehold.it/1280x720'\r\n }\r\n }\r\n\r\n checkUrl (url) {\r\n if (url === 'www.google.es') {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n new (url) {\r\n return '120ad2a'\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/SignatureRepository.js"],"sourceRoot":""}
--------------------------------------------------------------------------------