This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Read our privacy policy

Thrive with Digital, Striding Towards the Intelligent World

About Backgroud About Backgroud

As society advances, so do the tools we use to build. Technology is redefining productivity, driving the transition from quantity to quality.

Underpinned by digital transformation, digital economic development will benefit the ICT industry and society as a whole by enabling massive increases in productivity.

The time is ripe to thrive with digital. Let's stride towards the intelligent world together.

Seizing the opportunities created by digitalization

Leading the industry with future-oriented digital infrastructure and continuous innovation

Thriving with digital by creating value for customers, industry, and society

Forging E2E capabilities and creating thriving ecosystems together

The Time is Ripe to Thrive with Digital


Event

Huawei Analyst Summit 2024

Learn More
Publication

Special Issue: Thrive with Digital, Striding Towards the Intelligent World

Learn More



Striding Towards the Intelligent World

Requirements for Digital Infrastructure

  • For Individuals

    Immersive services like XR and holographic communication are maturing, and connectivity experience is set to increase from 1 Gbit/s to 10 Gbit/s. Mobile DOU will surge from today's 15 GB to 100 GB. Requirements for latency and ubiquitous connectivity will also increase.

  • For Households

    The demands generated by advanced services like 24K 3D VR games and holographic education and meetings are creating a full-fiber, 10 Gbit/s era.

  • For Industries

    Digital transformation has now entered the fast lane. Industrial-grade applications such as smart manufacturing and power grid dispatching are raising diversified requirements for connections, quality, and sensing, while also triggering explosive growth in demand for computing power and storage.

'; } this.configs.html = this.tmpHtml; return this.configs; }, buildParam: function () { this.rangeStart = this.configs.PageIndex - this.pageRange; this.rangeEnd = this.configs.PageIndex + this.pageRange; if (this.rangeEnd > this.totalpage) { this.rangeEnd = this.totalpage; this.rangeStart = this.totalpage - this.pageRange * 2; this.rangeStart = this.rangeStart '; if (this.configs.PageIndex > 1) { this.tmpHtml += ''; } else { this.tmpHtml += ''; } }, buildPageIndex: function () { this.buildLeftPage(); for (var i = this.rangeStart; i ' + i + ''; } this.buildRightPage(); }, buildLeftPage: function () { if (this.rangeStart ' + i + ''; } } else { this.tmpHtml += '
  • 1
  • '; this.tmpHtml += '
  • ...
  • '; } }, buildRightPage: function () { if (this.rangeEnd >= this.totalpage - 2) { for (var i = this.rangeEnd + 1; i ' + i + ''; } } else { this.tmpHtml += '
  • ...
  • '; this.tmpHtml += '
  • ' + this.totalpage + '
  • '; } }, buildNext: function () { if (this.configs.PageIndex '; } else { this.tmpHtml += ''; } if (this.totalpage > 10) { this.tmpHtml += '
    '; this.tmpHtml += '
    ' + window.publicLeftPageFix + '' + window.publicRightPageFix + '
    '; this.tmpHtml += ' ' + window.publicJumpPageText + ''; this.tmpHtml += '
    '; } }, events: { previous: { f: function (_$container, _$configs, _$e) { if (_$e) { _$configs.onPageClick(_$configs.PageIndex - 2); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_prev', '', 'prev_page'); return; } }, }, next: { f: function (_$container, _$configs, _$e) { if (_$e) { _$configs.onPageClick(_$configs.PageIndex); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_next', '', 'next_page'); return; } }, }, l_more: { f: function (_$container, _$configs, _$e) { if (_$e) { return false; } }, }, r_more: { f: function (_$container, _$configs, _$e) { if (_$e) { return false; } }, }, page_index: { f: function (_$container, _$configs, _$e) { if (_$e) { pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_' + _$container.innerHTML, _$container.innerHTML, _$container.innerHTML); _$configs.onPageClick(parseInt(_$container.innerHTML) - 1); return; } }, }, jump: { f: function (_$container, _$configs, _$e) { var input = $(_$container).parent().find("input[data-id='PAGE_INDEX']"); var page_Index = 1; var pi = input.val(), min = parseInt(input.attr('data-min')), max = parseInt(input.attr('data-max')); if (/^[0-9]*$/.test(pi)) { var tmp = parseInt(pi); if (tmp max) { input.val(max); pi = max; } page_Index = pi; } else { input.val('1'); } _$configs.onPageClick(page_Index - 1); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_go', page_Index, 'go'); }, }, }, }; $.fn.pageBar = function (options) { var configs = Pagination.render(options); if (configs.html != '') { if (!options.OnlyBindEvent) { this.html(configs.html).bindPageBarEvent(configs); } else { delete configs.OnlyBindEvent; delete options.OnlyBindEvent; this.bindPageBarEvent(configs); } } else { this.html(''); } }; function pageClickEvent() { var args = Array.prototype.slice.call(arguments); if ($('#hidSearchPage').val()) { if (typeof utag === 'undefined') return; try { window.ga.apply(null, args.slice(0, 5)); window.utag.link({ link_category: args[2], link_name: args[3], pagination_number: args[5], pagination_button: args[6], link_url: '#', tealium_event: 'pagination_click', }); } catch (e) { } } else { if (typeof utag === 'undefined') return; try { var json = { tealium_event: 'pagination_click', pagination_button: args[6], }; if (args[5] !== '') { json['pagination_number'] = args[5]; } window.utag.link(json); } catch (e) { } } } $.fn.bindPageBarEvent = function (options) { delete options.html; var configs = {}; $.extend(configs, options); this.find('a') .off() .click(function () { $(this).attr('href', 'javascript:;'); var v = $(this).attr('v'); var ref = $(this).attr('ref'); var $e = ref == 'page_index' ? v != 'disabled' && !$(this).hasClass('active') : v != 'disabled'; try { Pagination.events[ref].f(this, configs, $e); } catch (e) { } }) .each(function () { try { if (configs.PageIndex == parseInt(this.innerHTML)) { $(this).addClass('active'); return false; } } catch (e) { } }); }; function buildUrl(options) { if (!options.url) { var ret = /\?/; var path = window.location.hostname + window.location.pathname; ret.exec(path) == '?' ? (options.url = path + '&d=ws') : (options.url = '?d=ws'); if (options.method) options.url += '&method=' + options.method; } } function buildJsonData(configs, param) { var jsonData = null; if (configs.initData == null || configs.initPage == null) { jsonData = serializeRequest(configs, param); } return jsonData; } function getUrl(pageIndex) { var ret = /\?/; var path = window.location.search; var url = ''; if (ret.exec(path) == '?') { var pattern = 'page=([^&]*)'; var replaceText = 'page=' + (parseInt(pageIndex) + 1); url = path.match(pattern) ? path.replace(eval('/(page=)([^&]*)/gi'), replaceText) : path.match('[?]') ? path + '&' + replaceText : path + '?' + replaceText; } else { url = '?page=' + (parseInt(pageIndex) + 1); } url = url + location.hash; return url; } function xxx() { this.requestConfigs = undefined; this.requestParam = undefined; this.url = ''; this.type = ''; this.dataType = ''; this.data = undefined; } var ajaxOptions = { init: function (configs, param, jsonData) { this.requestConfigs = configs; this.requestParam = param; this.url = configs.url; this.type = configs.type || 'GET'; this.dataType = configs.dataType || 'json'; this.data = jsonData; return this; }, error: function (msg) { var requestConfigs = this.requestConfigs; if (requestConfigs.onError) { requestConfigs.onError(msg); } else { console.log('error -' + msg); } }, success: function (data) { var oJson = data, mValue = {}, oPage = {}, requestConfigs = this.requestConfigs, requestParam = this.requestParam, ajaxOpt = this; if (oJson.Complete && oJson.Complete.toLowerCase() == 'succeed') { var param = this.renderData(requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt); this.onlyShowPage(requestConfigs, oJson, param.oPage, param.mValue); } else { if (oJson.Message) console.log(oJson.Message); else console.log('result is null'); } }, onlyShowPage: function (requestConfigs, oJson, oPage, mValue) { if (!oJson.OnlyShowPage) { mValue = this.onResponse(requestConfigs, oPage, mValue, oJson); this.fillPageList(requestConfigs, oPage, mValue, oJson); this.onComplete(requestConfigs, oPage, mValue, oJson); this.renderPage(requestConfigs, oPage, !requestConfigs.fill); } else { setPageIndex(requestConfigs.target, oPage); oPage.OnlyBindEvent = true; this.renderPage(requestConfigs, oPage, true); } }, page: function () { var oPage = {}, ajaxOpt = this, requestParam = ajaxOpt.requestParam; var pageInput = $('#' + ajaxOpt.requestConfigs.target.attr('id') + '_PageBar'); oPage.PageIndex = pageInput.attr('data-index'); oPage.PageSize = pageInput.attr('data-size'); oPage.RecordCount = pageInput.attr('data-count'); oPage.showPageCount = ajaxOpt.requestConfigs.page.showPageCount; if (oPage.PageSize > 0) { oPage.TotalPage = parseInt(oPage.RecordCount / oPage.PageSize); if (oPage.RecordCount % oPage.PageSize > 0) { oPage.TotalPage++; } } else { oPage.TotalPage = 0; } oPage = $.extend({}, ajaxOpt.requestConfigs.page, oPage); oPage.onPageClick = function (pageIndex, pageSize) { if (oPage.JumpHistory) { try { var url = getUrl(pageIndex); history.pushState('', document.title, url); } catch (e) { } } $.extend(ajaxOpt.requestConfigs.page, oPage); ajaxOpt.requestConfigs.page.PageIndex = ++pageIndex; if (pageSize) { ajaxOpt.requestConfigs.page.PageSize = pageSize; } ajaxOpt.data = serializeRequest(ajaxOpt.requestConfigs, requestParam); $.ajax(ajaxOpt); }; setPageIndex(ajaxOpt.requestConfigs.target, oPage); oPage.OnlyBindEvent = true; pageInput.pageBar(oPage); }, onResponse: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.onResponse) { setPageIndex(requestConfigs.target, oPage); return requestConfigs.onResponse(mValue, oPage); } return mValue; }, fillPageList: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.target && requestConfigs.fill) { requestConfigs.target.fillPageList(mValue, oPage); } }, onComplete: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.onComplete) { try { requestConfigs.onComplete(mValue, oPage, oJson); } catch (e) { } } }, renderPage: function (requestConfigs, oPage, _$e) { if (_$e) { $('#' + requestConfigs.target.attr('id') + '_PageBar').pageBar(oPage); } }, renderData: function (requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt) { var ret = { oPage: null, mValue: null, }; if (oJson.Result != null) { if (oJson.ResultType) { switch (oJson.ResultType.toLowerCase()) { case 'conditionresult': ret.oPage = this.redderConditionResult(requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt); ret.mValue = oJson.Result.ResultList; break; default: ret.mValue = oJson.Result; break; } } else { ret.mValue = oJson.Result; } } return ret; }, redderConditionResult: function (requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt) { oPage.PageIndex = oJson.Result.PageIndex == undefined ? 1 : oJson.Result.PageIndex; oPage.PageSize = oJson.Result.PageSize; oPage.RecordCount = oJson.Result.TotalCount; oPage.showPageCount = requestConfigs.page.showPageCount; if (oPage.PageSize > 0) { oPage.TotalPage = parseInt(oPage.RecordCount / oPage.PageSize); if (oPage.RecordCount % oPage.PageSize > 0) { oPage.TotalPage++; } } else { oPage.TotalPage = 0; } oPage = $.extend({}, requestConfigs.page, oPage); oPage.onPageClick = function (pageIndex, pageSize) { if (oPage.JumpHistory) { try { var url = getUrl(pageIndex); history.pushState('', document.title, url); } catch (e) { } } $.extend(requestConfigs.page, oPage); requestConfigs.page.PageIndex = ++pageIndex; if (pageSize) { requestConfigs.page.PageSize = pageSize; } ajaxOpt.data = serializeRequest(requestConfigs, requestParam); $.ajax(ajaxOpt); }; return oPage; }, }; xxx.prototype = ajaxOptions; var _defaultPageSize = 15; $.ajaxRequest = function (options) { var configs = { url: null, method: null, type: null, target: null, fill: true, reqData: '', page: { PageIndex: 0, PageSize: _defaultPageSize, TotalPage: 0, RecordCount: 0, showPageCount: 5, JumpHistory: true, }, onRequest: null, onResponse: null, onComplete: null, onError: null, initData: null, initPage: false, }; buildUrl(options); options.page = $.extend({}, configs.page, options.page); $.extend(configs, options); var param = {}; if (configs.onRequest) { param = configs.onRequest(param); } var jsonData = buildJsonData(configs, param); var o = new xxx().init(configs, param, jsonData); if (configs.initData != null) { o.success(configs.initData); } else if (configs.initPage) { o.page(configs); } else { $.ajax(o); } }; function serializeRequest(config, param) { param.PageSize = config.page.PageSize; param.PageIndex = config.page.PageIndex; if (param.PageIndex == 0) param.PageIndex = 1; if (config.reqData == 'json') return $.toJSON(param); else return param; } function setPageIndex(target, opage) { if (target == null || opage == null) { return false; } opage.PageIndex = opage.PageIndex == 0 ? 1 : opage.PageIndex; var tabID = $(target).attr('id') + '_PageIndex'; var elpageindex = $('#' + tabID); if (elpageindex.length == 0) { $('body').append(''); } else { $(elpageindex).val(opage.PageIndex); } } function DecodeHtmlUx(s) { return $('
    ').html(s).text(); } function ReplacePTagUx(s) { return s.replace(/

    /g, '').replace(//g, ''); } var $JsonType = { undefined: function () { return; }, object: function (object) { if (object === null) return 'null'; var r = []; for (var property in object) { if (object[property] !== null) { var v = jQuery.toJSON(object[property]); if (v !== undefined) { r.push(jQuery.toJSON(property) + ':' + v); } } else { r.push(property + ':null'); } } return '{' + r.join(',') + '}'; }, number: function (object) { return isFinite(object) ? object.toString() : 'null'; }, string: function (object) { return ( '"' + object.replace(/(\\|\")/g, '\\$1').replace(/\n|\r|\t/g, function () { var b = arguments[0]; return b === '\n' ? '\\n' : b === '\r' ? '\\r' : b === '\t' ? '\\t' : ''; }) + '"' ); }, array: function (object) { var r = []; for (var i = 0; i ').join('>').split('"').join('"').split("'").join('''); }, evalJSON: function (s) { return eval('(' + s + ')'); }, }); var dateFormat = (function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = new RegExp('\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) ' + '(?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]d{4})?)\b', 'g'), timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length 99 ? Math.round(L / 10) : L); })(), t: (function () { return H 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + (Math.abs(o) % 60), 4); })(), S: (function () { return ['th', 'st', 'nd', 'rd'][d % 10 > 3 ? 0 : (((d % 100) - (d % 10) != 10) * d) % 10]; })(), }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; })(); // Some common format strings dateFormat.masks = { fullDate: 'dddd, mmmm d, yyyy', default: 'ddd mmm dd yyyy HH:MM:ss', mediumTime: 'h:MM:ss TT', shortTime: 'h:MM TT', shortDate: 'm/d/yy', isoDate: 'yyyy-mm-dd', isoTime: 'HH:MM:ss', mediumDate: 'mmm d, yyyy', longDate: 'mmmm d, yyyy', longTime: 'h:MM:ss TT Z', isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'", }; // Internationalization strings dateFormat.i18n = { dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); }; var tmplTag = { '!': { o: '', }, wrap: { c: 'call=$item.calls();__=call._.concat($item.wrap(call,__));', o: '$item.calls(__,$1,$2);__=[];', _d: { $2: 'null' }, }, tmpl: { o: 'if($tmplnull_1){__=__.concat($item.nest($1,$2));}', _d: { $2: 'null' }, }, else: { o: '}else if(($tmplnull_1) && $1a){', _d: { $1: 'true' }, }, each: { c: '}});}', o: 'if($tmplnull_1){$.each($1a,function($2){with(this){', _d: { $2: '$index, $value' }, }, html: { o: 'if($tmplnull_1){__.push($1a);}', }, if: { c: '}', o: 'if(($tmplnull_1) && $1a){', }, '=': { o: 'if($tmplnull_1){__.push($.encode($1a));}', _d: { $1: '$data' }, }, }; function getMarkUp(mk) { return jQuery .trim(mk) .replace(/([\\'])/g, '\\$1') .replace(/[\r\t\n]/g, ' ') .replace(/\$\{([^\}]*)\}/g, '{' + '{= $1}}'); } (function () { this.tmpl = function tmpl(o, data) { var mk = o.html(); // eslint-disable-next-line no-new-func var fn = new Function( 'jQuery', '$item', 'var $=jQuery,call,__=[],$data=$item;' + "with($data){__.push('" + getMarkUp(mk).replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g, function (all, slash, type, fnargs, target, parens, args) { var tag = tmplTag[type]; var def; var expr; var exprAutoFnDetect; if (!tag) { return; } if (parens && !/\w$/.test(target)) { target += parens; parens = ''; } def = (function () { return tag._d || []; })(); if (target) { target = unescape2(target); args = (function () { return args ? ',' + unescape2(args) + ')' : parens ? ')' : ''; })(); expr = (function () { return parens ? (target.indexOf('.') > -1 ? target + unescape2(parens) : '(' + target + ').call($item' + args) : target; })(); exprAutoFnDetect = (function () { return parens ? expr : '(typeof(' + target + ")==='function'?(" + target + ').call($item):(' + target + '))'; })(); } else { exprAutoFnDetect = expr = (function () { return def.$1 || 'null'; })(); } fnargs = unescape2(fnargs); return ( "');" + tag[ (function () { return slash ? 'c' : 'o'; })() ] .split('$tmplnull_1') .join( (function () { return target ? 'typeof(' + target + ")!=='undefined' && (" + target + ')!=null' : 'true'; })() ) .split('$1a') .join(exprAutoFnDetect) .split('$1') .join(expr) .split('$2') .join( (function () { return fnargs || def.$2 || ''; })() ) + "__.push('" ); }) + "');}return __;" ); var html = []; for (var i in data) { html = html.concat(fn.call(this, $, data[i])); } return html.join(''); }; })(); define('jquery.ajaxRequest', function () { }); $(document).on('shown.bs.collapse', '#accordion .panel .nabar-collapse', function (e) { var $t = $(this); var $p = $t.closest('.panel'); $t.promise().then(function () { $('html, body').animate({ scrollTop: $p.offset().top }); }); }); // }); (function () { $('.whitepaper-right-tab span').on('click', function () { $('.whitepaper-right-tab span').siblings().removeClass('active'); var name = '#' + $(this).attr('class'); $(name).addClass('active').siblings().removeClass('active'); $(this).addClass('active').siblings().removeClass('active'); }); var time = setTimeout(function () { var hash = window.location.hash; if ($(hash) && $(hash).offset().top) { $('html, body').animate({ scrollTop: $(hash).offset().top - ($(window).width() -1; var safariAgent = userAgentString.indexOf("Safari") > -1; // Discard Safari since it also matches Chrome if ((chromeAgent) && (safariAgent)) safariAgent = false; if (!safariAgent) return; $(".js-pop-box.hiden").appendTo("body"); } document.addEventListener("DOMContentLoaded", function (e) { safariFix(); }); function mobileCollapse() { var $collapseBox = $(".modeonebox .list-box.js-panel-parent"); if ($collapseBox.length) return; $(".modeonebox .list-box") .addClass("js-panel-parent") .children() .each(function (i, o) { var $t = $(this); var contentPanelId = "item-content-" + i; $t.addClass("panel-box") .find(".title-group") .wrapAll( '' ) .parent() .next() .addClass("collapse") .attr("id", contentPanelId); }); } function pcCollapse() { var $collapseBox = $(".modeonebox .list-box.js-panel-parent"); if (!$collapseBox.length) return; $collapseBox .removeClass("js-panel-parent") .children() .removeClass("panel-box") .each(function () { var $c = $(this).children().removeClass("collapse").filter("a"); $c.children().prependTo(this); $c.remove(); }); } function debounce(func, wait) { var timeout; return function () { var context = this; var args = arguments; if (timeout) clearTimeout(timeout); timeout = setTimeout(function () { func.apply(context, args); }, wait); }; } $(window) .on( "resize.collapse", debounce(function () { if ($(window).width() div ", function (e) { var $t = $(this); var $btn = $t.prev(); $btn.find("span").addClass("icon-arrow-up").removeClass("icon-arrow-down"); }) .on("hide.bs.collapse", ".modeonebox .list-box .item > div", function (e) { var $t = $(this); var $btn = $t.prev(); $btn.find("span").addClass("icon-arrow-down").removeClass("icon-arrow-up"); });

    5.5G is a Key Milestone on the Path to an Intelligent World

    5G
    2025
    5.5G
    6G

    Standards

    Clear roadmap

    Industry

    Steady progress

    Spectrum

    Clear strategies

    • Standards

      Clear roadmap

    • Industry

      Steady progress

    • Spectrum

      Clear strategies

      Legacy spectrum: evolution to NR
      New spectrum: mmWave and 6 GHz

      Spectrum is fundamental to wireless networks. The 5.5G industry is now promoting sub-100 GHz to support NR via a twofold strategy. First, legacy spectrum will be refarmed to ensure smooth evolution to 5.5G. Second, joint efforts will be made to ensure that large-bandwidth spectrum mmWave and the upper part of 6 GHz (U6GHz) will be allocated to 5.5G.


    5.5G Is Coming

    With the world's leading analysts, we explore 5.5G and the global value it can provide

    Intelligent World 2030 Outlooks

    Huawei's Intelligent World 2030 report examines what opportunities the next decade may bring for every person, home, and organization

    Learn More
    '; } this.configs.html = this.tmpHtml; return this.configs; }, buildParam: function () { this.rangeStart = this.configs.PageIndex - this.pageRange; this.rangeEnd = this.configs.PageIndex + this.pageRange; if (this.rangeEnd > this.totalpage) { this.rangeEnd = this.totalpage; this.rangeStart = this.totalpage - this.pageRange * 2; this.rangeStart = this.rangeStart '; if (this.configs.PageIndex > 1) { this.tmpHtml += ''; } else { this.tmpHtml += ''; } }, buildPageIndex: function () { this.buildLeftPage(); for (var i = this.rangeStart; i ' + i + ''; } this.buildRightPage(); }, buildLeftPage: function () { if (this.rangeStart ' + i + ''; } } else { this.tmpHtml += '
  • 1
  • '; this.tmpHtml += '
  • ...
  • '; } }, buildRightPage: function () { if (this.rangeEnd >= this.totalpage - 2) { for (var i = this.rangeEnd + 1; i ' + i + ''; } } else { this.tmpHtml += '
  • ...
  • '; this.tmpHtml += '
  • ' + this.totalpage + '
  • '; } }, buildNext: function () { if (this.configs.PageIndex '; } else { this.tmpHtml += ''; } if (this.totalpage > 10) { this.tmpHtml += '
    '; this.tmpHtml += '
    ' + window.publicLeftPageFix + '' + window.publicRightPageFix + '
    '; this.tmpHtml += ' ' + window.publicJumpPageText + ''; this.tmpHtml += '
    '; } }, events: { previous: { f: function (_$container, _$configs, _$e) { if (_$e) { _$configs.onPageClick(_$configs.PageIndex - 2); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_prev', '', 'prev_page'); return; } }, }, next: { f: function (_$container, _$configs, _$e) { if (_$e) { _$configs.onPageClick(_$configs.PageIndex); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_next', '', 'next_page'); return; } }, }, l_more: { f: function (_$container, _$configs, _$e) { if (_$e) { return false; } }, }, r_more: { f: function (_$container, _$configs, _$e) { if (_$e) { return false; } }, }, page_index: { f: function (_$container, _$configs, _$e) { if (_$e) { pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_' + _$container.innerHTML, _$container.innerHTML, _$container.innerHTML); _$configs.onPageClick(parseInt(_$container.innerHTML) - 1); return; } }, }, jump: { f: function (_$container, _$configs, _$e) { var input = $(_$container).parent().find("input[data-id='PAGE_INDEX']"); var page_Index = 1; var pi = input.val(), min = parseInt(input.attr('data-min')), max = parseInt(input.attr('data-max')); if (/^[0-9]*$/.test(pi)) { var tmp = parseInt(pi); if (tmp max) { input.val(max); pi = max; } page_Index = pi; } else { input.val('1'); } _$configs.onPageClick(page_Index - 1); pageClickEvent('send', 'event', 'search', 'result_page', 'pagination_go', page_Index, 'go'); }, }, }, }; $.fn.pageBar = function (options) { var configs = Pagination.render(options); if (configs.html != '') { if (!options.OnlyBindEvent) { this.html(configs.html).bindPageBarEvent(configs); } else { delete configs.OnlyBindEvent; delete options.OnlyBindEvent; this.bindPageBarEvent(configs); } } else { this.html(''); } }; function pageClickEvent() { var args = Array.prototype.slice.call(arguments); if ($('#hidSearchPage').val()) { if (typeof utag === 'undefined') return; try { window.ga.apply(null, args.slice(0, 5)); window.utag.link({ link_category: args[2], link_name: args[3], pagination_number: args[5], pagination_button: args[6], link_url: '#', tealium_event: 'pagination_click', }); } catch (e) { } } else { if (typeof utag === 'undefined') return; try { var json = { tealium_event: 'pagination_click', pagination_button: args[6], }; if (args[5] !== '') { json['pagination_number'] = args[5]; } window.utag.link(json); } catch (e) { } } } $.fn.bindPageBarEvent = function (options) { delete options.html; var configs = {}; $.extend(configs, options); this.find('a') .off() .click(function () { $(this).attr('href', 'javascript:;'); var v = $(this).attr('v'); var ref = $(this).attr('ref'); var $e = ref == 'page_index' ? v != 'disabled' && !$(this).hasClass('active') : v != 'disabled'; try { Pagination.events[ref].f(this, configs, $e); } catch (e) { } }) .each(function () { try { if (configs.PageIndex == parseInt(this.innerHTML)) { $(this).addClass('active'); return false; } } catch (e) { } }); }; function buildUrl(options) { if (!options.url) { var ret = /\?/; var path = window.location.hostname + window.location.pathname; ret.exec(path) == '?' ? (options.url = path + '&d=ws') : (options.url = '?d=ws'); if (options.method) options.url += '&method=' + options.method; } } function buildJsonData(configs, param) { var jsonData = null; if (configs.initData == null || configs.initPage == null) { jsonData = serializeRequest(configs, param); } return jsonData; } function getUrl(pageIndex) { var ret = /\?/; var path = window.location.search; var url = ''; if (ret.exec(path) == '?') { var pattern = 'page=([^&]*)'; var replaceText = 'page=' + (parseInt(pageIndex) + 1); url = path.match(pattern) ? path.replace(eval('/(page=)([^&]*)/gi'), replaceText) : path.match('[?]') ? path + '&' + replaceText : path + '?' + replaceText; } else { url = '?page=' + (parseInt(pageIndex) + 1); } url = url + location.hash; return url; } function xxx() { this.requestConfigs = undefined; this.requestParam = undefined; this.url = ''; this.type = ''; this.dataType = ''; this.data = undefined; } var ajaxOptions = { init: function (configs, param, jsonData) { this.requestConfigs = configs; this.requestParam = param; this.url = configs.url; this.type = configs.type || 'GET'; this.dataType = configs.dataType || 'json'; this.data = jsonData; return this; }, error: function (msg) { var requestConfigs = this.requestConfigs; if (requestConfigs.onError) { requestConfigs.onError(msg); } else { console.log('error -' + msg); } }, success: function (data) { var oJson = data, mValue = {}, oPage = {}, requestConfigs = this.requestConfigs, requestParam = this.requestParam, ajaxOpt = this; if (oJson.Complete && oJson.Complete.toLowerCase() == 'succeed') { var param = this.renderData(requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt); this.onlyShowPage(requestConfigs, oJson, param.oPage, param.mValue); } else { if (oJson.Message) console.log(oJson.Message); else console.log('result is null'); } }, onlyShowPage: function (requestConfigs, oJson, oPage, mValue) { if (!oJson.OnlyShowPage) { mValue = this.onResponse(requestConfigs, oPage, mValue, oJson); this.fillPageList(requestConfigs, oPage, mValue, oJson); this.onComplete(requestConfigs, oPage, mValue, oJson); this.renderPage(requestConfigs, oPage, !requestConfigs.fill); } else { setPageIndex(requestConfigs.target, oPage); oPage.OnlyBindEvent = true; this.renderPage(requestConfigs, oPage, true); } }, page: function () { var oPage = {}, ajaxOpt = this, requestParam = ajaxOpt.requestParam; var pageInput = $('#' + ajaxOpt.requestConfigs.target.attr('id') + '_PageBar'); oPage.PageIndex = pageInput.attr('data-index'); oPage.PageSize = pageInput.attr('data-size'); oPage.RecordCount = pageInput.attr('data-count'); oPage.showPageCount = ajaxOpt.requestConfigs.page.showPageCount; if (oPage.PageSize > 0) { oPage.TotalPage = parseInt(oPage.RecordCount / oPage.PageSize); if (oPage.RecordCount % oPage.PageSize > 0) { oPage.TotalPage++; } } else { oPage.TotalPage = 0; } oPage = $.extend({}, ajaxOpt.requestConfigs.page, oPage); oPage.onPageClick = function (pageIndex, pageSize) { if (oPage.JumpHistory) { try { var url = getUrl(pageIndex); history.pushState('', document.title, url); } catch (e) { } } $.extend(ajaxOpt.requestConfigs.page, oPage); ajaxOpt.requestConfigs.page.PageIndex = ++pageIndex; if (pageSize) { ajaxOpt.requestConfigs.page.PageSize = pageSize; } ajaxOpt.data = serializeRequest(ajaxOpt.requestConfigs, requestParam); $.ajax(ajaxOpt); }; setPageIndex(ajaxOpt.requestConfigs.target, oPage); oPage.OnlyBindEvent = true; pageInput.pageBar(oPage); }, onResponse: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.onResponse) { setPageIndex(requestConfigs.target, oPage); return requestConfigs.onResponse(mValue, oPage); } return mValue; }, fillPageList: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.target && requestConfigs.fill) { requestConfigs.target.fillPageList(mValue, oPage); } }, onComplete: function (requestConfigs, oPage, mValue, oJson) { if (oJson.Result && requestConfigs.onComplete) { try { requestConfigs.onComplete(mValue, oPage, oJson); } catch (e) { } } }, renderPage: function (requestConfigs, oPage, _$e) { if (_$e) { $('#' + requestConfigs.target.attr('id') + '_PageBar').pageBar(oPage); } }, renderData: function (requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt) { var ret = { oPage: null, mValue: null, }; if (oJson.Result != null) { if (oJson.ResultType) { switch (oJson.ResultType.toLowerCase()) { case 'conditionresult': ret.oPage = this.redderConditionResult(requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt); ret.mValue = oJson.Result.ResultList; break; default: ret.mValue = oJson.Result; break; } } else { ret.mValue = oJson.Result; } } return ret; }, redderConditionResult: function (requestConfigs, requestParam, oPage, oJson, mValue, ajaxOpt) { oPage.PageIndex = oJson.Result.PageIndex == undefined ? 1 : oJson.Result.PageIndex; oPage.PageSize = oJson.Result.PageSize; oPage.RecordCount = oJson.Result.TotalCount; oPage.showPageCount = requestConfigs.page.showPageCount; if (oPage.PageSize > 0) { oPage.TotalPage = parseInt(oPage.RecordCount / oPage.PageSize); if (oPage.RecordCount % oPage.PageSize > 0) { oPage.TotalPage++; } } else { oPage.TotalPage = 0; } oPage = $.extend({}, requestConfigs.page, oPage); oPage.onPageClick = function (pageIndex, pageSize) { if (oPage.JumpHistory) { try { var url = getUrl(pageIndex); history.pushState('', document.title, url); } catch (e) { } } $.extend(requestConfigs.page, oPage); requestConfigs.page.PageIndex = ++pageIndex; if (pageSize) { requestConfigs.page.PageSize = pageSize; } ajaxOpt.data = serializeRequest(requestConfigs, requestParam); $.ajax(ajaxOpt); }; return oPage; }, }; xxx.prototype = ajaxOptions; var _defaultPageSize = 15; $.ajaxRequest = function (options) { var configs = { url: null, method: null, type: null, target: null, fill: true, reqData: '', page: { PageIndex: 0, PageSize: _defaultPageSize, TotalPage: 0, RecordCount: 0, showPageCount: 5, JumpHistory: true, }, onRequest: null, onResponse: null, onComplete: null, onError: null, initData: null, initPage: false, }; buildUrl(options); options.page = $.extend({}, configs.page, options.page); $.extend(configs, options); var param = {}; if (configs.onRequest) { param = configs.onRequest(param); } var jsonData = buildJsonData(configs, param); var o = new xxx().init(configs, param, jsonData); if (configs.initData != null) { o.success(configs.initData); } else if (configs.initPage) { o.page(configs); } else { $.ajax(o); } }; function serializeRequest(config, param) { param.PageSize = config.page.PageSize; param.PageIndex = config.page.PageIndex; if (param.PageIndex == 0) param.PageIndex = 1; if (config.reqData == 'json') return $.toJSON(param); else return param; } function setPageIndex(target, opage) { if (target == null || opage == null) { return false; } opage.PageIndex = opage.PageIndex == 0 ? 1 : opage.PageIndex; var tabID = $(target).attr('id') + '_PageIndex'; var elpageindex = $('#' + tabID); if (elpageindex.length == 0) { $('body').append(''); } else { $(elpageindex).val(opage.PageIndex); } } function DecodeHtmlUx(s) { return $('
    ').html(s).text(); } function ReplacePTagUx(s) { return s.replace(/

    /g, '').replace(//g, ''); } var $JsonType = { undefined: function () { return; }, object: function (object) { if (object === null) return 'null'; var r = []; for (var property in object) { if (object[property] !== null) { var v = jQuery.toJSON(object[property]); if (v !== undefined) { r.push(jQuery.toJSON(property) + ':' + v); } } else { r.push(property + ':null'); } } return '{' + r.join(',') + '}'; }, number: function (object) { return isFinite(object) ? object.toString() : 'null'; }, string: function (object) { return ( '"' + object.replace(/(\\|\")/g, '\\$1').replace(/\n|\r|\t/g, function () { var b = arguments[0]; return b === '\n' ? '\\n' : b === '\r' ? '\\r' : b === '\t' ? '\\t' : ''; }) + '"' ); }, array: function (object) { var r = []; for (var i = 0; i ').join('>').split('"').join('"').split("'").join('''); }, evalJSON: function (s) { return eval('(' + s + ')'); }, }); var dateFormat = (function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = new RegExp('\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) ' + '(?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]d{4})?)\b', 'g'), timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length 99 ? Math.round(L / 10) : L); })(), t: (function () { return H 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + (Math.abs(o) % 60), 4); })(), S: (function () { return ['th', 'st', 'nd', 'rd'][d % 10 > 3 ? 0 : (((d % 100) - (d % 10) != 10) * d) % 10]; })(), }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; })(); // Some common format strings dateFormat.masks = { fullDate: 'dddd, mmmm d, yyyy', default: 'ddd mmm dd yyyy HH:MM:ss', mediumTime: 'h:MM:ss TT', shortTime: 'h:MM TT', shortDate: 'm/d/yy', isoDate: 'yyyy-mm-dd', isoTime: 'HH:MM:ss', mediumDate: 'mmm d, yyyy', longDate: 'mmmm d, yyyy', longTime: 'h:MM:ss TT Z', isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'", }; // Internationalization strings dateFormat.i18n = { dayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], monthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); }; var tmplTag = { '!': { o: '', }, wrap: { c: 'call=$item.calls();__=call._.concat($item.wrap(call,__));', o: '$item.calls(__,$1,$2);__=[];', _d: { $2: 'null' }, }, tmpl: { o: 'if($tmplnull_1){__=__.concat($item.nest($1,$2));}', _d: { $2: 'null' }, }, else: { o: '}else if(($tmplnull_1) && $1a){', _d: { $1: 'true' }, }, each: { c: '}});}', o: 'if($tmplnull_1){$.each($1a,function($2){with(this){', _d: { $2: '$index, $value' }, }, html: { o: 'if($tmplnull_1){__.push($1a);}', }, if: { c: '}', o: 'if(($tmplnull_1) && $1a){', }, '=': { o: 'if($tmplnull_1){__.push($.encode($1a));}', _d: { $1: '$data' }, }, }; function getMarkUp(mk) { return jQuery .trim(mk) .replace(/([\\'])/g, '\\$1') .replace(/[\r\t\n]/g, ' ') .replace(/\$\{([^\}]*)\}/g, '{' + '{= $1}}'); } (function () { this.tmpl = function tmpl(o, data) { var mk = o.html(); // eslint-disable-next-line no-new-func var fn = new Function( 'jQuery', '$item', 'var $=jQuery,call,__=[],$data=$item;' + "with($data){__.push('" + getMarkUp(mk).replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g, function (all, slash, type, fnargs, target, parens, args) { var tag = tmplTag[type]; var def; var expr; var exprAutoFnDetect; if (!tag) { return; } if (parens && !/\w$/.test(target)) { target += parens; parens = ''; } def = (function () { return tag._d || []; })(); if (target) { target = unescape2(target); args = (function () { return args ? ',' + unescape2(args) + ')' : parens ? ')' : ''; })(); expr = (function () { return parens ? (target.indexOf('.') > -1 ? target + unescape2(parens) : '(' + target + ').call($item' + args) : target; })(); exprAutoFnDetect = (function () { return parens ? expr : '(typeof(' + target + ")==='function'?(" + target + ').call($item):(' + target + '))'; })(); } else { exprAutoFnDetect = expr = (function () { return def.$1 || 'null'; })(); } fnargs = unescape2(fnargs); return ( "');" + tag[ (function () { return slash ? 'c' : 'o'; })() ] .split('$tmplnull_1') .join( (function () { return target ? 'typeof(' + target + ")!=='undefined' && (" + target + ')!=null' : 'true'; })() ) .split('$1a') .join(exprAutoFnDetect) .split('$1') .join(expr) .split('$2') .join( (function () { return fnargs || def.$2 || ''; })() ) + "__.push('" ); }) + "');}return __;" ); var html = []; for (var i in data) { html = html.concat(fn.call(this, $, data[i])); } return html.join(''); }; })(); define('jquery.ajaxRequest', function () { }); $(document).on('shown.bs.collapse', '#accordion .panel .nabar-collapse', function (e) { var $t = $(this); var $p = $t.closest('.panel'); $t.promise().then(function () { $('html, body').animate({ scrollTop: $p.offset().top }); }); }); // }); (function () { $('.whitepaper-right-tab span').on('click', function () { $('.whitepaper-right-tab span').siblings().removeClass('active'); var name = '#' + $(this).attr('class'); $(name).addClass('active').siblings().removeClass('active'); $(this).addClass('active').siblings().removeClass('active'); }); var time = setTimeout(function () { var hash = window.location.hash; if ($(hash).length && $(hash).offset().top) { $('html, body').animate({ scrollTop: $(hash).offset().top - ($(window).width() -1; var safariAgent = userAgentString.indexOf("Safari") > -1; // Discard Safari since it also matches Chrome if ((chromeAgent) && (safariAgent)) safariAgent = false; if (!safariAgent) return; $(".js-pop-box.hiden").appendTo("body"); } document.addEventListener("DOMContentLoaded", function (e) { safariFix(); }); function mobileDesc() { $(".modeonebox .list-box .item").each(function () { var $t = $(this); var $desc = $t.find(".title-group").next(); $desc.children().eq(0).prependTo($desc.find(".moreinfo")); }); } function pcDesc() { $(".modeonebox .list-box .item").each(function () { var $t = $(this); var $desc = $t.find(".title-group").next(); $desc.find(".moreinfo").children().eq(0).prependTo($desc); }); } function debounce(func, wait) { var timeout; return function () { var context = this; var args = arguments; if (timeout) clearTimeout(timeout); timeout = setTimeout(function () { func.apply(context, args); }, wait); }; } $(window).off("resize.desc").on("resize.desc", debounce(function () { if ($(window).width()