修改密码最短要求为6,最长要求为32
This commit is contained in:
parent
c2b1a141c2
commit
b05a7d3b76
|
@ -54,7 +54,7 @@ class Api::V1::UsersController < Api::V1::BaseController
|
||||||
|
|
||||||
def check_password
|
def check_password
|
||||||
password = params[:password]
|
password = params[:password]
|
||||||
return tip_exception(-5, "8~16位密码,支持字母数字和符号") unless password =~ CustomRegexp::PASSWORD
|
return tip_exception(-5, "6~32位密码,支持字母数字和符号") unless password =~ CustomRegexp::PASSWORD
|
||||||
return tip_exception(-5, "密码错误") unless @observe_user.check_password?(password)
|
return tip_exception(-5, "密码错误") unless @observe_user.check_password?(password)
|
||||||
render_ok
|
render_ok
|
||||||
end
|
end
|
||||||
|
|
|
@ -44,14 +44,14 @@ class BaseForm
|
||||||
|
|
||||||
def check_password(password)
|
def check_password(password)
|
||||||
password = strip(password)
|
password = strip(password)
|
||||||
raise PasswordFormatError, "密码8~16位密码,支持字母数字和符号" unless password =~ CustomRegexp::PASSWORD
|
raise PasswordFormatError, "密码6~32位密码,支持字母数字和符号" unless password =~ CustomRegexp::PASSWORD
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_password_confirmation(password, password_confirmation)
|
def check_password_confirmation(password, password_confirmation)
|
||||||
password = strip(password)
|
password = strip(password)
|
||||||
password_confirmation = strip(password_confirmation)
|
password_confirmation = strip(password_confirmation)
|
||||||
|
|
||||||
raise PasswordFormatError, "确认密码为8~16位密码,支持字母数字和符号" unless password_confirmation =~ CustomRegexp::PASSWORD
|
raise PasswordFormatError, "确认密码为6~32位密码,支持字母数字和符号" unless password_confirmation =~ CustomRegexp::PASSWORD
|
||||||
raise PasswordConfirmationError, "两次输入的密码不一致" unless password == password_confirmation
|
raise PasswordConfirmationError, "两次输入的密码不一致" unless password == password_confirmation
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,5 @@ class Users::LoginForm
|
||||||
attr_accessor :password, :login
|
attr_accessor :password, :login
|
||||||
|
|
||||||
validates :login, presence: true
|
validates :login, presence: true
|
||||||
validates :password, presence: true, length: { minimum: 6, maximum: 16 }, format: { with: CustomRegexp::LOGIN_PASSWORD, message: "6~16位,支持字母数字和符号" }
|
validates :password, presence: true, length: { minimum: 6, maximum: 32 }, format: { with: CustomRegexp::LOGIN_PASSWORD, message: "6~32位,支持字母数字和符号" }
|
||||||
end
|
end
|
|
@ -3,5 +3,5 @@ class Users::UpdatePasswordForm
|
||||||
|
|
||||||
attr_accessor :password, :old_password
|
attr_accessor :password, :old_password
|
||||||
|
|
||||||
validates :password, presence: true, length: { minimum: 8, maximum: 16 }, format: { with: CustomRegexp::PASSWORD, message: "8~16位密码,支持字母数字和符号" }
|
validates :password, presence: true, length: { minimum: 6, maximum: 32 }, format: { with: CustomRegexp::PASSWORD, message: "6~32位密码,支持字母数字和符号" }
|
||||||
end
|
end
|
|
@ -8,8 +8,8 @@
|
||||||
# firstname :string(30) default(""), not null
|
# firstname :string(30) default(""), not null
|
||||||
# lastname :string(255) default(""), not null
|
# lastname :string(255) default(""), not null
|
||||||
# mail :string(60)
|
# mail :string(60)
|
||||||
# admin :boolean default("0"), not null
|
# admin :boolean default(FALSE), not null
|
||||||
# status :integer default("1"), not null
|
# status :integer default(1), not null
|
||||||
# last_login_on :datetime
|
# last_login_on :datetime
|
||||||
# language :string(5) default("")
|
# language :string(5) default("")
|
||||||
# auth_source_id :integer
|
# auth_source_id :integer
|
||||||
|
@ -20,36 +20,33 @@
|
||||||
# mail_notification :string(255) default(""), not null
|
# mail_notification :string(255) default(""), not null
|
||||||
# salt :string(64)
|
# salt :string(64)
|
||||||
# gid :integer
|
# gid :integer
|
||||||
# visits :integer default("0")
|
# visits :integer default(0)
|
||||||
# excellent_teacher :integer default("0")
|
# excellent_teacher :integer default(0)
|
||||||
# excellent_student :integer default("0")
|
# excellent_student :integer default(0)
|
||||||
# phone :string(255)
|
# phone :string(255)
|
||||||
# authentication :boolean default("0")
|
# authentication :boolean default(FALSE)
|
||||||
# grade :integer default("0")
|
# grade :integer default(0)
|
||||||
# experience :integer default("0")
|
# experience :integer default(0)
|
||||||
# nickname :string(255)
|
# nickname :string(255)
|
||||||
# show_realname :boolean default("1")
|
# show_realname :boolean default(TRUE)
|
||||||
# professional_certification :boolean default("0")
|
# professional_certification :boolean default(FALSE)
|
||||||
# ID_number :string(255)
|
# ID_number :string(255)
|
||||||
# certification :integer default("0")
|
# certification :integer default(0)
|
||||||
# homepage_teacher :boolean default("0")
|
# homepage_teacher :boolean default(FALSE)
|
||||||
# homepage_engineer :boolean default("0")
|
# homepage_engineer :boolean default(FALSE)
|
||||||
# is_test :integer default("0")
|
# is_test :integer default(0)
|
||||||
# ecoder_user_id :integer default("0")
|
# ecoder_user_id :integer default(0)
|
||||||
# business :boolean default("0")
|
# business :boolean default(FALSE)
|
||||||
# profile_completed :boolean default("0")
|
# profile_completed :boolean default(FALSE)
|
||||||
# laboratory_id :integer
|
# laboratory_id :integer
|
||||||
# platform :string(255) default("0")
|
# platform :string(255) default(NULL)
|
||||||
# gitea_token :string(255)
|
# gitea_token :string(255)
|
||||||
# gitea_uid :integer
|
# gitea_uid :integer
|
||||||
# is_shixun_marker :boolean default("0")
|
# is_shixun_marker :boolean default(FALSE)
|
||||||
# is_sync_pwd :boolean default("1")
|
# is_sync_pwd :boolean default(TRUE)
|
||||||
# watchers_count :integer default("0")
|
# watchers_count :integer default(0)
|
||||||
# devops_step :integer default("0")
|
# devops_step :integer default(0)
|
||||||
# sign_cla :boolean default("0")
|
# sign_cla :boolean default(FALSE)
|
||||||
# enabling_cla :boolean default("0")
|
|
||||||
# id_card_verify :boolean default("0")
|
|
||||||
# website_permission :boolean default("0")
|
|
||||||
#
|
#
|
||||||
# Indexes
|
# Indexes
|
||||||
#
|
#
|
||||||
|
@ -57,7 +54,7 @@
|
||||||
# index_users_on_homepage_engineer (homepage_engineer)
|
# index_users_on_homepage_engineer (homepage_engineer)
|
||||||
# index_users_on_homepage_teacher (homepage_teacher)
|
# index_users_on_homepage_teacher (homepage_teacher)
|
||||||
# index_users_on_laboratory_id (laboratory_id)
|
# index_users_on_laboratory_id (laboratory_id)
|
||||||
# index_users_on_login (login) UNIQUE
|
# index_users_on_login (login)
|
||||||
# index_users_on_mail (mail)
|
# index_users_on_mail (mail)
|
||||||
# index_users_on_type (type)
|
# index_users_on_type (type)
|
||||||
#
|
#
|
||||||
|
@ -105,7 +102,7 @@ class User < Owner
|
||||||
MAIL_LENGTH_LMIT = 60
|
MAIL_LENGTH_LMIT = 60
|
||||||
# 最短密码长度修改为6
|
# 最短密码长度修改为6
|
||||||
# MIX_PASSWORD_LIMIT = 8
|
# MIX_PASSWORD_LIMIT = 8
|
||||||
MIX_PASSWORD_LIMIT = 6
|
MIX_PASSWORD_LIMIT = 6
|
||||||
|
|
||||||
LOGIN_CHARS = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z).freeze
|
LOGIN_CHARS = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z).freeze
|
||||||
|
|
||||||
|
@ -123,20 +120,19 @@ class User < Owner
|
||||||
has_many :open_users, dependent: :destroy
|
has_many :open_users, dependent: :destroy
|
||||||
has_one :wechat_open_user, class_name: 'OpenUsers::Wechat'
|
has_one :wechat_open_user, class_name: 'OpenUsers::Wechat'
|
||||||
has_one :qq_open_user, class_name: 'OpenUsers::Qq'
|
has_one :qq_open_user, class_name: 'OpenUsers::Qq'
|
||||||
has_one :identity_verification
|
|
||||||
accepts_nested_attributes_for :user_extension, update_only: true
|
accepts_nested_attributes_for :user_extension, update_only: true
|
||||||
has_many :fork_users, dependent: :destroy
|
has_many :fork_users, dependent: :destroy
|
||||||
|
|
||||||
has_many :versions
|
has_many :versions
|
||||||
has_many :issue_times, :dependent => :destroy
|
has_many :issue_times, :dependent => :destroy
|
||||||
|
|
||||||
# has_one :onclick_time, :dependent => :destroy
|
has_one :onclick_time, :dependent => :destroy
|
||||||
|
|
||||||
# 新版私信
|
# 新版私信
|
||||||
# has_many :private_messages, dependent: :destroy
|
has_many :private_messages, dependent: :destroy
|
||||||
has_many :recent_contacts, through: :private_messages, source: :target
|
has_many :recent_contacts, through: :private_messages, source: :target
|
||||||
has_many :tidings, :dependent => :destroy
|
has_many :tidings, :dependent => :destroy
|
||||||
# has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
||||||
|
|
||||||
has_many :attachments,foreign_key: :author_id, :dependent => :destroy
|
has_many :attachments,foreign_key: :author_id, :dependent => :destroy
|
||||||
|
|
||||||
|
@ -146,7 +142,7 @@ class User < Owner
|
||||||
has_many :apply_user_authentication
|
has_many :apply_user_authentication
|
||||||
has_one :process_real_name_apply, -> { processing.real_name_auth.order(created_at: :desc) }, class_name: 'ApplyUserAuthentication'
|
has_one :process_real_name_apply, -> { processing.real_name_auth.order(created_at: :desc) }, class_name: 'ApplyUserAuthentication'
|
||||||
has_one :process_professional_apply, -> { processing.professional_auth.order(created_at: :desc) }, class_name: 'ApplyUserAuthentication'
|
has_one :process_professional_apply, -> { processing.professional_auth.order(created_at: :desc) }, class_name: 'ApplyUserAuthentication'
|
||||||
# has_many :apply_actions, dependent: :destroy
|
has_many :apply_actions, dependent: :destroy
|
||||||
has_many :trail_auth_apply_actions, -> { where(container_type: 'TrialAuthorization') }, class_name: 'ApplyAction'
|
has_many :trail_auth_apply_actions, -> { where(container_type: 'TrialAuthorization') }, class_name: 'ApplyAction'
|
||||||
|
|
||||||
# has_many :attendances
|
# has_many :attendances
|
||||||
|
@ -186,18 +182,12 @@ class User < Owner
|
||||||
has_many :issue_participants, foreign_key: :participant_id
|
has_many :issue_participants, foreign_key: :participant_id
|
||||||
has_many :participant_issues, through: :issue_participants, source: :issue
|
has_many :participant_issues, through: :issue_participants, source: :issue
|
||||||
has_many :project_topics
|
has_many :project_topics
|
||||||
#cla
|
|
||||||
has_many :user_clas, :dependent => :destroy
|
|
||||||
has_many :clas, through: :user_clas
|
|
||||||
|
|
||||||
has_many :pages, :dependent => :destroy
|
|
||||||
|
|
||||||
# Groups and active users
|
# Groups and active users
|
||||||
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_INFO]) }
|
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_INFO]) }
|
||||||
scope :like, lambda { |keywords|
|
scope :like, lambda { |keywords|
|
||||||
# 表情处理
|
# 表情处理
|
||||||
keywords = keywords.to_s.each_char.select { |c| c.bytes.first < 240 }.join('')
|
keywords = keywords.to_s.each_char.select { |c| c.bytes.first < 240 }.join('')
|
||||||
sql = "CONCAT(lastname, firstname) LIKE :search OR nickname LIKE :search OR login LIKE :search OR mail LIKE :search OR phone LIKE :search"
|
sql = "CONCAT(lastname, firstname) LIKE :search OR nickname LIKE :search OR login LIKE :search OR mail LIKE :search OR nickname LIKE :search"
|
||||||
where(sql, :search => "%#{keywords.strip}%") unless keywords.blank?
|
where(sql, :search => "%#{keywords.strip}%") unless keywords.blank?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -472,23 +462,6 @@ class User < Owner
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def register_gitea
|
|
||||||
psd = "12345678"
|
|
||||||
interactor = Gitea::RegisterInteractor.call({username: self.login, email: self.mail, password: psd})
|
|
||||||
if interactor.success?
|
|
||||||
gitea_user = interactor.result
|
|
||||||
result = Gitea::User::GenerateTokenService.call(self.login, psd)
|
|
||||||
self.gitea_token = result['sha1']
|
|
||||||
self.gitea_uid = gitea_user[:body]['id']
|
|
||||||
self.password = psd
|
|
||||||
self.password_confirmation = psd
|
|
||||||
if self.save!
|
|
||||||
UserExtension.create!(user_id: self.id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def activate!
|
def activate!
|
||||||
update_attribute(:status, STATUS_ACTIVE)
|
update_attribute(:status, STATUS_ACTIVE)
|
||||||
prohibit_gitea_user_login!(false)
|
prohibit_gitea_user_login!(false)
|
||||||
|
@ -764,7 +737,6 @@ class User < Owner
|
||||||
if password
|
if password
|
||||||
salt_password(password)
|
salt_password(password)
|
||||||
end
|
end
|
||||||
check_website_permission
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def salt_password(clear_password)
|
def salt_password(clear_password)
|
||||||
|
@ -772,13 +744,6 @@ class User < Owner
|
||||||
self.hashed_password = User.hash_password("#{salt}#{User.hash_password clear_password}")
|
self.hashed_password = User.hash_password("#{salt}#{User.hash_password clear_password}")
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_website_permission
|
|
||||||
if website_permission_changed? && website_permission == false
|
|
||||||
self.pages.update_all(state: false, state_description:"因违规使用,现关闭Page服务")
|
|
||||||
PageService.close_site(self.id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.generate_salt
|
def self.generate_salt
|
||||||
Gitlink::Utils.random_hex(16)
|
Gitlink::Utils.random_hex(16)
|
||||||
end
|
end
|
||||||
|
@ -872,8 +837,7 @@ class User < Owner
|
||||||
end
|
end
|
||||||
|
|
||||||
def profile_is_completed?
|
def profile_is_completed?
|
||||||
#self.nickname.present? && self.mail.present?
|
self.nickname.present? && self.mail.present?
|
||||||
self.mail.present?
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def trace_token
|
def trace_token
|
||||||
|
@ -896,7 +860,7 @@ class User < Owner
|
||||||
|
|
||||||
# 重写gitea_token,当用户为bot类型时,替换成管理员token
|
# 重写gitea_token,当用户为bot类型时,替换成管理员token
|
||||||
def gitea_token
|
def gitea_token
|
||||||
if self.respond_to?('platform') && self.platform == "bot"
|
if self.platform == "bot"
|
||||||
GiteaService.gitea_config[:admin_token]
|
GiteaService.gitea_config[:admin_token]
|
||||||
else
|
else
|
||||||
self['gitea_token']
|
self['gitea_token']
|
||||||
|
@ -944,8 +908,8 @@ class User < Owner
|
||||||
raise("密码长度不能低于#{MIX_PASSWORD_LIMIT}位")
|
raise("密码长度不能低于#{MIX_PASSWORD_LIMIT}位")
|
||||||
end
|
end
|
||||||
|
|
||||||
if password.present? && password.size > 16
|
if password.present? && password.size > 32
|
||||||
raise('密码长度不能超过16位')
|
raise('密码长度不能超过32位')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
"./static/js/13.9c975527.chunk.js": "/react/build/./static/js/13.9c975527.chunk.js",
|
"./static/js/13.9c975527.chunk.js": "/react/build/./static/js/13.9c975527.chunk.js",
|
||||||
"./static/js/14.78152190.chunk.js": "/react/build/./static/js/14.78152190.chunk.js",
|
"./static/js/14.78152190.chunk.js": "/react/build/./static/js/14.78152190.chunk.js",
|
||||||
"static/css/15.d00c3b40.chunk.css": "/react/build/static/css/15.d00c3b40.chunk.css",
|
"static/css/15.d00c3b40.chunk.css": "/react/build/static/css/15.d00c3b40.chunk.css",
|
||||||
"./static/js/15.246e93c1.chunk.js": "/react/build/./static/js/15.246e93c1.chunk.js",
|
"./static/js/15.d81994fa.chunk.js": "/react/build/./static/js/15.d81994fa.chunk.js",
|
||||||
"./static/js/16.0c72eaeb.chunk.js": "/react/build/./static/js/16.0c72eaeb.chunk.js",
|
"./static/js/16.0c72eaeb.chunk.js": "/react/build/./static/js/16.0c72eaeb.chunk.js",
|
||||||
"static/css/17.8e1bcc30.chunk.css": "/react/build/static/css/17.8e1bcc30.chunk.css",
|
"static/css/17.03effa28.chunk.css": "/react/build/static/css/17.03effa28.chunk.css",
|
||||||
"./static/js/17.00fdc29a.chunk.js": "/react/build/./static/js/17.00fdc29a.chunk.js",
|
"./static/js/17.04df9df0.chunk.js": "/react/build/./static/js/17.04df9df0.chunk.js",
|
||||||
"./static/js/18.91c26d27.chunk.js": "/react/build/./static/js/18.91c26d27.chunk.js",
|
"./static/js/18.91c26d27.chunk.js": "/react/build/./static/js/18.91c26d27.chunk.js",
|
||||||
"static/css/19.b429c53f.chunk.css": "/react/build/static/css/19.b429c53f.chunk.css",
|
"static/css/19.b429c53f.chunk.css": "/react/build/static/css/19.b429c53f.chunk.css",
|
||||||
"./static/js/19.cee3b8b4.chunk.js": "/react/build/./static/js/19.cee3b8b4.chunk.js",
|
"./static/js/19.cee3b8b4.chunk.js": "/react/build/./static/js/19.cee3b8b4.chunk.js",
|
||||||
|
@ -28,63 +28,63 @@
|
||||||
"./static/js/20.01852e1f.chunk.js": "/react/build/./static/js/20.01852e1f.chunk.js",
|
"./static/js/20.01852e1f.chunk.js": "/react/build/./static/js/20.01852e1f.chunk.js",
|
||||||
"./static/js/21.4da09c32.chunk.js": "/react/build/./static/js/21.4da09c32.chunk.js",
|
"./static/js/21.4da09c32.chunk.js": "/react/build/./static/js/21.4da09c32.chunk.js",
|
||||||
"static/css/22.b974e0fe.chunk.css": "/react/build/static/css/22.b974e0fe.chunk.css",
|
"static/css/22.b974e0fe.chunk.css": "/react/build/static/css/22.b974e0fe.chunk.css",
|
||||||
"./static/js/22.09882469.chunk.js": "/react/build/./static/js/22.09882469.chunk.js",
|
"./static/js/22.0bd456df.chunk.js": "/react/build/./static/js/22.0bd456df.chunk.js",
|
||||||
"./static/js/23.f41e5327.chunk.js": "/react/build/./static/js/23.f41e5327.chunk.js",
|
"./static/js/23.f41e5327.chunk.js": "/react/build/./static/js/23.f41e5327.chunk.js",
|
||||||
"./static/js/24.6d2aa382.chunk.js": "/react/build/./static/js/24.6d2aa382.chunk.js",
|
"./static/js/24.6d2aa382.chunk.js": "/react/build/./static/js/24.6d2aa382.chunk.js",
|
||||||
"./static/js/25.53f0b2ce.chunk.js": "/react/build/./static/js/25.53f0b2ce.chunk.js",
|
"./static/js/25.53f0b2ce.chunk.js": "/react/build/./static/js/25.53f0b2ce.chunk.js",
|
||||||
"./static/js/26.f8a6c74a.chunk.js": "/react/build/./static/js/26.f8a6c74a.chunk.js",
|
"./static/js/26.f8a6c74a.chunk.js": "/react/build/./static/js/26.f8a6c74a.chunk.js",
|
||||||
"./static/js/27.30f2975e.chunk.js": "/react/build/./static/js/27.30f2975e.chunk.js",
|
"./static/js/27.30f2975e.chunk.js": "/react/build/./static/js/27.30f2975e.chunk.js",
|
||||||
"static/css/28.bc037916.chunk.css": "/react/build/static/css/28.bc037916.chunk.css",
|
"static/css/28.bc037916.chunk.css": "/react/build/static/css/28.bc037916.chunk.css",
|
||||||
"./static/js/28.d0415758.chunk.js": "/react/build/./static/js/28.d0415758.chunk.js",
|
"./static/js/28.0e9dd083.chunk.js": "/react/build/./static/js/28.0e9dd083.chunk.js",
|
||||||
"static/css/29.18f41680.chunk.css": "/react/build/static/css/29.18f41680.chunk.css",
|
"static/css/29.c3cf1a83.chunk.css": "/react/build/static/css/29.c3cf1a83.chunk.css",
|
||||||
"./static/js/29.96e6bce7.chunk.js": "/react/build/./static/js/29.96e6bce7.chunk.js",
|
"./static/js/29.256b5855.chunk.js": "/react/build/./static/js/29.256b5855.chunk.js",
|
||||||
"./static/js/30.36072913.chunk.js": "/react/build/./static/js/30.36072913.chunk.js",
|
"./static/js/30.36072913.chunk.js": "/react/build/./static/js/30.36072913.chunk.js",
|
||||||
"static/css/31.f8d5bf59.chunk.css": "/react/build/static/css/31.f8d5bf59.chunk.css",
|
"static/css/31.f8d5bf59.chunk.css": "/react/build/static/css/31.f8d5bf59.chunk.css",
|
||||||
"./static/js/31.8bfbe104.chunk.js": "/react/build/./static/js/31.8bfbe104.chunk.js",
|
"./static/js/31.445da6d3.chunk.js": "/react/build/./static/js/31.445da6d3.chunk.js",
|
||||||
"static/css/32.fd7e32c8.chunk.css": "/react/build/static/css/32.fd7e32c8.chunk.css",
|
"static/css/32.3c668656.chunk.css": "/react/build/static/css/32.3c668656.chunk.css",
|
||||||
"./static/js/32.bed0d809.chunk.js": "/react/build/./static/js/32.bed0d809.chunk.js",
|
"./static/js/32.b18b78bc.chunk.js": "/react/build/./static/js/32.b18b78bc.chunk.js",
|
||||||
"./static/js/33.9409b5e1.chunk.js": "/react/build/./static/js/33.9409b5e1.chunk.js",
|
"./static/js/33.baf2e04d.chunk.js": "/react/build/./static/js/33.baf2e04d.chunk.js",
|
||||||
"static/css/34.b4ad1b94.chunk.css": "/react/build/static/css/34.b4ad1b94.chunk.css",
|
"static/css/34.b4ad1b94.chunk.css": "/react/build/static/css/34.b4ad1b94.chunk.css",
|
||||||
"./static/js/34.6f730ca0.chunk.js": "/react/build/./static/js/34.6f730ca0.chunk.js",
|
"./static/js/34.6f730ca0.chunk.js": "/react/build/./static/js/34.6f730ca0.chunk.js",
|
||||||
"static/css/35.63e62a9a.chunk.css": "/react/build/static/css/35.63e62a9a.chunk.css",
|
"static/css/35.c7141444.chunk.css": "/react/build/static/css/35.c7141444.chunk.css",
|
||||||
"./static/js/35.c6a1000c.chunk.js": "/react/build/./static/js/35.c6a1000c.chunk.js",
|
"./static/js/35.7591762b.chunk.js": "/react/build/./static/js/35.7591762b.chunk.js",
|
||||||
"static/css/36.7945f7f5.chunk.css": "/react/build/static/css/36.7945f7f5.chunk.css",
|
"static/css/36.5bcfc22c.chunk.css": "/react/build/static/css/36.5bcfc22c.chunk.css",
|
||||||
"./static/js/36.e598a09d.chunk.js": "/react/build/./static/js/36.e598a09d.chunk.js",
|
"./static/js/36.7a232184.chunk.js": "/react/build/./static/js/36.7a232184.chunk.js",
|
||||||
"static/css/37.3976e793.chunk.css": "/react/build/static/css/37.3976e793.chunk.css",
|
"static/css/37.3976e793.chunk.css": "/react/build/static/css/37.3976e793.chunk.css",
|
||||||
"./static/js/37.9f96f7c8.chunk.js": "/react/build/./static/js/37.9f96f7c8.chunk.js",
|
"./static/js/37.9f96f7c8.chunk.js": "/react/build/./static/js/37.9f96f7c8.chunk.js",
|
||||||
"static/css/38.98146c40.chunk.css": "/react/build/static/css/38.98146c40.chunk.css",
|
"static/css/38.25d8f6a3.chunk.css": "/react/build/static/css/38.25d8f6a3.chunk.css",
|
||||||
"./static/js/38.e25694de.chunk.js": "/react/build/./static/js/38.e25694de.chunk.js",
|
"./static/js/38.e25694de.chunk.js": "/react/build/./static/js/38.e25694de.chunk.js",
|
||||||
"./static/js/39.f12827a6.chunk.js": "/react/build/./static/js/39.f12827a6.chunk.js",
|
"./static/js/39.f12827a6.chunk.js": "/react/build/./static/js/39.f12827a6.chunk.js",
|
||||||
"static/css/40.a9150410.chunk.css": "/react/build/static/css/40.a9150410.chunk.css",
|
"static/css/40.488436fd.chunk.css": "/react/build/static/css/40.488436fd.chunk.css",
|
||||||
"./static/js/40.29c9e18e.chunk.js": "/react/build/./static/js/40.29c9e18e.chunk.js",
|
"./static/js/40.ea8a3949.chunk.js": "/react/build/./static/js/40.ea8a3949.chunk.js",
|
||||||
"static/css/41.22361b96.chunk.css": "/react/build/static/css/41.22361b96.chunk.css",
|
"static/css/41.c63c77c0.chunk.css": "/react/build/static/css/41.c63c77c0.chunk.css",
|
||||||
"./static/js/41.3373add4.chunk.js": "/react/build/./static/js/41.3373add4.chunk.js",
|
"./static/js/41.5df91ec1.chunk.js": "/react/build/./static/js/41.5df91ec1.chunk.js",
|
||||||
"static/css/42.b6615865.chunk.css": "/react/build/static/css/42.b6615865.chunk.css",
|
"static/css/42.97b6e33e.chunk.css": "/react/build/static/css/42.97b6e33e.chunk.css",
|
||||||
"./static/js/42.e886ac62.chunk.js": "/react/build/./static/js/42.e886ac62.chunk.js",
|
"./static/js/42.38965cff.chunk.js": "/react/build/./static/js/42.38965cff.chunk.js",
|
||||||
"static/css/43.78a1ba5d.chunk.css": "/react/build/static/css/43.78a1ba5d.chunk.css",
|
"static/css/43.78a1ba5d.chunk.css": "/react/build/static/css/43.78a1ba5d.chunk.css",
|
||||||
"./static/js/43.14235942.chunk.js": "/react/build/./static/js/43.14235942.chunk.js",
|
"./static/js/43.14235942.chunk.js": "/react/build/./static/js/43.14235942.chunk.js",
|
||||||
"static/css/44.b96984b7.chunk.css": "/react/build/static/css/44.b96984b7.chunk.css",
|
"static/css/44.b96984b7.chunk.css": "/react/build/static/css/44.b96984b7.chunk.css",
|
||||||
"./static/js/44.4a4c83a3.chunk.js": "/react/build/./static/js/44.4a4c83a3.chunk.js",
|
"./static/js/44.fffc657b.chunk.js": "/react/build/./static/js/44.fffc657b.chunk.js",
|
||||||
"static/css/45.e65d5b3d.chunk.css": "/react/build/static/css/45.e65d5b3d.chunk.css",
|
"static/css/45.215ce323.chunk.css": "/react/build/static/css/45.215ce323.chunk.css",
|
||||||
"./static/js/45.dea01e2d.chunk.js": "/react/build/./static/js/45.dea01e2d.chunk.js",
|
"./static/js/45.34447de8.chunk.js": "/react/build/./static/js/45.34447de8.chunk.js",
|
||||||
"static/css/46.ad6c58f5.chunk.css": "/react/build/static/css/46.ad6c58f5.chunk.css",
|
"static/css/46.dca80471.chunk.css": "/react/build/static/css/46.dca80471.chunk.css",
|
||||||
"./static/js/46.ca162d52.chunk.js": "/react/build/./static/js/46.ca162d52.chunk.js",
|
"./static/js/46.290d3f85.chunk.js": "/react/build/./static/js/46.290d3f85.chunk.js",
|
||||||
"static/css/47.bd89b3a5.chunk.css": "/react/build/static/css/47.bd89b3a5.chunk.css",
|
"static/css/47.27c04975.chunk.css": "/react/build/static/css/47.27c04975.chunk.css",
|
||||||
"./static/js/47.5c371ec1.chunk.js": "/react/build/./static/js/47.5c371ec1.chunk.js",
|
"./static/js/47.ed69baff.chunk.js": "/react/build/./static/js/47.ed69baff.chunk.js",
|
||||||
"static/css/48.77c696ba.chunk.css": "/react/build/static/css/48.77c696ba.chunk.css",
|
"static/css/48.77c696ba.chunk.css": "/react/build/static/css/48.77c696ba.chunk.css",
|
||||||
"./static/js/48.41ec0ead.chunk.js": "/react/build/./static/js/48.41ec0ead.chunk.js",
|
"./static/js/48.41ec0ead.chunk.js": "/react/build/./static/js/48.41ec0ead.chunk.js",
|
||||||
"static/css/49.8e1bcc30.chunk.css": "/react/build/static/css/49.8e1bcc30.chunk.css",
|
"static/css/49.03effa28.chunk.css": "/react/build/static/css/49.03effa28.chunk.css",
|
||||||
"./static/js/49.8e10e4ba.chunk.js": "/react/build/./static/js/49.8e10e4ba.chunk.js",
|
"./static/js/49.8f6e442c.chunk.js": "/react/build/./static/js/49.8f6e442c.chunk.js",
|
||||||
"static/css/50.edd35995.chunk.css": "/react/build/static/css/50.edd35995.chunk.css",
|
"static/css/50.3a07726a.chunk.css": "/react/build/static/css/50.3a07726a.chunk.css",
|
||||||
"./static/js/50.04ed8edb.chunk.js": "/react/build/./static/js/50.04ed8edb.chunk.js",
|
"./static/js/50.62a79609.chunk.js": "/react/build/./static/js/50.62a79609.chunk.js",
|
||||||
"static/css/51.c96d41ad.chunk.css": "/react/build/static/css/51.c96d41ad.chunk.css",
|
"static/css/51.36fac896.chunk.css": "/react/build/static/css/51.36fac896.chunk.css",
|
||||||
"./static/js/51.7fb43235.chunk.js": "/react/build/./static/js/51.7fb43235.chunk.js",
|
"./static/js/51.fcdc1e8b.chunk.js": "/react/build/./static/js/51.fcdc1e8b.chunk.js",
|
||||||
"static/css/52.8e1bcc30.chunk.css": "/react/build/static/css/52.8e1bcc30.chunk.css",
|
"static/css/52.03effa28.chunk.css": "/react/build/static/css/52.03effa28.chunk.css",
|
||||||
"./static/js/52.0a3ee4be.chunk.js": "/react/build/./static/js/52.0a3ee4be.chunk.js",
|
"./static/js/52.9fb88799.chunk.js": "/react/build/./static/js/52.9fb88799.chunk.js",
|
||||||
"static/css/53.8e1bcc30.chunk.css": "/react/build/static/css/53.8e1bcc30.chunk.css",
|
"static/css/53.03effa28.chunk.css": "/react/build/static/css/53.03effa28.chunk.css",
|
||||||
"./static/js/53.3242df93.chunk.js": "/react/build/./static/js/53.3242df93.chunk.js",
|
"./static/js/53.10999bbf.chunk.js": "/react/build/./static/js/53.10999bbf.chunk.js",
|
||||||
"static/css/54.8e1bcc30.chunk.css": "/react/build/static/css/54.8e1bcc30.chunk.css",
|
"static/css/54.03effa28.chunk.css": "/react/build/static/css/54.03effa28.chunk.css",
|
||||||
"./static/js/54.0311a627.chunk.js": "/react/build/./static/js/54.0311a627.chunk.js",
|
"./static/js/54.70e341ae.chunk.js": "/react/build/./static/js/54.70e341ae.chunk.js",
|
||||||
"static/css/55.df077b70.chunk.css": "/react/build/static/css/55.df077b70.chunk.css",
|
"static/css/55.df077b70.chunk.css": "/react/build/static/css/55.df077b70.chunk.css",
|
||||||
"./static/js/55.16b12e46.chunk.js": "/react/build/./static/js/55.16b12e46.chunk.js",
|
"./static/js/55.16b12e46.chunk.js": "/react/build/./static/js/55.16b12e46.chunk.js",
|
||||||
"static/css/56.fd3fa2e9.chunk.css": "/react/build/static/css/56.fd3fa2e9.chunk.css",
|
"static/css/56.fd3fa2e9.chunk.css": "/react/build/static/css/56.fd3fa2e9.chunk.css",
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
"./static/js/58.ef153db6.chunk.js": "/react/build/./static/js/58.ef153db6.chunk.js",
|
"./static/js/58.ef153db6.chunk.js": "/react/build/./static/js/58.ef153db6.chunk.js",
|
||||||
"static/css/59.deeb1b7c.chunk.css": "/react/build/static/css/59.deeb1b7c.chunk.css",
|
"static/css/59.deeb1b7c.chunk.css": "/react/build/static/css/59.deeb1b7c.chunk.css",
|
||||||
"./static/js/59.4c606d11.chunk.js": "/react/build/./static/js/59.4c606d11.chunk.js",
|
"./static/js/59.4c606d11.chunk.js": "/react/build/./static/js/59.4c606d11.chunk.js",
|
||||||
"static/css/60.94519a29.chunk.css": "/react/build/static/css/60.94519a29.chunk.css",
|
"static/css/60.72b1c501.chunk.css": "/react/build/static/css/60.72b1c501.chunk.css",
|
||||||
"./static/js/60.dd23ce5f.chunk.js": "/react/build/./static/js/60.dd23ce5f.chunk.js",
|
"./static/js/60.dd23ce5f.chunk.js": "/react/build/./static/js/60.dd23ce5f.chunk.js",
|
||||||
"static/css/61.6b9ba3cb.chunk.css": "/react/build/static/css/61.6b9ba3cb.chunk.css",
|
"static/css/61.6b9ba3cb.chunk.css": "/react/build/static/css/61.6b9ba3cb.chunk.css",
|
||||||
"./static/js/61.ace82e27.chunk.js": "/react/build/./static/js/61.ace82e27.chunk.js",
|
"./static/js/61.ace82e27.chunk.js": "/react/build/./static/js/61.ace82e27.chunk.js",
|
||||||
|
@ -102,29 +102,29 @@
|
||||||
"./static/js/62.3d9da556.chunk.js": "/react/build/./static/js/62.3d9da556.chunk.js",
|
"./static/js/62.3d9da556.chunk.js": "/react/build/./static/js/62.3d9da556.chunk.js",
|
||||||
"./static/js/63.aaa5d2b8.chunk.js": "/react/build/./static/js/63.aaa5d2b8.chunk.js",
|
"./static/js/63.aaa5d2b8.chunk.js": "/react/build/./static/js/63.aaa5d2b8.chunk.js",
|
||||||
"static/css/64.4237b849.chunk.css": "/react/build/static/css/64.4237b849.chunk.css",
|
"static/css/64.4237b849.chunk.css": "/react/build/static/css/64.4237b849.chunk.css",
|
||||||
"./static/js/64.72dc282b.chunk.js": "/react/build/./static/js/64.72dc282b.chunk.js",
|
"./static/js/64.c20cb6da.chunk.js": "/react/build/./static/js/64.c20cb6da.chunk.js",
|
||||||
"static/css/65.98146c40.chunk.css": "/react/build/static/css/65.98146c40.chunk.css",
|
"static/css/65.25d8f6a3.chunk.css": "/react/build/static/css/65.25d8f6a3.chunk.css",
|
||||||
"./static/js/65.05715401.chunk.js": "/react/build/./static/js/65.05715401.chunk.js",
|
"./static/js/65.ba6b25b7.chunk.js": "/react/build/./static/js/65.ba6b25b7.chunk.js",
|
||||||
"./static/js/66.ecd395af.chunk.js": "/react/build/./static/js/66.ecd395af.chunk.js",
|
"./static/js/66.ecd395af.chunk.js": "/react/build/./static/js/66.ecd395af.chunk.js",
|
||||||
"static/css/67.98146c40.chunk.css": "/react/build/static/css/67.98146c40.chunk.css",
|
"static/css/67.25d8f6a3.chunk.css": "/react/build/static/css/67.25d8f6a3.chunk.css",
|
||||||
"./static/js/67.cdbbd0d6.chunk.js": "/react/build/./static/js/67.cdbbd0d6.chunk.js",
|
"./static/js/67.cdbbd0d6.chunk.js": "/react/build/./static/js/67.cdbbd0d6.chunk.js",
|
||||||
"./static/js/68.ef50625e.chunk.js": "/react/build/./static/js/68.ef50625e.chunk.js",
|
"./static/js/68.ef50625e.chunk.js": "/react/build/./static/js/68.ef50625e.chunk.js",
|
||||||
"static/css/69.211cfcc2.chunk.css": "/react/build/static/css/69.211cfcc2.chunk.css",
|
"static/css/69.1a4f91fe.chunk.css": "/react/build/static/css/69.1a4f91fe.chunk.css",
|
||||||
"./static/js/69.9385fb67.chunk.js": "/react/build/./static/js/69.9385fb67.chunk.js",
|
"./static/js/69.ca15418c.chunk.js": "/react/build/./static/js/69.ca15418c.chunk.js",
|
||||||
"static/css/70.d788cda5.chunk.css": "/react/build/static/css/70.d788cda5.chunk.css",
|
"static/css/70.d788cda5.chunk.css": "/react/build/static/css/70.d788cda5.chunk.css",
|
||||||
"./static/js/70.9e684999.chunk.js": "/react/build/./static/js/70.9e684999.chunk.js",
|
"./static/js/70.9e684999.chunk.js": "/react/build/./static/js/70.9e684999.chunk.js",
|
||||||
"static/css/71.6ab1836b.chunk.css": "/react/build/static/css/71.6ab1836b.chunk.css",
|
"static/css/71.6ab1836b.chunk.css": "/react/build/static/css/71.6ab1836b.chunk.css",
|
||||||
"./static/js/71.88c6a2c8.chunk.js": "/react/build/./static/js/71.88c6a2c8.chunk.js",
|
"./static/js/71.88c6a2c8.chunk.js": "/react/build/./static/js/71.88c6a2c8.chunk.js",
|
||||||
"static/css/72.0bcaa310.chunk.css": "/react/build/static/css/72.0bcaa310.chunk.css",
|
"static/css/72.0bcaa310.chunk.css": "/react/build/static/css/72.0bcaa310.chunk.css",
|
||||||
"./static/js/72.4e6f0cff.chunk.js": "/react/build/./static/js/72.4e6f0cff.chunk.js",
|
"./static/js/72.4e6f0cff.chunk.js": "/react/build/./static/js/72.4e6f0cff.chunk.js",
|
||||||
"static/css/73.6978aa87.chunk.css": "/react/build/static/css/73.6978aa87.chunk.css",
|
"static/css/73.c43a353f.chunk.css": "/react/build/static/css/73.c43a353f.chunk.css",
|
||||||
"./static/js/73.bb2a6774.chunk.js": "/react/build/./static/js/73.bb2a6774.chunk.js",
|
"./static/js/73.bb2a6774.chunk.js": "/react/build/./static/js/73.bb2a6774.chunk.js",
|
||||||
"static/css/74.d4544d53.chunk.css": "/react/build/static/css/74.d4544d53.chunk.css",
|
"static/css/74.cb568edc.chunk.css": "/react/build/static/css/74.cb568edc.chunk.css",
|
||||||
"./static/js/74.d1207782.chunk.js": "/react/build/./static/js/74.d1207782.chunk.js",
|
"./static/js/74.d1207782.chunk.js": "/react/build/./static/js/74.d1207782.chunk.js",
|
||||||
"static/css/75.59c9cad5.chunk.css": "/react/build/static/css/75.59c9cad5.chunk.css",
|
"static/css/75.59c9cad5.chunk.css": "/react/build/static/css/75.59c9cad5.chunk.css",
|
||||||
"./static/js/75.d123738d.chunk.js": "/react/build/./static/js/75.d123738d.chunk.js",
|
"./static/js/75.d123738d.chunk.js": "/react/build/./static/js/75.d123738d.chunk.js",
|
||||||
"static/css/76.f61a22e7.chunk.css": "/react/build/static/css/76.f61a22e7.chunk.css",
|
"static/css/76.f61a22e7.chunk.css": "/react/build/static/css/76.f61a22e7.chunk.css",
|
||||||
"./static/js/76.89501b28.chunk.js": "/react/build/./static/js/76.89501b28.chunk.js",
|
"./static/js/76.ca0f9bf8.chunk.js": "/react/build/./static/js/76.ca0f9bf8.chunk.js",
|
||||||
"static/css/77.cca0fae4.chunk.css": "/react/build/static/css/77.cca0fae4.chunk.css",
|
"static/css/77.cca0fae4.chunk.css": "/react/build/static/css/77.cca0fae4.chunk.css",
|
||||||
"./static/js/77.f9f62bd5.chunk.js": "/react/build/./static/js/77.f9f62bd5.chunk.js",
|
"./static/js/77.f9f62bd5.chunk.js": "/react/build/./static/js/77.f9f62bd5.chunk.js",
|
||||||
"./static/js/78.ca0dc5cb.chunk.js": "/react/build/./static/js/78.ca0dc5cb.chunk.js",
|
"./static/js/78.ca0dc5cb.chunk.js": "/react/build/./static/js/78.ca0dc5cb.chunk.js",
|
||||||
|
@ -139,20 +139,20 @@
|
||||||
"./static/js/83.7bd5c3cc.chunk.js": "/react/build/./static/js/83.7bd5c3cc.chunk.js",
|
"./static/js/83.7bd5c3cc.chunk.js": "/react/build/./static/js/83.7bd5c3cc.chunk.js",
|
||||||
"static/css/84.541803c4.chunk.css": "/react/build/static/css/84.541803c4.chunk.css",
|
"static/css/84.541803c4.chunk.css": "/react/build/static/css/84.541803c4.chunk.css",
|
||||||
"./static/js/84.1f0df9f0.chunk.js": "/react/build/./static/js/84.1f0df9f0.chunk.js",
|
"./static/js/84.1f0df9f0.chunk.js": "/react/build/./static/js/84.1f0df9f0.chunk.js",
|
||||||
"static/css/85.9d206204.chunk.css": "/react/build/static/css/85.9d206204.chunk.css",
|
"static/css/85.41b8aabd.chunk.css": "/react/build/static/css/85.41b8aabd.chunk.css",
|
||||||
"./static/js/85.e71e824f.chunk.js": "/react/build/./static/js/85.e71e824f.chunk.js",
|
"./static/js/85.e71e824f.chunk.js": "/react/build/./static/js/85.e71e824f.chunk.js",
|
||||||
"./static/js/86.e7cdd871.chunk.js": "/react/build/./static/js/86.e7cdd871.chunk.js",
|
"./static/js/86.e7cdd871.chunk.js": "/react/build/./static/js/86.e7cdd871.chunk.js",
|
||||||
"./static/js/87.e072d477.chunk.js": "/react/build/./static/js/87.e072d477.chunk.js",
|
"./static/js/87.e072d477.chunk.js": "/react/build/./static/js/87.e072d477.chunk.js",
|
||||||
"./static/js/88.f339c4eb.chunk.js": "/react/build/./static/js/88.f339c4eb.chunk.js",
|
"./static/js/88.f1814e4a.chunk.js": "/react/build/./static/js/88.f1814e4a.chunk.js",
|
||||||
"static/css/89.33abeff1.chunk.css": "/react/build/static/css/89.33abeff1.chunk.css",
|
"static/css/89.d126f3fc.chunk.css": "/react/build/static/css/89.d126f3fc.chunk.css",
|
||||||
"./static/js/89.7bfff321.chunk.js": "/react/build/./static/js/89.7bfff321.chunk.js",
|
"./static/js/89.7bfff321.chunk.js": "/react/build/./static/js/89.7bfff321.chunk.js",
|
||||||
"static/css/90.874f597c.chunk.css": "/react/build/static/css/90.874f597c.chunk.css",
|
"static/css/90.874f597c.chunk.css": "/react/build/static/css/90.874f597c.chunk.css",
|
||||||
"./static/js/90.c2ba8168.chunk.js": "/react/build/./static/js/90.c2ba8168.chunk.js",
|
"./static/js/90.907279d0.chunk.js": "/react/build/./static/js/90.907279d0.chunk.js",
|
||||||
"./static/js/91.3aca48d0.chunk.js": "/react/build/./static/js/91.3aca48d0.chunk.js",
|
"./static/js/91.3aca48d0.chunk.js": "/react/build/./static/js/91.3aca48d0.chunk.js",
|
||||||
"static/css/92.b5cef47f.chunk.css": "/react/build/static/css/92.b5cef47f.chunk.css",
|
"static/css/92.b5cef47f.chunk.css": "/react/build/static/css/92.b5cef47f.chunk.css",
|
||||||
"./static/js/92.4acfd5dc.chunk.js": "/react/build/./static/js/92.4acfd5dc.chunk.js",
|
"./static/js/92.4acfd5dc.chunk.js": "/react/build/./static/js/92.4acfd5dc.chunk.js",
|
||||||
"static/css/93.7aa996e6.chunk.css": "/react/build/static/css/93.7aa996e6.chunk.css",
|
"static/css/93.7aa996e6.chunk.css": "/react/build/static/css/93.7aa996e6.chunk.css",
|
||||||
"./static/js/93.3f13afe5.chunk.js": "/react/build/./static/js/93.3f13afe5.chunk.js",
|
"./static/js/93.ef620c4b.chunk.js": "/react/build/./static/js/93.ef620c4b.chunk.js",
|
||||||
"static/css/94.632d7855.chunk.css": "/react/build/static/css/94.632d7855.chunk.css",
|
"static/css/94.632d7855.chunk.css": "/react/build/static/css/94.632d7855.chunk.css",
|
||||||
"./static/js/94.c792f7b3.chunk.js": "/react/build/./static/js/94.c792f7b3.chunk.js",
|
"./static/js/94.c792f7b3.chunk.js": "/react/build/./static/js/94.c792f7b3.chunk.js",
|
||||||
"static/css/95.ea97577b.chunk.css": "/react/build/static/css/95.ea97577b.chunk.css",
|
"static/css/95.ea97577b.chunk.css": "/react/build/static/css/95.ea97577b.chunk.css",
|
||||||
|
@ -163,14 +163,14 @@
|
||||||
"./static/js/98.7f7f7055.chunk.js": "/react/build/./static/js/98.7f7f7055.chunk.js",
|
"./static/js/98.7f7f7055.chunk.js": "/react/build/./static/js/98.7f7f7055.chunk.js",
|
||||||
"static/css/99.56158b92.chunk.css": "/react/build/static/css/99.56158b92.chunk.css",
|
"static/css/99.56158b92.chunk.css": "/react/build/static/css/99.56158b92.chunk.css",
|
||||||
"./static/js/99.1ab93e2f.chunk.js": "/react/build/./static/js/99.1ab93e2f.chunk.js",
|
"./static/js/99.1ab93e2f.chunk.js": "/react/build/./static/js/99.1ab93e2f.chunk.js",
|
||||||
"static/css/100.53c7d49b.chunk.css": "/react/build/static/css/100.53c7d49b.chunk.css",
|
"static/css/100.eb89c16f.chunk.css": "/react/build/static/css/100.eb89c16f.chunk.css",
|
||||||
"./static/js/100.7704a7a9.chunk.js": "/react/build/./static/js/100.7704a7a9.chunk.js",
|
"./static/js/100.7704a7a9.chunk.js": "/react/build/./static/js/100.7704a7a9.chunk.js",
|
||||||
"static/css/101.59500253.chunk.css": "/react/build/static/css/101.59500253.chunk.css",
|
"static/css/101.59500253.chunk.css": "/react/build/static/css/101.59500253.chunk.css",
|
||||||
"./static/js/101.75ef8903.chunk.js": "/react/build/./static/js/101.75ef8903.chunk.js",
|
"./static/js/101.75ef8903.chunk.js": "/react/build/./static/js/101.75ef8903.chunk.js",
|
||||||
"./static/js/102.0cd64c19.chunk.js": "/react/build/./static/js/102.0cd64c19.chunk.js",
|
"./static/js/102.0cd64c19.chunk.js": "/react/build/./static/js/102.0cd64c19.chunk.js",
|
||||||
"./static/js/103.678d2f97.chunk.js": "/react/build/./static/js/103.678d2f97.chunk.js",
|
"./static/js/103.678d2f97.chunk.js": "/react/build/./static/js/103.678d2f97.chunk.js",
|
||||||
"static/css/104.8a2a0d50.chunk.css": "/react/build/static/css/104.8a2a0d50.chunk.css",
|
"static/css/104.8a2a0d50.chunk.css": "/react/build/static/css/104.8a2a0d50.chunk.css",
|
||||||
"./static/js/104.b0921c62.chunk.js": "/react/build/./static/js/104.b0921c62.chunk.js",
|
"./static/js/104.6f4138ff.chunk.js": "/react/build/./static/js/104.6f4138ff.chunk.js",
|
||||||
"static/css/105.78d24cb4.chunk.css": "/react/build/static/css/105.78d24cb4.chunk.css",
|
"static/css/105.78d24cb4.chunk.css": "/react/build/static/css/105.78d24cb4.chunk.css",
|
||||||
"./static/js/105.925c448f.chunk.js": "/react/build/./static/js/105.925c448f.chunk.js",
|
"./static/js/105.925c448f.chunk.js": "/react/build/./static/js/105.925c448f.chunk.js",
|
||||||
"./static/js/106.762db912.chunk.js": "/react/build/./static/js/106.762db912.chunk.js",
|
"./static/js/106.762db912.chunk.js": "/react/build/./static/js/106.762db912.chunk.js",
|
||||||
|
@ -198,7 +198,7 @@
|
||||||
"./static/js/119.56d65b61.chunk.js": "/react/build/./static/js/119.56d65b61.chunk.js",
|
"./static/js/119.56d65b61.chunk.js": "/react/build/./static/js/119.56d65b61.chunk.js",
|
||||||
"static/css/120.fd3fa2e9.chunk.css": "/react/build/static/css/120.fd3fa2e9.chunk.css",
|
"static/css/120.fd3fa2e9.chunk.css": "/react/build/static/css/120.fd3fa2e9.chunk.css",
|
||||||
"./static/js/120.aaeb2759.chunk.js": "/react/build/./static/js/120.aaeb2759.chunk.js",
|
"./static/js/120.aaeb2759.chunk.js": "/react/build/./static/js/120.aaeb2759.chunk.js",
|
||||||
"static/css/121.9d206204.chunk.css": "/react/build/static/css/121.9d206204.chunk.css",
|
"static/css/121.41b8aabd.chunk.css": "/react/build/static/css/121.41b8aabd.chunk.css",
|
||||||
"./static/js/121.fa118c89.chunk.js": "/react/build/./static/js/121.fa118c89.chunk.js",
|
"./static/js/121.fa118c89.chunk.js": "/react/build/./static/js/121.fa118c89.chunk.js",
|
||||||
"static/css/122.82ba8135.chunk.css": "/react/build/static/css/122.82ba8135.chunk.css",
|
"static/css/122.82ba8135.chunk.css": "/react/build/static/css/122.82ba8135.chunk.css",
|
||||||
"./static/js/122.77706ff8.chunk.js": "/react/build/./static/js/122.77706ff8.chunk.js",
|
"./static/js/122.77706ff8.chunk.js": "/react/build/./static/js/122.77706ff8.chunk.js",
|
||||||
|
@ -219,11 +219,11 @@
|
||||||
"./static/js/132.af2d6212.chunk.js": "/react/build/./static/js/132.af2d6212.chunk.js",
|
"./static/js/132.af2d6212.chunk.js": "/react/build/./static/js/132.af2d6212.chunk.js",
|
||||||
"static/css/133.45b01965.chunk.css": "/react/build/static/css/133.45b01965.chunk.css",
|
"static/css/133.45b01965.chunk.css": "/react/build/static/css/133.45b01965.chunk.css",
|
||||||
"./static/js/133.398a14b0.chunk.js": "/react/build/./static/js/133.398a14b0.chunk.js",
|
"./static/js/133.398a14b0.chunk.js": "/react/build/./static/js/133.398a14b0.chunk.js",
|
||||||
"./static/js/134.716dfc85.chunk.js": "/react/build/./static/js/134.716dfc85.chunk.js",
|
"./static/js/134.130280a5.chunk.js": "/react/build/./static/js/134.130280a5.chunk.js",
|
||||||
"./static/js/135.224d833c.chunk.js": "/react/build/./static/js/135.224d833c.chunk.js",
|
"./static/js/135.224d833c.chunk.js": "/react/build/./static/js/135.224d833c.chunk.js",
|
||||||
"static/css/136.9d206204.chunk.css": "/react/build/static/css/136.9d206204.chunk.css",
|
"static/css/136.41b8aabd.chunk.css": "/react/build/static/css/136.41b8aabd.chunk.css",
|
||||||
"./static/js/136.4bf47682.chunk.js": "/react/build/./static/js/136.4bf47682.chunk.js",
|
"./static/js/136.4bf47682.chunk.js": "/react/build/./static/js/136.4bf47682.chunk.js",
|
||||||
"static/css/137.9d206204.chunk.css": "/react/build/static/css/137.9d206204.chunk.css",
|
"static/css/137.41b8aabd.chunk.css": "/react/build/static/css/137.41b8aabd.chunk.css",
|
||||||
"./static/js/137.d38ab836.chunk.js": "/react/build/./static/js/137.d38ab836.chunk.js",
|
"./static/js/137.d38ab836.chunk.js": "/react/build/./static/js/137.d38ab836.chunk.js",
|
||||||
"static/css/138.cdd78914.chunk.css": "/react/build/static/css/138.cdd78914.chunk.css",
|
"static/css/138.cdd78914.chunk.css": "/react/build/static/css/138.cdd78914.chunk.css",
|
||||||
"./static/js/138.f988609b.chunk.js": "/react/build/./static/js/138.f988609b.chunk.js",
|
"./static/js/138.f988609b.chunk.js": "/react/build/./static/js/138.f988609b.chunk.js",
|
||||||
|
@ -239,14 +239,14 @@
|
||||||
"./static/js/146.f7f4065a.chunk.js": "/react/build/./static/js/146.f7f4065a.chunk.js",
|
"./static/js/146.f7f4065a.chunk.js": "/react/build/./static/js/146.f7f4065a.chunk.js",
|
||||||
"static/css/147.15253a67.chunk.css": "/react/build/static/css/147.15253a67.chunk.css",
|
"static/css/147.15253a67.chunk.css": "/react/build/static/css/147.15253a67.chunk.css",
|
||||||
"./static/js/147.d787fdc5.chunk.js": "/react/build/./static/js/147.d787fdc5.chunk.js",
|
"./static/js/147.d787fdc5.chunk.js": "/react/build/./static/js/147.d787fdc5.chunk.js",
|
||||||
"./static/js/148.8ec62071.chunk.js": "/react/build/./static/js/148.8ec62071.chunk.js",
|
"./static/js/148.39a19315.chunk.js": "/react/build/./static/js/148.39a19315.chunk.js",
|
||||||
"./static/js/149.16cf933d.chunk.js": "/react/build/./static/js/149.16cf933d.chunk.js",
|
"./static/js/149.595cf3a2.chunk.js": "/react/build/./static/js/149.595cf3a2.chunk.js",
|
||||||
"static/css/150.3edde0c7.chunk.css": "/react/build/static/css/150.3edde0c7.chunk.css",
|
"static/css/150.3edde0c7.chunk.css": "/react/build/static/css/150.3edde0c7.chunk.css",
|
||||||
"./static/js/150.73c055e9.chunk.js": "/react/build/./static/js/150.73c055e9.chunk.js",
|
"./static/js/150.73c055e9.chunk.js": "/react/build/./static/js/150.73c055e9.chunk.js",
|
||||||
"static/css/151.adba6539.chunk.css": "/react/build/static/css/151.adba6539.chunk.css",
|
"static/css/151.adba6539.chunk.css": "/react/build/static/css/151.adba6539.chunk.css",
|
||||||
"./static/js/151.6190651e.chunk.js": "/react/build/./static/js/151.6190651e.chunk.js",
|
"./static/js/151.6190651e.chunk.js": "/react/build/./static/js/151.6190651e.chunk.js",
|
||||||
"./static/js/152.9e740993.chunk.js": "/react/build/./static/js/152.9e740993.chunk.js",
|
"./static/js/152.9e740993.chunk.js": "/react/build/./static/js/152.9e740993.chunk.js",
|
||||||
"./static/js/153.e65828dc.chunk.js": "/react/build/./static/js/153.e65828dc.chunk.js",
|
"./static/js/153.a3cffbb6.chunk.js": "/react/build/./static/js/153.a3cffbb6.chunk.js",
|
||||||
"static/css/154.fd5c069f.chunk.css": "/react/build/static/css/154.fd5c069f.chunk.css",
|
"static/css/154.fd5c069f.chunk.css": "/react/build/static/css/154.fd5c069f.chunk.css",
|
||||||
"./static/js/154.86a55ec3.chunk.js": "/react/build/./static/js/154.86a55ec3.chunk.js",
|
"./static/js/154.86a55ec3.chunk.js": "/react/build/./static/js/154.86a55ec3.chunk.js",
|
||||||
"static/css/155.cbc5dafa.chunk.css": "/react/build/static/css/155.cbc5dafa.chunk.css",
|
"static/css/155.cbc5dafa.chunk.css": "/react/build/static/css/155.cbc5dafa.chunk.css",
|
||||||
|
@ -272,7 +272,7 @@
|
||||||
"./static/js/166.0c841f79.chunk.js": "/react/build/./static/js/166.0c841f79.chunk.js",
|
"./static/js/166.0c841f79.chunk.js": "/react/build/./static/js/166.0c841f79.chunk.js",
|
||||||
"static/css/167.afe8c942.chunk.css": "/react/build/static/css/167.afe8c942.chunk.css",
|
"static/css/167.afe8c942.chunk.css": "/react/build/static/css/167.afe8c942.chunk.css",
|
||||||
"./static/js/167.5b8f8f99.chunk.js": "/react/build/./static/js/167.5b8f8f99.chunk.js",
|
"./static/js/167.5b8f8f99.chunk.js": "/react/build/./static/js/167.5b8f8f99.chunk.js",
|
||||||
"static/css/168.9d206204.chunk.css": "/react/build/static/css/168.9d206204.chunk.css",
|
"static/css/168.41b8aabd.chunk.css": "/react/build/static/css/168.41b8aabd.chunk.css",
|
||||||
"./static/js/168.6928c614.chunk.js": "/react/build/./static/js/168.6928c614.chunk.js",
|
"./static/js/168.6928c614.chunk.js": "/react/build/./static/js/168.6928c614.chunk.js",
|
||||||
"./static/js/169.e0c130e0.chunk.js": "/react/build/./static/js/169.e0c130e0.chunk.js",
|
"./static/js/169.e0c130e0.chunk.js": "/react/build/./static/js/169.e0c130e0.chunk.js",
|
||||||
"./static/js/170.1b51ae43.chunk.js": "/react/build/./static/js/170.1b51ae43.chunk.js",
|
"./static/js/170.1b51ae43.chunk.js": "/react/build/./static/js/170.1b51ae43.chunk.js",
|
||||||
|
@ -337,20 +337,20 @@
|
||||||
"./static/js/229.dc1b13e7.chunk.js": "/react/build/./static/js/229.dc1b13e7.chunk.js",
|
"./static/js/229.dc1b13e7.chunk.js": "/react/build/./static/js/229.dc1b13e7.chunk.js",
|
||||||
"./static/js/230.aa0cce17.chunk.js": "/react/build/./static/js/230.aa0cce17.chunk.js",
|
"./static/js/230.aa0cce17.chunk.js": "/react/build/./static/js/230.aa0cce17.chunk.js",
|
||||||
"./static/js/231.b53914ca.chunk.js": "/react/build/./static/js/231.b53914ca.chunk.js",
|
"./static/js/231.b53914ca.chunk.js": "/react/build/./static/js/231.b53914ca.chunk.js",
|
||||||
"main.css": "/react/build/static/css/main.dea82c29.chunk.css",
|
"main.css": "/react/build/static/css/main.5c83d4d2.chunk.css",
|
||||||
"main.js": "/react/build/./static/js/main.462459e7.chunk.js",
|
"main.js": "/react/build/./static/js/main.1ba9f377.chunk.js",
|
||||||
"runtime~main.js": "/react/build/./static/js/runtime~main.d38d142a.js",
|
"runtime~main.js": "/react/build/./static/js/runtime~main.5e3e1838.js",
|
||||||
"./static/js/156.3a1c27e3.chunk.js.LICENSE.txt": "/react/build/./static/js/156.3a1c27e3.chunk.js.LICENSE.txt",
|
"./static/js/156.3a1c27e3.chunk.js.LICENSE.txt": "/react/build/./static/js/156.3a1c27e3.chunk.js.LICENSE.txt",
|
||||||
"./static/js/184.020dd8ad.chunk.js.LICENSE.txt": "/react/build/./static/js/184.020dd8ad.chunk.js.LICENSE.txt",
|
"./static/js/184.020dd8ad.chunk.js.LICENSE.txt": "/react/build/./static/js/184.020dd8ad.chunk.js.LICENSE.txt",
|
||||||
"./static/js/2.3d5eefb9.chunk.js.LICENSE.txt": "/react/build/./static/js/2.3d5eefb9.chunk.js.LICENSE.txt",
|
"./static/js/2.3d5eefb9.chunk.js.LICENSE.txt": "/react/build/./static/js/2.3d5eefb9.chunk.js.LICENSE.txt",
|
||||||
"./static/js/226.2bbe453b.chunk.js.LICENSE.txt": "/react/build/./static/js/226.2bbe453b.chunk.js.LICENSE.txt",
|
"./static/js/226.2bbe453b.chunk.js.LICENSE.txt": "/react/build/./static/js/226.2bbe453b.chunk.js.LICENSE.txt",
|
||||||
"./static/js/35.c6a1000c.chunk.js.LICENSE.txt": "/react/build/./static/js/35.c6a1000c.chunk.js.LICENSE.txt",
|
"./static/js/35.7591762b.chunk.js.LICENSE.txt": "/react/build/./static/js/35.7591762b.chunk.js.LICENSE.txt",
|
||||||
"./static/js/40.29c9e18e.chunk.js.LICENSE.txt": "/react/build/./static/js/40.29c9e18e.chunk.js.LICENSE.txt",
|
"./static/js/40.ea8a3949.chunk.js.LICENSE.txt": "/react/build/./static/js/40.ea8a3949.chunk.js.LICENSE.txt",
|
||||||
"./static/js/41.3373add4.chunk.js.LICENSE.txt": "/react/build/./static/js/41.3373add4.chunk.js.LICENSE.txt",
|
"./static/js/41.5df91ec1.chunk.js.LICENSE.txt": "/react/build/./static/js/41.5df91ec1.chunk.js.LICENSE.txt",
|
||||||
"./static/js/42.e886ac62.chunk.js.LICENSE.txt": "/react/build/./static/js/42.e886ac62.chunk.js.LICENSE.txt",
|
"./static/js/42.38965cff.chunk.js.LICENSE.txt": "/react/build/./static/js/42.38965cff.chunk.js.LICENSE.txt",
|
||||||
"./static/js/8.eccc3ccc.chunk.js.LICENSE.txt": "/react/build/./static/js/8.eccc3ccc.chunk.js.LICENSE.txt",
|
"./static/js/8.eccc3ccc.chunk.js.LICENSE.txt": "/react/build/./static/js/8.eccc3ccc.chunk.js.LICENSE.txt",
|
||||||
"./static/js/9.1b19f465.chunk.js.LICENSE.txt": "/react/build/./static/js/9.1b19f465.chunk.js.LICENSE.txt",
|
"./static/js/9.1b19f465.chunk.js.LICENSE.txt": "/react/build/./static/js/9.1b19f465.chunk.js.LICENSE.txt",
|
||||||
"./static/js/main.462459e7.chunk.js.LICENSE.txt": "/react/build/./static/js/main.462459e7.chunk.js.LICENSE.txt",
|
"./static/js/main.1ba9f377.chunk.js.LICENSE.txt": "/react/build/./static/js/main.1ba9f377.chunk.js.LICENSE.txt",
|
||||||
"css.worker.js": "/react/build/css.worker.js",
|
"css.worker.js": "/react/build/css.worker.js",
|
||||||
"editor.worker.js": "/react/build/editor.worker.js",
|
"editor.worker.js": "/react/build/editor.worker.js",
|
||||||
"html.worker.js": "/react/build/html.worker.js",
|
"html.worker.js": "/react/build/html.worker.js",
|
||||||
|
@ -437,8 +437,8 @@
|
||||||
"static/media/fun3.png": "/react/build/static/media/fun3.75c280e6.png",
|
"static/media/fun3.png": "/react/build/static/media/fun3.75c280e6.png",
|
||||||
"static/media/fun4.png": "/react/build/static/media/fun4.f499794e.png",
|
"static/media/fun4.png": "/react/build/static/media/fun4.f499794e.png",
|
||||||
"static/media/fun5.png": "/react/build/static/media/fun5.96b44942.png",
|
"static/media/fun5.png": "/react/build/static/media/fun5.96b44942.png",
|
||||||
"static/media/gitee1.svg": "/react/build/static/media/gitee1.0c13ef7b.svg",
|
"static/media/gitee1.svg": "/react/build/static/media/gitee1.279a922b.svg",
|
||||||
"static/media/github2.svg": "/react/build/static/media/github2.7d5cc0ba.svg",
|
"static/media/github2.svg": "/react/build/static/media/github2.95ea181b.svg",
|
||||||
"static/media/gitlink1.png": "/react/build/static/media/gitlink1.4bf0ed96.png",
|
"static/media/gitlink1.png": "/react/build/static/media/gitlink1.4bf0ed96.png",
|
||||||
"static/media/gitlink2.png": "/react/build/static/media/gitlink2.0ec0ec22.png",
|
"static/media/gitlink2.png": "/react/build/static/media/gitlink2.0ec0ec22.png",
|
||||||
"static/media/head.png": "/react/build/static/media/head.52aa3fc8.png",
|
"static/media/head.png": "/react/build/static/media/head.52aa3fc8.png",
|
||||||
|
@ -446,7 +446,7 @@
|
||||||
"static/media/help_bg.png": "/react/build/static/media/help_bg.d2bb4c18.png",
|
"static/media/help_bg.png": "/react/build/static/media/help_bg.d2bb4c18.png",
|
||||||
"static/media/huake.png": "/react/build/static/media/huake.63b6a34d.png",
|
"static/media/huake.png": "/react/build/static/media/huake.63b6a34d.png",
|
||||||
"static/media/huawei.png": "/react/build/static/media/huawei.73ec7c22.png",
|
"static/media/huawei.png": "/react/build/static/media/huawei.73ec7c22.png",
|
||||||
"static/media/Teaching.scss": "/react/build/static/media/image22.d4d77f6c.svg",
|
"static/media/Teaching.scss": "/react/build/static/media/image22.6ff2b063.svg",
|
||||||
"static/media/img1.png": "/react/build/static/media/img1.fc155528.png",
|
"static/media/img1.png": "/react/build/static/media/img1.fc155528.png",
|
||||||
"static/media/img10.png": "/react/build/static/media/img10.64149a3d.png",
|
"static/media/img10.png": "/react/build/static/media/img10.64149a3d.png",
|
||||||
"static/media/img15.png": "/react/build/static/media/img15.87a3556c.png",
|
"static/media/img15.png": "/react/build/static/media/img15.87a3556c.png",
|
||||||
|
@ -474,7 +474,7 @@
|
||||||
"static/media/mulan.png": "/react/build/static/media/mulan.690d2289.png",
|
"static/media/mulan.png": "/react/build/static/media/mulan.690d2289.png",
|
||||||
"static/media/nodata.png": "/react/build/static/media/nodata.298b1c41.png",
|
"static/media/nodata.png": "/react/build/static/media/nodata.298b1c41.png",
|
||||||
"static/media/TPMIndex.css": "/react/build/static/media/nps2.d5d0b666.png",
|
"static/media/TPMIndex.css": "/react/build/static/media/nps2.d5d0b666.png",
|
||||||
"static/media/phone.svg": "/react/build/static/media/phone.8973db9e.svg",
|
"static/media/phone.svg": "/react/build/static/media/phone.14961064.svg",
|
||||||
"static/media/qqChat.png": "/react/build/static/media/qqChat.9e56cc22.png",
|
"static/media/qqChat.png": "/react/build/static/media/qqChat.9e56cc22.png",
|
||||||
"static/media/resultBanner.png": "/react/build/static/media/resultBanner.152068bc.png",
|
"static/media/resultBanner.png": "/react/build/static/media/resultBanner.152068bc.png",
|
||||||
"static/media/resultBanner2.png": "/react/build/static/media/resultBanner2.c3095c5d.png",
|
"static/media/resultBanner2.png": "/react/build/static/media/resultBanner2.c3095c5d.png",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,239 +1,239 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* KindEditor - WYSIWYG HTML Editor for Internet
|
* KindEditor - WYSIWYG HTML Editor for Internet
|
||||||
* Copyright (C) 2006-2011 kindsoft.net
|
* Copyright (C) 2006-2011 kindsoft.net
|
||||||
*
|
*
|
||||||
* @author Roddy <luolonghao@gmail.com>
|
* @author Roddy <luolonghao@gmail.com>
|
||||||
* @site http://www.kindsoft.net/
|
* @site http://www.kindsoft.net/
|
||||||
* @licence http://www.kindsoft.net/license.php
|
* @licence http://www.kindsoft.net/license.php
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
KindEditor.lang({
|
KindEditor.lang({
|
||||||
imagedirectupload:'本地图片',
|
imagedirectupload:'本地图片',
|
||||||
more: '切换到更多功能',
|
more: '切换到更多功能',
|
||||||
less: '切换到简单功能',
|
less: '切换到简单功能',
|
||||||
source : 'HTML代码',
|
source : 'HTML代码',
|
||||||
preview : '预览',
|
preview : '预览',
|
||||||
undo : '后退(Ctrl+Z)',
|
undo : '后退(Ctrl+Z)',
|
||||||
redo : '前进(Ctrl+Y)',
|
redo : '前进(Ctrl+Y)',
|
||||||
cut : '剪切(Ctrl+X)',
|
cut : '剪切(Ctrl+X)',
|
||||||
copy : '复制(Ctrl+C)',
|
copy : '复制(Ctrl+C)',
|
||||||
paste : '粘贴(Ctrl+V)',
|
paste : '粘贴(Ctrl+V)',
|
||||||
plainpaste : '粘贴为无格式文本',
|
plainpaste : '粘贴为无格式文本',
|
||||||
wordpaste : '从Word粘贴',
|
wordpaste : '从Word粘贴',
|
||||||
selectall : '全选(Ctrl+A)',
|
selectall : '全选(Ctrl+A)',
|
||||||
justifyleft : '左对齐',
|
justifyleft : '左对齐',
|
||||||
justifycenter : '居中',
|
justifycenter : '居中',
|
||||||
justifyright : '右对齐',
|
justifyright : '右对齐',
|
||||||
justifyfull : '两端对齐',
|
justifyfull : '两端对齐',
|
||||||
insertorderedlist : '编号',
|
insertorderedlist : '编号',
|
||||||
insertunorderedlist : '项目符号',
|
insertunorderedlist : '项目符号',
|
||||||
indent : '增加缩进',
|
indent : '增加缩进',
|
||||||
outdent : '减少缩进',
|
outdent : '减少缩进',
|
||||||
subscript : '下标',
|
subscript : '下标',
|
||||||
superscript : '上标',
|
superscript : '上标',
|
||||||
formatblock : '段落',
|
formatblock : '段落',
|
||||||
fontname : '字体',
|
fontname : '字体',
|
||||||
fontsize : '文字大小',
|
fontsize : '文字大小',
|
||||||
forecolor : '文字颜色',
|
forecolor : '文字颜色',
|
||||||
hilitecolor : '文字背景',
|
hilitecolor : '文字背景',
|
||||||
bold : '粗体(Ctrl+B)',
|
bold : '粗体(Ctrl+B)',
|
||||||
italic : '斜体(Ctrl+I)',
|
italic : '斜体(Ctrl+I)',
|
||||||
underline : '下划线(Ctrl+U)',
|
underline : '下划线(Ctrl+U)',
|
||||||
strikethrough : '删除线',
|
strikethrough : '删除线',
|
||||||
removeformat : '删除格式',
|
removeformat : '删除格式',
|
||||||
image : '图片',
|
image : '图片',
|
||||||
multiimage : '批量图片上传',
|
multiimage : '批量图片上传',
|
||||||
flash : 'Flash',
|
flash : 'Flash',
|
||||||
media : '视音频',
|
media : '视音频',
|
||||||
table : '表格',
|
table : '表格',
|
||||||
tablecell : '单元格',
|
tablecell : '单元格',
|
||||||
hr : '插入横线',
|
hr : '插入横线',
|
||||||
emoticons : '插入表情',
|
emoticons : '插入表情',
|
||||||
link : '超级链接',
|
link : '超级链接',
|
||||||
unlink : '取消超级链接',
|
unlink : '取消超级链接',
|
||||||
fullscreen : '全屏显示',
|
fullscreen : '全屏显示',
|
||||||
about : '关于',
|
about : '关于',
|
||||||
print : '打印(Ctrl+P)',
|
print : '打印(Ctrl+P)',
|
||||||
filemanager : '文件空间',
|
filemanager : '文件空间',
|
||||||
code : '插入程序代码',
|
code : '插入程序代码',
|
||||||
map : 'Google地图',
|
map : 'Google地图',
|
||||||
baidumap : '百度地图',
|
baidumap : '百度地图',
|
||||||
lineheight : '行距',
|
lineheight : '行距',
|
||||||
clearhtml : '清理HTML代码',
|
clearhtml : '清理HTML代码',
|
||||||
pagebreak : '插入分页符',
|
pagebreak : '插入分页符',
|
||||||
quickformat : '一键排版',
|
quickformat : '一键排版',
|
||||||
insertfile : '插入文件',
|
insertfile : '插入文件',
|
||||||
template : '插入模板',
|
template : '插入模板',
|
||||||
anchor : '锚点',
|
anchor : '锚点',
|
||||||
yes : '确定',
|
yes : '确定',
|
||||||
no : '取消',
|
no : '取消',
|
||||||
close : '关闭',
|
close : '关闭',
|
||||||
editImage : '图片属性',
|
editImage : '图片属性',
|
||||||
deleteImage : '删除图片',
|
deleteImage : '删除图片',
|
||||||
editFlash : 'Flash属性',
|
editFlash : 'Flash属性',
|
||||||
deleteFlash : '删除Flash',
|
deleteFlash : '删除Flash',
|
||||||
editMedia : '视音频属性',
|
editMedia : '视音频属性',
|
||||||
deleteMedia : '删除视音频',
|
deleteMedia : '删除视音频',
|
||||||
editLink : '超级链接属性',
|
editLink : '超级链接属性',
|
||||||
deleteLink : '取消超级链接',
|
deleteLink : '取消超级链接',
|
||||||
editAnchor : '锚点属性',
|
editAnchor : '锚点属性',
|
||||||
deleteAnchor : '删除锚点',
|
deleteAnchor : '删除锚点',
|
||||||
tableprop : '表格属性',
|
tableprop : '表格属性',
|
||||||
tablecellprop : '单元格属性',
|
tablecellprop : '单元格属性',
|
||||||
tableinsert : '插入表格',
|
tableinsert : '插入表格',
|
||||||
tabledelete : '删除表格',
|
tabledelete : '删除表格',
|
||||||
tablecolinsertleft : '左侧插入列',
|
tablecolinsertleft : '左侧插入列',
|
||||||
tablecolinsertright : '右侧插入列',
|
tablecolinsertright : '右侧插入列',
|
||||||
tablerowinsertabove : '上方插入行',
|
tablerowinsertabove : '上方插入行',
|
||||||
tablerowinsertbelow : '下方插入行',
|
tablerowinsertbelow : '下方插入行',
|
||||||
tablerowmerge : '向下合并单元格',
|
tablerowmerge : '向下合并单元格',
|
||||||
tablecolmerge : '向右合并单元格',
|
tablecolmerge : '向右合并单元格',
|
||||||
tablerowsplit : '拆分行',
|
tablerowsplit : '拆分行',
|
||||||
tablecolsplit : '拆分列',
|
tablecolsplit : '拆分列',
|
||||||
tablecoldelete : '删除列',
|
tablecoldelete : '删除列',
|
||||||
tablerowdelete : '删除行',
|
tablerowdelete : '删除行',
|
||||||
noColor : '无颜色',
|
noColor : '无颜色',
|
||||||
pleaseSelectFile : '请选择文件。',
|
pleaseSelectFile : '请选择文件。',
|
||||||
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
|
invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",
|
||||||
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
|
invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",
|
||||||
invalidWidth : "宽度必须为数字。",
|
invalidWidth : "宽度必须为数字。",
|
||||||
invalidHeight : "高度必须为数字。",
|
invalidHeight : "高度必须为数字。",
|
||||||
invalidBorder : "边框必须为数字。",
|
invalidBorder : "边框必须为数字。",
|
||||||
invalidUrl : "请输入有效的URL地址。",
|
invalidUrl : "请输入有效的URL地址。",
|
||||||
invalidRows : '行数为必选项,只允许输入大于0的数字。',
|
invalidRows : '行数为必选项,只允许输入大于0的数字。',
|
||||||
invalidCols : '列数为必选项,只允许输入大于0的数字。',
|
invalidCols : '列数为必选项,只允许输入大于0的数字。',
|
||||||
invalidPadding : '边距必须为数字。',
|
invalidPadding : '边距必须为数字。',
|
||||||
invalidSpacing : '间距必须为数字。',
|
invalidSpacing : '间距必须为数字。',
|
||||||
invalidJson : '服务器发生故障。',
|
invalidJson : '服务器发生故障。',
|
||||||
uploadSuccess : '上传成功。',
|
uploadSuccess : '上传成功。',
|
||||||
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
|
cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。',
|
||||||
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
|
copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。',
|
||||||
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
|
pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。',
|
||||||
ajaxLoading : '加载中,请稍候 ...',
|
ajaxLoading : '加载中,请稍候 ...',
|
||||||
uploadLoading : '上传中,请稍候 ...',
|
uploadLoading : '上传中,请稍候 ...',
|
||||||
uploadError : '上传错误',
|
uploadError : '上传错误',
|
||||||
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
|
'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
|
||||||
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
|
'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。',
|
||||||
'code.pleaseInput' : '请输入程序代码。',
|
'code.pleaseInput' : '请输入程序代码。',
|
||||||
'link.url' : 'URL',
|
'link.url' : 'URL',
|
||||||
'link.linkType' : '打开类型',
|
'link.linkType' : '打开类型',
|
||||||
'link.newWindow' : '新窗口',
|
'link.newWindow' : '新窗口',
|
||||||
'link.selfWindow' : '当前窗口',
|
'link.selfWindow' : '当前窗口',
|
||||||
'flash.url' : 'URL',
|
'flash.url' : 'URL',
|
||||||
'flash.width' : '宽度',
|
'flash.width' : '宽度',
|
||||||
'flash.height' : '高度',
|
'flash.height' : '高度',
|
||||||
'flash.upload' : '上传',
|
'flash.upload' : '上传',
|
||||||
'flash.viewServer' : '文件空间',
|
'flash.viewServer' : '文件空间',
|
||||||
'media.url' : 'URL',
|
'media.url' : 'URL',
|
||||||
'media.width' : '宽度',
|
'media.width' : '宽度',
|
||||||
'media.height' : '高度',
|
'media.height' : '高度',
|
||||||
'media.autostart' : '自动播放',
|
'media.autostart' : '自动播放',
|
||||||
'media.upload' : '上传',
|
'media.upload' : '上传',
|
||||||
'media.viewServer' : '文件空间',
|
'media.viewServer' : '文件空间',
|
||||||
'image.remoteImage' : '网络图片',
|
'image.remoteImage' : '网络图片',
|
||||||
'image.localImage' : '本地上传',
|
'image.localImage' : '本地上传',
|
||||||
'image.remoteUrl' : '图片地址',
|
'image.remoteUrl' : '图片地址',
|
||||||
'image.localUrl' : '上传文件',
|
'image.localUrl' : '上传文件',
|
||||||
'image.size' : '图片大小',
|
'image.size' : '图片大小',
|
||||||
'image.width' : '宽',
|
'image.width' : '宽',
|
||||||
'image.height' : '高',
|
'image.height' : '高',
|
||||||
'image.resetSize' : '重置大小',
|
'image.resetSize' : '重置大小',
|
||||||
'image.align' : '对齐方式',
|
'image.align' : '对齐方式',
|
||||||
'image.defaultAlign' : '默认方式',
|
'image.defaultAlign' : '默认方式',
|
||||||
'image.leftAlign' : '左对齐',
|
'image.leftAlign' : '左对齐',
|
||||||
'image.rightAlign' : '右对齐',
|
'image.rightAlign' : '右对齐',
|
||||||
'image.imgTitle' : '图片说明',
|
'image.imgTitle' : '图片说明',
|
||||||
'image.upload' : '浏览...',
|
'image.upload' : '浏览...',
|
||||||
'image.viewServer' : '图片空间',
|
'image.viewServer' : '图片空间',
|
||||||
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
|
'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>',
|
||||||
'multiimage.startUpload' : '开始上传',
|
'multiimage.startUpload' : '开始上传',
|
||||||
'multiimage.clearAll' : '全部清空',
|
'multiimage.clearAll' : '全部清空',
|
||||||
'multiimage.insertAll' : '全部插入',
|
'multiimage.insertAll' : '全部插入',
|
||||||
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
|
'multiimage.queueLimitExceeded' : '文件数量超过限制。',
|
||||||
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
|
'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。',
|
||||||
'multiimage.zeroByteFile' : '无法上传空文件。',
|
'multiimage.zeroByteFile' : '无法上传空文件。',
|
||||||
'multiimage.invalidFiletype' : '文件类型不正确。',
|
'multiimage.invalidFiletype' : '文件类型不正确。',
|
||||||
'multiimage.unknownError' : '发生异常,无法上传。',
|
'multiimage.unknownError' : '发生异常,无法上传。',
|
||||||
'multiimage.pending' : '等待上传',
|
'multiimage.pending' : '等待上传',
|
||||||
'multiimage.uploadError' : '上传失败',
|
'multiimage.uploadError' : '上传失败',
|
||||||
'filemanager.emptyFolder' : '空文件夹',
|
'filemanager.emptyFolder' : '空文件夹',
|
||||||
'filemanager.moveup' : '移到上一级文件夹',
|
'filemanager.moveup' : '移到上一级文件夹',
|
||||||
'filemanager.viewType' : '显示方式:',
|
'filemanager.viewType' : '显示方式:',
|
||||||
'filemanager.viewImage' : '缩略图',
|
'filemanager.viewImage' : '缩略图',
|
||||||
'filemanager.listImage' : '详细信息',
|
'filemanager.listImage' : '详细信息',
|
||||||
'filemanager.orderType' : '排序方式:',
|
'filemanager.orderType' : '排序方式:',
|
||||||
'filemanager.fileName' : '名称',
|
'filemanager.fileName' : '名称',
|
||||||
'filemanager.fileSize' : '大小',
|
'filemanager.fileSize' : '大小',
|
||||||
'filemanager.fileType' : '类型',
|
'filemanager.fileType' : '类型',
|
||||||
'insertfile.url' : 'URL',
|
'insertfile.url' : 'URL',
|
||||||
'insertfile.title' : '文件说明',
|
'insertfile.title' : '文件说明',
|
||||||
'insertfile.upload' : '上传',
|
'insertfile.upload' : '上传',
|
||||||
'insertfile.viewServer' : '文件空间',
|
'insertfile.viewServer' : '文件空间',
|
||||||
'table.cells' : '单元格数',
|
'table.cells' : '单元格数',
|
||||||
'table.rows' : '行数',
|
'table.rows' : '行数',
|
||||||
'table.cols' : '列数',
|
'table.cols' : '列数',
|
||||||
'table.size' : '大小',
|
'table.size' : '大小',
|
||||||
'table.width' : '宽度',
|
'table.width' : '宽度',
|
||||||
'table.height' : '高度',
|
'table.height' : '高度',
|
||||||
'table.percent' : '%',
|
'table.percent' : '%',
|
||||||
'table.px' : 'px',
|
'table.px' : 'px',
|
||||||
'table.space' : '边距间距',
|
'table.space' : '边距间距',
|
||||||
'table.padding' : '边距',
|
'table.padding' : '边距',
|
||||||
'table.spacing' : '间距',
|
'table.spacing' : '间距',
|
||||||
'table.align' : '对齐方式',
|
'table.align' : '对齐方式',
|
||||||
'table.textAlign' : '水平对齐',
|
'table.textAlign' : '水平对齐',
|
||||||
'table.verticalAlign' : '垂直对齐',
|
'table.verticalAlign' : '垂直对齐',
|
||||||
'table.alignDefault' : '默认',
|
'table.alignDefault' : '默认',
|
||||||
'table.alignLeft' : '左对齐',
|
'table.alignLeft' : '左对齐',
|
||||||
'table.alignCenter' : '居中',
|
'table.alignCenter' : '居中',
|
||||||
'table.alignRight' : '右对齐',
|
'table.alignRight' : '右对齐',
|
||||||
'table.alignTop' : '顶部',
|
'table.alignTop' : '顶部',
|
||||||
'table.alignMiddle' : '中部',
|
'table.alignMiddle' : '中部',
|
||||||
'table.alignBottom' : '底部',
|
'table.alignBottom' : '底部',
|
||||||
'table.alignBaseline' : '基线',
|
'table.alignBaseline' : '基线',
|
||||||
'table.border' : '边框',
|
'table.border' : '边框',
|
||||||
'table.borderWidth' : '边框',
|
'table.borderWidth' : '边框',
|
||||||
'table.borderColor' : '颜色',
|
'table.borderColor' : '颜色',
|
||||||
'table.backgroundColor' : '背景颜色',
|
'table.backgroundColor' : '背景颜色',
|
||||||
'map.address' : '地址: ',
|
'map.address' : '地址: ',
|
||||||
'map.search' : '搜索',
|
'map.search' : '搜索',
|
||||||
'baidumap.address' : '地址: ',
|
'baidumap.address' : '地址: ',
|
||||||
'baidumap.search' : '搜索',
|
'baidumap.search' : '搜索',
|
||||||
'baidumap.insertDynamicMap' : '插入动态地图',
|
'baidumap.insertDynamicMap' : '插入动态地图',
|
||||||
'anchor.name' : '锚点名称',
|
'anchor.name' : '锚点名称',
|
||||||
'formatblock.formatBlock' : {
|
'formatblock.formatBlock' : {
|
||||||
h1 : '标题 1',
|
h1 : '标题 1',
|
||||||
h2 : '标题 2',
|
h2 : '标题 2',
|
||||||
h3 : '标题 3',
|
h3 : '标题 3',
|
||||||
h4 : '标题 4',
|
h4 : '标题 4',
|
||||||
p : '正 文'
|
p : '正 文'
|
||||||
},
|
},
|
||||||
'fontname.fontName' : {
|
'fontname.fontName' : {
|
||||||
'SimSun' : '宋体',
|
'SimSun' : '宋体',
|
||||||
'NSimSun' : '新宋体',
|
'NSimSun' : '新宋体',
|
||||||
'FangSong_GB2312' : '仿宋_GB2312',
|
'FangSong_GB2312' : '仿宋_GB2312',
|
||||||
'KaiTi_GB2312' : '楷体_GB2312',
|
'KaiTi_GB2312' : '楷体_GB2312',
|
||||||
'SimHei' : '黑体',
|
'SimHei' : '黑体',
|
||||||
'Microsoft YaHei' : '微软雅黑',
|
'Microsoft YaHei' : '微软雅黑',
|
||||||
'Arial' : 'Arial',
|
'Arial' : 'Arial',
|
||||||
'Arial Black' : 'Arial Black',
|
'Arial Black' : 'Arial Black',
|
||||||
'Times New Roman' : 'Times New Roman',
|
'Times New Roman' : 'Times New Roman',
|
||||||
'Courier New' : 'Courier New',
|
'Courier New' : 'Courier New',
|
||||||
'Tahoma' : 'Tahoma',
|
'Tahoma' : 'Tahoma',
|
||||||
'Verdana' : 'Verdana'
|
'Verdana' : 'Verdana'
|
||||||
},
|
},
|
||||||
'lineheight.lineHeight' : [
|
'lineheight.lineHeight' : [
|
||||||
{'1' : '单倍行距'},
|
{'1' : '单倍行距'},
|
||||||
{'1.5' : '1.5倍行距'},
|
{'1.5' : '1.5倍行距'},
|
||||||
{'2' : '2倍行距'},
|
{'2' : '2倍行距'},
|
||||||
{'2.5' : '2.5倍行距'},
|
{'2.5' : '2.5倍行距'},
|
||||||
{'3' : '3倍行距'}
|
{'3' : '3倍行距'}
|
||||||
],
|
],
|
||||||
'template.selectTemplate' : '可选模板',
|
'template.selectTemplate' : '可选模板',
|
||||||
'template.replaceContent' : '替换当前内容',
|
'template.replaceContent' : '替换当前内容',
|
||||||
'template.fileList' : {
|
'template.fileList' : {
|
||||||
'1.html' : '图片和文字',
|
'1.html' : '图片和文字',
|
||||||
'2.html' : '表格',
|
'2.html' : '表格',
|
||||||
'3.html' : '项目编号'
|
'3.html' : '项目编号'
|
||||||
}
|
}
|
||||||
}, 'zh_CN');
|
}, 'zh_CN');
|
||||||
|
|
|
@ -1,71 +1,71 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* KindEditor - WYSIWYG HTML Editor for Internet
|
* KindEditor - WYSIWYG HTML Editor for Internet
|
||||||
* Copyright (C) 2006-2011 kindsoft.net
|
* Copyright (C) 2006-2011 kindsoft.net
|
||||||
*
|
*
|
||||||
* @author Roddy <luolonghao@gmail.com>
|
* @author Roddy <luolonghao@gmail.com>
|
||||||
* @site http://www.kindsoft.net/
|
* @site http://www.kindsoft.net/
|
||||||
* @licence http://www.kindsoft.net/license.php
|
* @licence http://www.kindsoft.net/license.php
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
KindEditor.plugin('autoheight', function(K) {
|
KindEditor.plugin('autoheight', function(K) {
|
||||||
var self = this;
|
var self = this;
|
||||||
//self.autoHeightMode = true;
|
//self.autoHeightMode = true;
|
||||||
if (!self.autoHeightMode) {
|
if (!self.autoHeightMode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var minHeight;
|
var minHeight;
|
||||||
|
|
||||||
function hideScroll() {
|
function hideScroll() {
|
||||||
var edit = self.edit;
|
var edit = self.edit;
|
||||||
var body = edit.doc.body;
|
var body = edit.doc.body;
|
||||||
edit.iframe[0].scroll = 'no';
|
edit.iframe[0].scroll = 'no';
|
||||||
body.style.overflowY = 'hidden';
|
body.style.overflowY = 'hidden';
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetHeight() {
|
function resetHeight() {
|
||||||
var edit = self.edit;
|
var edit = self.edit;
|
||||||
var body = edit.doc.body;
|
var body = edit.doc.body;
|
||||||
edit.iframe.height(minHeight);
|
edit.iframe.height(minHeight);
|
||||||
|
|
||||||
//最高418 超过用滚动条
|
//最高418 超过用滚动条
|
||||||
self.resize(null, Math.max(
|
self.resize(null, Math.max(
|
||||||
(K.IE ? body.scrollHeight : body.offsetHeight) > 385 ? 385+33 : (K.IE ? body.scrollHeight : body.offsetHeight)
|
(K.IE ? body.scrollHeight : body.offsetHeight) > 385 ? 385+33 : (K.IE ? body.scrollHeight : body.offsetHeight)
|
||||||
+ 33, minHeight));
|
+ 33, minHeight));
|
||||||
|
|
||||||
if( self.height == "418px" ){
|
if( self.height == "418px" ){
|
||||||
edit.iframe[0].scroll = 'yes';
|
edit.iframe[0].scroll = 'yes';
|
||||||
body.style.overflowY = 'auto';
|
body.style.overflowY = 'auto';
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
hideScroll();
|
hideScroll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
minHeight = K.removeUnit(self.height);
|
minHeight = K.removeUnit(self.height);
|
||||||
|
|
||||||
self.edit.afterChange(resetHeight);
|
self.edit.afterChange(resetHeight);
|
||||||
hideScroll();
|
hideScroll();
|
||||||
var edit = self.edit;
|
var edit = self.edit;
|
||||||
var body = edit.doc.body;
|
var body = edit.doc.body;
|
||||||
edit.iframe.height(minHeight);
|
edit.iframe.height(minHeight);
|
||||||
self.resize(null, Math.max(
|
self.resize(null, Math.max(
|
||||||
((K.IE ? body.scrollHeight : body.offsetHeight) > 250 ? 250 : (K.IE ? body.scrollHeight : body.offsetHeight)) //限制初始化太高的情况
|
((K.IE ? body.scrollHeight : body.offsetHeight) > 250 ? 250 : (K.IE ? body.scrollHeight : body.offsetHeight)) //限制初始化太高的情况
|
||||||
+ 33, minHeight));
|
+ 33, minHeight));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.isCreated) {
|
if (self.isCreated) {
|
||||||
init();
|
init();
|
||||||
} else {
|
} else {
|
||||||
self.afterCreate(init);
|
self.afterCreate(init);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 如何实现真正的自动高度?
|
* 如何实现真正的自动高度?
|
||||||
* 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。
|
* 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。
|
||||||
* 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。
|
* 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。
|
||||||
* 由此就实现了真正的自动高度
|
* 由此就实现了真正的自动高度
|
||||||
* 测试:chrome、firefox、IE9、IE8
|
* 测试:chrome、firefox、IE9、IE8
|
||||||
* */
|
* */
|
||||||
|
|
|
@ -1,56 +1,56 @@
|
||||||
.ke-content {
|
.ke-content {
|
||||||
font-family: "微软雅黑","宋体";
|
font-family: "微软雅黑","宋体";
|
||||||
}
|
}
|
||||||
.ke-content pre {
|
.ke-content pre {
|
||||||
font-size:9pt;
|
font-size:9pt;
|
||||||
font-family:Courier New,Arial;
|
font-family:Courier New,Arial;
|
||||||
border:1px solid #ddd;
|
border:1px solid #ddd;
|
||||||
border-left:5px solid #6CE26C;
|
border-left:5px solid #6CE26C;
|
||||||
background:#f6f6f6;
|
background:#f6f6f6;
|
||||||
padding:5px;
|
padding:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content code {
|
.ke-content code {
|
||||||
margin: 0 2px;
|
margin: 0 2px;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
border: 1px solid #DDD;
|
border: 1px solid #DDD;
|
||||||
background-color: #F6F6F6;
|
background-color: #F6F6F6;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content pre>code {
|
.ke-content pre>code {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
border: none;
|
border: none;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content pre code {
|
.ke-content pre code {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content p {
|
.ke-content p {
|
||||||
/*margin: 0 0 15px 0;*/
|
/*margin: 0 0 15px 0;*/
|
||||||
/*margin-bottom:15pt;*/
|
/*margin-bottom:15pt;*/
|
||||||
line-height:1.5;
|
line-height:1.5;
|
||||||
/*letter-spacing: 1px;*/
|
/*letter-spacing: 1px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.ke-content div.ref {border:1px solid #ddd;margin:0 0 10px 0;padding:2px;font-size:9pt;background:#ffe;}
|
.ke-content div.ref {border:1px solid #ddd;margin:0 0 10px 0;padding:2px;font-size:9pt;background:#ffe;}
|
||||||
.ke-content div.ref h4 {margin:0;padding:1px 3px;background:#CC9966;color:#fff;font-size:9pt;font-weight:normal;}
|
.ke-content div.ref h4 {margin:0;padding:1px 3px;background:#CC9966;color:#fff;font-size:9pt;font-weight:normal;}
|
||||||
.ke-content div.ref .ref_body {margin:0;padding:2px;line-height:20px;color:#666;font-size:9pt;}
|
.ke-content div.ref .ref_body {margin:0;padding:2px;line-height:20px;color:#666;font-size:9pt;}
|
||||||
|
|
||||||
|
|
||||||
.ke-content blockquote{background: none;border: none;padding: 0px;margin: 0 0 0 40px;}
|
.ke-content blockquote{background: none;border: none;padding: 0px;margin: 0 0 0 40px;}
|
||||||
span.at {color:#269ac9;}
|
span.at {color:#269ac9;}
|
||||||
span.at a{color:#269ac9;text-decoration: none;}
|
span.at a{color:#269ac9;text-decoration: none;}
|
||||||
|
|
||||||
/*yk*/
|
/*yk*/
|
||||||
.ke-content ol li{list-style-type: decimal;}
|
.ke-content ol li{list-style-type: decimal;}
|
||||||
.ke-content ul li{list-style-type: disc;}
|
.ke-content ul li{list-style-type: disc;}
|
||||||
.ke-content ol,.ke-content ul,.ke-content h1,.ke-content h2,.ke-content h3,.ke-content h4{margin-top:0;margin-bottom: 0;}
|
.ke-content ol,.ke-content ul,.ke-content h1,.ke-content h2,.ke-content h3,.ke-content h4{margin-top:0;margin-bottom: 0;}
|
||||||
.ke-content a{color: #136ec2;}
|
.ke-content a{color: #136ec2;}
|
||||||
.ke-content a:link,.ke-content a:visited{text-decoration:none;}
|
.ke-content a:link,.ke-content a:visited{text-decoration:none;}
|
||||||
|
|
|
@ -1,361 +1,361 @@
|
||||||
// Generated by CoffeeScript 1.9.0
|
// Generated by CoffeeScript 1.9.0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
|
paste.js is an interface to read data ( text / image ) from clipboard in different browsers. It also contains several hacks.
|
||||||
https://github.com/layerssss/paste.js
|
https://github.com/layerssss/paste.js
|
||||||
*/
|
*/
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
var $, Paste, createHiddenEditable, dataURLtoBlob;
|
var $, Paste, createHiddenEditable, dataURLtoBlob;
|
||||||
|
|
||||||
$ = window.jQuery;
|
$ = window.jQuery;
|
||||||
|
|
||||||
$.paste = function(pasteContainer) {
|
$.paste = function(pasteContainer) {
|
||||||
var pm;
|
var pm;
|
||||||
if (typeof console !== "undefined" && console !== null) {
|
if (typeof console !== "undefined" && console !== null) {
|
||||||
console.log("DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.");
|
console.log("DEPRECATED: This method is deprecated. Please use $.fn.pastableNonInputable() instead.");
|
||||||
}
|
}
|
||||||
pm = Paste.mountNonInputable(pasteContainer);
|
pm = Paste.mountNonInputable(pasteContainer);
|
||||||
return pm._container;
|
return pm._container;
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.pastableNonInputable = function() {
|
$.fn.pastableNonInputable = function() {
|
||||||
var el, _i, _len;
|
var el, _i, _len;
|
||||||
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
||||||
el = this[_i];
|
el = this[_i];
|
||||||
Paste.mountNonInputable(el);
|
Paste.mountNonInputable(el);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.pastableTextarea = function() {
|
$.fn.pastableTextarea = function() {
|
||||||
var el, _i, _len;
|
var el, _i, _len;
|
||||||
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
||||||
el = this[_i];
|
el = this[_i];
|
||||||
Paste.mountTextarea(el);
|
Paste.mountTextarea(el);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.pastableContenteditable = function() {
|
$.fn.pastableContenteditable = function() {
|
||||||
var el, _i, _len;
|
var el, _i, _len;
|
||||||
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
||||||
el = this[_i];
|
el = this[_i];
|
||||||
Paste.mountContenteditable(el);
|
Paste.mountContenteditable(el);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
dataURLtoBlob = function(dataURL, sliceSize) {
|
dataURLtoBlob = function(dataURL, sliceSize) {
|
||||||
var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, slice, _ref;
|
var b64Data, byteArray, byteArrays, byteCharacters, byteNumbers, contentType, i, m, offset, slice, _ref;
|
||||||
if (sliceSize == null) {
|
if (sliceSize == null) {
|
||||||
sliceSize = 512;
|
sliceSize = 512;
|
||||||
}
|
}
|
||||||
if (!(m = dataURL.match(/^data\:([^\;]+)\;base64\,(.+)$/))) {
|
if (!(m = dataURL.match(/^data\:([^\;]+)\;base64\,(.+)$/))) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
_ref = m, m = _ref[0], contentType = _ref[1], b64Data = _ref[2];
|
_ref = m, m = _ref[0], contentType = _ref[1], b64Data = _ref[2];
|
||||||
byteCharacters = atob(b64Data);
|
byteCharacters = atob(b64Data);
|
||||||
byteArrays = [];
|
byteArrays = [];
|
||||||
offset = 0;
|
offset = 0;
|
||||||
while (offset < byteCharacters.length) {
|
while (offset < byteCharacters.length) {
|
||||||
slice = byteCharacters.slice(offset, offset + sliceSize);
|
slice = byteCharacters.slice(offset, offset + sliceSize);
|
||||||
byteNumbers = new Array(slice.length);
|
byteNumbers = new Array(slice.length);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (i < slice.length) {
|
while (i < slice.length) {
|
||||||
byteNumbers[i] = slice.charCodeAt(i);
|
byteNumbers[i] = slice.charCodeAt(i);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
byteArray = new Uint8Array(byteNumbers);
|
byteArray = new Uint8Array(byteNumbers);
|
||||||
byteArrays.push(byteArray);
|
byteArrays.push(byteArray);
|
||||||
offset += sliceSize;
|
offset += sliceSize;
|
||||||
}
|
}
|
||||||
return new Blob(byteArrays, {
|
return new Blob(byteArrays, {
|
||||||
type: contentType
|
type: contentType
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
createHiddenEditable = function() {
|
createHiddenEditable = function() {
|
||||||
return $(document.createElement('div')).attr('contenteditable', true).css({
|
return $(document.createElement('div')).attr('contenteditable', true).css({
|
||||||
width: 1,
|
width: 1,
|
||||||
height: 1,
|
height: 1,
|
||||||
position: 'fixed',
|
position: 'fixed',
|
||||||
left: -100,
|
left: -100,
|
||||||
overflow: 'hidden'
|
overflow: 'hidden'
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Paste = (function() {
|
Paste = (function() {
|
||||||
Paste.prototype._target = null;
|
Paste.prototype._target = null;
|
||||||
|
|
||||||
Paste.prototype._container = null;
|
Paste.prototype._container = null;
|
||||||
|
|
||||||
Paste.mountNonInputable = function(nonInputable) {
|
Paste.mountNonInputable = function(nonInputable) {
|
||||||
var paste;
|
var paste;
|
||||||
paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);
|
paste = new Paste(createHiddenEditable().appendTo(nonInputable), nonInputable);
|
||||||
$(nonInputable).on('click', (function(_this) {
|
$(nonInputable).on('click', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return paste._container.focus();
|
return paste._container.focus();
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
paste._container.on('focus', (function(_this) {
|
paste._container.on('focus', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(nonInputable).addClass('pastable-focus');
|
return $(nonInputable).addClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
return paste._container.on('blur', (function(_this) {
|
return paste._container.on('blur', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(nonInputable).removeClass('pastable-focus');
|
return $(nonInputable).removeClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
Paste.mountTextarea = function(textarea) {
|
Paste.mountTextarea = function(textarea) {
|
||||||
var ctlDown, paste;
|
var ctlDown, paste;
|
||||||
if (-1 !== navigator.userAgent.toLowerCase().indexOf('chrome')) {
|
if (-1 !== navigator.userAgent.toLowerCase().indexOf('chrome')) {
|
||||||
return this.mountContenteditable(textarea);
|
return this.mountContenteditable(textarea);
|
||||||
}
|
}
|
||||||
paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);
|
paste = new Paste(createHiddenEditable().insertBefore(textarea), textarea);
|
||||||
ctlDown = false;
|
ctlDown = false;
|
||||||
$(textarea).on('keyup', function(ev) {
|
$(textarea).on('keyup', function(ev) {
|
||||||
var _ref;
|
var _ref;
|
||||||
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
|
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
|
||||||
return ctlDown = false;
|
return ctlDown = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$(textarea).on('keydown', function(ev) {
|
$(textarea).on('keydown', function(ev) {
|
||||||
var _ref;
|
var _ref;
|
||||||
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
|
if ((_ref = ev.keyCode) === 17 || _ref === 224) {
|
||||||
ctlDown = true;
|
ctlDown = true;
|
||||||
}
|
}
|
||||||
if (ctlDown && ev.keyCode === 86) {
|
if (ctlDown && ev.keyCode === 86) {
|
||||||
return paste._container.focus();
|
return paste._container.focus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$(paste._target).on('pasteImage', (function(_this) {
|
$(paste._target).on('pasteImage', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(textarea).focus();
|
return $(textarea).focus();
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
$(paste._target).on('pasteText', (function(_this) {
|
$(paste._target).on('pasteText', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(textarea).focus();
|
return $(textarea).focus();
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
$(textarea).on('focus', (function(_this) {
|
$(textarea).on('focus', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(textarea).addClass('pastable-focus');
|
return $(textarea).addClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
return $(textarea).on('blur', (function(_this) {
|
return $(textarea).on('blur', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(textarea).removeClass('pastable-focus');
|
return $(textarea).removeClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
Paste.mountContenteditable = function(contenteditable) {
|
Paste.mountContenteditable = function(contenteditable) {
|
||||||
var paste;
|
var paste;
|
||||||
paste = new Paste(contenteditable, contenteditable);
|
paste = new Paste(contenteditable, contenteditable);
|
||||||
$(contenteditable).on('focus', (function(_this) {
|
$(contenteditable).on('focus', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(contenteditable).addClass('pastable-focus');
|
return $(contenteditable).addClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
return $(contenteditable).on('blur', (function(_this) {
|
return $(contenteditable).on('blur', (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
return $(contenteditable).removeClass('pastable-focus');
|
return $(contenteditable).removeClass('pastable-focus');
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
function Paste(_at__container, _at__target) {
|
function Paste(_at__container, _at__target) {
|
||||||
this._container = _at__container;
|
this._container = _at__container;
|
||||||
this._target = _at__target;
|
this._target = _at__target;
|
||||||
this._container = $(this._container);
|
this._container = $(this._container);
|
||||||
this._target = $(this._target).addClass('pastable');
|
this._target = $(this._target).addClass('pastable');
|
||||||
this._container.on('paste', (function(_this) {
|
this._container.on('paste', (function(_this) {
|
||||||
return function(ev) {
|
return function(ev) {
|
||||||
var clipboardData, file, item, reader, text, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3, _results;
|
var clipboardData, file, item, reader, text, _i, _j, _len, _len1, _ref, _ref1, _ref2, _ref3, _results;
|
||||||
if (((_ref = ev.originalEvent) != null ? _ref.clipboardData : void 0) != null) {
|
if (((_ref = ev.originalEvent) != null ? _ref.clipboardData : void 0) != null) {
|
||||||
clipboardData = ev.originalEvent.clipboardData;
|
clipboardData = ev.originalEvent.clipboardData;
|
||||||
if (clipboardData.items) {
|
if (clipboardData.items) {
|
||||||
_ref1 = clipboardData.items;
|
_ref1 = clipboardData.items;
|
||||||
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
||||||
item = _ref1[_i];
|
item = _ref1[_i];
|
||||||
if (item.type.match(/^image\//)) {
|
if (item.type.match(/^image\//)) {
|
||||||
reader = new FileReader();
|
reader = new FileReader();
|
||||||
reader.onload = function(event) {
|
reader.onload = function(event) {
|
||||||
return _this._handleImage(event.target.result);
|
return _this._handleImage(event.target.result);
|
||||||
};
|
};
|
||||||
reader.readAsDataURL(item.getAsFile());
|
reader.readAsDataURL(item.getAsFile());
|
||||||
}
|
}
|
||||||
if (item.type === 'text/plain') {
|
if (item.type === 'text/plain') {
|
||||||
item.getAsString(function(string) {
|
item.getAsString(function(string) {
|
||||||
return _this._target.trigger('pasteText', {
|
return _this._target.trigger('pasteText', {
|
||||||
text: string
|
text: string
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {
|
if (-1 !== Array.prototype.indexOf.call(clipboardData.types, 'text/plain')) {
|
||||||
text = clipboardData.getData('Text');
|
text = clipboardData.getData('Text');
|
||||||
_this._target.trigger('pasteText', {
|
_this._target.trigger('pasteText', {
|
||||||
text: text
|
text: text
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_this._checkImagesInContainer(function(src) {
|
_this._checkImagesInContainer(function(src) {
|
||||||
return _this._handleImage(src);
|
return _this._handleImage(src);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (clipboardData = window.clipboardData) {
|
if (clipboardData = window.clipboardData) {
|
||||||
if ((_ref2 = (text = clipboardData.getData('Text'))) != null ? _ref2.length : void 0) {
|
if ((_ref2 = (text = clipboardData.getData('Text'))) != null ? _ref2.length : void 0) {
|
||||||
return _this._target.trigger('pasteText', {
|
return _this._target.trigger('pasteText', {
|
||||||
text: text
|
text: text
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
_ref3 = clipboardData.files;
|
_ref3 = clipboardData.files;
|
||||||
_results = [];
|
_results = [];
|
||||||
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
|
for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
|
||||||
file = _ref3[_j];
|
file = _ref3[_j];
|
||||||
_this._handleImage(URL.createObjectURL(file));
|
_this._handleImage(URL.createObjectURL(file));
|
||||||
_results.push(_this._checkImagesInContainer(function() {}));
|
_results.push(_this._checkImagesInContainer(function() {}));
|
||||||
}
|
}
|
||||||
return _results;
|
return _results;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
Paste.prototype._handleImage = function(src) {
|
Paste.prototype._handleImage = function(src) {
|
||||||
var loader;
|
var loader;
|
||||||
loader = new Image();
|
loader = new Image();
|
||||||
loader.onload = (function(_this) {
|
loader.onload = (function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
var blob, canvas, ctx, dataURL;
|
var blob, canvas, ctx, dataURL;
|
||||||
canvas = document.createElement('canvas');
|
canvas = document.createElement('canvas');
|
||||||
canvas.width = loader.width;
|
canvas.width = loader.width;
|
||||||
canvas.height = loader.height;
|
canvas.height = loader.height;
|
||||||
ctx = canvas.getContext('2d');
|
ctx = canvas.getContext('2d');
|
||||||
ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);
|
ctx.drawImage(loader, 0, 0, canvas.width, canvas.height);
|
||||||
dataURL = null;
|
dataURL = null;
|
||||||
try {
|
try {
|
||||||
dataURL = canvas.toDataURL('image/png');
|
dataURL = canvas.toDataURL('image/png');
|
||||||
blob = dataURLtoBlob(dataURL);
|
blob = dataURLtoBlob(dataURL);
|
||||||
} catch (_error) {}
|
} catch (_error) {}
|
||||||
if (dataURL) {
|
if (dataURL) {
|
||||||
return _this._target.trigger('pasteImage', {
|
return _this._target.trigger('pasteImage', {
|
||||||
blob: blob,
|
blob: blob,
|
||||||
dataURL: dataURL,
|
dataURL: dataURL,
|
||||||
width: loader.width,
|
width: loader.width,
|
||||||
height: loader.height
|
height: loader.height
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
})(this);
|
})(this);
|
||||||
return loader.src = src;
|
return loader.src = src;
|
||||||
};
|
};
|
||||||
|
|
||||||
Paste.prototype._checkImagesInContainer = function(cb) {
|
Paste.prototype._checkImagesInContainer = function(cb) {
|
||||||
var img, timespan, _i, _len, _ref;
|
var img, timespan, _i, _len, _ref;
|
||||||
timespan = Math.floor(1000 * Math.random());
|
timespan = Math.floor(1000 * Math.random());
|
||||||
_ref = this._container.find('img');
|
_ref = this._container.find('img');
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
img = _ref[_i];
|
img = _ref[_i];
|
||||||
img["_paste_marked_" + timespan] = true;
|
img["_paste_marked_" + timespan] = true;
|
||||||
}
|
}
|
||||||
return setTimeout((function(_this) {
|
return setTimeout((function(_this) {
|
||||||
return function() {
|
return function() {
|
||||||
var _j, _len1, _ref1, _results;
|
var _j, _len1, _ref1, _results;
|
||||||
_ref1 = _this._container.find('img');
|
_ref1 = _this._container.find('img');
|
||||||
_results = [];
|
_results = [];
|
||||||
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
||||||
img = _ref1[_j];
|
img = _ref1[_j];
|
||||||
if (!img["_paste_marked_" + timespan]) {
|
if (!img["_paste_marked_" + timespan]) {
|
||||||
cb(img.src);
|
cb(img.src);
|
||||||
}
|
}
|
||||||
//firefox问题处理,因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
|
//firefox问题处理,因为采用了 pastableContenteditable 模式,故只需要删除默认的粘贴
|
||||||
if ($(img).attr('src').startsWith('data:image/')) {
|
if ($(img).attr('src').startsWith('data:image/')) {
|
||||||
_results.push($(img).remove());
|
_results.push($(img).remove());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return _results;
|
return _results;
|
||||||
};
|
};
|
||||||
})(this), 1);
|
})(this), 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
return Paste;
|
return Paste;
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
}).call(this);
|
}).call(this);
|
||||||
|
|
||||||
KindEditor.plugin('paste', function(K) {
|
KindEditor.plugin('paste', function(K) {
|
||||||
var editor = this,
|
var editor = this,
|
||||||
name = 'paste';
|
name = 'paste';
|
||||||
if(editor.edit == undefined || editor.edit.iframe == undefined){
|
if(editor.edit == undefined || editor.edit.iframe == undefined){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var contentWindow = editor.edit.iframe[0].contentWindow;
|
var contentWindow = editor.edit.iframe[0].contentWindow;
|
||||||
//var contentWindow = editor.iframeDoc;
|
//var contentWindow = editor.iframeDoc;
|
||||||
//var contentWindow = document.getElementsByTagName('iframe')[0].contentWindow;
|
//var contentWindow = document.getElementsByTagName('iframe')[0].contentWindow;
|
||||||
var nodeBody = contentWindow.document.getElementsByTagName('body')[0];
|
var nodeBody = contentWindow.document.getElementsByTagName('body')[0];
|
||||||
console.log(nodeBody);
|
console.log(nodeBody);
|
||||||
$(nodeBody).pastableContenteditable();
|
$(nodeBody).pastableContenteditable();
|
||||||
|
|
||||||
dataURItoBlob = function(dataURI) {
|
dataURItoBlob = function(dataURI) {
|
||||||
// convert base64/URLEncoded data component to raw binary data held in a string
|
// convert base64/URLEncoded data component to raw binary data held in a string
|
||||||
var byteString;
|
var byteString;
|
||||||
if (dataURI.split(',')[0].indexOf('base64') >= 0)
|
if (dataURI.split(',')[0].indexOf('base64') >= 0)
|
||||||
byteString = atob(dataURI.split(',')[1]);
|
byteString = atob(dataURI.split(',')[1]);
|
||||||
else
|
else
|
||||||
byteString = unescape(dataURI.split(',')[1]);
|
byteString = unescape(dataURI.split(',')[1]);
|
||||||
|
|
||||||
// separate out the mime component
|
// separate out the mime component
|
||||||
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
|
||||||
|
|
||||||
// write the bytes of the string to a typed array
|
// write the bytes of the string to a typed array
|
||||||
var ia = new Uint8Array(byteString.length);
|
var ia = new Uint8Array(byteString.length);
|
||||||
for (var i = 0; i < byteString.length; i++) {
|
for (var i = 0; i < byteString.length; i++) {
|
||||||
ia[i] = byteString.charCodeAt(i);
|
ia[i] = byteString.charCodeAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Blob([ia], {type:mimeString});
|
return new Blob([ia], {type:mimeString});
|
||||||
};
|
};
|
||||||
|
|
||||||
$(nodeBody).on('pasteImage', function(ev, data) {
|
$(nodeBody).on('pasteImage', function(ev, data) {
|
||||||
console.log('pasteImage');
|
console.log('pasteImage');
|
||||||
console.log("dataURL: " + data.dataURL);
|
console.log("dataURL: " + data.dataURL);
|
||||||
console.log("width: " + data.width);
|
console.log("width: " + data.width);
|
||||||
console.log("height: " + data.height);
|
console.log("height: " + data.height);
|
||||||
var blob = dataURItoBlob(data.dataURL);
|
var blob = dataURItoBlob(data.dataURL);
|
||||||
if (data.blob !== null) {
|
if (data.blob !== null) {
|
||||||
var data = new FormData();
|
var data = new FormData();
|
||||||
// data.append("imgFile",blob, "imageFilename.png");
|
// data.append("imgFile",blob, "imageFilename.png");
|
||||||
data.append("file",blob, "imageFilename.png");
|
data.append("file",blob, "imageFilename.png");
|
||||||
console.log(data);
|
console.log(data);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/kindeditor/upload?dir=image',
|
url: '/kindeditor/upload?dir=image',
|
||||||
url: '/api/attachments.json',
|
url: '/api/attachments.json',
|
||||||
contentType: false,
|
contentType: false,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: data,
|
data: data,
|
||||||
processData: false,
|
processData: false,
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
// editor.exec('insertimage', JSON.parse(data).url);
|
// editor.exec('insertimage', JSON.parse(data).url);
|
||||||
|
|
||||||
// /api/attachments/227362
|
// /api/attachments/227362
|
||||||
editor.exec('insertimage', '/api/attachments/' + data.id);
|
editor.exec('insertimage', '/api/attachments/' + data.id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
@ -1 +1 @@
|
||||||
<!doctype html><html lang="zh-CN" class="notranslate translated-ltr" translate="no"><head><meta charset="utf-8"><meta name="Keywords" content="gitLink,GitLink,gitlink,git,trustie,trustieforge,forge,开源,确实开源,代码托管,Git,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务,确实让创建更美好,协同开发平台"><meta name="description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"><meta property="og:title" content="GitLink | 确实开源"/><meta property="og:type" content="Object"/><meta property="og:url" content="https://gitlink.org.cn/"/><meta property="og:image" content="https://www.gitlink.org.cn/images/logo.png"/><meta property="og:image:alt" content="GitLink | 确实开源"/><meta property="og:site_name" content="GitLink"/><meta property="og:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"/><meta name="hostname" content="gitlink.org.cn"><meta name="keyboard-shortcuts-preference" content="all"><meta name="expected-hostname" content="gitlink.org.cn"><meta name="go-import" content="gitlink.org.cn git https://gitlink.org.cn"><meta name="octolytics-dimension-user_login" content="GitLink"><meta name="octolytics-dimension-repository_nwo" content="GitLink"><meta name="octolytics-dimension-repository_network_root_nwo" content="GitLink"><meta name="theme-color" content="#000000"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta name="twitter:image:src" content="https://www.gitlink.org.cn/images/logo.png"><meta name="twitter:site" content="@gitlink"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="GitLink | 确实开源"><meta name="twitter:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"><meta content="always" name="referrer"><link rel="canonical" href="https://gitlink.org.cn" data-turbo-transient=""><link rel="fluid-icon" href="https://www.gitlink.org.cn/images/logo.png" title="GitLink"><link rel="manifest" href="/react/build//manifest.json"><link rel="stylesheet" href="/react/build/css/alex/alex.all.global.min.css"><link rel="stylesheet" href="/react/build/css/iconfont.css"><link rel="stylesheet" href="/react/build/css/editormd.min.css"><link rel="stylesheet" href="/react/build/css/gitlink.min.css"><link href="/react/build/static/css/main.dea82c29.chunk.css" rel="stylesheet"></head><body><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit widthunit"></div><div id="picture_display" style="display:none"></div><script src="/react/build/js/jquery-1.8.3.min.js"></script><script src="/react/build/js/js_min_all.js"></script><script src="/react/build/js/codemirror/codemirror.js"></script><script src="/react/build/js/editormd/editormd.min.js"></script><script src="/react/build/js/codemirror/merge/merge.js"></script><script src="/react/build/js/react.production.min.js"></script><script src="/react/build/js/react-dom.production.min.js"></script><script src="/react/build/js/alex/moment.js"></script><script src="/react/build/./static/js/runtime~main.d38d142a.js"></script><script src="/react/build/./static/js/main.462459e7.chunk.js"></script><script>window.onload=function(){$(".newContainer").delegate("a.anchors","click",(function(){let n=$(this).offset().top-180;return $("html,body").animate({scrollTop:n},10),window.location.hash=$(this).attr("name"),!1}))}</script></body></html>
|
<!doctype html><html lang="zh-CN" class="notranslate translated-ltr" translate="no"><head><meta charset="utf-8"><meta name="Keywords" content="gitLink,GitLink,gitlink,git,trustie,trustieforge,forge,开源,确实开源,代码托管,Git,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务,确实让创建更美好,协同开发平台"><meta name="description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"><meta property="og:title" content="GitLink | 确实开源"/><meta property="og:type" content="Object"/><meta property="og:url" content="https://gitlink.org.cn/"/><meta property="og:image" content="https://www.gitlink.org.cn/images/logo.png"/><meta property="og:image:alt" content="GitLink | 确实开源"/><meta property="og:site_name" content="GitLink"/><meta property="og:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"/><meta name="hostname" content="gitlink.org.cn"><meta name="keyboard-shortcuts-preference" content="all"><meta name="expected-hostname" content="gitlink.org.cn"><meta name="go-import" content="gitlink.org.cn git https://gitlink.org.cn"><meta name="octolytics-dimension-user_login" content="GitLink"><meta name="octolytics-dimension-repository_nwo" content="GitLink"><meta name="octolytics-dimension-repository_network_root_nwo" content="GitLink"><meta name="theme-color" content="#000000"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta name="twitter:image:src" content="https://www.gitlink.org.cn/images/logo.png"><meta name="twitter:site" content="@gitlink"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="GitLink | 确实开源"><meta name="twitter:description" content="GitLink,新一代开源创新服务平台 分布式协作开发 一站式过程管理 高效流水线运维 多层次代码分析 多维度用户画像 分布式协作开发 基于Git打造分布式代码托管环境"><meta content="always" name="referrer"><link rel="canonical" href="https://gitlink.org.cn" data-turbo-transient=""><link rel="fluid-icon" href="https://www.gitlink.org.cn/images/logo.png" title="GitLink"><link rel="manifest" href="/react/build//manifest.json"><link rel="stylesheet" href="/react/build/css/alex/alex.all.global.min.css"><link rel="stylesheet" href="/react/build/css/iconfont.css"><link rel="stylesheet" href="/react/build/css/editormd.min.css"><link rel="stylesheet" href="/react/build/css/gitlink.min.css"><link href="/react/build/static/css/main.5c83d4d2.chunk.css" rel="stylesheet"></head><body><div id="md_div" style="display:none"></div><div id="root" class="page -layout-v -fit widthunit"></div><div id="picture_display" style="display:none"></div><script src="/react/build/js/jquery-1.8.3.min.js"></script><script src="/react/build/js/js_min_all.js"></script><script src="/react/build/js/codemirror/codemirror.js"></script><script src="/react/build/js/editormd/editormd.min.js"></script><script src="/react/build/js/codemirror/merge/merge.js"></script><script src="/react/build/js/react.production.min.js"></script><script src="/react/build/js/react-dom.production.min.js"></script><script src="/react/build/js/alex/moment.js"></script><script src="/react/build/./static/js/runtime~main.5e3e1838.js"></script><script src="/react/build/./static/js/main.1ba9f377.chunk.js"></script><script>window.onload=function(){$(".newContainer").delegate("a.anchors","click",(function(){let n=$(this).offset().top-180;return $("html,body").animate({scrollTop:n},10),window.location.hash=$(this).attr("name"),!1}))}</script></body></html>
|
0
public/react/build/js/codemirror/addon/hint/anyword-hint.js
vendored
Executable file → Normal file
0
public/react/build/js/codemirror/addon/hint/anyword-hint.js
vendored
Executable file → Normal file
0
public/react/build/js/codemirror/addon/hint/javascript-hint.js
vendored
Executable file → Normal file
0
public/react/build/js/codemirror/addon/hint/javascript-hint.js
vendored
Executable file → Normal file
0
public/react/build/js/editormd/lib/codemirror/addons.min.js
vendored
Executable file → Normal file
0
public/react/build/js/editormd/lib/codemirror/addons.min.js
vendored
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/dockerfile/dockerfile.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/dockerfile/dockerfile.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/handlebars/handlebars.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/handlebars/handlebars.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/javascript/javascript.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/javascript/javascript.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/markdown/markdown.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/markdown/markdown.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/objective-c/objective-c.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/objective-c/objective-c.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/postiats/postiats.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/postiats/postiats.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/powerquery/powerquery.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/powerquery/powerquery.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/powershell/powershell.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/powershell/powershell.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/redshift/redshift.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/redshift/redshift.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/solidity/solidity.js
Executable file → Normal file
0
public/react/build/js/monaco/vs/basic-languages/solidity/solidity.js
Executable file → Normal file
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue