Daha çox

Kodlaşdırma səhvlərini aradan qaldırmaq üçün simvolları necə dəyişdirmək olar?


Qgis ilə işləyərkən küçələri təmsil edən bir masam var. Atributlarda küçə adı, uzunluğu, səki və digərləri yer alır. Təəssüf ki, ä və ya ya ya ü olan bütün adlarda Ã1 / 4 kimi 'tək işarələr' göstərilir. Bu tək simvolları gerçək Alman hərfləri ilə əvəzləməyə çalışarkən siyahımdakı BÜTÜN küçələr yalnız bu tək simvolları əvəzinə eyni ada sahib olur. Yalnız müəyyən simvolları necə əvəz edə bilərəm?


Qəribə hərfləri dəyişdirmək üçün məzmun cədvəlindəki qatı sağ vurun, -> Xüsusiyyətlər, Ümumi nişanı. Orada tapa bilərsinizMəlumat mənbəyi kodlaşdırmasıbirləşmiş qutu.

Məlumatlarınızın mənbəyindən asılı olaraq,utf-8,Sistemvə ya bəziləripəncərələrkod səhifəsi sizə məlumatların düzgün göstərilməsini gətirəcəkdir.


Kodlaşdırma səhvlərini aradan qaldırmaq üçün simvolları necə dəyişdirmək olar? - Coğrafi İnformasiya Sistemləri

arrayIndexOf (nəticə, açar) || result.push (key) n> n nəticə qaytarma n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _object-keys-internal.js " , "var toInteger = tələb ('./_ tam ədədi') nvar max = Math.max nvar min = Math.min nmodule.exports = function (index, length) < n index = toInteger (index) n dönüş indeksi 1? arqumentlər [1]: tərif olunmamış) n> n>) n ntələb ('./_ açıqlanmayan əlavələr') ('daxildir') n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es7.array.includes.js "," need ('../../ modules / es6.math.log2') nmodule.exports = need ('../. ./modules/_core').Math.log2 // WEBPACK FOOTER // n // node_modules / core-js / fn / math / log2.js "," // 20.2.2.22 Math.log2 (x) nvar $ export = need ('./_ export') n n $ export ($ export.S, 'Math', < n log2: function log2 (x) < n return Math .log (x) / Math.LN2 n> n>) n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es6.math.log2.js " , "need ('../../ modules / es6.number.is-nan') nmodule.exports = need ('../../ modules / _core'). Number.isNaN n n n n // WEBPACK FOOTER // n // node_modules / core-js / fn / number / is-nan.js "," // 20.1.2.4 Number.isNaN (number) nvar $ export = need (') ./_export') $export($export.S, 'Sayı', < n isNaN: function isNaN (number) < n // eslint-disable-next-line no-self-Compar n geri nömrəsi! = sayı n> n>) n n n n // WEBPACK FOOTER / / n // node_modules / core-js / modules / es6.number.is-nan.js "," need ('../../ modules / es6.number.is-integer') nmodule.exports = tələb ('../../ modullar / _core'). Sayı.isInteger n n n n // WEBPACK FOOTER // n // node_modules / core-js / fn / number / is-integer. js "," // 20.1.2.3 Sayı.isInteger (nömrə) nvar $ ixrac = tələb ('./_ ixrac') n n $ ixrac ($ export.S, 'Sayı', ) n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es6.number.is-integer.js "," // 20.1 .2.3 Number.isInteger (sayı) nvar isObject = tələb ('./_ is-obyekt') nvar mərtəbə = Math.floor nmodule.exports = function isInteger (it) < n return! İsObject (it) && isFinite (it) && mərtəbə (it) === it n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _is-integer.js "," need ('../modules/es6.object.to-string') require('../modules/es6.string.iterator') require('../modules/web.dom.iterable') require ('../modules/es6.promise') require('../modules/es7.promise.finally') require('../modules/es7.pro mise.try ') nmodule.exports = need (' ../ modules / _core '). Promise n n n n // WEBPACK FOOTER // n // node_modules / core-js / fn / word .js "," 'ciddi istifadə edin nvar $ at = tələb (' ./_ string-at ') (doğru) n n // 21.1.3.27 String.prototype [@@ iterator] () nrequire (' ./_iter-define')(String, 'String', function (iterated) < n this._t = String (iterated) // target n this._i = 0 // next index n // 21.1.5.2 .1% StringIteratorPrototype% .next () n>, function () < n var O = this._t n var index = this._i n var point n if (index> = O.length) return < value: undefined, done: true> n point = $ at (O, index) n this._i + = point.length n return n>) n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es6.string.iterator.js "," var toInteger = need ('./_ to-integer') nvar defined = need ( './_defined') // true -> String # at n // false -> String # codePointAt nmodule.exports = function (TO_STRING) < n return function (that, pos) < n var s = String (müəyyən edilmiş (ki)) n var i = toInteger (pos) n var l = uzunluq n var a, b n əgər (i = l) TO_STRING qayıdır? '': undefined n a = s.charCodeAt (i) n return a 0xdbff || i + 1 === l || (b = s.charCodeAt (i + 1)) 0xdfff n? TO_STRING? s.charAt (i): a n: TO_STRING? s.slice (i, i + 2): (a - 0xd800 ' n var iframeDocument n iframe.style.display =' none ' n tələb (' ./_ html '). appendChild (iframe) n iframe. src = 'javascript:' // eslint-disable-line no-script-url n // createDict = iframe.contentWindow.Object n // html.removeChild (iframe) n iframeDocument = iframe.contentWindow.document n iframeDocument.open () n iframeDocument.write (lt + 'script' + gt + 'document.F = Object' + lt + '/ script' + gt) n iframeDocument.close () n createDict = iframeDocument.F n (i--) createDict silin [PROTOTYPE] [enumBugKeys [i]] n return createDict () n> n nmodule.exports = Object.create || funksiyası yaratmaq (O, Properties) < n var result n if (O! == null) < n Boş [PROTOTYPE] = anObject (O) n nəticə = yeni Boş () n Boş [PROTOTYPE] = boş n // əlavə "__ proto __ " üçün Object.getPrototypeOf polyfill n nəticə [IE_PROTO] = O n> başqa nəticə = createDict () n qayıt Properties === undefined? result: dPs (result, Properties) n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _object-create.js "," var dP = tələb ('./_ obyekt-dp') nvar anObject = tələb ('./_ an-obyekt') nvar getKeys = tələb ('./_ obyekt-düymələr') n nmodule.exports = tələb edir ('./_ təsviri')? Object.defineProperties: function defineProperties (O, Properties) < n anObject (O) n var düymələri = getKeys (Properties) n var length = keys.length n var i = 0 n var P n while (length) > i) dP.f (O, P = düymələr [i ++], Xüsusiyyətlər [P]) n qayıdır O n> n n n n // WEBPACK FOOTER // n // node_modules / core- js / modules / _object-dps.js "," // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf (O) nvar has = need ('./_ has') nvar toObject = need ('./_ to-) object ') nvar IE_PROTO = need (' ./_ shared-key ') (' IE_PROTO ') nvar ObjectProto = Object.prototype n nmodule.exports = Object.getPrototypeOf || function (O) < n O = toObject (O) n if (has (O, IE_PROTO)) return O [IE_PROTO] n if (typeof O.constructor == 'function' && O instanceof O.constructor) < n O.constructor.prototype qayıtmaq n> O obyektini qayıtmaq? ObjectProto: null n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _object-gpo.js "," 'strict use' nvar addToUnscopables = need ( './_add-to-unscopables') var addım = tələb (' ./_ iter-addım ') nvar Təkrarlayıcılar = tələb (' ./_ təkrarlayıcılar ') nvar toIObject = tələb (' ./_ to-iobject ') n n // 22.1.3.4 Array.prototype.entries () n // 22.1.3.13 Array.prototype.keys () n // 22.1.3.29 Array.prototype.values ​​() n // 22.1. 3.30 Array.prototype [@@ iterator] () nmodule.exports = need ('./_ iter-define') (Array, 'Array', function (iterated, kind) < n this._t = toIObject (iterated) // target n this._i = 0 // next index n this._k = kind // kind n // 22.1.5.2.1% ArrayIteratorPrototype% .next () n>, function () < n var O = this._t n var kind = this._k n var index = this._i ++ n if (! O || index> = O. length) < n this._t = undefined n return step ( 1) n> n əgər (növ == 'düymələr') qayıdış addımı (0, indeks) n əgər (növ == 'dəyərlər') qayıdış addımı (0, O [indeks]) n qayıdış addımı (0 , [index, O [index]]) n>, 'dəyərlər') n n // argumentList [ @@ iterator]% ArrayProto_values% (9.4.4.6, 9.4.4.7) nIterators.Arguments = Iterators.Array n naddToUnscopables ('düymələri') naddToUnscopables ('dəyərlər') naddToUnscopables ('girişlər') n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es6.array.iterator.js "," module.exports = function (done, value) < n return n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _iter-step.js "," 'ciddi istifadə edin' nvar KİTABXANA = tələb ('./_ kitabxana') nvar qlobal = tələb ('./_ qlobal') nvar ctx = tələb ('./_ ctx') nvar classof = tələb ('./_ classof') nvar $ ixrac = tələb ('./_ ixrac') nvar isObject = tələb ('./_ is-obyekt') nvar aFunction = tələb ('./_ a-funksiya') nvar anInstance = tələb ('./_ an-) misal ') nvar forOf = tələb (' ./_ üçün ') nvar növConstructor = tələb (' ./_ növ qurucu ') nvar tapşırıq = tələb (' ./_ vəzifə '). set nvar microtask = tələb ('./_microtask')() var newPromiseCapabilityModule = tələb (' ./_ new-vada-qabiliyyət ') nvar perform = Requ ire ('./_ perform') nvar vadaResolve = tələb ('./_ vəd həll et') nvar PROMISE = 'Promise' nvar TypeError = global.TypeError nvar process = global.process nvar $ Promise = global [ PROMISE] nvar isNode = classof (process) == 'process' nvar empty = function () nvar Daxili, newGenericPromiseCapability, OwnPromiseCapability, Wrapper nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapability nvar nvar USE_NATIVE = !! function () < n try < n // @@ növ dəstəyi ilə düzgün alt sinifləşdirmə n var vada = $ Promise.resolve (1) n var FakePromise = (vada.constructor = <>) [ need ('./_ wks') ('növ')] = function (exec) < n exec (boş, boş) n> n // işlənməmiş rədd izləmə dəstəyi, NodeJS Promise olmadan uğursuz @@ növ testi n qayıt (isNode || tipeof PromiseRejectionEvent == 'funksiya') && vada. sonra FakePromise (boş) başlanğıc n> catch (e) n> () n n // köməkçilər nvar isThenable = funksiya (it ) < n var then n return isObject (it) && typeof (then = it.then) == 'function'? sonra: false n> nvar bildiriş = funksiya (vəd, isReject) < n əgər (vada._n) qayıt n söz._n = doğru n var zəncir = söz._c n microtask (function () < n var dəyər = vaat._v n var ok = vada._s == 1 n var i = 0 n var run = funksiya (reaksiya) < n var işləyici = yaxşı? reaksiya.ok: reaksiya.fail n var həll = reaksiya.resolve n var rədd = reaksiya.reject n var etki = reaksiya.domain n var nəticə, sonra n cəhd edin < n əgər (işləyici) < n əgər (! ok) < n əgər (vada._h == 2) onHandleUnhandled (vada) n vada._h = 1 n> n əgər (işləyici === doğru) nəticə = dəyər n başqa < n əgər (domen) domain.enter () n nəticə = işləyici (dəyər) n əgər (domen) domain.exit () n> n əgər (nəticə === reaksiya.promise) < n rədd (TypeError ('Promise-zincir dövrü')) n> else if (then = isThenable (nəticə)) < n then.call (nəticə, həll et, rədd et) n> else həll (nəticə) n> başqa rədd (dəyər) n> tut (e) < n rədd et (e) n> n> n while (chain.length> i) run (zəncir [i ++]) // dəyişən uzunluq - forEach n word._c = istifadə edə bilməz [] n vada._n = yalan n əgər (isReject &&! vada._h) onUnhandled (vaat) n>) n> nvar onUnhandled = function (word) < n task.call (global, function ( ) < n var dəyər = söz ._v n var işlənməmiş = isUnhandled (vəd) n var nəticə, işləyici, konsol n əgər (işlənməmiş) < n nəticə = yerinə yetirmək (function () < n əgər (isNode) < n process.emit ('unhandledRejection', dəyər, söz) n> else if (handler = global.onunhandledrejection) < n işləyici () n> başqa halda ((konsol = global.console) && console.error) < n console.error ('İşlənməmiş sözün rədd edilməsi', dəyər) n> n>) n // Brauzerlər burada işlənildiyi təqdirdə `refectionHandled` hadisəsini başlatmamalıdır, NodeJS - n söz verməlidir._h = isNode || işsizdir (vəd)? 2: 1 n> word._a = undefined n if (unhandled && result.e) return result.v n>) n> nvar isUnhandled = function (vaat) < n if (vada._h == 1) false qayıt n var zəncir = vada._a || vada._c n var i = 0 n var reaksiya n while (zəncir. uzunluq> i) < n reaksiya = zəncir [i ++] n əgər (reaksiya.fail ||! isUnhandled (reaksiya.promise)) qayıt false n> return true n> nvar onHandleUnhandled = function (word) < n task.call (global, function () < n var handler n if (isNode) < n process.emit ('refectionHandled') , söz) n> başqa halda (handler = global.onrejectionhandled) < n işləyici () n> n>) n> nvar $ татгалз = funksiya (dəyər ) < n var vada = bu n əgər (vaat._d) qayıt n söz._d = doğru n vada = vaat._w || vada // açmaq n vada._v = dəyər n vada._s = 2 n əgər (! vaat._a) vəd._a = vada._c.slice () n bildirmək (vaat, doğru) n> nvar $ həll = funksiya (dəyər) < n var vəd = bu n var sonra n əgər (söz._d) qayıt n söz._d = doğru n söz = söz._w || vada // açmaq n cəhd edin < n əgər (söz === dəyər) atın TypeError ( "Söz özü həll edilə bilməz ") n əgər (sonra = isThenable (dəyər)) < n microtask (function () < n var bükücü = <_w: vada, _d: false> // bükmək n cəhd edin < n then.call (value, ctx ($ həll, bükücü, 1), ctx ($ rədd et, bükücü, 1 )) n> catch (e) < n $ accept.call (sarıcı, e) n> n>) n> else < n vaat._v = dəyər n vəd._s = 1 n bildir (söz, yalan) n> n> tutmaq (e) < n $ rədd.call (<_w: vada, _d: yalan>, e) // sarma n> n> n n // konstruktor polyfill nif (! USE_NATIVE) < n // 25.4.3.1 Promise (icraçı) n $ Promise = function Promise (icraçı) < n anInstance (bu, $ Promise, PROMISE, '_h') n aFunction ( icraçı) n Daxili.call (bu) n cəhd edin < n icraçı (ctx ($ həll, bu, 1), ctx ($ rədd et, bu, 1)) n> tut (səhv) < n $ rədd et .call (bu, səhv) n> n> n // eslint-disable-next-line no-unused-vars n Daxili = function Promise (icraçı) < n this._c = [] // 0 ? arqumentlər [0]: undefined) n> n> n nvar metodları = < n // 23.3.3.3 WeakMap.prototype.get (key) n get: function get (key) < n if (isObject (key)) < n var data = getWeak (key) n if (data === true) return uncaughtFrozenStore (validate (this, WEAK_MAP)). get (key) n return data? data [this._i]: undefined n> n>, n // 23.3.3.5 WeakMap.prototype.set (key, value) n set: function set (key, value) < n return return.def (doğrulayın (bu, WEAK_MAP), açar, dəyər) n> n> n n // 23.3 WeakMap Objects nvar $ WeakMap = module.exports = need ('./_ collection') (WEAK_MAP, wrapper, methods , zəif, doğru, doğru) n n // IE11 WeakMap dondurulmuş düymələri düzəldir nif (fails (function () )) < n InteriorMap = weak.getConstructor (sarıcı, WEAK_MAP) n təyin (InteriorMap.prototype, metodlar) n meta.NEED = true n hər biri (['sil' ', 'has', 'get', 'set'], funksiya (düymə) < n var proto = $ WeakMap.prototype n var method = proto [key] n yenidən təyin etmək (proto, key, function (a, b) < n // dondurulmuş obyektləri daxili zəif xəritədə qoruyun n if (isObject (a) &&! isExtensible (a)) < n if (! this._f) this._f = new InteriorMap () n var result = this._f [key] (a, b) n return key == 'set'? this: result n // qalanlarını yerli zəif xəritədə saxlamaq n> return method.call (bu , a, b) n>) n>) n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / es6.weak-map.js " , "// 9.4.2.3 ArraySpeciesCreate (originalArray, length) nvar typesConstructor = need ('./_ array-types-constructor') n nmodule.exports = function (original, length) < n return return new (typesConstructor ( orijinal)) (uzunluq) n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _array-types-create.js "," var isObject = need ( './_is-object') var isArray = tələb (' ./_ is-array ') nvar SPECIES = tələb (' ./_ wks ') (' növ ') n nmodule.exports = funksiya (orijinal) < n var C n if (isArray (orijinal)) < n C = original.constructor n // cross-səltənət geri dönmə n if (typeof C == 'function' && (C === Array || isArray (C.prototip))) C = təyin olunmamış n əgər (isObject (C)) < n C = C [SPECIES] n əgər (C === null) C = undefined n> n> return C === təyin olunmamışdır? Dizi: C n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _array-types-constructor.js "," // 7.2.2 IsArray (arqument ) nvar cof = tələb ('./_ cof') nmodule.exports = Array.isArray || function isArray (arg) < n return cof (arg) == 'Array' n> n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _is-array .js "," 'ciddi istifadə edin' n // 19.1.2.1 Object.assign (hədəf, mənbə,.) nvar getKeys = tələb ('./_ obyekt-düymələr') nvar gOPS = tələb ('./_ obyekt) -gops ') nvar pIE = tələb (' ./_ obyekt-pasta ') nvar toObject = tələb (' ./_ obyektə ') nvar IObject = tələb (' ./_ iobject ') nvar $ assigned = Object .assign n n // simvollarla işləməli və deterministik xüsusiyyət qaydasına sahib olmalıdır (V8 bug) nmodule.exports =! $ assigned || tələb ('./_ uğursuz') (function () < n var A = <> n var B = <> n // eslint-disable-next-line no-undef n var S = Symbol () n var K = 'abcdefghijklmnopqrst' n A [S] = 7 n K.split (''). forEach (function (k) ) n return $ assigned (<>, A ) [S]! = 7 || Object.keys ($ assigned (<>, B)). Join ('')! = K n>)? funksiya təyin etmək (hədəf,mənbə) index) < n var S = IObject (arqumentlər [index ++]) n var düymələri = getSymbols? getKeys (S) .concat (getSymbols (S)): getKeys (S) n var uzunluq = keys.length n var j = 0 n var düymə n while (uzunluq> j) əgər (isEnum.call (S) , key = düymələri [j ++])) T [key] = S [key] n> return T n>: $ assigned n n n n // WEBPACK FOOTER // n // node_modules / core -js / modules / _object-assigned.js "," export.f = Object.getOwnPropertySymbols n n n n // WEBPACK FOOTER // n // node_modules / core-js / modules / _object-gops. js "," 'sərt istifadə' nvar redefineAll = tələb ('./_ redefine-all') nvar getWeak = tələb ('./_ meta'). getWeak nvar anObject = tələb ('./_ an-obyekt') nvar isObject = tələb ('./_ is-obyekt') nvar anInstance = tələb ('./_ an-instansiya') nvar forOf = tələb ('./_ üçün') nvar createArrayMethod = tələb ('. / _array-methods ') nvar $ has = need (' ./_ has ') nvar validate = need (' ./_ validate-collection ') nvar arrayFind = createArrayMethod (5) nvar arrayFindIndex = createArrayMethod (6) tutulmamış dondurulmuş düymələr üçün nvar geri dönüşü nvar uncaughtFrozenStore = function (that) < n return that._l || (that._l = new UncaughtFrozenStore ()) n> nvar UncaughtFrozenStore = function () < n this.a = [] n> nvar findUncaughtFrozen = function (store, key) < n return arrayFind (store. a, function (it) < n return [0] === key n>) n> nUncaughtFrozenStore.prototype = < n get: function (key) < n var entry = findUncaughtFrozen (this, key ) n əgər (giriş) qayıdış girişi [1] n>, n varsa: function (key) < n return !! findUncaughtFrozen (this, key) n>, n set: function (key, value) < n var giriş = findUncaughtFrozen (bu, açar) n əgər (giriş) giriş [1] = dəyər n başqa bu.a.push ([açar, dəyər]) n>, n 'sil': funksiyası (açar) < n var index = arrayFindIndex (this.a, function (it) < n return [0] === key n>) n if (

indeks) this.a.splice (index, 1) n qayıt !!

Chromium 40 - zəif koleksiyonlar ibtidai mətnləri atır, ancaq false olaraq qayıtmalıdır n var THROWS_ON_PRIMITIVES = fails (function () ) n // əksər erkən tətbiqlər təkrarlananları dəstəkləmir, ən müasir - deyil düzgün bağlayın n var ACCEPT_ITERABLES = $ iterDetect (function (iter) ) // eslint-disable-line no-new n // erkən tətbiqetmələr üçün -0 və +0 eyni deyil n var BUGGY_ZERO =! IS_WEAK && iflas (function () < n // V8

7, data0 = imgData.data n var data = yeni Uint8Array (lineSize * height), pos = 0, ii n for (i = 0, ii = data0. Uzunluq i 0) < n data [pos ++] = ( elem & maska)? 0: 255 n maska ​​>> = 1 n> n> n n // təkrarlanan nöqtələrin tapılması: hər nöqtə maska ​​pikselləri arasında yerləşir, n // buna görə (genişlik + 1) nöqtələri olacaq x (hündürlük + 1) ızgara. N // hər nöqtənin qonşu maska ​​piksellərinə əsasən təyin olunmuş bayraqları olacaq: n // 4 | 8 n // --P - n // 2 | 1 n // Bizi yalnız bayraqlı nöqtələr maraqlandırır: n // - kənar künclər: 1, 2, 4, 8 n // - daxili künclər: 7, 11, 13, 14 n // - və, kəsişmələr: 5, 10. n var count = 0 n pos = 0 n əgər (data [pos]! == 0) < n bal [0] = 1 n ++ count n> n üçün (j = 1 j> 2 'sütunu dəyişdirmək üçün). n var sum = (data [pos]? 4: 0) + (data [pos - lineSize]? 8: 0) n for (j = 1 j> 2) + (data [pos + 1]? 4: 0) + n (data [pos - lineSize + 1]? 8: 0) n əgər (POINT_TYPES [cəmi]) < n bal [j0 + j] = POINT_TYPES [sum] n ++ count n> n pos ++ n> n if (data [pos - lineSize]! == data [pos]) < n bal [j0 + j] = məlumat [pos]? 2: 4 n ++ count n> n n if (count> POINT_TO_PROCESS_LIMIT) < n return null n> n> n n pos = lineSize * (boy - 1) n j0 = i * width1 n if (data [pos]! == 0) < n bal [j0] = 8 n ++ count n> n for (j = 1 j POINT_TO_PROCESS_LIMIT) < n return null n> n n // bina konturları n var addımlar = yeni Int32Array ([0, width1, -1, 0, -width1, 0, 0, 0, 1]) n var konturlar = [] n (i üçün = 0 count && i> 4) n // "future hit " n balları üçün yeni növ təyin et [p] & = (type >> 2 | type> 2) n var dest32DataLength = dest32.length n var fullSrcDiff = (eni + 7) >> 3 n var ağ = 0xFFFFFFFF n var qara = IsLittleEndianCached.value? (İ = 0 i fullSrcDiff) üçün 0xFF000000: 0x000000FF n? genişlik: srcDiff * 8 - 7 n var kEndUnrolled = kEnd &

7 n var mask = 0 n var srcByte = 0 n for (k> = 1 n> n> n // Girişimiz bitdi. Qalan bütün pikselləri şəffaf edin. N while (destPos = fullChunks ) < n thisChunkHeight = kısmiChunkHeight n elemsInThisChunk = genişlik * thisChunkHeight n> n n destPos = 0 n for (j = elemsInThisChunk j--) < n dest [destPos ++] = src [srcPos ++] n dest [destPos ++] = src [srcPos ++] n dest [destPos ++] = src [srcPos ++] n dest [destPos ++] = 255 n> n ctx.putImageData (chunkImgData, 0, i * FULL_CHUNK_H>>) başqa < n yeni Xəta atın ("pis görüntü növü: $`) n> n> n n funksiyası putBinaryImageMask (ctx, imgData) < n var height = imgData.height, width = imgData.width n var qismənChunkHeight = boy%% FULL_CHUNK_HEIGHT n var fullChunks = (boy - - kısmiChunkHeight) / FULL_CHUNK_HEIGHT n var totalChunks = kısmiChunkHeight === 0? fullChunks: fullChunks + 1 n n var chunkImgData = ctx.createImageData (width, FULL_CHUNK_HEIGHT) n var srcPos = 0 n var src = imgData.data n var dest = chunkImgData.data n n = 0 i> = 1 n> n> n ctx.putImageData (chunkImgData, 0, i * FULL_CHUNK_HEIGHT) n> n> n n function copyCtxState (sourceCtx, destCtx) < n var properties = [ 'strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', n 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', n 'globalCompositeOperation', 'font'] n (var i = 0, ii = xassələr. uzunluq i> 8 n bayt [i - 2] = (bayt [i - 2] * alfa + g0 * alfa_) >> 8 n bayt [i - 1] = (bayt [i - 1] * alpha + b0 * alpha_) >> 8 n> n> n> n n funksiyası composeSMaskAlpha (maskData, layerData, transferMap) < n var length = maskData.length n var scale = 1 / 255 n üçün (var i = 3 i> 8]) >> 8: n (layerData [i] * y) >> 16 n> n> n n function genericComposeSMask (maskCtx, layerCtx, width , boy, n alt tip, backdrop, transferMap) < n var hasBackdrop = !! backdrop n var r0 = hasBackdr op? backdrop [0]: 0 n var g0 = hasBackdrop? backdrop [1]: 0 n var b0 = hasBackdrop? backdrop [2]: 0 n n var composeFn n əgər (alt tip === 'Parlaqlıq') < n composeFn = composeSMaskLuminosity n> else < n composeFn = composeSMaskAlpha n> n n // processing yaddaşa qənaət etmək üçün şəkillər şəklində n var PIXELS_TO_PROCESS = 1048576 n var chunkSize = Math.min (boy, Math.ceil (PIXELS_TO_PROCESS / width)) n for (var row = 0 row EXECUTION_STEPS && n typeof continueCallback === 'function') n var endTime = chunkOperations? Date.now () + EXECUTION_TIME: 0 n var addımlar = 0 n n var commonObjs = this.commonObjs n var objs = this.objs n var fnId n n while (true) < n if ( stepper! == undefined && i === stepper.nextBreakPoint) < n stepper.breakIt (i, continueCallback) n return i n> n n fnId = fnArray [i] n n if (fnId! == OPS. asılılıq) < n this [fnId] .apply (this, argsArray [i]) n> else < n var deps = argsArray [i] n for (var n = 0, nn = deps. length n EXECUTION_STEPS) < n if (Date.now ()> endTime) < n continueCallback () n return i n> n steps = 0 n> n n // OperatorList deyilsə tamamilə hələ icra edilmişdir VƏ ya icra n // vaxt kifayət qədər qısa idi, başqa bir icra dövrü edin. n> n>, n n endDrawing: function CanvasGraphics_endDrawing () < n // SMask qrupu kimi bütün açılmış əməliyyatları bitirmək. boyama. n if (this.current.activeSMask! == null) < n this.endSMaskGroup () n> n n this.ctx.restore () n n if (this.transparentCanvas) < n this.ctx = this.compositeCtx n this.ctx.save () n this.ctx.setTransform (1, 0, 0, 1, 0, 0) // Dönüşümün iki dəfə tətbiq edilməsindən çəkinin n this.ctx.drawImage (this.transparentCanvas, 0, 0) n this.ctx.restore () n this.transparentCanvas = null n> n n this.cachedCanvases .clear () n this.webGLContext.clear () n n if (this.imageLayer) < n this.imageLayer.endLayout () n> n>, n n // Graphics state n setLineWidth: function CanvasGraphics_setLineWidth (width) < n this.current.lineWidth = width n this.ctx.lineWidth = width n>, n setLineCap: function CanvasGraphics_setLineCap (style) < n this.ctx.lineCap = LINE_CAP_ style] n>, n setLineJoin: function CanvasGraphics_setLineJoin (style) < n this.ctx.lineJoin = LINE_JOIN_STYLES [style] n>, n setMiterLimit: function CanvasGraphics_setMiterLimit (limit) < n this.ctx.miterL limit n>, n setDash: function CanvasGraphics_setDash (dashArray, dashPhase) < n var ctx = this.ctx n if (ctx.setLineDash! == undefined) < n ctx.setLineDash (dashArray) n ctx. lineDashOffset = dashPhase n> n>, n setRenderingIntent: function CanvasGraphics_setRenderingIntent (i ntent) < n // Bəlkə bir gün rəng boşluqlarını tam olaraq dəstəkləsək, bu vacib olacaq n // hələlik laqeyd ola bilərik. n // TODO göstərmə niyyətini təyin etdiniz? n>, n setFlatness: function CanvasGraphics_setFlatness ( düzlük) < n // Bunu kətanla idarə etmək üçün bir yol yoxdur, amma təhlükəsiz şəkildə görməməzlikdən gələ bilərik. n // TODO düzlüyü təyin edirsiniz? n>, n setGState: function CanvasGraphics_setGState (states) < n for (var i = 0, ii = states.length i 0 && n (this.stateStack [this.stateStack.length - 1] .activeSMask === n this.current.activeSMask)) < n this.suspendSMaskGroup () n > başqa < n this.endSMaskGroup () n> n> n this.current.activeSMask = dəyər? this.tempSMask: null n if (this.current.activeSMask) < n this.beginSMaskGroup () n> n this.tempSMask = null n break n> n> n>, n beginSMaskGroup: funksiyası CanvasGraphics_beginSMaskGroup () < n n var activeSMask = this.current.activeSMask n var drawWidth = activeSMask.canvas.width n var drawHeight = activeSMask.canvas.height n var cacheId = 'smaskGroupAt' + this.gro n var scratchCanvas = this.cachedCanvases.getCanvas ( n cacheId, drawWidth, drawingHeight, true) n n var currentCtx = this.ctx n var currentTransform = currentCtx.mozCurrentTransform n this.ctx.save () n n var groupCtx = scratchCanvas.context n groupCtx.scale (1 / activeSMask.scaleX, 1 / activeSMask.scaleY) n groupCtx.translate (-activeSMask.offsetX, -activeSMask.offsetY) n groupCtx.transform.apply (groupCtx , currentTransform) n n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse n n copyCtxState (currentCtx, groupCtx) n this.ctx = groupCtx n this.setGState ([ n ['BM', 'source-over') ], n ['ca', 1], n ['CA', 1] n]) n this.groupStack.push (currentCtx) n this.groupLevel ++ n>, n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup () < n // endSMaskGroup, aralıq kətan kimi ibarət olmalıdır n // və gələcək ctx vəziyyəti bərpa olunur. n var groupCtx = this.ctx n this.groupLevel - n this.ctx = this.groupStack.pop () n n composeSMask (this. ctx, this.current.activeSMask, groupCtx, n this.webGLContext) n this.ctx.restore () n this.ctx.save () // save etmək lazımdır, çünki SMask davam etdiriləcək. n copyCtxState (groupCtx) , this.ctx) n n // Davam etmək üçün qənaət vəziyyəti. n this.current.resumeSMaskCtx = groupCtx n // Transform SMask kətanında dəyişdirildi, bu dəyişikliyi n // this.ctx. n var deltaTransform = Util.transform ( n this.current.activeSMask.startTransformInverse, n groupCtx.mozCurrentTransform) n this.ctx.transform.apply (this.ctx, deltaTransform) n n // SMask tərtib edilmişdir, groupCtx-dəki nəticələr silinə bilər. n groupCtx.save () n groupCtx.setTransform (1, 0, 0, 1, 0, 0) n groupCtx.clearRect (0, 0, groupCtx.canvas.width, groupCtx.canvas.height) n groupCtx.restore () n>, n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup () < n // Vəziyyəti davam etdirir suspendSMaskGroup tərəfindən qeyd edildi. N // hər hansı bir groupCtx vəziyyətini bərpa etməyimizə ehtiyac yoxdur, çünki bərpa () əmri (yeganə zəng edən) bizim üçün bunu edəcəkdir. BeginSMaskGroup-a da baxın. N var groupCtx = this.current.resumeSMaskCtx n var currentCtx = this.ctx n this.ctx = groupCtx n this.groupStack.push (currentCtx) n this.groupLevel ++ n>, n endSMaskGroup: CanvasGraphics_endSMaskGroup () funksiyası < n var groupCtx = this.ctx n this.groupLevel - n this.ctx = this.groupStack.pop () n n composeSMask (this.ctx, this.current.activeSMask , groupCtx, n this.webGLContext) n this.ctx.restore () n copyCtxState (groupCtx, this.ctx) n // Transform SMask kətanında dəyişdirildi və bu dəyişikliyi n // bu şəkildə əks etdirdi. ctx. n var deltaTransform = Util.transform ( n this.current.activeSMask.startTransformInverse, n groupCtx.mozCurrentTransform) n this.ctx.transform.apply (this.ctx, deltaTransform) n>, n qeyd edin : function CanvasGraphics_save () < n this.ctx.save () n var old = this.current n this.stateStack.push (old) n this.current = old.clone () n this.current. resumeSMaskCtx = null n>, n bərpa: function CanvasGraphics_restore () < n // SMask dayandırıldı, sadəcə etməliyik davam etdirin. n əgər (this.current.resumeSMaskCtx) < n this.resumeSMaskGroup () n> n // SMask, n // eyni SMask istifadə edən vəziyyət olmadıqdan sonra tamamlanmalıdır. n if (this.current.activeSMask! == null && (this.stateStack.length === 0 || n this.stateStack [this.stateStack.length - 1] .activeSMask! == n this.current. activeSMask)) < n this.endSMaskGroup () n> n n if (this.stateStack.length! == 0) < n this.current = this.stateStack.pop () n this.ctx. restore () n n // Kırpma yolunun sıfırlandığından əmin olun (problem 6413.pdf-ni düzəldir). n this.pendingClip = null n n this.cachedGetSinglePixelWidth = null n> n>, n çevirmək: funksiyası CanvasGraphics_transform (a, b, c, d, e, f) < n this.ctx.transform (a, b, c, d, e, f) n n this.cachedGetSinglePixelWidth = null n>, n n // Yol n constructPath: funksiyası CanvasGraphics_constructPath (ops, args) < n var ctx = this.ctx n var current = this.current n var x = current.x, y = current.y n üçün (var i = 0, j = 0, ii = ops.length i MAX_FONT_SIZE? MAX_FONT_SIZE: size n this.current.fontSizeScale = size / browserFontSize n n var rule = italic + '' + bold + '' + browserFontSize + 'px' + typeface n this.ctx.font = rule n> , n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode (mode) < n this.current.textRenderingMode = mode n>, n setTextRise: function CanvasGraphics_setTextRise (rise) < n this.current.textRise = rise n>, hərəkət : function CanvasGraphics_moveText (x, y) < n this.current.x = this.current.lineX + = x n this.current.y = this.current.lineY + = y n>, n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText (x, y) < n this.setLeading (-y) n this.moveText (x, y) n>, n setTextMatrix: function CanvasGraphics_setTextMatrix (a, b, c, d, e, f) < n this.current.textMatrix = [a, b, c, d, e, f] n this.current.textMatrixScale = Math.sqrt (a * a + b * b) n n this.current.x = this.current.lineX = 0 n this.current.y = this.current.lineY = 0 n>, n nextLine: function CanvasGraphics_nextLine () < n this.moveText ( 0, this.current.leading) n>, n n paintChar (karakter, x, y, patternTransform) < n var ctx = this.ctx n var current = this.current n var font = current. yazı tipi n var textRenderingMode = current.textRenderingMode n var fontSize = current.fontSize / current.fontSizeScale n var fillStrokeMode = textRenderingMode & n TextRenderingMode.FILL_STROKE_MASK n var isAddToPathSet = !! n desinFill = current.patternFill && font.data n n var addToPath n əgər (font.disableFontFace || isAddToPathSet || patternFill) < n addToPath = font.getPathGenerator (this.commonObjs, character) n> n n if (font.disableFontFace || patternFill) < n ctx.save () n ctx.translate (x, y ) n ctx.beginPath () n addToPath (ctx, fontSize) n əgər (modelTransform) < n ctx.setTransform.apply (ctx, patternTransform) n> n əgər (fillStrokeMode === TextRenderingMode.FILL | | n fillStrokeMode === TextRenderingMode.FILL_STROKE) < n ctx.fill () n> n if (fillStrokeMode === TextRenderingMode.STROKE || n fillStrokeMode === TextRenderingMode.FILL_STROKE) < n ctx. stroke () n> n ctx.restore () n> else < n əgər (fillStrokeMode === TextRenderingMode.FILL || n fillStrokeMode === TextRenderingMode.FILL_STROKE) < n ctx.fillText (simvol, x, y) n> n əgər (fillStrokeMode === TextRenderingMode.STROKE || n fillStrokeMode === TextRenderingMode.FILL_STROKE) < n ctx.strokeText (simvol, x, y) n> n> n n əgər (isAddToPathSet) < n var paths = this.pendingTextPaths || (this.pendingTextPaths = []) n paths.push (< n çevirmə: ctx.mozCurrentTransform, nx, ny, n fontSize, n addToPath, n>) n> n>, n n get isFontSubpixelAAEnabled () < n // Ölçeklenmiş mətn boyandığında anti-aliasing-in aktiv olub olmadığını yoxlayır. n // Windows GDI-də miqyaslı şriftlər pis görünür. n var ctx = this.canvasFactory.create (10, 10 ) .context n ctx.scale (1.5, 1) n ctx.fillText ('I', 0, 10) n var data = ctx.getImageData (0, 0, 10, 10) .data n var enabled = false n for (var i = 3 i 0 && data [i] 0) < n ctx.scale (textHScale, -1) n> else < n ctx.scale (textHScale,1) n> n n var lineWidth = current.lineWidth n var scale = current.textMatrixScale n əgər (scale === 0 || lineWidth === 0) < n var fillStrokeMode = current.textRenderingMode & n TextRenderingMode.FILL_STROKE_MASK n əgər (fillStrokeMode === TextRenderingMode.STROKE || n fillStrokeMode === TextRenderingMode.FILL_STROKE) < n this.cachedGetSinglePixelWidth = null nWWWTHT_TH_WINT_TOWN_TOWN_TOWN_TOWN_TOWN_TOWN_TOWN_TOWN_FINT_F_F_F_B_F_B_F_B_F_B_F_E_n_E_n_I_n_I_H_H_H_H_H_H_H_H_H_H_H_H_H_F_H_F_H_F_H_F_H_H_F_H_H_F_H_F_HA_T n> başqa < n lineWidth / = miqyaslı n> n n əgər (fontSizeScale! == 1.0) < n ctx.scale (fontSizeScale, fontSizeScale) n lineWidth / = fontSizeScale n> n n ctx.lineWidth = lineWidth n n var x = 0, i n for (i = 0 i 0) < n // Bəzi standart şriftlər tam genişliyə sahib olmaya bilər: ölçülən genişlik olduqda hər n / n üçün simvol gözlənilən qlif genişliyindən böyükdür n // və subpiksel-aa aktivdir, əks halda qlifi mərkəzləşdirin. n var ölçülən genişlik = ctx.measureText (simvol). genişlik * 1000 / n fontSize * fontSizeScale n əgər (genişlik < n yeni CanvasGraphics (ctx, this.commonObjs, this.objs) qaytarın , n this.canvasFactory, this.webGLContext) n>, n> n model = yeni TilingPattern (IR, color, this.ctx, canvasGraphicsFactory, n baseTransform) n> else < n pattern = getShadingPatternFromIR ( IR) n> n qayıtma modeli n>, n setStrokeColorN: function CanvasGraphics_setStrokeColorN () < n this.current.strokeColor = this.getColorN_Pattern (arqumentlər) n>, n setFillColorN: function CanvasGraphics_setFillColN () n this.current.fillColor = this.getColorN_Pattern (arqumentlər) n this.current.patternFill = true n>, n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor (r, g, b) < n var color = Util.makeCssRgb (r) , g, b) n this.ctx.strokeStyle = color n this.current.strokeColor = color n>, n setFillRGBColor: function CanvasGraphics_setFillRGBColor (r, g, b) < n var color = Util.makeCssRgb ( r, g, b) n this.ctx.fillStyle = color n this.current.fillColor = color n this.current.patternFill = false n>, n n shadingFill: function CanvasGraphics_shadingFill (patternIR) < n var ctx = this.ctx n n bu .save () n var pattern = getShadingPatternFromIR (patternIR) n ctx.fillStyle = pattern.getPattern (ctx, this, true) n n var inv = ctx.mozCurrentTransformInverse n if (inv) < n var canvas = ctx.canvas n var eni = canvas.width n var hündürlüyü = canvas.height n n var bl = Util.applyTransform ([0, 0], inv) n var br = Util.applyTransform ([0 , boy], inv) n var ul = Util.applyTransform ([en, 0], inv) n var ur = Util.applyTransform ([en, boy], inv) n n var x0 = Math.min (bl [0], br [0], ul [0], ur [0]) n var y0 = Math.min (bl [1], br [1], ul [1], ur [1]) n var x1 = Math.max (bl [0], br [0], ul [0], ur [0]) n var y1 = Math.max (bl [1], br [1], ul [ 1], ur [1]) n n this.ctx.fillRect (x0, y0, x1 - x0, y1 - y0) n> else < n // Hack, qradiyenti sonsuz bir düzbucaqlıya çəkmək üçün. n // PDF qradiyentləri bütün görüntü boyunca çəkilir, n // Canvas yalnız qradiyentlərin düzbucaqlı şəklində çəkilməsinə icazə verir n // Aşağıdakı səhv buna imkan verməlidir. n // https: // bugzilla. mozilla.org/show_bug.cgi?id=664884 buna .ctx.fillRect (-1e10, -1e10, 2e10, 2e10) n> n n this.restore () n>, n n // Şəkillər n beginInlineImage: function CanvasGraphics_beginInlineImage () < n əlçatmaz ('BeginInlineImage çağırılmamalıdır') n>, n beginImageData: function CanvasGraphics_beginImageData () < n əldə edilə bilməz ('beginImageData'yı çağırmamalısınız') n>, n n paintFormXObjectBegin: function CanvasGraphics_paintFormXObject, ) < n this.save () n this.baseTransformStack.push (this.baseTransform) n n if (Array.isArray (matrix) && matrix.length === 6) < n this.transform.apply (bu, matris) n> n n this.baseTransform = this.ctx.mozCurrentTransform n n əgər (Array.isArray (bbox) && bbox.length === 4) < n var width = bbox [ 2] - bbox [0] n var boyu = bbox [3] - bbox [1] n this.ctx.rect (bbox [0], bbox [1], width, height) n this.clip () n this.endPath () n> n>, n n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd () < n this.restore () n this.baseTransform = this.baseTransformStack.pop () n>, n n beginGroup: funksiya n CanvasGraphics_beginGroup (group) < n this.save () n var currentCtx = this.ctx n // TODO təcrid olunmayan qruplar - adobe-də Rik görə təcrid olunmamış n // qrup nəticələri adətən belə deyil fərqli və hətta bu ayarı görməməzlikdən gələn alətlər var n //. Rik tərəfindən həyata keçirilməsinə dair qeydlər: n // - Şəffaflıq qrupu ilə qarşılaşdığınızda, n // qutunun ölçüləri ilə yeni bir kətan yaradın n // - əvvəlki kətandan məzmunu yeni kətana kopyalayın n // - hər zamanki kimi çəkin n // - zəmin alfasını silin: n // alphaNew = 1 - (1 - alpha) / (1 - alphaBackdrop) 'alfa' ilə alfa n // şəffaflıq qrupunuzun dəyəri və 'alphaBackdrop' alfa n // fon n // - arxa plan rəngini çıxarın: n // colorNew = color - alphaNew * colorBackdrop / (1 - alphaNew) n if (! group.isolated) < n məlumat ('TODO: Təcrid olunmayan qrupları dəstəkləyin.') n> n n // TODO nakavt - kompozisiyanın n // rejimlərinin ağıllı istifadəsi ilə mümkün olduğu iddia edilir. n əgər (group.knockout) < n xəbərdar edin ('Nakavt qrupları dəstəklənmir.') n> n n var currentTransform = currentCtx.mozCurrentTransform n əgər (group.matrix) < n currentCtx.transform.apply (currentCtx, group.matrix) n> n əgər (! group.bbox) < n yeni Xəta atın ('Sərhəd qutusu tələb olunur.') n> n n // Mövcud transfora əsasən sərhəd qutusunun n // həqiqətən nə qədər olacağını anlayın. n var bounds = Util.getAxialAlignedBoundingBox ( n group.bbox, n currentCtx.mozCurrentTransform) n // Sınır qutusunu cari kətana çəkin. n var canvasBounds = [0, n 0, n currentCtx.canvas.width, n currentCtx.canvas.height] n hounds = Util.intersect (hounds, canvasBounds) || [0, 0, 0, 0] n // Ölçülər arasında olduğumuz halda tavandan istifadə edin, beləliklə n // çox kiçik bir kətan yaratmayaq və kətanı ən az 1x1 piksel halına gətirin. N var ofsetX = Math.floor (hüdudlar [0]) n var ofset Y = Math.floor (hüdudlar [1]) n var çəkilmişWidth = Math.max (Math.ceil (hüdudlar [2]) - ofsetX, 1) n var drawHeight = Math.max (Math.ceil (hüdudlar [3]) - ofsetY, 1) n var scaleX = 1, scaleY = 1 n if (drawingWidth> MAX_GROUP_SIZE) < n scaleX = drawingWidth / MAX_GROUP_SIZE n drawingWidth = MAX_GROUP_SIZE n> n əgər (DrawHeight> MAX_GROUP_SIZE) < n scaleY = drawHeight / MAX_GROUP_SIZE n chizılmış Height = MAX_GROUP_SIZE n> n n var cacheId = 'groupAt' + this.groupLevel < n // İki önbellek girişinin istifadəsi, maskaların bir-birinin ardınca istifadə edilməsidir. n cacheId + = '_smask_' + ((this.smaskCounter ++)% 2) n> n var scratchCanvas = this.cachedCanvases.getCanvas ( n cacheId, drawWidth, drawingHeight, true) n var groupCtx = scratchCanvas.context n n // Yalnız bo ölçüsü olan yeni bir kətan yaratdığımızdan bitməyən qutu n // ctx qrupunu tərcümə etməliyik. n groupCtx.scale (1 / scaleX, 1 / scaleY) n groupCtx.translate (-offsetX, -offsetY) n groupCtx.transform.apply (groupCtx, currentTransform) n n if (group.smask) < n // setGState-də istifadə ediləcək saxlama vəziyyəti və önbelleğe alınmış maska. n this.smaskStack.push (< n canvas: scratchCanvas.canvas, n context: groupCtx , n ofsetX, n ofsetY, n miqyaslıX, n miqyaslıY, n alt tip: group.smask.subtype, n backdrop: group.smask.backdrop, n transferMap: group.smask.transferMap || null, n startTransformInverse: null, // dayandırma əməliyyatı zamanı istifadə olunur n>) n> else < n // Mövcud ctx-i elə qurun ki, qrup buraxıldıqda onu n // sağ yerdə çəkək. n currentCtx.setTransform (1, 0, 0, 1, 0, 0) n currentCtx.translate (offsetX, offsetY) n currentCtx.scale (scaleX, scaleY) n> n // Şəffaflıq qrupu hamısını devralır cari qrafik vəziyyəti n // qarışıq rejimi, yumşaq maska ​​və alfa sabitləri xaricində. n copyCtxState (currentCtx, groupCtx) n this.ctx = groupCtx n this.setGState ([ n ['BM', ' source-over '], n [' ca ', 1], n [' CA ', 1] n]) n this.groupStack.push (currentCtx) n this.groupLevel ++ n n // Maska vəziyyətinin sıfırlanması, qrupun bərpasında maskalar tətbiq ediləcək. N this.current.activeSMask = null n>, n n endGroup: function CanvasGraphics_endGroup (group) < n this.groupLevel - n var groupCtx = this.ctx n this.ctx = this.groupStack.pop () n // Bəzi pdf-lər üçün qaranlıq görünə bilən n // alt piksel interpolasiyasından qaçmaq üçün görüntünün hamarlaşdırılmasını söndürün. n əgər (bu. c tx.imageSmoothingEnabled! == undefined) < n this.ctx.imageSmoothingEnabled = false n> else < n this.ctx.mozImageSmoothingEnabled = false n> n if (group.smask) < n this.tempSMask = this.smaskStack.pop () n> else < n this.ctx.drawImage (groupCtx.canvas, 0, 0) n> n this.restore () n>, n n beginAnnotations: function CanvasGraphics_beginAnnotations () < n this.save () n if (this.baseTransform) < n this.ctx.setTransform.apply (this.ctx, this.baseTransform) n> n>, n n endAnnotations: funksiyası CanvasGraphics_endAnnotations () < n this.restore () n>, n n beginAnnotation: function CanvasGraphics_beginAnnotation (rect, transform, n matrix) < n this.save () n resetCtxToDefault (this.ctx) n this.current = yeni CanvasExtraState () n n əgər (Array.isArray (rect) && rect.length === 4) < n var width = rect [2] - rect [0] n var height = rect [3] - rect [1] n this.ctx.rect (rect [0], rect [1], width, height) n this.clip () n this.endPath () n> n n this.transform.apply (this, transform) n this.transform.apply (this, matrix) n>, n n endAnnotation: function CanvasGraphics_endAnnotation () < n this.restore () n>, n n paintJpegXObject: function CanvasGraphics_paintJpegXObject (objId, w, h) < n var domImage = this.objs. get (objId) n if (! domImage) < n xəbərdar edin ('Asılı şəkil hələ hazır deyil') n return n> n n this.save () n n var ctx = this.ctx n // şəkli vahid kvadratına ölçün n ctx.scale (1 / w, -1 / h) n n ctx.drawImage (domImage, 0, 0, domImage.width, domImage.height , n 0, -h, w, h) n if (this.imageLayer) < n var currentTransform = ctx.mozCurrentTransformInverse n var position = this.getCanvasPosition (0, 0) n this.imageLayer.appendImage ( < n objId, n sol: mövqe [0], n yuxarı: mövqe [1], n genişlik: w / currentTransform [0], n hündürlük: h / currentTransform [3], n>) n> n this.restore () n>, n n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject (img) < n var ctx = this.ctx n var width = img.width, height = img.height n var fillColor = this.current.fillColor n var isPatternFill = this.current.p atternFill n n var glyph = this.processingType3 n n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) < n if (width 2 && paintWidth> 1) || n (heightScale> 2 && paintHeight> 1)) < n var newWidth = paintWidth, newHeight = paintHeight n if (widthScale> 2 && paintWidth> 1) < n newWidth = Math.ceil (paintWidth / 2) n widthScale / = paintWidth / newWidth n> n əgər (heightScale> 2 && paintHeight> 1) < n newHeight = Math.ceil (paintHeight / 2) n heightScale / = paintHeight / newHeight n> n tmpCanvas = this.cachedCanvases.getCanvas (tmpCanvasId, n newWidth, newHeight) n tmpCtx = tmpCanvas.context n tmpCtx.clearRect (0, 0, newWidth, newHeight) n tmpCtx.drawImage (imgToPaint, 0, 0, paintWidth, paintHeight, n 0, 0, , newHeight) n imgToPaint = tmpCanvas.canvas n paintWidth = newWidth n paintHeight = newHeight n tmpCanvasId = tmpCanvasId === 'prescale1'? 'prescale2': 'prescale1' n> n ctx.drawImage (imgToPaint, 0, 0, paintWidth, paintHeight, n 0, -height, width, height) n n if (this.imageLayer) < n var position = this.getCanvasPosition (0, -height) n this.imageLayer.appendImage (< n imgData, n left: position [0], n top: position [1], n width: width / currentTransform [0], n boy: height / currentTransform [3], n>) n> n this.restore () n>, n n paintInlineImageXObjectGroup: n function CanvasGraphics_paintInlineImageXObjectGroup (imgData, map) < n var ctx = this.ctx n var w = imgData.width n var h = imgData.height n n var tmpCanvas = this.cachedCanvases.getCanvas ('inlineImage', w, h) n var tmpCtx = tmpCanvas .context n putBinaryImageData (tmpCtx, imgData) n n for (var i = 0, ii = map.length i coords [p2 + 1]) < n tmp = p1 p1 = p2 p2 = tmp tmp = c1 c1 = c2 c2 = tmp n> n əgər (koordinatlar [p2 + 1]> koordinatlar [p3 + 1]) < n tmp = p2 p2 = p3 p3 = tmp tmp = c2 c2 = c3 c3 = tmp n> n əgər (koordinatlar [p1 + 1]> koordinatlar [p2 + 1]) < n tmp = p1 p1 = p2 p2 = tmp tmp = c1 c1 = c2 c2 = tmp n> n var x1 = (coords [p1] + context.offsetX) * context.scaleX n var y1 = (coords [p1 + 1] + context.offsetY) * context.scaleY n var x2 = (coords [p2] + context.offsetX) * context.scaleX n var y2 = (coords [p2 + 1] + context.offsetY) * context.scaleY n var x3 = (coords [p3] + context .offsetX) * context.scaleX n var y3 = (coords [p3 + 1] + context.offsetY) * context.scaleY n if (y1> = y3) < n return n> n var c1r = colors [c1], c1g = rənglər [c1 + 1], c1b = rənglər [c1 + 2] n var c2r = rənglər [c2], c2g = rənglər [c2 + 1], c2b = rənglər [c2 + 2] n var c3r = rənglər [c3], c3g = rənglər [c3 + 1], c3b = rənglər [c3 + 2] n n var minY = Math.round (y1), maxY = Math.round (y3) n var xa, avtomobil, cag, kabin n var xb, cbr, cbg, cbb n var k n for (var y = minY y y3? 1: y2 === y3? 0: (y2 - y) / (y2 - y3) n xa = x2 - (x2 - x3) * k n car = c2r - (c2r - c3r) * k n cag = c2g - (c2g - c3g) * k n kabin = c2b - (c2b - c3b) * k n> nk = y y3? 1: (y1 - y) / (y1 - y3) n xb = x1 - (x1 - x3) * k n cbr = c1r - (c1r - c3r) * k n cbg = c1g - (c1g - c3g) * k n cbb = c1b - (c1b - c3b) * k n var x1_ = Math.round (Math.min (xa, xb)) ​​n var x2_ = Math.round (Math.max (xa, xb) ) n var j = rowSize * y + x1_ * 4 n üçün (var x = x1_ x 1? 1: k n bayt [j ++] = (avtomobil - (avtomobil - cbr) * k) | 0 n bayt) [j ++] = (cag - (cag - cbg) * k) | 0 n bayt [j ++] = (cab - (cab - cbb) * k) | 0 n bayt [j ++] = 255 n> n > n> n n function drawFigure (məlumat, rəqəm, kontekst) < n var ps = figure.coords n var cs = figure.colors n var i, ii n switch (Figure.type) < n halda 'qəfəs': n var verticesPerRow = figure.verticesPerRow n var rows = Math.floor (ps.length / verticesPerRow) - 1 n var cols = verticesPerRow - 1 n for (i = 0 i 0) < n buffer = new Uint8Array (initialData) .buffer n this._queuedChunks.push (buffer) n> n n this._pdfDataRangeTransport = pdfDataRangeTransport n this._isRangeSupported =! (params.disableRange) n. _isStreamingSupported =! (params.disableStream ) n this._contentLength = params.length n n this._fullRequestReader = null n this._rangeReaders = [] n n this._pdfDataRangeTransport.addRangeListener ((begin, chunk) => < n this._onReceiveData () n>) n n this._pdfDataRangeTransport.addProgressListener ((loaded) => < n this._onProgress () n>) n n this._pdfDataRangeTransport .addProgressiveReadListener ((chunk) => < n this._onReceiveData () n>) n n this._pdfDataRangeTransport.transportReady () n> n PDFDataTransportStream.prototype = < n _onReceiveData: PDFDataTransportStream_onReceiveData (args) < n bufer = yeni Uint8Array (args.chunk) .buffer n if (args.begin === undefined) < n if (this._fullRequestReader) < n this._fullRequestReader._enue ( ) n> else < n this._queuedChunks.push (buffer) n> n> else < n var found = this._rangeReaders.some (function (rangeReader) < n if (rangeReader._begin! == args.begin) < n return false n> n rangeReader._enqueue (buffer) n return true n>) n assert (foun d) n> n>, n n _onProgress: function PDFDataTransportStream_onDataProgress (evt) < n if (this._rangeReaders.length> 0) < n // Birinci aralı oxucuya hesabat vermək. n var firstReader = this ._rangeReaders [0] n if (firstReader.onProgress) < n firstReader.onProgress () n> n> n>, n n _removeRangeReader: n function PDFDataTransportStream_removeRangeReader ( oxucu) < n var i = this._rangeReaders.indexOf (oxucu) n əgər (i> = 0) < n this._rangeReaders.splice (i, 1) n> n>, n n getFullReader : PDFDataTransportStream_getFullReader () < n assert (! this._fullRequestReader) n var queuedChunks = this._queuedChunks n this._queuedChunks = null n yeni PDFDataTransportStreamReader (bu, queuedChunks n, funksiyası PDFDataTransportStream_getRangeReader (başlayın, bitirin) < n var reader = yeni PDFDataTransportStreamRangeReader (bu, başlayın, bitirin) n this._pdfDataRangeTransport.requestDataRange (başlayın, bitirin) n this._rangeReaders.push (oxucu) n qayıt n >, n n yoxdur lAllRequests: n function PDFDataTransportStream_cancelAllRequests (reason) < n if (this._fullRequestReader) < n this._fullRequestReader.cancel (reason) n> n var reader = this._rangeReaders.slice (0) n oxuyucular üçün (function (rangeReader) < n rangeReader.cancel (reason) n>) n this._pdfDataRangeTransport.abort () n>, n> n n / ** @immissions * / n funksiyası PDFDataTransportStreamReader (stream, queuedChunks) < n this._stream = stream n this._done = false n this._filename = null n this._queuedChunks = queuedChunks || [] n this._requests = [] n this._headersReady = Promise.resolve () n stream._fullRequestReader = bu n n this.onProgress = boş // istifadə edilməyib n> n PDFDataTransportStreamReader.prototype = < n _enqueue: function PDFDataTransportStreamReader_enqueue (chunk) < n if (this._done) < n return // new data ignore n> n if (this._requests.length> 0) < n var requestCapability = this ._requests.shift () n requestCapability.resolve () n return n> n this._queuedChunks.push (chunk) n>, n n headersReady ( ) < n return this._headersReady n>, n n file name () < n return this._filename n>, n n get isRangeSupported () < n return this._stream._isRangeSupported n >, n n get isStreamingSupported () < n return this._stream._isStreamingSupported n>, n n get contentLength () < n return this._stream._contentLength n>, n n read: funksiya PDFDataTransportStreamReader_read () < n if (this._queuedChunks.length> 0) < n var chunk = this._queuedChunks.shift () n return Promise.resolve () n> n if (this._done) < n return Promise.resolve () n> n var requestCapability = createPromiseCapability ( ) n this._requests.push (requestCapability) n return requestCapability.promise n>, n n ləğv et: function PDFDataTransportStreamReader_cancel (səbəb) < n this._done = true n this._requests.forEach (function ( requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n>, n> n n / ** @immissions * / n funksiyası PDFDataTransportStreamRangeReader (axın, başlanğıc, son) < n this._stream = stream n this._begin = begin n this._end = end n this._queuedChunk = null n this._requests = [] n this._done = false n n this.onProgress = null n> n PDFDataTransportStreamRangeReader.prototype = < n _enqueue: function PDFDataTransportStreamRangeReader_enqueue (chunk) < n if (this._done) < n return // yeni məlumatları görməyin n> n əgər (this._requests.length === 0) < n this._queuedChunk = chunk n> else < n var RequestCapability = this._requests.shift () n requestCapability.resolve () n this._requests.forEach (function (requestCapability) < n requestCapability.resolve () n>) n this. _requests = [] n> n this._done = true n this._stream._removeRangeReader (this) n>, n n get isStreamingSupported () < n return false n>, n n read : PDFDataTransportStreamRangeReader_read () funksiyası < n əgər (this._queuedChunk) < n let chunk = this._queuedChunk n this._queuedCh unk = null n return Promise.resolve () n> n if (this._done) < n return Promise.resolve ( ) n> n var requestCapability = createPromiseCapability () n this._requests.push (requestCapability) n return requestCapability.promise n>, n n ləğv et: function PDFDataTransportStreamRangeReader_cancel (səbəb) < n this._done = true n this._requests.forEach (function (requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n this._stream._removeRangeReader (bu) n>, n> n n PDFDataTransportStream-i qaytarın n>) () n nexport < n PDFDataTransportStream, n> n n n n // WEBPACK FOOTER // n // src / display / transport_stream.js "," / * Müəlliflik hüququ 2014 Mozilla Foundation n * n * Apache Lisenziyası, 2.0 versiyası ( "Lisenziya ") n * ilə lisenziyalaşdırılmış, bu faylı istifadə edə bilməzsiniz Lisenziyaya uyğun olaraq. n * Lisenziyanın surətini n * n * http://www.apache.org/licenses/LICENSE-2.0 * ünvanından əldə edə bilərsiniz. n * Müvafiq qanunvericiliklə tələb olunmadığı və ya yazılı olaraq qəbul edilmədiyi təqdirdə, Lisenziyaya əsasən paylanan proqram "olduğu kimi" bir əsasda, n * hər hansı bir növün zəmanəti və şərtləri olmadan, açıq və ya nəzərdə tutulmuş şəkildə paylanır. n * Lisenziyaya uyğun olaraq xüsusi lisenziyanı və n * məhdudiyyətləri tənzimləyən Lisenziyaya baxın. n * / n / * eslint-disable no-multi-str * / n nimport 'dan. / shared / util ' n nclass WebGLContext < n qurucu () < n this._enabled = enable === true n> n n get isEnabled () < n edək = this._enabled n if (enabled) < n enabled = WebGLUtils.tryInitGL () n> n return shadow (this, 'isEnabled', enabled) n> n n composeSMask () < n qayıdır WebGLUtils.composeSMask (qat, maska, xassələr) n> n n drawFigures () < n return WebGLUtils.drawFigures (width, boy, backgroundColor, rəqəmlər, n kontekst) n> n n aydın () < n WebGLUtils.cleanup () n> n> n nvar WebGLUtils = (function WebGLUtilsClosure () < n function loadShader (gl, code, shaderType) < n var shader = gl.createShader (shaderType) n gl.shaderSource (shader, code) n gl.compileShader (shader) n) var compiled = gl.getShaderParameter (shader, gl.COMPILE_STATUS) n if (! compiled) < n var errorMsg = gl.getShaderInfoLog (shader) n yeni Xəta atın ('Shader tərtibi zamanı səhv:' + errorMsg) n > n return shader n> n function createVertexShader (gl, code) < n return loadShader (gl, code, gl.VERTEX_SHADER) n> n function createFragmentShader (gl, code) < n return loadShader (gl , kod, gl.FRAGMENT_SHADER) n> n funksiyası createProgram (gl, shaders) < n var program = gl.createProgram () n for (var i = 0, ii = shaders.length i 0.0) < n maskColor.rgb = maskColor.rgb * maskColor.a + n u_backdrop.rgb * (1.0 - maskColor.a) n> n float lum n if (u_subtype == 0 ) < n lum = maskColor.a n> else < n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + n maskColor.b * 0.11 n> n imageColor.a * = lum n imageColor.rgb * = imageColor.a n gl_FragColor = imageColor n> ' n n var smaskCache = null n n funksiyası initSmaskGL () < n var kətan, gl n n generateGL () n canvas = currentCanvas n currentCanvas = null n gl = currentGL n currentGL = null n n // bir GLSL proqramı quraşdırmaq n var vertexShader = createVertexShader (gl, smaskVertexShaderCode) n var fragmentShader = createFragmentShader (gl, smaskFragmentShaderCode) n var program = createProgram (gl, [vertexShader, fragmentShader]) n gl.useProgram (program) n n var cache = <> n cache.gl = gl n cache. canvas = canvas n cache.resolutionLocation = gl.getUniformLocation (proqram, 'u_resolution') n cache.positionLocation = gl.getAttribLocation (program, 'a_position') n cache.backdropLocation = gl.getUniformLocation (program, 'u_backdrop' ) n cache.subtypeLocation = gl.getUniformLocation (proqram, 'u_subtype') n n var texCoordLocation = gl.getAttribLocation (program, 'a_texCoord') n var texLayerLocation = gl.getUniformLocation (program, 'u_age n var texMaskLocation = gl.getUniformLocation (proqram, 'u_mask') n n // düzbucaqlı üçün toxuma koordinatları təmin edir. n var texCoordBuffer = gl.createBuffer () n gl.bindBuffer (gl.ARRAY_BUFFER, texCoordBuffer) n gl .bufferData (gl.ARRAY_BUFFER, yeni Float32Array ([ n 0.0, 0.0, n 1.0, 0.0, n 0.0, 1.0, n 0.0, 1.0, n 1.0, 0.0, n 1.0, 1.0]), gl .STATIC_DRAW) n gl.enableVertexAttribArray (texCoordLocation) n gl.vertexAttribPointer (texCoordLocation, 2, gl.FLOAT, false, 0, 0) n n gl.uniform1i (texLayerLocation, 0) n glunform , 1) n n smaskCache = cache n> n n funksiyası composeSMask (qat, maska, xassələr) < n var width = layer.width, height = layer.height n n if (! SmaskCache) < n initSmaskGL () n> n var cache = smaskCache, canvas = cache.canvas, gl = cache.gl n canvas.width = width n canvas.height = height n gl.viewport (0, 0 , gl.drawingBufferWidth, gl.drawingBufferHeight) n gl.uniform2f (cache.resolutionLocation, width, height) n n if (properties.backdrop) < n gl.uniform4f (cache.resoluti) onLocation, properties.backdrop [0], n properties.backdrop [1], properties.backdrop [2], 1) n> else < n gl.uniform4f (cache.resolutionLocation, 0, 0, 0, 0) n> n gl.uniform1i (cache.subtypeLocation, n properties.subtype === 'Parlaqlıq'? 1: 0) n n // Doku yaradın n var texture = createTexture (gl, qat, gl.TEXTURE0) n var maskTexture = createTexture (gl, maska, gl.TEXTURE1) n n // Yaradın bir tampon və bir clipspace düzbucağı qoyun n // it (2 üçbucaq) n var buffer = gl.createBuffer () n gl.bindBuffer (gl.ARRAY_BUFFER, buffer) n gl.bufferData (gl.ARRAY_BUFFER, yeni Float32Array ([ n 0, 0, n eni, 0, n 0, hündürlüyü, n 0, hündürlüyü, n eni, 0, n eni, hündürlüyü]), gl.STATIC_DRAW) n gl. enableVertexAttribArray (cache.positionLocation) n gl.vertexAttribPointer (cache.positionLocation, 2, gl.FLOAT, false, 0, 0) n n // draw n gl.clearColor (0, 0, 0, 0) n gl.enable (gl.BLEND) n gl.blendFunc (gl.ONE, gl.ONE_MINUS_SRC_ALPHA) n gl.clear (gl.COLOR_BUFFER_BIT) n n gl.drawArrays (gl.TRIANGLES, 0, 6) n n gl.flush () n n gl.deleteTexture (texture) n gl.deleteTexture (maskTexture) n gl.deleteBuffer (buffer) n n return canvas n> n n var numbersVertexShaderCode = ' n atribut vec2 a_position n atribut vec3 a_color n n uniform vec2 u_re həll n uniform vec2 u_scale n uniform vec2 u_offset n n dəyişən vec4 v_color n n void main () < n vec2 position = (a_position + u_offset ) * u_scale n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0 n gl_Position = vec4 (clipSpace * vec2 (1, -1), 0, 1) n n v_color = vec4 (a_color / 255.0, 1.0) n> ' n n var raqamlarFragmentShaderCode =' n dəqiqlikli orta süzgəc n n dəyişən vec4 v_color n n boş main () < n gl_FragColor = v_color n> ' n n var numbersCache = null n n function initFiguresGL () < n var canvas, gl n n generateGL () n canvas = currentCanvas n currentCanvas = null n gl = currentGL n currentGL = null n n // bir GLSL proqramı quraşdırmaq n var vertexShader = createVertexShader (gl, numbersVertexShaderCode) n var fragmentShader = createFragmentShader (gl, numbersFr) n var program = createProgram (gl, [vertexShader, fragmentShader]) n gl.useProgram (program) n n var cache = <> n cache.gl = gl n cache.canvas = canvas n cache.resolutionLocation = gl.getUniformLocation (proqram, 'u_resolution') n cache.scaleLocation = gl.getUniformLocation (program, 'u_scale') n cache.offsetLocation = gl.getUniformLocation (program, 'u_offset') n cache. positionLocation = gl.getAttribLocation (proqram, 'a_position') n cache.colorLocation = gl.getAttribLocation (proqram, 'a_color') n n numbersCache = cache n> n n function drawFigures (genişlik, hündürlük, backgroundColor , rəqəmlər, kontekst) < n əgər (! FiguresCache) < n initFiguresGL () n> n var cache = numbersCache, canvas = cache.canvas, gl = cache.gl n n canvas.width = width n canvas.height = hündürlük n gl.viewport (0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight) n gl.uniform2f (cache.resolutionLocation, width, height) n n // saymaq üçbucaq nöqtələri n var count = 0 n var i, ii, satır n üçün (i = 0, ii = rəqəmlər. uzunluq i < n əgər (this._done) < n return Promise.resolve () n> n əgər (this._errored) < n return Promise.reject (this._reason) n> n n let the chunk = t his._readableStream.read () n if (chunk === null) < n this._readCapability = createPromiseCapability () n return this.read () n> n this._loaded + = chunk.length n if (this.onProgress) < n this.onProgress (< n loaded: this._loaded, n total: this._contentLength, n>) n> n // "read ()" metodunun qayıtdığından əmin olun ArrayBuffer. N qoyun buffer = yeni Uint8Array (yığın) .buffer n qayıt Promise.resolve () n>) n> n n ləğv et (səbəb) < n // Ləğv edildikdə "this._error ()" metoduna zəng edin n // _readableStream qurulmadan əvvəl. N if (! This._readableStream) < n this._error (reason) n return n> n this._readableStream.destroy (reason) n> n n _hata (səbəb) < n this._errored = true n this._reason = reason n this._readCapability.resolve () n> n n _setReadableStream (readableStream) < n this._readableStream = readableStream n readableStream.on ('readable', () => < n this._readCapability.resolve () n>) n n readableStream.on ('end ', () => < n // Resurs istifadəsini minimuma endirmək üçün oxunaqlı məhv edin . n readableStream.destroy () n this._done = true n this._readCapability.resolve () n>) n n readableStream.on ('error', (reason) => < n this. _error (reason) n>) n n // Aralıq dəstəkləndikdə və axın n // əlil olduqda oxumağı dayandırmalıyıq. n ((this._isStreamingSupported && this._isRangeSupported)) < n this. _error (yeni AbortException ('axın söndürülür')) n> n n // Onsuz da səhv vəziyyətdədirsə ReadableStream'i məhv edin. n əgər (this._errored) < n this._readableStream.destroy (this._reason) n> n> n> n nclass BaseRangeReader < n qurucu (axın) < n this._url = stream.url n this._done = false n this._errored = false n this._ason = null n this.onProgress = null n this._loaded = 0 n this._readableStream = null n this._readCapability = createPromiseCapability () n edək source = stream.source n this._isStreamingSupported =! source.disableStream n> n n get isStreamingSupported () < n return this._isStreamingSupported n> n n read () < n return this._readCapability.promise.then (() => < n if (this._done) < n return Promise.resolve () n> n if (this._errored) < n return Promise.reject (this._reason) n> n n qoyun chunk = this._readableStream.read () n if (chunk === null) < n this._readCapability = createPromiseCapability () n return this.read () n> n this ._loaded + = chunk.length n if (this.onProgress) < n this.onProgress () n> n // "read ()" metodunun ArrayBuffer'ı qaytarmasına əmin olun. n imkan verir buffer = yeni Uint8Array (yığın) .buffer n qayıt Promise.resolve () n>) n> n n ləğv et (səbəb) < n // Çağırış `this._error ()` ləğv edildikdə, _readableStream qurulmadan əvvəl n // metodu çağırılır. n if (! this._readableStream) < n this._error (reason) n return n> n this._readableStream .destroy (reason) n> n n _ səhv (səbəb) < n this._errored = true n this._reason = reason n this._readCapability.resolve () n> n n _setReadableStream (readableStream ) < n this._readableStream = readableStream n readableStream.on ('oxunaqlı') , () => < n this._readCapability.resolve () n>) n n readableStream.on ('end', () => < n // Resurs istifadəsini minimuma endirmək üçün readableStream'i məhv edin. n readableStream .destroy () n this._done = true n this._readCapability.resolve () n>) n n readableStream.on ('error', (reason) => < n this._error (reason) n>) n n // Əgər səhv vəziyyətindədirsə, readableStream-i məhv edin. n əgər (this._errored) < n this._readableStream.destroy (this._season) n> n> n> n nfunksiya createRequestOptions (url, başlıqlar) < n return < n protokol: url.protocol, n auth: url.auth, n host: url.hostname, n port: url.port, n path: url .path, n metodu: 'GET', n başlıqlar, n> n> n nsınıf PDFNodeStreamFullReader genişləndirir BaseFullReader < n konstruktor (axın) < n super (axın) n n icazə verinResponse = ( cavab) => < n this._headersCapability.resolve () n this._setReadableStream (response) n n const getResponseHeader = (name) => < n // Başlıqların adının, kiçik olduğu üçün əmin olun qeyd n // burada: https://nodejs.org/api/http.html#http_me ssage_headers. n return this. : this._rangeChunkSize, n disableRange: this._disableRange, n>) n n if (allowRangeRequests) < n this._isRangeSupported = true n> n // Düzgün məzmun uzunluğunun qəbulu. n this._contentLength = recommendedLength n n this._filename = extractFilenameFromHeader (getResponseHeader) n> n n this._request = null n if (this._url.protocol === 'http:') < n this._request = http.request ( n createRequestOptions (this._url, stream.httpHeaders), n handleResponse) n> else < n this._request = https.request ( n createRequestOptions (this._url, stream.httpHeaders), n handleResponse) n> n n this._request.on ('səhv', (səbəb) => < n this._errored = true n this._reason = reason n this._headersCapability.reject (reason) n>) n // Qeyd: `request.end (data)` bədən tələb etmək üçün "data" yazmaq üçün istifadə olunur n // və sorğunun bitməsini bildirin. Ancaq hər zaman yazmaq üçün bir məlumat olmasa da - request.end () ` n // çağırmaq lazımdır - (sorğunun sonunu bildirmək üçün). N this._request.end () n> n> n nclass PDFNodeStreamRangeReader genişləndirir BaseRangeReader < n konstruktor (axın, başlanğıc, son) < n super (axın) n n this._httpHeaders = <> n for (let the property in stream.httpHeaders) < n let value = stream.httpHeaders [property] n if (typeof value === 'undefined') < n davam n> n this._httpHeaders [property] = value n> n this._httpHeaders ['Range' ] = `bayt = $-$` n n this._request = null n if (this._url.protocol === 'http:') < n this._request = http.request (createRequestOptions ( n this._url, this._httpHeaders) , (cavab) => < n this._setReadableStream (cavab) n>) n> başqa < n this._request = https.request (createRequestOptions ( n this._url, this._httpHeaders), (cavab) => < n this._setReadableStream (cavab) n>) n> n n this._request.on ('səhv', (səbəb) => < n this._errored = true n this._ səbəb = reason n>) n this._request.end () n> n> n nclass PDFNodeStreamFsFullReader BaseFullReader-i genişləndirir < n constructor (stream) < n super (stream) n n let path = decodeURIComponent (this._url.path) n n // "file: /// C: /` n if (fileUriRegex.test (this._url.href))) kimi url-dən düzgün yolu almaq üçün əlavə cizgini silin. n path = path.replace (/ ^ //, '') n> n n fs.lstat (path, (error, stat) => < n if (error) < n this. _errored = true n this._reason = error n this._headersCapability.reject (error) n return n> n // Düzgün məzmun uzunluğunu təyin etmək. n this._conten tLength = stat.size n n this._setReadableStream (fs.createReadStream (path)) n this._headersCapability.resolve () n>) n> n> n nclass PDFNodeStreamFsRangeReader BaseRangeReader < n konstruktorunu genişləndirir (axın, başlanğıc, bitmə) < n super (axın) n n let path = decodeURIComponent (this._url.path) n n // "file: /" kimi url-dən düzgün yolu əldə etmək üçün əlavə əyri silmək. // C: / ` n əgər (fileUriRegex.test (this._url.href)) < n path = path.replace (/ ^ //, '') n> n n this._setReadableStream ( n fs.createReadStream (yol, )) n> n> n nexport < n PDFNodeStream, n> n n n n // WEBPACK FOOTER // n // src / display / node_stream.js "," / * Müəllif hüquqları 2017 Mozilla Foundation n * n * Apache Lisenziyası, 2.0 versiyası ( "Lisenziya ") n * ilə lisenziyalı Lisenziyaya uyğun olaraq bu faylı istifadə etməyin. n * Lisenziyanın surətini n * n * http://www.apache.org/licenses/LICENSE-2.0 * n * Müvafiq qanunvericiliklə tələb olunmadığı və ya yazılı olaraq qəbul edilmədiyi təqdirdə, proqram n * altında paylanır Lisenziya "OLDUĞU " ƏSAS, n * ZAMANLIĞI VƏ HƏR ŞEYİN ŞƏRHİ OLMADAN, açıq və ya nəzərdə tutulmuş şəkildə paylanır. n * Müəyyən dil tənzimləmələri üçün lisenziyaya və n * Lisenziyaya əsasən məhdudiyyətlərə baxın. . n * / n n // Bu getFilenameFromContentDispositionHeader funksiyası n // https://github.com/Rob--W/open-in-browser/blob/9f5fcae11cf6d99c503a15894f22efdfcd2075b7/extensionc. js n // aşağıdakı dəyişikliklərlə: n // - PDF.js kodlaşdırma tərzinə uyğunlaşdırmaq üçün dəyişdirildi. n // - TextDecoder dəstəklənmədikdə UTF-8 kodunun açılmasını dəstəkləyin. n // - Array.from ilə dəyişdirin Array + loop köhnə brauzerlərlə uyğunlaşmaq üçün. N // - Köhnə brauzerlərlə uyğunlaşmaq üçün "startWith " düyməsini digər simli metodla əvəz edin. N // - Babelin düşməməsi üçün funksiyanın sonuna qayıdın. n // funksiya bəyannamələri. n n / ** n * Fayl adını Məzmun-Dispozisiya HTTP cavab başlığından çıxarın. n * n * @param contentDisposition n * @ return Fayl adı, Məzmun-Dispozisiya başlığında tapılıbsa. N * / nfunksiya getFilenameFromContentDispositionHeader (contentDisposition) < n letEnEnsodingFixup = true n n // filename * = ext-value ( "ext-value " from RFC 5987, istinad RFC 6266). N let tmp = /(?:^|)s*filename**=s*((^s…+)/i.exec (contentDisposition) n if (tmp) < n tmp = tmp [1] n fayl adı = rfc2616unquote (tmp) n fayl adı = unescape (fayl adı) n fayl adı = rfc5987decode (fayl adı) n fayl adı = rfc2047decode (fayl adı) ) n return fixupEncoding (fayl adı) n> n n // Davam (RFC 2231 bölmə 3, istinad RFC 5987 bölmə 3.1). n // dosya adı * n * = hissə n // fayl adı * n = hissə n tmp = rfc2231getparam (contentDisposition) n əgər (tmp) < n // RFC 2047, bölmə n fayl adı = rfc2047decode (tmp) n return fixupEncoding (fayl adı) n> n n // fayl adı = dəyər (RFC 5987, bölmə 4.1). n tmp = /(?:^|)s*filenames*=s*((^s assigned+)/.exec(contentDisposition) n əgər (tmp) < n tmp = tmp [1] n fayl adı = rfc2616unquote (tmp) n fayl me = rfc2047decode (fayl adı) n return fixupEncoding (fayl adı) n> n n // Bu sətirdən sonra yalnız funksiya bildirişləri var. Okunabilirlik üçün buraya n // "return " yerləşdirə bilmərik, çünki babel bundan sonra n // bəyannamə funksiyasını atacaq. n n funksiya mətn kodu (kodlaşdırma, dəyər) < n əgər (kodlaşdırma) < n əgər (! / ^ [^ x00 - xFF] + $ /. test (dəyər)) < n qayıdış dəyəri n> n sınayın < n let decoder = new TextDecoder (kodlama, ) n let bytes = new Array (value.length) n for (let i = 0 i < n if ( ! validateResponseStatus (response.status)) < n createResponseStatusError (response.status, url) n> n this._reader = response.body.getReader () n this._headersCapability.resolve () n n const getResponseHeader = (name) => < n return response.headers.get (name) n> n let = n validateRangeRequestCapabilities (< n getResponseHeader, n isHttp: this._stream.isHttp , n rangeChunkSize: this._rangeChunkSize, n disableRange: this._disableRange, n>) n n this._contentLength = recommendedLength n this._isRangeSupported = allowRangeRequests n n this._filename = extractFilenameFromHeader (n n n // üçündür dəstəkləndikdə və axın n // əlil olduqda oxumağı dayandırmalıyıq. n əgər (! this._isStrea mingSupported && this._isRangeSupported) < n this.cancel (yeni AbortException ('axın söndürülür')) n> n>). catch (this._headersCapability.reject) n n this.onProgress = null n > n n headersReady () < n return this._headersCapability.promise n> n n get file name () < n return this._filename n> n n get contentLength () < n return this._contentLength n> n n get isRangeSupported () < n return this._isRangeSupported n> n n get isStreamingSupported () < n return this._isStreamingSupported n> n n read () < n return this._headersCapability.promise.then (() => < n return this._reader.read (). then (() => < n if (done) < n Promise.resolve () n> n this._loaded + = value.byteLength n if (this.onProgress) < n this.onProgress (< n loaded: this._loaded, n cəmi: this._contentLength, n>) n> n qoyun buffer = new Uint8Array (value) .buffer n return Promise.resolve () n>) n >) n> n n ləğv et (səbəb) < n əgər (this._reader) < n this._reader.ca ncel (səbəb) n> n> n> n nclass PDFFetchStreamRangeReader < n konstruktor (axın, başlanğıc, son) < n this._stream = stream n this._reader = null n this._loaded = 0 n qoyun source = stream.source n this._withCredentials = source.withCredentials n this._readCapability = createPromiseCapability () n this._isStreamingSupported =! Source.disableStream n n this._headers = new Headers () n üçün (bu xüsusiyyətə icazə verin ._stream.httpHeaders) < n bildirin = = this._stream.httpHeaders [property] n if (typeof value === 'undefined') < n davam n> n bu. _headers.append (xassə, dəyər) n> n n bildirin rangeStr = başlasın + '-' + (son - 1) n this._headers.append ('Aralıq', 'bayt =' + rangeStr) n url = source.url n alın (url, createFetchOptions (this._headers, this._withCredentials)). n then ((response) => < n if (! validateResponseStatus (response.status))) < n throw createResponseStatusError (response.status, url) n> n this._readCapability.resolve () n this._reader = response.body.getReader () n>) n n this.onProgress = null n> n n get isStreamingSupported () < n return this._isStreamingSupported n> n n read () < n return this._readCapability.promise.then (() => < n return this._reader.read (). then (() => < n əgər (bitmiş) < n return Promise.resolve () n> n this._loaded + = value.byteLength n if (this.onProgress) < n this.onProgress () n> n qoyun buffer = new Uint8Array (value) .buffer n return Promise.resolve () n>) n>) n> n n ləğv et (səbəb) < n əgər (this._reader) < n this._reader.cancel (səbəb ) n> n> n> n nexport < n PDFFetchStream, n> n n n n // WEBPACK FOOTER // n // src / display / fetch_stream.js "," / * Müəlliflik hüququ 2012 Mozilla Foundation n * n * Apache Lisenziyası, 2.0 versiyası ( "Lisenziya ") ilə Lisenziyalaşdırılmış n * Lisenziyaya uyğun olaraq bu faylı istifadə edə bilməzsiniz. N * n * n * http://www.apache.org/licenses/LICENSE-2.0 * n * ünvanındakı Lisenziyanın bir nüsxəsi, müvafiq qanunla tələb olunmadığı və ya i n Yazı, proqram n * Lisenziyaya uyğun olaraq paylanan "OLDUĞU " ƏSAS, n * ZAMANLIQ VƏ HƏR ŞEYİN ŞƏRHİ OLMADAN, açıq və ya nəzərdə tutulmuş şəkildə paylanır. n * Müəyyən dil qaydaları üçün Lisenziyaya baxın. icazələr və n * Lisenziyaya əsasən məhdudiyyətlər. n * / n nimport from '../shared/util' import < n createResponseStatusError, extractFilenameFromHeader, n validateRangeRequestCapables n> from './network_utils' import globalScope from' ../shared/global_scope' if (typeof PDFJSDev! == 'undefined' && PDFJSDev.test ('FIREFOX || MOZCENTRAL ')) < n yeni Xəta atın (' Modul "./ network " FIREFOX və ya MOZCENTRAL quruluşu ilə '+ n' istifadə olunmur. ') N> n nvar OK_RESPONSE = 200 nvar PARTIAL_CONTENT_RESPONSE = 206 n nfunksiya NetworkManager (url, args) < n this.url = url n args = args || <> n this.isHttp = /^https?:/i.test(url) this.httpHeaders = (this.isHttp && args.httpHeaders) || <> n this.withCredentials = args.withCredentials || false n this.getXhr = args.getXhr || n funksiyası NetworkManager_getXhr () < n yeni XMLHttpRequest () qayıt n> n n this.currXhrId = 0 n this.pendingRequests = Object.create (null) n this.loadedRequests = Object.create (null) n> n nfunksiya getArrayBuffer (xhr) < n var data = xhr.response n if (typeof data! == 'string') < n return data n> n array = stringToBytes (data) n array.buffer qayıtmasına icazə verin n> n nvar supportMozChunked = n typeof PDFJSDev! == 'undefined' && PDFJSDev.test ('CHROME')? false: n (function supportMozChunkedClosure () < n try < n var x = new XMLHttpRequest () n // Firefox 37- responseType ayarlamadan əvvəl .open () çağırılmalıdır. n // https: // bugzilla.mozilla.org/show_bug.cgi?id=707484 // URL ziyarət edilməməsinə baxmayaraq, URL n // bloklanmışsa, .open () uğursuz ola bilər, məsələn connect-src CSP direktivi və ya NoScript addon. n // Bu səhv baş verdikdə bu xüsusiyyət aşkarlama üsulu səhvən n // moz-chunked-arraybuffer-in Firefox 37 -. n x.open ('GET', globalScope) -də dəstəklənmədiyini bildirir. location.href) n x.responseType = 'moz-chunked-arraybuffer' n return x.responseType === 'moz-chunked-arraybuffer' n> catch (e) < n return false n> n >) () n nNetworkManager.prototype = < n requestRange: function NetworkManager_requestRange (başlanğıc, son, dinləyicilər) < n var args = < n begin, n end, n> n for (var prop in dinləyicilər) < n args [prop] = listeners [prop] n> n this return.request (args) n>, n n requestFull: function NetworkManager_requestFull (dinləyicilər) < n return this.request (listeners) n>, n n request: function NetworkManager_request (args) < n var xhr = this.getXhr () n var xhrId = this.currXhrId ++ n var pendingRequest = this.pendingRequests [xhrId] = < n xhr, n> n n xhr.open ('GET', this.url) n xhr.withCredentials = this.withCredentials n for (var xüsusiyyəti .httpHeaders) < n var value = this.httpHeaders [property] n if (typeof value === 'undefined') < n continue n> n xhr.setRequestHeader (property, value) n> n əgər (this.isHttp && 'başlayın' args && 'end' args ') < n var rangeStr = args.begin +' - '+ (args.end - 1) n xhr.setRequestHeader (' Range ',' bytes = '+ rangeStr) n pendingRequest.expectedStatus = 206 n> else < n pendingRequest.expectedStatus = 200 n> n n var useMozChunkedLoading = supportsMozChunked && !! args.onProgressiveData n if (useMozChunkedLoading) n xhr.responseType = 'moz-chunked-arraybuffer' n pendingRequest.onProgressiveData = args.onProgressiveData n pendingRequest.mozChunked = true n> else < n xhr .responseType = 'arraybuffer' n> n n if (args.onError) < n xhr.onerror = function (evt) < n args.onError (xhr.status) n> n> n xhr .onreadystatechange = this.onStateChange.bind (this, xhrId) n xhr.onprogress = this.onProgress.bind (this, xhrId) n n pendingRequest.onHeadersReceived = args.onHeadersReceived n pendingRequest.onDone = args.on n pendingRequest.onError = args.onError n pendingRequest.onProgress = args.onProgress n n xhr.send (null) n n return xhrId n>, n n onProgress: function NetworkManager_onProgress (xhrId, evt) < n var pendingRequest = this.pendingRequests [xhrId] n if (! pendingRequest) < n // Bəlkə abortRequest adlandı. n return n> n n if (pendingRequest.mozChunked) < n var chunk = getArrayBuffer (pendingRequest.xhr) n pendingRequest.onProgressiveData (chunk) n> n n var onProgress = pendingRequest.onProgress n if (onProgress) < n onProgress (evt) n> n>, n n onStateChange: function NetworkManager_onStateChange (xhrId, evt) < n var pendingRequest = this.pendingRequests [xhrId] n if (! pendingRequest) ) < n // Bəlkə abortRequest çağırıldı. n return n> n n var xhr = pendingRequest.xhr n əgər (xhr.readyState> = 2 && pendingRequest.onHeadersReceived) < n pendingRequest.onHeadersReceived () n silmək pendingRequest.onHeadersReceived n> n n if (xhr.readyState! == 4) < n return n> n n if (! (xhrId in this.pendingRequests)) < n // XHR istəyi onHeadersReceived () dilində ləğv edilmiş ola bilər n // geri çağırma, bu halda istəyi ləğv etməliyik n return n> n n this.pendingRequests [xhrId] n n // uğur vəziyyəti == 0 ftp, fayl və digər protokollarda ola bilər n if (xhr.status === 0 && this.isHttp) < n if (pendingRequest.onError) < n pendingRequest.onError (xhr.status) n> n return n> n var xhrStatus = xhr.status || OK_RESPONSE n n // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2: // "Bir server Aralık başlığını görməzdən gələ bilər ". Bu, bir sıra istəyindən 206 cavab əvəzinə 200 nüvənin alınmasının mümkün olduğu deməkdir. N var ok_response_on_range_request = n xhrStatus === OK_RESPONSE && n pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE n n əgər ( ! ok_response_on_range_request && n xhrStatus! == pendingRequest.expectedStatus) < n if (pendingRequest.onError) < n pendingRequest.onError (xhr.status) n> n return n> n n this.loadedRequests [ xhrId] = true n n var chunk = getArrayBuffer (xhr) n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) < n var rangeHeader = xhr.getResponseHeader ('Content-Range') n var match = / bytes ( d +) - ( d +) / ( d +) /. exec (rangeHeader) n var begin = parseInt (uyğunluqlar [1], 10) n pendingRequest.onDone (< n başlar, n chunk, n>) n> else if (pendingRequest.onProgressiveData) < n pendingRequest.onDone (null) n> else if (chunk) < n pendingRequest.onDone (< n begin: 0, n chunk , n>) n> başqa halda (pendingRequest.onError) < n pendingRequest.onError (xhr.status) n> n>, n n hasPendingRequests: function NetworkManager_hasPendingRequests () < n for (var xhrId in this.pendingRequests) < n return true n> n return false n>, n n getRequestXhr: function NetworkManager_getXhr (xhrId) < n return this.pendingRequests [ xhrId] .xhr n>, n n isStreamingRequest: function NetworkManager_isStreamingRequest (xhrId) < n return !! (this.pendingRequests [xhrId] .onProgressiveData) n>, n n isPendingRequest: function NetworkManager_isPendingRequest < n return xhrId in this.pendingRequests n>, n n isLoadedRequest: function NetworkManager_isLoadedRequest (xhrId) < n return xhrId in this.loadedRequests n>, n n abortAllRequests: function NetworkManager_abortAllRequests () for (var xhrId in this.pendingRequests) < n this.abortRequest (xhrId | 0) n> n>, n n abortRequest: function NetworkManager_abortRequest (xhrId) < n var xhr = this.pendingRequests [xhrId] .xhr n this.pendingRequests [xhrId] n xhr.abort () n>, n> n n / ** @ əlavələr * / nfunksiya PDFNetworkStream (mənbə) < n this._source = mənbə n this._manager = yeni NetworkManager (source.url, < n httpHeaders: source.httpHeaders, n withCredentials: source.withCredentials, n>) n this._rangeChunkSize = source.rangeChunkSize n this._fullRequestReader = null n this._rangeRequestReaders = [] n> n nPDFNetworkStream.prototype = < n _onRangeRequestReaderClosed: n function PDF i = this._rangeRequestReaders.indexOf (reader) n if (i> = 0) < n this._rangeRequestReaders.splice (i, 1) n> n>, n n getFullReader: function PDFNetworkStream_getFullReader () < n assert (! this._fullRequestReader) n this._fullRequestReader = n yeni PDFNetworkStreamFullRequestReader (this._manager, this._source) n return this._fullRequestReader n>, n n getRangeReader: function PDFNetwork (function PDFNetwork) ) < n var reader = yeni PDFNetworkStreamRangeRequestReader (this._manager, n başlar, bitər) n reader.onClosed = this._onRangeRequestReaderC losed.bind (this) n this._rangeRequestReaders.push (reader) n return reader n>, n n cancelAllRequests: function PDFNetworkStream_cancelAllRequests (reason) < n if (this._fullRequestReader) < n this._fullRequestReader .cancel (səbəb) n> n var oxucu = this._rangeRequestReaders.slice (0) n reader.forEach (function (reader) < n reader.cancel (reason) n>) n>, n > n n / ** @ əlavə * / nfunksiya PDFNetworkStreamFullRequestReader (menecer, mənbə) < n this._manager = manager n n var args = < n onHeadersReceived: this._onHeadersReceived.bind (this), n onProgressiveData: source.disableStream? null: n this._onProgressiveData.bind (this), n onDone: this._onDone.bind (this), n onError: this._onError.bind (this), n onProgress: this._onProgress.bind (this ), n> n this._url = source.url n this._fullRequestId = manager.requestFull (args) n this._headersReceivedCapability = createPromiseCapability () n this._disableRange = source.disableRange || false n this._contentLength = source.length // isteğe bağlı n this._rangeChunkSize = source.rangeChunkSize n əgər (! this._rangeChunkSize &&! this._disableRange) < n this._disableRange = true n> n n this._isStreamingSupported = false n this._isRangeSupported = false n n this._cachedChunks = [] n this._requests = [] n this._done = false n this._storedError = undefined n this._filename = null n n this.onProgress = null n> n nPDFNetworkStreamFullRequestReader.prototype = < n _onHeadersReceived: n function PDFNetworkStreamFullRequestReader_onHeadersReceived () < n var fullRequestXhrId BuRequestXhr_d = getRequestXhr (fullRequestXhrId) n n const getResponseHeader = (ad) => < n return fullRequestXhr.getResponseHeader (name) n> n n let = n validateRangeRequestCapabilities (< n getr, n isHttp: this._manager.isHttp, n rangeChunkSize: this._rangeChunkSize, n disableRange: this._disableRange, n>) n n // Ayar sağ məzmun uzunluğu. n bu._contentLength = önerilen uzunluq || this._contentLength n n if (allowRangeRequests) < n this._isRangeSupported = true n> n n this._filename = extractFilenameFromHeader (getResponseHeader) n n var networkManager = this._manager n if (networkManager). isStreamingRequest (fullRequestXhrId)) < n // Proqressiv yükləmə aktivləşdirildikdə götürməyə davam edə bilərik, n // və autoFetch xüsusiyyətinə ehtiyacımız yoxdur. n this._isStreamingSupported = true n> else if (this._isRangeSupported ) < n // DİQQƏT: tam sorğunu ləğv edərək, sonra n // sorğularını verərək saytlar üçün bir problem olacaq, burada yalnız bir dəfə pdf tələb edə bilərsiniz. Bununla belə, belədirsə, n // server, n // istəklərini dəstəkləyə biləcəyinə dönməməlidir. N networkManager.abortRequest (fullRequestXhrId) n> n n this._headersReceivedCapability.resolve () n>, n n _onProgressiveData: n function PDFNetworkStreamFullRequestReader_onProgressiveData (chunk) < n if (this._requests.length> 0) < n var requestCapability = this._requests.shift () n requestCapability.resolve () n> else < n this._cachedChunks.push (chunk) n> n>, n n _onDone: function PDFNetworkStreamFullRequestReader_onDone (args) < n if ( args) < n this._onProgressiveData (args.chunk) n> n this._done = true n if (this._cachedChunks.length> 0) < n return n> n this._requests.forEach ( function (requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n>, n n _onError: function PDFNetworkStreamFullRequestReader_onError (status) < n var url = this._url n var istisnası = createResponseStatusErro r (status, url) n this._storedError = istisna n this._headersReceivedCapability.reject (exception) n this._requests.forEach (function (requestCapability) < n requestCapability.reject (exception) n>) n this._requests = [] n this._cachedChunks = [] n>, n n _onProgress: function PDFNetworkStreamFullRequestReader_onProgress (data) < n if (this.onProgress) < n this.onProgress (< n loaded: data.loaded, n total: data.lengthComputable? data.total: this._contentLength, n>) n> n>, n n file name () < n return this._filename n>, n n get isRangeSupported () < n return this._isRangeSupported n>, n n get isStreamingSupported () < n return this._isStreamingSupported n>, n n get contentLength () < n return this._contentLength n>, n n get headersReady () < n return this._headersReceivedCapability.promise n>, n n read: function PDFNetworkStreamFullRequestReader_read () < n if (this._storedError) < n return Promise.reject (this._storedError) n> n if (this._cachedChunks.length> 0) < n var chunk = this._cachedChunks.shift () n return Promise.resolve () n> n if ( this._done) < n return Promise.resolve () n> n var requestCapability = createPromiseCapability () n this._requests.push (requestCapability) n return requestCapability.promise n>, n n ləğv et: PDFNetworkStreamFullRequestReader_cancel funksiyası (səbəb) < n this._done = true n this._headersReceivedCapability.rej ect (səbəb) n this._requests.forEach (function (requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n if ( this._manager.isPendingRequest (this._fullRequestId)) < n this._manager.abortRequest (this._fullRequestId) n> n this._fullRequestReader = null n>, n> n n / ** @immissions * / nfunksiya PDFNetworkStreamRangeRequestReader (menecer, başlayın, bitirin) < n this._manager = menecer n var args = < n onDone: this._onDone.bind (this), n onProgress: this._onProgress.bind (this ), n> n this._requestId = manager.requestRange (start, end, args) n this._requests = [] n this._queuedChunk = null n this._done = false n n this.onProgress = null n this.onClosed = null n> n nPDFNetworkStreamRangeRequestReader.prototype = < n _close: function PDFNetworkStreamRangeRequestReader_close () < n if (this.onClosed) < n this.onClosed (this) n>, n n _onDone: function PDFNetworkStreamRangeRequestReader_onDone (data) < n var chunk = data.chunk n if (this._requests.length> 0) < n var requestCapability = this._requests.shift () n requestCapability.resolve () n> else < n this._queuedChunk = chunk n> n this._done = true n this._requests.forEach (function (requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n thi s._close () n>, n n _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress (evt) < n if (! this.isStreamingSupported && this.onProgress) < n this.onProgress (< n loaded: evt.loaded, n>) n> n>, n n get isStreamingSupported () < n return false // TODO mütərəqqi aralıq baytların yüklənməsinə icazə verin n>, n n oxunur: function PDFNetworkStreamRangeestequalReader_read () < n əgər (this._queuedChunk! == null) < n var chunk = this._queuedChunk n this._queuedChunk = null n return Promise.resolve () n> n if ( this._done) < n return Promise.resolve () n> n var requestCapability = createPromiseCapability () n this._requests.push (requestCapability) n return requestCapability.promise n>, n n ləğv et: PDFNetworkStreamRangeRequestReader_cancel funksiyası (səbəb) < n this._done = true n this._requests.forEach (function (requestCapability) < n requestCapability.resolve () n>) n this._requests = [] n if (this._manager). isPendingRequest (this._requestId)) < n this._manager.abortRequest (this._requestId) n> n this._close () n>, n> n nexport < n PDFNetworkStream, n NetworkManager, n> n n n n // WEBPACK FOOTER // n // src / display / network.js "]," sourceRoot ":" ">


Videoya baxın: Elnur Valeh - Olum Haqdir. Official Video. 2019 (Oktyabr 2021).