84 lines
2.4 KiB
JavaScript
Vendored
84 lines
2.4 KiB
JavaScript
Vendored
import App from 'xe/app'
|
|
import { eventify } from 'xe/utils'
|
|
import moment from 'moment'
|
|
import 'xe-common/griper' // @FIXME https://github.com/xpressengine/xpressengine/issues/765
|
|
import 'xe-transition' // @FIXME https://github.com/xpressengine/xpressengine/issues/765
|
|
import 'xe-modal' // @FIXME https://github.com/xpressengine/xpressengine/issues/765
|
|
import 'xe-dropdown' // @FIXME https://github.com/xpressengine/xpressengine/issues/765
|
|
import 'xe-tooltip' // @FIXME https://github.com/xpressengine/xpressengine/issues/765
|
|
import $ from 'jquery'
|
|
|
|
export default class Component extends App {
|
|
constructor () {
|
|
super()
|
|
|
|
eventify(this)
|
|
}
|
|
|
|
static appName () {
|
|
return 'Component'
|
|
}
|
|
|
|
boot (XE) {
|
|
if (this.booted()) {
|
|
return Promise.resolve(this)
|
|
}
|
|
|
|
return new Promise((resolve) => {
|
|
super.boot(XE)
|
|
|
|
moment.locale(this.$$config.getters['lang/current'].code)
|
|
|
|
$(() => {
|
|
this.$$xe.app('DynamicLoadManager').then((DynamicLoadManager) => {
|
|
DynamicLoadManager.cssLoad('/assets/core/xe-ui-component/xe-ui-component.css')
|
|
})
|
|
|
|
$(document).on('boot.xe.timeago', '[data-xe-timeago]', function () {
|
|
let $this = $(this)
|
|
if ($this.data().xeTimeagoCalled === true) return false
|
|
|
|
let dataDate = $this.data('xe-timeago')
|
|
let isTimestamp = (parseInt(dataDate) == dataDate)
|
|
|
|
if (isTimestamp) {
|
|
dataDate = moment.unix(dataDate)
|
|
} else {
|
|
dataDate = moment(dataDate)
|
|
}
|
|
|
|
$this.text(dataDate.fromNow())
|
|
$this.data().xeTimeagoCalled = true
|
|
})
|
|
|
|
$(document).on('boot.xe.dropdown', '[data-toggle=xe-dropdown]', function () {
|
|
$(this).xeDropdown()
|
|
})
|
|
|
|
$(document).on('boot.xe.modal', '[data-toggle=xe-modal]', function () {
|
|
})
|
|
|
|
$(document).on('boot.xe.tooltip', '[data-toggle=xe-tooltip]', function () {
|
|
$(this).xeTooltip()
|
|
})
|
|
|
|
$('[data-xe-timeago]').trigger('boot.xe.timeago')
|
|
$('[data-toggle=xe-dropdown]').trigger('boot.xe.dropdown')
|
|
$('[data-toggle=xe-modal]').trigger('boot.xe.modal')
|
|
$('[data-toggle=xe-tooltip]').trigger('boot.xe.tooltip')
|
|
$('[data-toggle=dropdown]').trigger('boot.dropdown')
|
|
})
|
|
|
|
resolve(this)
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 시간 설정을 바인딩한다.
|
|
* @memberof module:Component
|
|
*/
|
|
timeago () {
|
|
$('[data-xe-timeago]').trigger('boot.xe.timeago')
|
|
}
|
|
}
|