(() => { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __commonJS = (cb, mod2) => function __require() { return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to4, from2, except, desc) => { if (from2 && typeof from2 === "object" || typeof from2 === "function") { for (let key of __getOwnPropNames(from2)) if (!__hasOwnProp.call(to4, key) && key !== except) __defProp(to4, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable }); } return to4; }; var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target, mod2 )); var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); // node_modules/async-lock/lib/index.js var require_lib = __commonJS({ "node_modules/async-lock/lib/index.js"(exports2, module2) { "use strict"; var AsyncLock = function(opts) { opts = opts || {}; this.Promise = opts.Promise || Promise; this.queues = /* @__PURE__ */ Object.create(null); this.domainReentrant = opts.domainReentrant || false; if (this.domainReentrant) { if (typeof process === "undefined" || typeof process.domain === "undefined") { throw new Error( "Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill." ); } this.domains = /* @__PURE__ */ Object.create(null); } this.timeout = opts.timeout || AsyncLock.DEFAULT_TIMEOUT; this.maxOccupationTime = opts.maxOccupationTime || AsyncLock.DEFAULT_MAX_OCCUPATION_TIME; this.maxExecutionTime = opts.maxExecutionTime || AsyncLock.DEFAULT_MAX_EXECUTION_TIME; if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { this.maxPending = opts.maxPending; } else { this.maxPending = AsyncLock.DEFAULT_MAX_PENDING; } }; AsyncLock.DEFAULT_TIMEOUT = 0; AsyncLock.DEFAULT_MAX_OCCUPATION_TIME = 0; AsyncLock.DEFAULT_MAX_EXECUTION_TIME = 0; AsyncLock.DEFAULT_MAX_PENDING = 1e3; AsyncLock.prototype.acquire = function(key, fn3, cb, opts) { if (Array.isArray(key)) { return this._acquireBatch(key, fn3, cb, opts); } if (typeof fn3 !== "function") { throw new Error("You must pass a function to execute"); } var deferredResolve = null; var deferredReject = null; var deferred = null; if (typeof cb !== "function") { opts = cb; cb = null; deferred = new this.Promise(function(resolve, reject) { deferredResolve = resolve; deferredReject = reject; }); } opts = opts || {}; var resolved = false; var timer2 = null; var occupationTimer = null; var executionTimer = null; var self2 = this; var done = function(locked, err, ret) { if (occupationTimer) { clearTimeout(occupationTimer); occupationTimer = null; } if (executionTimer) { clearTimeout(executionTimer); executionTimer = null; } if (locked) { if (!!self2.queues[key] && self2.queues[key].length === 0) { delete self2.queues[key]; } if (self2.domainReentrant) { delete self2.domains[key]; } } if (!resolved) { if (!deferred) { if (typeof cb === "function") { cb(err, ret); } } else { if (err) { deferredReject(err); } else { deferredResolve(ret); } } resolved = true; } if (locked) { if (!!self2.queues[key] && self2.queues[key].length > 0) { self2.queues[key].shift()(); } } }; var exec = function(locked) { if (resolved) { return done(locked); } if (timer2) { clearTimeout(timer2); timer2 = null; } if (self2.domainReentrant && locked) { self2.domains[key] = process.domain; } var maxExecutionTime = opts.maxExecutionTime || self2.maxExecutionTime; if (maxExecutionTime) { executionTimer = setTimeout(function() { if (!!self2.queues[key]) { done(locked, new Error("Maximum execution time is exceeded " + key)); } }, maxExecutionTime); } if (fn3.length === 1) { var called = false; try { fn3(function(err, ret) { if (!called) { called = true; done(locked, err, ret); } }); } catch (err) { if (!called) { called = true; done(locked, err); } } } else { self2._promiseTry(function() { return fn3(); }).then(function(ret) { done(locked, void 0, ret); }, function(error) { done(locked, error); }); } }; if (self2.domainReentrant && !!process.domain) { exec = process.domain.bind(exec); } var maxPending = opts.maxPending || self2.maxPending; if (!self2.queues[key]) { self2.queues[key] = []; exec(true); } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key]) { exec(false); } else if (self2.queues[key].length >= maxPending) { done(false, new Error("Too many pending tasks in queue " + key)); } else { var taskFn = function() { exec(true); }; if (opts.skipQueue) { self2.queues[key].unshift(taskFn); } else { self2.queues[key].push(taskFn); } var timeout = opts.timeout || self2.timeout; if (timeout) { timer2 = setTimeout(function() { timer2 = null; done(false, new Error("async-lock timed out in queue " + key)); }, timeout); } } var maxOccupationTime = opts.maxOccupationTime || self2.maxOccupationTime; if (maxOccupationTime) { occupationTimer = setTimeout(function() { if (!!self2.queues[key]) { done(false, new Error("Maximum occupation time is exceeded in queue " + key)); } }, maxOccupationTime); } if (deferred) { return deferred; } }; AsyncLock.prototype._acquireBatch = function(keys, fn3, cb, opts) { if (typeof cb !== "function") { opts = cb; cb = null; } var self2 = this; var getFn = function(key, fn4) { return function(cb2) { self2.acquire(key, fn4, cb2, opts); }; }; var fnx = keys.reduceRight(function(prev, key) { return getFn(key, prev); }, fn3); if (typeof cb === "function") { fnx(cb); } else { return new this.Promise(function(resolve, reject) { if (fnx.length === 1) { fnx(function(err, ret) { if (err) { reject(err); } else { resolve(ret); } }); } else { resolve(fnx()); } }); } }; AsyncLock.prototype.isBusy = function(key) { if (!key) { return Object.keys(this.queues).length > 0; } else { return !!this.queues[key]; } }; AsyncLock.prototype._promiseTry = function(fn3) { try { return this.Promise.resolve(fn3()); } catch (e29) { return this.Promise.reject(e29); } }; module2.exports = AsyncLock; } }); // node_modules/async-lock/index.js var require_async_lock = __commonJS({ "node_modules/async-lock/index.js"(exports2, module2) { "use strict"; module2.exports = require_lib(); } }); // node_modules/ot-json1/dist/deepEqual.js var require_deepEqual = __commonJS({ "node_modules/ot-json1/dist/deepEqual.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); function eqObj(a, b) { if (Array.isArray(b)) return false; for (let k4 in a) { if (!deepEqual(a[k4], b[k4])) return false; } for (let k4 in b) { if (a[k4] === void 0) return false; } return true; } function eqArr(a, b) { if (!Array.isArray(b)) return false; if (a.length !== b.length) return false; for (let i = 0; i < a.length; i++) { if (!deepEqual(a[i], b[i])) return false; } return true; } function deepEqual(a, b) { if (a === b) return true; if (a === null || b === null) return false; if (typeof a !== "object" || typeof b !== "object") return false; return Array.isArray(a) ? eqArr(a, b) : eqObj(a, b); } exports2.default = deepEqual; } }); // node_modules/ot-json1/dist/deepClone.js var require_deepClone = __commonJS({ "node_modules/ot-json1/dist/deepClone.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); function deepClone(old) { if (old === null) return null; if (Array.isArray(old)) { return old.map(deepClone); } else if (typeof old === "object") { const o = {}; for (let k4 in old) o[k4] = deepClone(old[k4]); return o; } else { return old; } } exports2.default = deepClone; } }); // node_modules/ot-json1/dist/cursor.js var require_cursor = __commonJS({ "node_modules/ot-json1/dist/cursor.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.eachChildOf = exports2.advancer = exports2.readCursor = exports2.writeCursor = exports2.WriteCursor = exports2.ReadCursor = exports2.isValidPathItem = void 0; function assert(pred, msg) { if (!pred) throw new Error(msg); } var isObject2 = (o) => o != null && typeof o === "object" && !Array.isArray(o); var isGreaterKey = (a, b) => ( // All the numbers, then all the letters. Just as the gods of ascii intended. typeof a === typeof b ? a > b : typeof a === "string" && typeof b === "number" ); function copyAll(c, w2) { for (let _k in c) { const k4 = _k; w2.write(k4, c[k4]); } } exports2.isValidPathItem = (k4) => typeof k4 === "number" || typeof k4 === "string" && k4 !== "__proto__"; var Cursor = class { constructor(op2 = null) { this.parents = []; this.indexes = []; this.lcIdx = -1; this.idx = -1; this.container = op2; } ascend() { assert(this.parents.length === this.indexes.length / 2); if (this.idx === 0) { if (this.parents.length) { this.lcIdx = this.indexes.pop(); this.container = this.parents.pop(); this.idx = this.indexes.pop(); } else { this.lcIdx = 0; this.idx = -1; } } else { assert(this.idx > 0); this.idx--; if (isObject2(this.container[this.idx])) this.idx--; } } getPath() { const path = []; let c = this.container; let p = this.parents.length - 1; let i = this.idx; while (i >= 0) { path.unshift(c[i]); if (i === 0) { i = this.indexes[p * 2]; c = this.parents[p--]; } else { i -= isObject2(c[i - 1]) ? 2 : 1; } } return path; } }; var ReadCursor = class _ReadCursor extends Cursor { get() { return this.container ? this.container.slice(this.idx + 1) : null; } // Its only valid to call this after descending into a child. getKey() { assert(this.container != null, "Invalid call to getKey before cursor descended"); return this.container[this.idx]; } getComponent() { let c; if (this.container && this.container.length > this.idx + 1 && isObject2(c = this.container[this.idx + 1])) { return c; } else { return null; } } descendFirst() { let i = this.idx + 1; if (!this.container || i >= this.container.length || isObject2(this.container[i]) && i + 1 >= this.container.length) { return false; } if (isObject2(this.container[i])) i++; const firstChild = this.container[i]; if (Array.isArray(firstChild)) { this.indexes.push(this.idx); this.parents.push(this.container); this.indexes.push(i); this.idx = 0; this.container = firstChild; } else { this.idx = i; } return true; } nextSibling() { assert(this.parents.length === this.indexes.length / 2); if (this.idx > 0 || this.parents.length === 0) return false; const i = this.indexes[this.indexes.length - 1] + 1; const c = this.parents[this.parents.length - 1]; if (i >= c.length) return false; assert(!isNaN(i)); this.indexes[this.indexes.length - 1] = i; this.container = c[i]; return true; } _init(_container, _idx, _parents, _indexes) { this.container = _container; this.idx = _idx; this.parents = _parents.slice(); this.indexes = _indexes.slice(); } clone() { const c = new _ReadCursor(); c._init(this.container, this.idx, this.parents, this.indexes); return c; } *[Symbol.iterator]() { if (!this.descendFirst()) return; do yield this.getKey(); while (this.nextSibling()); this.ascend(); } // TODO(cleanup): Consider moving these functions out of cursor, since // they're really just helper methods. // It'd be really nice to do this using generators. traverse(w2, fn3) { const c = this.getComponent(); if (c) fn3(c, w2); for (const key of this) { if (w2) w2.descend(key); this.traverse(w2, fn3); if (w2) w2.ascend(); } } eachPick(w2, fn3) { this.traverse(w2, (c, w3) => { if (c.p != null) fn3(c.p, w3); }); } eachDrop(w2, fn3) { this.traverse(w2, (c, w3) => { if (c.d != null) fn3(c.d, w3); }); } }; exports2.ReadCursor = ReadCursor; var WriteCursor = class extends Cursor { constructor(op2 = null) { super(op2); this.pendingDescent = []; this._op = op2; } flushDescent() { assert(this.parents.length === this.indexes.length / 2); if (this.container === null) this._op = this.container = []; for (let j4 = 0; j4 < this.pendingDescent.length; j4++) { const k4 = this.pendingDescent[j4]; let i = this.idx + 1; if (i < this.container.length && isObject2(this.container[i])) i++; assert(i === this.container.length || !isObject2(this.container[i])); if (i === this.container.length) { this.container.push(k4); this.idx = i; } else if (this.container[i] === k4) { this.idx = i; } else { if (!Array.isArray(this.container[i])) { const oldChild = this.container.splice(i, this.container.length - i); this.container.push(oldChild); if (this.lcIdx > -1) this.lcIdx = i; } this.indexes.push(this.idx); this.parents.push(this.container); if (this.lcIdx !== -1) { assert(isGreaterKey(k4, this.container[this.lcIdx][0])); i = this.lcIdx + 1; this.lcIdx = -1; } while (i < this.container.length && isGreaterKey(k4, this.container[i][0])) i++; this.indexes.push(i); this.idx = 0; if (i < this.container.length && this.container[i][0] === k4) { this.container = this.container[i]; } else { const child = [k4]; this.container.splice(i, 0, child); this.container = child; } } } this.pendingDescent.length = 0; } reset() { this.lcIdx = -1; } // Creates and returns a component, creating one if need be. You should // probably write to it immediately - ops are not valid with empty // components. getComponent() { this.flushDescent(); const i = this.idx + 1; if (i < this.container.length && isObject2(this.container[i])) { return this.container[i]; } else { const component = {}; this.container.splice(i, 0, component); return component; } } write(key, value) { const component = this.getComponent(); assert(component[key] == null || component[key] === value, "Internal consistency error: Overwritten component. File a bug"); component[key] = value; } get() { return this._op; } descend(key) { if (!exports2.isValidPathItem(key)) throw Error("Invalid JSON key"); this.pendingDescent.push(key); } descendPath(path) { this.pendingDescent.push(...path); return this; } ascend() { if (this.pendingDescent.length) this.pendingDescent.pop(); else super.ascend(); } mergeTree(data, mergeFn = copyAll) { if (data === null) return; assert(Array.isArray(data)); if (data === this._op) throw Error("Cannot merge into my own tree"); const _lcIdx = this.lcIdx; const oldDepth = this.parents.length; let depth = 0; for (let i = 0; i < data.length; i++) { const c = data[i]; if (typeof c === "string" || typeof c === "number") { depth++; this.descend(c); } else if (Array.isArray(c)) { this.mergeTree(c, mergeFn); } else if (typeof c === "object") { mergeFn(c, this); } } while (depth--) this.ascend(); this.lcIdx = this.parents.length === oldDepth ? _lcIdx : -1; } at(path, fn3) { this.descendPath(path); fn3(this); for (let i = 0; i < path.length; i++) this.ascend(); return this; } // This is used by helpers, so the strict ordering guarantees are // relaxed. writeAtPath(path, key, value) { this.at(path, () => this.write(key, value)); this.reset(); return this; } writeMove(path1, path2, slot = 0) { return this.writeAtPath(path1, "p", slot).writeAtPath(path2, "d", slot); } getPath() { const path = super.getPath(); path.push(...this.pendingDescent); return path; } }; exports2.WriteCursor = WriteCursor; exports2.writeCursor = () => new WriteCursor(); exports2.readCursor = (op2) => new ReadCursor(op2); function advancer(r, listMap, listAdv) { let didDescend, valid; valid = didDescend = r ? r.descendFirst() : false; function adv(ktarget) { let k2_; while (valid) { const k22 = k2_ = r.getKey(); if (ktarget != null) { let skip2 = false; if (listMap && typeof k22 === "number") { k2_ = listMap(k22, r.getComponent()); if (k2_ < 0) { k2_ = ~k2_; skip2 = true; } } if (isGreaterKey(k2_, ktarget)) return null; else if (k2_ === ktarget && !skip2) return r; } if (listAdv && typeof k2_ === "number") listAdv(k2_, r.getComponent()); valid = r.nextSibling(); } return null; } adv.end = () => { if (didDescend) r.ascend(); }; return adv; } exports2.advancer = advancer; function eachChildOf(r1, r2, fn3) { let hasChild1, descended1, hasChild2, descended2; hasChild1 = descended1 = r1 && r1.descendFirst(); hasChild2 = descended2 = r2 && r2.descendFirst(); while (hasChild1 || hasChild2) { let k1 = hasChild1 ? r1.getKey() : null; let k22 = hasChild2 ? r2.getKey() : null; if (k1 !== null && k22 !== null) { if (isGreaterKey(k22, k1)) k22 = null; else if (k1 !== k22) k1 = null; } fn3(k1 == null ? k22 : k1, k1 != null ? r1 : null, k22 != null ? r2 : null); if (k1 != null && hasChild1) { hasChild1 = r1.nextSibling(); } if (k22 != null && hasChild2) { hasChild2 = r2.nextSibling(); } } if (descended1) r1.ascend(); if (descended2) r2.ascend(); } exports2.eachChildOf = eachChildOf; } }); // node_modules/ot-json1/dist/types.js var require_types = __commonJS({ "node_modules/ot-json1/dist/types.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.ConflictType = void 0; var ConflictType; (function(ConflictType2) { ConflictType2[ConflictType2["RM_UNEXPECTED_CONTENT"] = 1] = "RM_UNEXPECTED_CONTENT"; ConflictType2[ConflictType2["DROP_COLLISION"] = 2] = "DROP_COLLISION"; ConflictType2[ConflictType2["BLACKHOLE"] = 3] = "BLACKHOLE"; })(ConflictType = exports2.ConflictType || (exports2.ConflictType = {})); } }); // node_modules/unicount/index.js var require_unicount = __commonJS({ "node_modules/unicount/index.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.uniToStrPos = exports2.strPosToUni = void 0; exports2.strPosToUni = (s, strOffset = s.length) => { let pairs = 0; let i = 0; for (; i < strOffset; i++) { const code = s.charCodeAt(i); if (code >= 55296 && code <= 57343) { pairs++; i++; } } if (i !== strOffset) throw Error("Invalid offset - splits unicode bytes"); return i - pairs; }; exports2.uniToStrPos = (s, uniOffset) => { let pos = 0; for (; uniOffset > 0; uniOffset--) { const code = s.charCodeAt(pos); pos += code >= 55296 && code <= 57343 ? 2 : 1; } return pos; }; } }); // node_modules/ot-text-unicode/dist/type.js var require_type = __commonJS({ "node_modules/ot-text-unicode/dist/type.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.uniSlice = exports2.dlen = exports2.eachOp = void 0; var unicount_1 = require_unicount(); var debugMode = false; var checkOp = (op2) => { if (!Array.isArray(op2)) throw Error("Op must be an array of components"); let last2 = null; for (let i = 0; i < op2.length; i++) { const c = op2[i]; switch (typeof c) { case "object": if (typeof c.d !== "number" && typeof c.d !== "string") throw Error("Delete must be number or string"); if (exports2.dlen(c.d) <= 0) throw Error("Deletes must not be empty"); break; case "string": if (!(c.length > 0)) throw Error("Inserts cannot be empty"); break; case "number": if (!(c > 0)) throw Error("Skip components must be >0"); if (typeof last2 === "number") throw Error("Adjacent skip components should be combined"); break; } last2 = c; } if (typeof last2 === "number") throw Error("Op has a trailing skip"); }; function eachOp(op2, fn3) { let prePos = 0, postPos = 0; for (let i = 0; i < op2.length; i++) { const c = op2[i]; fn3(c, prePos, postPos); switch (typeof c) { case "object": prePos += exports2.dlen(c.d); break; case "string": postPos += unicount_1.strPosToUni(c); break; case "number": prePos += c; postPos += c; break; } } } exports2.eachOp = eachOp; function mapOp(op2, fn3) { const newOp = []; const append = makeAppend(newOp); eachOp(op2, (c, prePos, postPos) => { append(fn3(c, prePos, postPos)); }); return trim(newOp); } var id4 = (x2) => x2; var normalize = (op2) => { return mapOp(op2, id4); }; exports2.dlen = (d) => typeof d === "number" ? d : unicount_1.strPosToUni(d); var makeAppend = (op2) => (component) => { if (!component || component.d === 0 || component.d === "") { } else if (op2.length === 0) { op2.push(component); } else if (typeof component === typeof op2[op2.length - 1]) { if (typeof component === "object") { const last2 = op2[op2.length - 1]; last2.d = typeof last2.d === "string" && typeof component.d === "string" ? last2.d + component.d : exports2.dlen(last2.d) + exports2.dlen(component.d); } else { op2[op2.length - 1] += component; } } else { op2.push(component); } }; var componentLength = (c) => typeof c === "number" ? c : typeof c === "string" ? unicount_1.strPosToUni(c) : typeof c.d === "number" ? c.d : unicount_1.strPosToUni(c.d); exports2.uniSlice = (s, startUni, endUni) => { const start = unicount_1.uniToStrPos(s, startUni); const end = endUni == null ? Infinity : unicount_1.uniToStrPos(s, endUni); return s.slice(start, end); }; var dslice = (d, start, end) => typeof d === "number" ? end == null ? d - start : Math.min(d, end) - start : exports2.uniSlice(d, start, end); var makeTake = (op2) => { let idx = 0; let offset = 0; const take2 = (n, indivisableField) => { if (idx === op2.length) return n === -1 ? null : n; const c = op2[idx]; let part; if (typeof c === "number") { if (n === -1 || c - offset <= n) { part = c - offset; ++idx; offset = 0; return part; } else { offset += n; return n; } } else if (typeof c === "string") { if (n === -1 || indivisableField === "i" || unicount_1.strPosToUni(c.slice(offset)) <= n) { part = c.slice(offset); ++idx; offset = 0; return part; } else { const offset2 = offset + unicount_1.uniToStrPos(c.slice(offset), n); part = c.slice(offset, offset2); offset = offset2; return part; } } else { if (n === -1 || indivisableField === "d" || exports2.dlen(c.d) - offset <= n) { part = { d: dslice(c.d, offset) }; ++idx; offset = 0; return part; } else { let result = dslice(c.d, offset, offset + n); offset += n; return { d: result }; } } }; const peek = () => op2[idx]; return { take: take2, peek }; }; var trim = (op2) => { if (op2.length > 0 && typeof op2[op2.length - 1] === "number") { op2.pop(); } return op2; }; function transform(op1, op2, side) { if (side !== "left" && side !== "right") { throw Error("side (" + side + ") must be 'left' or 'right'"); } checkOp(op1); checkOp(op2); const newOp = []; const append = makeAppend(newOp); const { take: take2, peek } = makeTake(op1); for (let i = 0; i < op2.length; i++) { const c2 = op2[i]; let length, c1; switch (typeof c2) { case "number": length = c2; while (length > 0) { c1 = take2(length, "i"); append(c1); if (typeof c1 !== "string") { length -= componentLength(c1); } } break; case "string": if (side === "left") { if (typeof peek() === "string") { append(take2(-1)); } } append(unicount_1.strPosToUni(c2)); break; case "object": length = exports2.dlen(c2.d); while (length > 0) { c1 = take2(length, "i"); switch (typeof c1) { case "number": length -= c1; break; case "string": append(c1); break; case "object": length -= exports2.dlen(c1.d); } } break; } } let c; while (c = take2(-1)) append(c); if (debugMode && isInvertible(op1) && isInvertible(op2) && !isInvertible(newOp)) { throw Error("Internal error - composed operation should also be invertible"); } return trim(newOp); } function compose(op1, op2) { checkOp(op1); checkOp(op2); const result = []; const append = makeAppend(result); const { take: take2 } = makeTake(op1); for (let i = 0; i < op2.length; i++) { const component = op2[i]; let length, chunk; switch (typeof component) { case "number": length = component; while (length > 0) { chunk = take2(length, "d"); append(chunk); if (typeof chunk !== "object") { length -= componentLength(chunk); } } break; case "string": append(component); break; case "object": length = exports2.dlen(component.d); let offset = 0; while (offset < length) { chunk = take2(length - offset, "d"); switch (typeof chunk) { case "number": append({ d: dslice(component.d, offset, offset + chunk) }); offset += chunk; break; case "string": offset += unicount_1.strPosToUni(chunk); break; case "object": append(chunk); } } break; } } let c; while (c = take2(-1)) append(c); if (debugMode && isInvertible(op1) && isInvertible(op2) && !isInvertible(result)) { throw Error("Internal error - composed operation should also be invertible"); } return trim(result); } var transformPosition = (cursor, op2) => { let pos = 0; for (let i = 0; i < op2.length && cursor > pos; i++) { const c = op2[i]; switch (typeof c) { case "number": { pos += c; break; } case "string": const offset = unicount_1.strPosToUni(c); pos += offset; cursor += offset; break; case "object": cursor -= Math.min(exports2.dlen(c.d), cursor - pos); break; } } return cursor; }; var transformSelection = (selection, op2) => typeof selection === "number" ? transformPosition(selection, op2) : selection.map((s) => transformPosition(s, op2)); function makeInvertible(op2, doc, ropeImpl) { return mapOp(op2, (c, prePos) => typeof c === "object" && typeof c.d === "number" ? { d: ropeImpl.slice(doc, prePos, prePos + c.d) } : c); } function invert(op2) { return mapOp(op2, (c) => { switch (typeof c) { case "object": if (typeof c.d === "number") { throw Error("Cannot invert text op: Deleted characters missing from operation. makeInvertible must be called first."); } else return c.d; // delete -> insert case "string": return { d: c }; // Insert -> delete case "number": return c; } }); } function stripInvertible(op2) { return mapOp(op2, (c) => typeof c === "object" && typeof c.d === "string" ? { d: unicount_1.strPosToUni(c.d) } : c); } function isInvertible(op2) { let invertible = true; eachOp(op2, (c) => { if (typeof c === "object" && typeof c.d === "number") invertible = false; }); return invertible; } function makeType(ropeImpl) { return { name: "text-unicode", uri: "http://sharejs.org/types/text-unicode", trim, normalize, checkOp, /** Create a new text snapshot. * * @param {string} initial - initial snapshot data. Optional. Defaults to ''. * @returns {Snap} Initial document snapshot object */ create(initial = "") { if (typeof initial !== "string") { throw Error("Initial data must be a string"); } return ropeImpl.create(initial); }, /** Apply an operation to a document snapshot */ apply(str, op2) { checkOp(op2); const builder = ropeImpl.builder(str); for (let i = 0; i < op2.length; i++) { const component = op2[i]; switch (typeof component) { case "number": builder.skip(component); break; case "string": builder.append(component); break; case "object": builder.del(exports2.dlen(component.d)); break; } } return builder.build(); }, transform, compose, transformPosition, transformSelection, isInvertible, makeInvertible(op2, doc) { return makeInvertible(op2, doc, ropeImpl); }, stripInvertible, invert, invertWithDoc(op2, doc) { return invert(makeInvertible(op2, doc, ropeImpl)); }, isNoop: (op2) => op2.length === 0 }; } exports2.default = makeType; } }); // node_modules/ot-text-unicode/dist/api.js var require_api = __commonJS({ "node_modules/ot-text-unicode/dist/api.js"(exports2) { "use strict"; Object.defineProperty(exports2, "__esModule", { value: true }); var type_1 = require_type(); var unicount_1 = require_unicount(); function api(getSnapshot, submitOp) { return { // Returns the text content of the document get: getSnapshot, // Returns the number of characters in the string getLength() { return getSnapshot().length; }, // Insert the specified text at the given position in the document insert(pos, text, callback) { const uniPos = unicount_1.strPosToUni(getSnapshot(), pos); return submitOp([uniPos, text], callback); }, remove(pos, lengthOrContent, callback) { const uniPos = unicount_1.strPosToUni(getSnapshot(), pos); return submitOp([uniPos, { d: lengthOrContent }], callback); }, // When you use this API, you should implement these two methods // in your editing context. //onInsert: function(pos, text) {}, //onRemove: function(pos, removedLength) {}, _onOp(op2) { type_1.eachOp(op2, (component, prePos, postPos) => { switch (typeof component) { case "string": if (this.onInsert) this.onInsert(postPos, component); break; case "object": const dl4 = type_1.dlen(component.d); if (this.onRemove) this.onRemove(postPos, dl4); } }); }, onInsert: null, onRemove: null }; } exports2.default = api; api.provides = { text: true }; } }); // node_modules/ot-text-unicode/dist/index.js var require_dist = __commonJS({ "node_modules/ot-text-unicode/dist/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k4, k22) { if (k22 === void 0) k22 = k4; Object.defineProperty(o, k22, { enumerable: true, get: function() { return m[k4]; } }); }) : (function(o, m, k4, k22) { if (k22 === void 0) k22 = k4; o[k22] = m[k4]; })); var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = exports2 && exports2.__importStar || function(mod2) { if (mod2 && mod2.__esModule) return mod2; var result = {}; if (mod2 != null) { for (var k4 in mod2) if (Object.hasOwnProperty.call(mod2, k4)) __createBinding(result, mod2, k4); } __setModuleDefault(result, mod2); return result; }; var __importDefault = exports2 && exports2.__importDefault || function(mod2) { return mod2 && mod2.__esModule ? mod2 : { "default": mod2 }; }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.type = exports2.remove = exports2.insert = void 0; var unicount_1 = require_unicount(); var type_1 = __importStar(require_type()); var api_1 = __importDefault(require_api()); var ropeImplUnicodeString = { create(s) { return s; }, toString(s) { return s; }, builder(oldDoc) { if (typeof oldDoc !== "string") throw Error("Invalid document snapshot: " + oldDoc); const newDoc = []; return { skip(n) { let offset = unicount_1.uniToStrPos(oldDoc, n); if (offset > oldDoc.length) throw Error("The op is too long for this document"); newDoc.push(oldDoc.slice(0, offset)); oldDoc = oldDoc.slice(offset); }, append(s) { newDoc.push(s); }, del(n) { oldDoc = oldDoc.slice(unicount_1.uniToStrPos(oldDoc, n)); }, build() { return newDoc.join("") + oldDoc; } }; }, slice: type_1.uniSlice }; var textString = type_1.default(ropeImplUnicodeString); var type2 = Object.assign(Object.assign({}, textString), { api: api_1.default }); exports2.type = type2; exports2.insert = (pos, text) => text.length === 0 ? [] : pos === 0 ? [text] : [pos, text]; exports2.remove = (pos, textOrLen) => type_1.dlen(textOrLen) === 0 ? [] : pos === 0 ? [{ d: textOrLen }] : [pos, { d: textOrLen }]; var type_2 = require_type(); Object.defineProperty(exports2, "makeType", { enumerable: true, get: function() { return type_2.default; } }); } }); // node_modules/ot-json1/dist/json1.release.js var require_json1_release = __commonJS({ "node_modules/ot-json1/dist/json1.release.js"(exports2) { "use strict"; var __importDefault = exports2 && exports2.__importDefault || function(mod2) { return mod2 && mod2.__esModule ? mod2 : { default: mod2 }; }; Object.defineProperty(exports2, "__esModule", { value: true }), exports2.editOp = exports2.replaceOp = exports2.insertOp = exports2.moveOp = exports2.removeOp = exports2.type = void 0; var deepEqual_js_1 = __importDefault(require_deepEqual()); var deepClone_js_1 = __importDefault(require_deepClone()); var cursor_js_1 = require_cursor(); var types_js_1 = require_types(); var log3 = () => { }; function assert(pred, msg) { if (!pred) throw new Error(msg); } var debugMode = false; exports2.type = { name: "json1", uri: "http://sharejs.org/types/JSONv1", readCursor: cursor_js_1.readCursor, writeCursor: cursor_js_1.writeCursor, create: (data) => data, isNoop: (op2) => null == op2, setDebug(val) { debugMode = val, log3.quiet = !val; }, registerSubtype, checkValidOp, normalize, apply: apply2, transformPosition, compose, tryTransform, transform, makeInvertible, invert, invertWithDoc, RM_UNEXPECTED_CONTENT: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, DROP_COLLISION: types_js_1.ConflictType.DROP_COLLISION, BLACKHOLE: types_js_1.ConflictType.BLACKHOLE, transformNoConflict: (op1, op2, side) => transformWithConflictsPred(() => true, op1, op2, side), typeAllowingConflictsPred: (allowConflict) => Object.assign(Object.assign({}, exports2.type), { transform: (op1, op2, side) => transformWithConflictsPred(allowConflict, op1, op2, side) }) }; var getComponent = (r) => r ? r.getComponent() : null; function isObject2(o) { return o && "object" == typeof o && !Array.isArray(o); } var shallowClone = (obj) => Array.isArray(obj) ? obj.slice() : null !== obj && "object" == typeof obj ? Object.assign({}, obj) : obj; var hasPick = (c) => c && (null != c.p || void 0 !== c.r); var hasDrop = (c) => c && (null != c.d || void 0 !== c.i); function removeChild(container, key) { return assert(null != container), "number" == typeof key ? (assert(Array.isArray(container), "Invalid key - child is not an array"), (container = container.slice()).splice(key, 1)) : (assert(isObject2(container), "Invalid key - child is not an object"), delete (container = Object.assign({}, container))[key]), container; } function insertChildMut(container, key, value) { return "number" == typeof key ? (assert(null != container, "Container is missing for key"), assert(Array.isArray(container), "Cannot use numerical key for object container"), assert(container.length >= key, "Cannot insert into out of bounds index"), container.splice(key, 0, value)) : (assert(isObject2(container), "Cannot insert into missing item"), assert(void 0 === container[key], "Trying to overwrite value at key. Your op needs to remove it first"), container[key] = value), value; } exports2.removeOp = (path, value = true) => cursor_js_1.writeCursor().writeAtPath(path, "r", value).get(), exports2.moveOp = (from2, to4) => cursor_js_1.writeCursor().writeMove(from2, to4).get(), exports2.insertOp = (path, value) => cursor_js_1.writeCursor().writeAtPath(path, "i", value).get(), exports2.replaceOp = (path, oldVal, newVal) => cursor_js_1.writeCursor().at(path, (w2) => { w2.write("r", oldVal), w2.write("i", newVal); }).get(), exports2.editOp = (path, type2, subOp, preserveNoop = false) => cursor_js_1.writeCursor().at(path, (w2) => writeEdit(w2, type2, subOp, preserveNoop)).get(); var isValidKey = (container, key) => null != container && ("number" == typeof key ? Array.isArray(container) : "object" == typeof container); var maybeGetChild = (container, key) => isValidKey(container, key) ? container[key] : void 0; var subtypes = {}; function registerSubtype(subtype) { let _subtype = subtype.type ? subtype.type : subtype; _subtype.name && (subtypes[_subtype.name] = _subtype), _subtype.uri && (subtypes[_subtype.uri] = _subtype); } var typeOrThrow = (name) => { const type2 = subtypes[name]; if (type2) return type2; throw Error("Missing type: " + name); }; registerSubtype(require_dist()); var add3 = (a, b) => a + b; registerSubtype({ name: "number", apply: add3, compose: add3, invert: (n) => -n, transform: (a) => a }); var getEditType = (c) => null == c ? null : c.et ? typeOrThrow(c.et) : c.es ? subtypes["text-unicode"] : null != c.ena ? subtypes.number : null; var getEdit = (c) => c.es ? c.es : null != c.ena ? c.ena : c.e; var writeEdit = (w2, typeOrName, edit, preserveNoop = false) => { const [type2, name] = "string" == typeof typeOrName ? [typeOrThrow(typeOrName), typeOrName] : [typeOrName, typeOrName.name]; !preserveNoop && type2.isNoop && type2.isNoop(edit) || ("number" === name ? w2.write("ena", edit) : "text-unicode" === name ? w2.write("es", edit) : (w2.write("et", name), w2.write("e", edit))); }; function checkNonNegInteger(n) { assert("number" == typeof n), assert(n >= 0), assert(n === (0 | n)); } function checkScalar(s) { "number" == typeof s ? checkNonNegInteger(s) : assert("string" == typeof s); } function checkValidOp(op2) { if (null === op2) return; const pickedSlots = /* @__PURE__ */ new Set(), droppedSlots = /* @__PURE__ */ new Set(), checkComponent = (e29) => { let empty = true, hasEdit = false; for (let k4 in e29) { const v = e29[k4]; if (empty = false, assert("p" === k4 || "r" === k4 || "d" === k4 || "i" === k4 || "e" === k4 || "es" === k4 || "ena" === k4 || "et" === k4, "Invalid component item '" + k4 + "'"), "p" === k4) checkNonNegInteger(v), assert(!pickedSlots.has(v)), pickedSlots.add(v), assert(void 0 === e29.r); else if ("d" === k4) checkNonNegInteger(v), assert(!droppedSlots.has(v)), droppedSlots.add(v), assert(void 0 === e29.i); else if ("e" === k4 || "es" === k4 || "ena" === k4) { assert(!hasEdit), hasEdit = true; const t = getEditType(e29); assert(t, "Missing type in edit"), t.checkValidOp && t.checkValidOp(getEdit(e29)); } } assert(!empty); }, checkDescent = (descent, isRoot, removed) => { if (!Array.isArray(descent)) throw Error("Op must be null or a list"); if (0 === descent.length) throw Error("Empty descent"); isRoot || checkScalar(descent[0]); let last2 = 1, numDescents = 0, lastKey = 0; for (let i = 0; i < descent.length; i++) { const d = descent[i]; if (assert(null != d), Array.isArray(d)) { const key = checkDescent(d, false, removed); if (numDescents) { const t1 = typeof lastKey, t2 = typeof key; t1 === t2 ? assert(lastKey < key, "descent keys are not in order") : assert("number" === t1 && "string" === t2); } lastKey = key, numDescents++, last2 = 3; } else "object" == typeof d ? (assert(1 === last2, `Prev not scalar - instead ${last2}`), checkComponent(d), last2 = 2) : (assert(3 !== last2), checkScalar(d), assert(cursor_js_1.isValidPathItem(d), "Invalid path key"), last2 = 1); } return assert(1 !== numDescents, "Operation makes multiple descents. Remove some []"), assert(2 === last2 || 3 === last2), descent[0]; }; checkDescent(op2, true, false), assert(pickedSlots.size === droppedSlots.size, "Mismatched picks and drops in op"); for (let i = 0; i < pickedSlots.size; i++) assert(pickedSlots.has(i)), assert(droppedSlots.has(i)); } function normalize(op2) { let nextSlot = 0, slotMap = []; const w2 = cursor_js_1.writeCursor(); return w2.mergeTree(op2, (c, w3) => { const t = getEditType(c); if (t) { const op3 = getEdit(c); writeEdit(w3, t, t.normalize ? t.normalize(op3) : op3); } for (const k4 of ["r", "p", "i", "d"]) if (void 0 !== c[k4]) { const r = "p" === k4 || "d" === k4 ? (inSlot = c[k4], null == slotMap[inSlot] && (slotMap[inSlot] = nextSlot++), slotMap[inSlot]) : c[k4]; w3.write(k4, r); } var inSlot; }), w2.get(); } function apply2(snapshot, op2) { if (log3.quiet = !debugMode, checkValidOp(op2), null === op2) return snapshot; const held = []; return (function drop(root2, descent) { let subDoc = root2, i = 0, rootContainer = { root: root2 }, m = 0, container = rootContainer, key = "root"; function mut() { for (; m < i; m++) { let d = descent[m]; "object" != typeof d && (assert(isValidKey(container, key)), container = container[key] = shallowClone(container[key]), key = d); } } for (; i < descent.length; i++) { const d = descent[i]; if (Array.isArray(d)) { const child = drop(subDoc, d); child !== subDoc && void 0 !== child && (mut(), subDoc = container[key] = child); } else if ("object" == typeof d) { null != d.d ? (mut(), subDoc = insertChildMut(container, key, held[d.d])) : void 0 !== d.i && (mut(), subDoc = insertChildMut(container, key, d.i)); const t = getEditType(d); if (t) mut(), subDoc = container[key] = t.apply(subDoc, getEdit(d)); else if (void 0 !== d.e) throw Error("Subtype " + d.et + " undefined"); } else subDoc = maybeGetChild(subDoc, d); } return rootContainer.root; })(snapshot = (function pick(subDoc, descent) { const stack = []; let i = 0; for (; i < descent.length; i++) { const d = descent[i]; if (Array.isArray(d)) break; "object" != typeof d && (stack.push(subDoc), subDoc = maybeGetChild(subDoc, d)); } for (let j4 = descent.length - 1; j4 >= i; j4--) subDoc = pick(subDoc, descent[j4]); for (--i; i >= 0; i--) { const d = descent[i]; if ("object" != typeof d) { const container = stack.pop(); subDoc = subDoc === maybeGetChild(container, d) ? container : void 0 === subDoc ? removeChild(container, d) : (k4 = d, v = subDoc, (obj = shallowClone(obj = container))[k4] = v, obj); } else hasPick(d) && (assert(void 0 !== subDoc, "Cannot pick up or remove undefined"), null != d.p && (held[d.p] = subDoc), subDoc = void 0); } var obj, k4, v; return subDoc; })(snapshot, op2), op2); } function transformPosition(path, op2) { path = path.slice(), checkValidOp(op2); const r = cursor_js_1.readCursor(op2); let pickedAtSlot, pickIndex, removed = false; const advStack = []; for (let i = 0; ; i++) { const k4 = path[i], c = r.getComponent(); if (c && (void 0 !== c.r ? removed = true : null != c.p && (removed = false, pickedAtSlot = c.p, pickIndex = i)), i >= path.length) break; let pickOffset = 0; const pickAdv = cursor_js_1.advancer(r, void 0, (k5, c2) => { hasPick(c2) && pickOffset++; }); advStack.unshift(pickAdv); const hasNext = pickAdv(k4); if ("number" == typeof k4 && (path[i] -= pickOffset), !hasNext) break; } if (advStack.forEach((pickAdv) => pickAdv.end()), removed) return null; const handleDrop = () => { let i = 0; if (null != pickedAtSlot) { const rPath = r.getPath(); i = rPath.length, path = rPath.concat(path.slice(pickIndex)); } for (; i < path.length; i++) { const k4 = path[i], c = getComponent(r), et3 = getEditType(c); if (et3) { const e29 = getEdit(c); et3.transformPosition && (path[i] = et3.transformPosition(path[i], e29)); break; } let dropOffset = 0; const hasNext = cursor_js_1.advancer(r, (k5, c2) => hasDrop(c2) ? ~(k5 - dropOffset) : k5 - dropOffset, (k5, c2) => { hasDrop(c2) && dropOffset++; })(k4); if ("number" == typeof k4 && (path[i] += dropOffset), !hasNext) break; } }; return null != pickedAtSlot ? r.eachDrop(null, (slot) => { slot === pickedAtSlot && handleDrop(); }) : handleDrop(), path; } function compose(op1, op2) { if (checkValidOp(op1), checkValidOp(op2), null == op1) return op2; if (null == op2) return op1; let nextSlot = 0; const r1 = cursor_js_1.readCursor(op1), r2 = cursor_js_1.readCursor(op2), w2 = cursor_js_1.writeCursor(), heldPickWrites = [], heldDropWrites = [], held1Pick = [], held2Drop = [], p1SlotMap = [], p2SlotMap = [], visitedOp2EditCs = /* @__PURE__ */ new Set(); r1.traverse(null, (c) => { null != c.p && (held1Pick[c.p] = r1.clone()); }), r2.traverse(null, (c) => { null != c.d && (held2Drop[c.d] = r2.clone()); }); const w22 = cursor_js_1.writeCursor(); return (function xfBoundary(r1Pick, r1Drop, r2Pick, r2Drop, litIn, rmParent, wd4, wp2) { assert(r1Drop || r2Pick); const c1d = getComponent(r1Drop), c2p = getComponent(r2Pick), rmHere = !!c2p && void 0 !== c2p.r, insHere = !!c1d && void 0 !== c1d.i, drop1Slot = c1d ? c1d.d : null, pick2Slot = c2p ? c2p.p : null, rmChildren = (rmParent || rmHere) && null == pick2Slot; if (null != pick2Slot) r2Drop = held2Drop[pick2Slot], wd4 = heldDropWrites[pick2Slot] = new cursor_js_1.WriteCursor(); else if (c2p && void 0 !== c2p.r) r2Drop = null; else { const c2d2 = getComponent(r2Drop); c2d2 && null != c2d2.d && (r2Drop = null); } const c2d = getComponent(r2Drop); if (null != drop1Slot) if (r1Pick = held1Pick[drop1Slot], wp2 = heldPickWrites[drop1Slot] = new cursor_js_1.WriteCursor(), rmChildren) rmParent && !rmHere && wp2.write("r", true); else { const slot = p1SlotMap[drop1Slot] = nextSlot++; wd4.write("d", slot); } else if (c1d && void 0 !== c1d.i) r1Pick = null; else { const c1p = getComponent(r1Pick); c1p && null != c1p.p && (r1Pick = null); } let litOut; insHere ? (assert(void 0 === litIn), litOut = c1d.i) : litOut = litIn; const insComponent = (null == pick2Slot ? !insHere || rmParent || rmHere : void 0 === litOut) ? null : wd4.getComponent(); if (null != pick2Slot) if (void 0 !== litIn || insHere) ; else { const slot = null != drop1Slot ? p1SlotMap[drop1Slot] : nextSlot++; p2SlotMap[pick2Slot] = slot, wp2.write("p", slot); } else rmHere && (insHere || void 0 !== litIn || (c2p.r, wp2.write("r", c2p.r))); const type1 = rmChildren ? null : getEditType(c1d), type2 = getEditType(c2d); if ((type1 || type2) && (type1 && type1.name, type2 && type2.name), type1 && type2) { assert(type1 === type2); const e1 = getEdit(c1d), e29 = getEdit(c2d), r = type1.compose(e1, e29); writeEdit(wd4, type1, r), visitedOp2EditCs.add(c2d); } else type1 ? writeEdit(wd4, type1, getEdit(c1d)) : type2 && (writeEdit(wd4, type2, getEdit(c2d)), visitedOp2EditCs.add(c2d)); const hasContainerLiteral = "object" == typeof litOut && null != litOut; let isCloned = false, p1PickOff = 0, p1DropOff = 0, p2PickOff = 0, p2DropOff = 0, litOff = 0; const p2DropAdv = cursor_js_1.advancer(r2Drop, (k4, c) => hasDrop(c) ? p2DropOff - k4 - 1 : k4 - p2DropOff, (k4, c) => { hasDrop(c) && p2DropOff++; }), p1PickAdv = cursor_js_1.advancer(r1Pick, (k4, c) => hasPick(c) ? p1PickOff - k4 - 1 : k4 - p1PickOff, (k4, c) => { hasPick(c) && p1PickOff++; }); if (cursor_js_1.eachChildOf(r1Drop, r2Pick, (inKey, _p1Drop, _p2Pick) => { let _p1Pick, _p2Drop, p1PickKey = inKey, p2DropKey = inKey, litKey = inKey; if ("number" == typeof inKey) { let p2Mid = inKey + p2PickOff; _p2Drop = p2DropAdv(p2Mid), p2DropKey = p2Mid + p2DropOff; let p1Mid = inKey + p1DropOff; _p1Pick = p1PickAdv(p1Mid), hasDrop(getComponent(_p2Drop)) && (_p1Pick = null), p1PickKey = p1Mid + p1PickOff, litKey = inKey + litOff, assert(p1PickKey >= 0, "p1PickKey is negative"), assert(p2DropKey >= 0, "p2DropKey is negative"); const hd1 = hasDrop(getComponent(_p1Drop)), hp2 = hasPick(getComponent(_p2Pick)); (hd1 || hp2 && !rmChildren) && litOff--, hd1 && p1DropOff--, hp2 && p2PickOff--; } else _p1Pick = p1PickAdv(inKey), _p2Drop = p2DropAdv(inKey); wp2.descend(p1PickKey), wd4.descend(p2DropKey); const _lit = hasContainerLiteral && !hasDrop(getComponent(_p1Drop)) ? litOut[litKey] : void 0, _litResult = xfBoundary(_p1Pick, _p1Drop, _p2Pick, _p2Drop, _lit, rmChildren, wd4, wp2); var container, key, child; hasContainerLiteral && !rmChildren ? _lit !== _litResult && (isCloned || (litOut = Array.isArray(litOut) ? litOut.slice() : Object.assign({}, litOut), isCloned = true), container = litOut, child = _litResult, "number" == typeof (key = litKey) ? (assert(Array.isArray(container)), assert(key < container.length)) : (assert(!Array.isArray(container)), assert(void 0 !== container[key])), void 0 === child ? "number" == typeof key ? container.splice(key, 1) : delete container[key] : container[key] = child) : assert(void 0 === _litResult), wd4.ascend(), wp2.ascend(); }), p1PickAdv.end(), p2DropAdv.end(), null != insComponent) insComponent.i = litOut; else if (!rmParent && !rmHere && null == pick2Slot) return litOut; })(r1, r1.clone(), r2, r2.clone(), void 0, false, w2, w22), w2.reset(), w2.mergeTree(w22.get()), w2.reset(), w2.get(), heldPickWrites.map((w3) => w3.get()), heldDropWrites.map((w3) => w3.get()), r1.traverse(w2, (c, w3) => { const slot1 = c.p; if (null != slot1) { const slot = p1SlotMap[slot1]; null != slot && w3.write("p", slot); const _w = heldPickWrites[slot1]; _w && _w.get(), _w && w3.mergeTree(_w.get()); } else void 0 !== c.r && w3.write("r", c.r); }), w2.reset(), w2.get(), r2.traverse(w2, (c, w3) => { const slot2 = c.d; if (null != slot2) { const slot = p2SlotMap[slot2]; null != slot && w3.write("d", slot); const _w = heldDropWrites[slot2]; _w && w3.mergeTree(_w.get()); } else void 0 !== c.i && w3.write("i", c.i); const t = getEditType(c); t && !visitedOp2EditCs.has(c) && writeEdit(w3, t, getEdit(c)); }), w2.get(); } function invert(op2) { if (null == op2) return null; const r = new cursor_js_1.ReadCursor(op2), w2 = new cursor_js_1.WriteCursor(); let editsToTransform; const heldPick = [], heldWrites = []; return (function invertSimple(r2, w3, subDoc) { const c = r2.getComponent(); let insertHere, subdocModified = false; if (c) { null != c.p && (w3.write("d", c.p), heldPick[c.p] = r2.clone()), void 0 !== c.r && w3.write("i", c.r), null != c.d && (w3.write("p", c.d), subDoc = void 0), void 0 !== c.i && (subDoc = insertHere = c.i); const t = getEditType(c); t && (void 0 === subDoc ? (editsToTransform || (editsToTransform = /* @__PURE__ */ new Set()), editsToTransform.add(c)) : (getEdit(c), subDoc = t.apply(subDoc, getEdit(c)), subdocModified = true)); } let dropOff = 0; for (const key of r2) { w3.descend(key); const raw = "number" == typeof key ? key - dropOff : key, childIn = maybeGetChild(subDoc, raw); hasDrop(r2.getComponent()) && dropOff++; const childOut = invertSimple(r2, w3, childIn); if (void 0 !== subDoc && void 0 !== childOut) { if (subdocModified || (subdocModified = true, subDoc = shallowClone(subDoc)), !isValidKey(subDoc, raw)) throw Error("Cannot modify child - invalid operation"); subDoc[raw] = childOut; } w3.ascend(); } if (void 0 === insertHere) return subdocModified ? subDoc : void 0; w3.write("r", subDoc); })(r, w2, void 0), editsToTransform && (w2.reset(), (function transformEdits(rPick, rDrop, w3) { const cd4 = rDrop.getComponent(); if (cd4) { const dropSlot = cd4.d; if (null != dropSlot && (rPick = heldPick[dropSlot], w3 = heldWrites[dropSlot] = cursor_js_1.writeCursor()), editsToTransform.has(cd4)) { const t = getEditType(cd4); if (!t.invert) throw Error(`Cannot invert subtype ${t.name}`); writeEdit(w3, t, t.invert(getEdit(cd4))); } } let pickOff = 0, dropOff = 0; const ap2 = cursor_js_1.advancer(rPick, (k4, c) => hasPick(c) ? pickOff - k4 - 1 : k4 - pickOff, (k4, c) => { hasPick(c) && pickOff++; }); for (const key of rDrop) if ("number" == typeof key) { const mid = key - dropOff, _rPick = ap2(mid), raw = mid + pickOff; w3.descend(raw), transformEdits(_rPick, rDrop, w3), hasDrop(rDrop.getComponent()) && dropOff++, w3.ascend(); } else w3.descend(key), transformEdits(ap2(key), rDrop, w3), w3.ascend(); ap2.end(); })(r.clone(), r, w2), heldWrites.length && (w2.reset(), r.traverse(w2, (c, w3) => { const slot = c.p; if (null != slot) { const _w = heldWrites[slot]; _w && _w.get(), _w && w3.mergeTree(_w.get()); } }))), w2.get(); } var anyComponent = (op2, fn3) => op2.some((c) => "object" == typeof c && (Array.isArray(c) ? anyComponent(c, fn3) : fn3(c))); function makeInvertible(op2, doc) { if (null == op2 || !anyComponent(op2, (c) => { var _a4; return void 0 !== c.r || null != (null === (_a4 = getEditType(c)) || void 0 === _a4 ? void 0 : _a4.makeInvertible); })) return op2; const r = new cursor_js_1.ReadCursor(op2), w2 = new cursor_js_1.WriteCursor(); let hasEdits = false; const heldPick = [], heldDoc = [], traversePick = (r2, w3, subDoc) => { const c = r2.getComponent(); let modified = false; if (c) { null != c.d && w3.write("d", c.d), void 0 !== c.i && w3.write("i", c.i); const pickSlot = c.p; if (null != pickSlot && (heldPick[pickSlot] = r2.clone(), assert(void 0 !== subDoc, "Operation picks up at an invalid key"), heldDoc[pickSlot] = subDoc, w3.write("p", c.p)), void 0 !== c.r && void 0 === subDoc) throw Error("Invalid doc / op in makeInvertible: removed item missing from doc"); const t = getEditType(c); t && (t.makeInvertible ? hasEdits = true : writeEdit(w3, t, getEdit(c), true)); } let listOff = 0; for (const key of r2) { w3.descend(key); const keyRaw = "number" == typeof key ? key - listOff : key, childIn = maybeGetChild(subDoc, keyRaw), childOut = traversePick(r2, w3, childIn); childIn !== childOut && (modified || (modified = true, subDoc = shallowClone(subDoc)), void 0 === childOut ? (subDoc = removeChild(subDoc, keyRaw), "number" == typeof key && listOff++) : subDoc[keyRaw] = childOut), w3.ascend(); } return c && (void 0 !== c.r ? (w3.write("r", deepClone_js_1.default(subDoc)), subDoc = void 0) : null != c.p && (subDoc = void 0)), subDoc; }; return traversePick(r, w2, doc), w2.get(), hasEdits && (w2.reset(), (function traverseDrop(rPick, rDrop, w3, subDoc, isLiteral) { const c = rDrop.getComponent(); if (c) { void 0 !== c.i ? (subDoc = c.i, isLiteral = true) : null != c.d && (subDoc = heldDoc[c.d], rPick = heldPick[c.d], isLiteral = false, c.d); let t = getEditType(c); if (t && t.makeInvertible) { const edit = getEdit(c); writeEdit(w3, t, t.makeInvertible(edit, subDoc), true); } } let pickOff = 0, dropOff = 0; const ap2 = cursor_js_1.advancer(rPick, (k4, c2) => hasPick(c2) ? pickOff - k4 - 1 : k4 - pickOff, (k4, c2) => { hasPick(c2) && pickOff++; }); for (const key of rDrop) if ("number" == typeof key) { const mid = key - dropOff, _rPick = ap2(mid), raw = mid + pickOff, child = maybeGetChild(subDoc, isLiteral ? mid : raw); w3.descend(key), traverseDrop(_rPick, rDrop, w3, child, isLiteral), hasDrop(rDrop.getComponent()) && dropOff++, w3.ascend(); } else { const child = maybeGetChild(subDoc, key); w3.descend(key), traverseDrop(ap2(key), rDrop, w3, child, isLiteral), w3.ascend(); } ap2.end(); })(r.clone(), r, w2, doc, false)), w2.get(); } function invertWithDoc(op2, doc) { return invert(makeInvertible(op2, doc)); } var shallowCloneOp = (op2) => { if (null == op2) return null; const result = op2.slice(); for (let i = 0; i < op2.length; i++) { const c = result[i]; Array.isArray(c) && (result[i] = shallowCloneOp(c)); } return result; }; function tryTransform(op1, op2, direction) { assert("left" === direction || "right" === direction, "Direction must be left or right"); const side = "left" === direction ? 0 : 1; if (log3.quiet = !debugMode, log3.prefix = 0, null == op2) return { ok: true, result: op1 }; checkValidOp(op1), checkValidOp(op2); let conflict = null; const heldOp1PickByOp1 = [], heldOp1DropByOp1 = [], heldOp2PickByOp2 = [], heldOp2DropByOp2 = [], heldOp1PickByOp2 = [], heldOp2PickByOp1 = [], heldOp2DropByOp1 = [], heldOp2RmForOp1 = [], heldOp1RmForOp2 = [], cancelledOp2 = [], discardedOp2Drop = [], heldPickWrites = [], heldDropWrites = [], op1PickAtOp2Pick = [], op1PicksOp2DropSlots = []; let nextSlot = 0; const r1 = cursor_js_1.readCursor(op1), r2 = cursor_js_1.readCursor(op2), w2 = cursor_js_1.writeCursor(); if ((function scanOp2Pick(r2Pick, r1Pick = null, removed1) { const c1 = getComponent(r1Pick); c1 && (void 0 !== c1.r ? removed1 = r1Pick.clone() : null != c1.p && (removed1 = null, heldOp2PickByOp1[c1.p] = r2Pick.clone())); const c2 = r2Pick.getComponent(); let slot2; c2 && null != (slot2 = c2.p) && (heldOp1PickByOp2[slot2] = r1Pick ? r1Pick.clone() : null, heldOp2PickByOp2[slot2] = r2Pick.clone(), removed1 && (cancelledOp2[slot2] = true, heldOp1RmForOp2[slot2] = removed1), c1 && null != c1.p && (op1PickAtOp2Pick[slot2] = c1.p)); const ap1 = cursor_js_1.advancer(r1Pick); for (const key of r2Pick) scanOp2Pick(r2Pick, ap1(key), removed1); ap1.end(); })(r2, r1, null), (function scanOp2Drop(r1Pick, r2Pick, r2Drop, pickSlot1, removed1) { const c2d = r2Drop.getComponent(); let slot2, droppedHere = false; c2d && (null != (slot2 = c2d.d) ? (heldOp2DropByOp2[slot2] = r2Drop.clone(), null != pickSlot1 && (null == op1PicksOp2DropSlots[pickSlot1] && (op1PicksOp2DropSlots[pickSlot1] = []), op1PicksOp2DropSlots[pickSlot1].push(slot2)), cancelledOp2[slot2], r1Pick = heldOp1PickByOp2[slot2] || null, r2Pick = heldOp2PickByOp2[slot2] || null, cancelledOp2[slot2] ? (removed1 && (discardedOp2Drop[slot2] = true), removed1 = heldOp1RmForOp2[slot2] || null) : !removed1 || 1 !== side && null != op1PickAtOp2Pick[slot2] || null == conflict && (conflict = { type: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, op1: exports2.removeOp(removed1.getPath()), op2: exports2.moveOp(r2Pick.getPath(), r2Drop.getPath()) }), droppedHere = true) : void 0 !== c2d.i && (r1Pick = r2Pick = null, droppedHere = true, removed1 && null == conflict && (conflict = { type: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, op1: exports2.removeOp(removed1.getPath()), op2: exports2.insertOp(r2Drop.getPath(), c2d.i) }))); const c1p = getComponent(r1Pick); c1p && (void 0 !== c1p.r ? removed1 = r1Pick.clone() : null != c1p.p && (c1p.p, pickSlot1 = c1p.p, removed1 = null)); const t2 = getEditType(c2d); t2 && removed1 && null == conflict && (conflict = { type: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, op1: exports2.removeOp(removed1.getPath()), op2: exports2.editOp(r2Drop.getPath(), t2, getEdit(c2d), true) }); let p2PickOff = 0, p2DropOff = 0; const ap2 = cursor_js_1.advancer(r2Pick, (k4, c) => hasPick(c) ? p2PickOff - k4 - 1 : k4 - p2PickOff, (k4, c) => { hasPick(c) && p2PickOff++; }), ap1 = cursor_js_1.advancer(r1Pick); for (const key of r2Drop) if ("number" == typeof key) { const p2Mid = key - p2DropOff, _p2Pick = ap2(p2Mid); p2DropOff += +scanOp2Drop(ap1(p2Mid + p2PickOff), _p2Pick, r2Drop, pickSlot1, removed1); } else { const _p2Pick = ap2(key); scanOp2Drop(ap1(key), _p2Pick, r2Drop, pickSlot1, removed1); } return ap2.end(), ap1.end(), droppedHere; })(r1, r2, r2.clone(), null, null), heldOp2DropByOp2.map((x2) => x2 && x2.get()), conflict) return { ok: false, conflict }; discardedOp2Drop.map((x2) => !!x2); const pickComponents = []; let cancelledRemoves = null; !(function writeOp1Pick(r1Pick, r2Pick, r2Drop, w3, removed2) { let iAmMoved = false; const c2p = getComponent(r2Pick); if (hasPick(c2p)) { const slot2 = c2p.p; null != slot2 ? (r2Drop = heldOp2DropByOp2[slot2], w3 = heldPickWrites[slot2] = cursor_js_1.writeCursor(), iAmMoved = true, removed2 = null) : (r2Drop = null, removed2 = r2Pick.clone()); } else hasDrop(getComponent(r2Drop)) && (r2Drop = null); const c1 = r1Pick.getComponent(); if (c1) { const slot1 = c1.p; null != slot1 ? (removed2 && (heldOp2RmForOp1[slot1] = removed2), pickComponents[slot1] = removed2 || 1 === side && iAmMoved ? null : w3.getComponent(), heldOp1PickByOp1[slot1] = r1Pick.clone(), r2Drop && (heldOp2DropByOp1[slot1] = r2Drop.clone())) : void 0 !== c1.r && (removed2 || w3.write("r", true), (removed2 || iAmMoved) && (null == cancelledRemoves && (cancelledRemoves = /* @__PURE__ */ new Set()), cancelledRemoves.add(c1))); } let p2PickOff = 0, p2DropOff = 0; const ap2Pick = cursor_js_1.advancer(r2Pick, void 0, (k4, c) => { hasPick(c) && p2PickOff++; }), ap2Drop = cursor_js_1.advancer(r2Drop, (k4, c) => hasDrop(c) ? ~(k4 - p2DropOff) : k4 - p2DropOff, (k4, c) => { hasDrop(c) && p2DropOff++; }); if (r1Pick) for (const key of r1Pick) if ("string" == typeof key) { const p2Pick_ = ap2Pick(key), p2Drop_ = ap2Drop(key); w3.descend(key), writeOp1Pick(r1Pick, p2Pick_, p2Drop_, w3, removed2), w3.ascend(); } else { const p2Pick_ = ap2Pick(key), p2Mid = key - p2PickOff, p2Drop_ = hasPick(getComponent(p2Pick_)) ? null : ap2Drop(p2Mid), finalKey = p2Mid + p2DropOff; assert(finalKey >= 0), w3.descend(finalKey), writeOp1Pick(r1Pick, p2Pick_, p2Drop_, w3, removed2), w3.ascend(); } ap2Pick.end(), ap2Drop.end(); })(r1, r2, r2.clone(), w2, null), w2.reset(); let outputSlotMap = []; if ((function writeOp1Drop(p1Pick, p1Drop, p2Pick, p2Drop, w3, removed2) { assert(p1Drop); const c1d = p1Drop.getComponent(); let c2d = getComponent(p2Drop), droppedHere = false; const insOrMv = (r12, r22, c) => r12 ? exports2.moveOp(r12.getPath(), r22.getPath()) : exports2.insertOp(r22.getPath(), c.i); if (hasDrop(c1d)) { const slot1 = c1d.d; null != slot1 && (heldOp1DropByOp1[slot1] = p1Drop.clone()); const pc4 = null != slot1 ? pickComponents[slot1] : null; let identical = false; if (void 0 !== c1d.i || null != slot1 && pc4) { let slot2; c2d && (void 0 !== c2d.i || null != (slot2 = c2d.d) && !cancelledOp2[slot2]) && (identical = null != slot2 ? null != slot1 && slot1 === op1PickAtOp2Pick[slot2] : deepEqual_js_1.default(c2d.i, c1d.i), identical || null != slot2 && 1 !== side && null != op1PickAtOp2Pick[slot2] || null == conflict && (conflict = { type: types_js_1.ConflictType.DROP_COLLISION, op1: insOrMv(null != slot1 ? heldOp1PickByOp1[slot1] : null, p1Drop, c1d), op2: insOrMv(null != slot2 ? heldOp2PickByOp2[slot2] : null, p2Drop, c2d) })), identical || (removed2 ? null == conflict && (conflict = { type: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, op1: insOrMv(null != slot1 ? heldOp1PickByOp1[slot1] : null, p1Drop, c1d), op2: exports2.removeOp(removed2.getPath()) }) : (null != slot1 ? (outputSlotMap[nextSlot] = slot1, w3.write("d", pc4.p = nextSlot++)) : w3.write("i", deepClone_js_1.default(c1d.i)), droppedHere = true)); } else if (null != slot1 && !pc4) { const h = heldOp2RmForOp1[slot1]; h && (removed2 = h.clone()); } null != slot1 ? (p1Pick = heldOp1PickByOp1[slot1], p2Pick = heldOp2PickByOp1[slot1], p2Drop = heldOp2DropByOp1[slot1]) : void 0 !== c1d.i && (p1Pick = p2Pick = null, identical || (p2Drop = null)); } else hasPick(getComponent(p1Pick)) && (p1Pick = p2Pick = p2Drop = null); const c1p = getComponent(p1Pick), c2p = getComponent(p2Pick); if (hasPick(c2p)) { const slot2 = c2p.p; void 0 !== c2p.r && (!c1p || void 0 === c1p.r) || cancelledOp2[slot2] ? (p2Drop = null, removed2 = p2Pick.clone()) : null != slot2 && (p2Drop = heldOp2DropByOp2[slot2], 1 !== side && null != op1PickAtOp2Pick[slot2] || ((w3 = heldDropWrites[slot2]) || (w3 = heldDropWrites[slot2] = cursor_js_1.writeCursor()), w3.reset(), removed2 = null)); } else !hasDrop(c1d) && hasDrop(c2d) && (p2Drop = null); c2d = null != p2Drop ? p2Drop.getComponent() : null; const t1 = getEditType(c1d); if (t1) { const e1 = getEdit(c1d); if (removed2) null == conflict && (conflict = { type: types_js_1.ConflictType.RM_UNEXPECTED_CONTENT, op1: exports2.editOp(p1Drop.getPath(), t1, e1, true), op2: exports2.removeOp(removed2.getPath()) }); else { const t2 = getEditType(c2d); let e29; if (t2) { if (t1 !== t2) throw Error("Transforming incompatible types"); const e210 = getEdit(c2d); e29 = t1.transform(e1, e210, direction); } else e29 = deepClone_js_1.default(e1); writeEdit(w3, t1, e29); } } let p1PickOff = 0, p1DropOff = 0, p2PickOff = 0, p2DropOff = 0, outPickOff = 0, outDropOff = 0, p1pValid = null != p1Pick && p1Pick.descendFirst(), p1pDidDescend = p1pValid; const ap2p = cursor_js_1.advancer(p2Pick, void 0, (k4, c) => { hasPick(c) && p2PickOff++; }); let p2dValid = null != p2Drop && p2Drop.descendFirst(), p2dDidDescend = p2dValid; for (const key of p1Drop) if ("number" == typeof key) { let _p1Pick; const hd1 = hasDrop(p1Drop.getComponent()), k1Mid = key - p1DropOff; { let p1k; for (; p1pValid && "number" == typeof (p1k = p1Pick.getKey()); ) { p1k += p1PickOff; const c = p1Pick.getComponent(), hp2 = hasPick(c); if (p1k > k1Mid || p1k === k1Mid && (!hp2 || 0 === side && hd1)) break; if (hp2) { p1PickOff--; const slot1 = c.p; pickComponents[slot1], op1PickAtOp2Pick.includes(slot1), c.d, getComponent(heldDropWrites[c.d]), hasPick(getComponent(heldDropWrites[c.d])), (void 0 === c.r || cancelledRemoves && cancelledRemoves.has(c)) && (null == slot1 || !pickComponents[slot1] || 1 !== side && op1PickAtOp2Pick.includes(slot1)) || outPickOff--; } p1pValid = p1Pick.nextSibling(); } _p1Pick = p1pValid && p1k === k1Mid ? p1Pick : null; } const raw = k1Mid - p1PickOff; let _p2Pick = ap2p(raw); const k2Mid = raw - p2PickOff; let _p2Drop = null; { let p2dk, op2Mid; for (; p2dValid && "number" == typeof (p2dk = p2Drop.getKey()); ) { op2Mid = p2dk - p2DropOff; const c = p2Drop.getComponent(), hd22 = hasDrop(c); if (op2Mid > k2Mid) break; if (op2Mid === k2Mid) { if (!hd22) { _p2Drop = p2Drop; break; } { if (0 === side && hd1) { _p2Drop = p2Drop; break; } const hp2 = _p2Pick && hasPick(_p2Pick.getComponent()); if (0 === side && hp2) break; } } if (hd22) { const slot2 = c.d; cancelledOp2[slot2], op1PickAtOp2Pick[slot2], void 0 === c.i && (cancelledOp2[slot2] || null != op1PickAtOp2Pick[slot2] && 1 !== side) ? (cancelledOp2[slot2] || null != op1PickAtOp2Pick[slot2] && 0 === side) && (p2DropOff++, outDropOff--) : p2DropOff++; } p2dValid = p2Drop.nextSibling(); } } const descend = k2Mid + p2DropOff + outPickOff + outDropOff; assert(descend >= 0, "trying to descend to a negative index"), w3.descend(descend), hd1 && (_p1Pick = _p2Pick = _p2Drop = null, p1DropOff++), writeOp1Drop(_p1Pick, p1Drop, _p2Pick, _p2Drop, w3, removed2) && outDropOff++, w3.ascend(); } else { let p1k; for (; p1pValid && (p1k = p1Pick.getKey(), "string" != typeof p1k || !(p1k > key || p1k === key)); ) p1pValid = p1Pick.nextSibling(); const _p1Pick = p1pValid && p1k === key ? p1Pick : null, _p2Pick = ap2p(key); let p2dk; for (; p2dValid && (p2dk = p2Drop.getKey(), "string" != typeof p2dk || !(p2dk > key || p2dk === key)); ) p2dValid = p2Drop.nextSibling(); const _p2Drop = p2dValid && p2dk === key ? p2Drop : null; w3.descend(key), writeOp1Drop(_p1Pick, p1Drop, _p2Pick, _p2Drop, w3, removed2), w3.ascend(); } return ap2p.end(), p1pDidDescend && p1Pick.ascend(), p2dDidDescend && p2Drop.ascend(), droppedHere; })(r1, r1.clone(), r2, r2.clone(), w2, null), conflict) return { ok: false, conflict }; w2.reset(); const eachDrop = (r, w3, fn3) => r.traverse(w3, (c, w4) => { null != c.d && fn3(c.d, r, w4); }); (cancelledOp2.length || heldPickWrites.length) && (eachDrop(r2, w2, (slot2, r, w3) => { cancelledOp2[slot2] && !discardedOp2Drop[slot2] && w3.write("r", true), heldPickWrites[slot2] && w3.mergeTree(heldPickWrites[slot2].get()); }), w2.reset()); const heldOutDropRead = [], heldOutDropWrites = []; if ((heldDropWrites.length || cancelledOp2.length) && !conflict) { const rOut = cursor_js_1.readCursor(shallowCloneOp(w2.get())); if (eachDrop(rOut, null, (slotOut, r) => { heldOutDropRead[slotOut] = r.clone(); }), heldDropWrites.forEach((hdw) => { hdw && eachDrop(cursor_js_1.readCursor(hdw.get()), null, (slotOut, r) => { heldOutDropRead[slotOut] = r.clone(); }); }), (function writeHeldOp2Drop(p2Drop, outPick, outDrop, w3, parentC, removedOut) { log3.prefix++; const coutp = getComponent(outPick); if (coutp && hasPick(coutp)) if (null != coutp.p) { parentC = coutp; const slot = coutp.p; heldOutDropRead[slot].getPath(), outDrop = heldOutDropRead[slot], w3 = heldOutDropWrites[slot] = cursor_js_1.writeCursor(); } else void 0 !== coutp.r && (outDrop = null, removedOut = true); else hasDrop(getComponent(outDrop)) && (outDrop = null); const c2 = p2Drop.getComponent(); if (c2) { let slot2; if (null != (slot2 = c2.d)) { const _w = heldDropWrites[slot2]; _w && (_w.get(), w3.mergeTree(_w.get()), outDrop = cursor_js_1.readCursor(_w.get())); } } let outPickOff = 0, outDropOff = 0; const oPickAdv = cursor_js_1.advancer(outPick, void 0, (k4, c) => { hasPick(c) && outPickOff--; }), oDropAdv = cursor_js_1.advancer(outDrop, (k4, c) => hasDrop(c) ? -(k4 - outDropOff) - 1 : k4 - outDropOff, (k4, c) => { hasDrop(c) && outDropOff++; }); for (const o2dk of p2Drop) if ("number" == typeof o2dk) { const _outPick = oPickAdv(o2dk), rmid = o2dk + outPickOff, _outDrop = oDropAdv(rmid), rfinal = rmid + outDropOff; w3.descend(rfinal), writeHeldOp2Drop(p2Drop, _outPick, _outDrop, w3, parentC, removedOut), w3.ascend(); } else w3.descend(o2dk), writeHeldOp2Drop(p2Drop, oPickAdv(o2dk), oDropAdv(o2dk), w3, parentC, removedOut), w3.ascend(); oPickAdv.end(), oDropAdv.end(); })(r2, rOut, rOut.clone(), w2, null, false), w2.reset(), conflict) return { ok: false, conflict }; if (w2.get(), heldOutDropWrites.length) { const heldOutDropContent = heldOutDropWrites.map((w3) => w3 ? w3.get() : null), rOut2 = cursor_js_1.readCursor(shallowCloneOp(w2.get())); if (eachDrop(rOut2, w2, (slotOut, r, w3) => { const data = heldOutDropContent[slotOut]; data && (w3.mergeTree(data), heldOutDropContent[slotOut] = null); }), heldOutDropContent.find((x2) => x2)) { const w1 = cursor_js_1.writeCursor(), w22 = cursor_js_1.writeCursor(); let nextSlot1 = 0, nextSlot2 = 0; heldOutDropContent.forEach((data) => { null != data && eachDrop(cursor_js_1.readCursor(data), null, (c) => { const slot1 = outputSlotMap[c]; w1.writeMove(heldOp1PickByOp1[slot1].getPath(), heldOp1DropByOp1[slot1].getPath(), nextSlot1++); const slot2s = op1PicksOp2DropSlots[slot1]; slot2s && slot2s.forEach((slot2) => { cancelledOp2[slot2] || 1 !== side && null != op1PickAtOp2Pick[slot2] || w22.writeMove(heldOp2PickByOp2[slot2].getPath(), heldOp2DropByOp2[slot2].getPath(), nextSlot2++); }); }); }), conflict = { type: types_js_1.ConflictType.BLACKHOLE, op1: w1.get(), op2: w22.get() }; } } } if (conflict) return { ok: false, conflict }; return { ok: true, result: w2.get() }; } var throwConflictErr = (conflict) => { const err = new Error("Transform detected write conflict"); throw err.conflict = conflict, err.type = err.name = "writeConflict", err; }; function transform(op1, op2, side) { const res = tryTransform(op1, op2, side); if (res.ok) return res.result; throwConflictErr(res.conflict); } var opThatRemovesDE = (op2) => { const w2 = cursor_js_1.writeCursor(); return cursor_js_1.readCursor(op2).traverse(w2, (c, w3) => { (hasDrop(c) || getEditType(c)) && w3.write("r", true); }), w2.get(); }; var resolveConflict = (conflict, side) => { const { type: type2, op1, op2 } = conflict; switch (type2) { case types_js_1.ConflictType.DROP_COLLISION: return "left" === side ? [null, opThatRemovesDE(op2)] : [opThatRemovesDE(op1), null]; case types_js_1.ConflictType.RM_UNEXPECTED_CONTENT: let op1HasRemove = false; return cursor_js_1.readCursor(op1).traverse(null, (c) => { void 0 !== c.r && (op1HasRemove = true); }), op1HasRemove ? [null, opThatRemovesDE(op2)] : [opThatRemovesDE(op1), null]; case types_js_1.ConflictType.BLACKHOLE: return [opThatRemovesDE(op1), opThatRemovesDE(op2)]; default: throw Error("Unrecognised conflict: " + type2); } }; function transformWithConflictsPred(allowConflict, op1, op2, side) { let r2Aggregate = null; for (; ; ) { const res = tryTransform(op1, op2, side); if (res.ok) return compose(r2Aggregate, res.result); { const { conflict } = res; allowConflict(conflict) || throwConflictErr(conflict); const [r1, r2] = resolveConflict(conflict, side); op1 = compose(normalize(op1), r1), op2 = compose(normalize(op2), r2), r2Aggregate = compose(r2Aggregate, r2); } } } } }); // node_modules/ot-json1/dist/index.js var require_dist2 = __commonJS({ "node_modules/ot-json1/dist/index.js"(exports2) { "use strict"; var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k4, k22) { if (k22 === void 0) k22 = k4; Object.defineProperty(o, k22, { enumerable: true, get: function() { return m[k4]; } }); }) : (function(o, m, k4, k22) { if (k22 === void 0) k22 = k4; o[k22] = m[k4]; })); var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { for (var p in m) if (p !== "default" && !exports3.hasOwnProperty(p)) __createBinding(exports3, m, p); }; Object.defineProperty(exports2, "__esModule", { value: true }); __exportStar(require_json1_release(), exports2); var cursor_js_1 = require_cursor(); Object.defineProperty(exports2, "ReadCursor", { enumerable: true, get: function() { return cursor_js_1.ReadCursor; } }); Object.defineProperty(exports2, "WriteCursor", { enumerable: true, get: function() { return cursor_js_1.WriteCursor; } }); var types_1 = require_types(); Object.defineProperty(exports2, "ConflictType", { enumerable: true, get: function() { return types_1.ConflictType; } }); } }); // node_modules/dayjs/dayjs.min.js var require_dayjs_min = __commonJS({ "node_modules/dayjs/dayjs.min.js"(exports2, module2) { !(function(t, e29) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e29() : "function" == typeof define && define.amd ? define(e29) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e29(); })(exports2, (function() { "use strict"; var t = 1e3, e29 = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $6 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M4 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) { var e30 = ["th", "st", "nd", "rd"], n2 = t2 % 100; return "[" + t2 + (e30[(n2 - 20) % 10] || e30[n2] || e30[0]) + "]"; } }, m = function(t2, e30, n2) { var r2 = String(t2); return !r2 || r2.length >= e30 ? t2 : "" + Array(e30 + 1 - r2.length).join(n2) + t2; }, v = { s: m, z: function(t2) { var e30 = -t2.utcOffset(), n2 = Math.abs(e30), r2 = Math.floor(n2 / 60), i2 = n2 % 60; return (e30 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0"); }, m: function t2(e30, n2) { if (e30.date() < n2.date()) return -t2(n2, e30); var r2 = 12 * (n2.year() - e30.year()) + (n2.month() - e30.month()), i2 = e30.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e30.clone().add(r2 + (s2 ? -1 : 1), c); return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0); }, a: function(t2) { return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2); }, p: function(t2) { return { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, ""); }, u: function(t2) { return void 0 === t2; } }, g2 = "en", D4 = {}; D4[g2] = M4; var p = "$isDayjsObject", S4 = function(t2) { return t2 instanceof _2 || !(!t2 || !t2[p]); }, w2 = function t2(e30, n2, r2) { var i2; if (!e30) return g2; if ("string" == typeof e30) { var s2 = e30.toLowerCase(); D4[s2] && (i2 = s2), n2 && (D4[s2] = n2, i2 = s2); var u2 = e30.split("-"); if (!i2 && u2.length > 1) return t2(u2[0]); } else { var a2 = e30.name; D4[a2] = e30, i2 = a2; } return !r2 && i2 && (g2 = i2), i2 || !r2 && g2; }, O5 = function(t2, e30) { if (S4(t2)) return t2.clone(); var n2 = "object" == typeof e30 ? e30 : {}; return n2.date = t2, n2.args = arguments, new _2(n2); }, b = v; b.l = w2, b.i = S4, b.w = function(t2, e30) { return O5(t2, { locale: e30.$L, utc: e30.$u, x: e30.$x, $offset: e30.$offset }); }; var _2 = (function() { function M5(t2) { this.$L = w2(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true; } var m2 = M5.prototype; return m2.parse = function(t2) { this.$d = (function(t3) { var e30 = t3.date, n2 = t3.utc; if (null === e30) return /* @__PURE__ */ new Date(NaN); if (b.u(e30)) return /* @__PURE__ */ new Date(); if (e30 instanceof Date) return new Date(e30); if ("string" == typeof e30 && !/Z$/i.test(e30)) { var r2 = e30.match($6); if (r2) { var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); } } return new Date(e30); })(t2), this.init(); }, m2.init = function() { var t2 = this.$d; this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds(); }, m2.$utils = function() { return b; }, m2.isValid = function() { return !(this.$d.toString() === l); }, m2.isSame = function(t2, e30) { var n2 = O5(t2); return this.startOf(e30) <= n2 && n2 <= this.endOf(e30); }, m2.isAfter = function(t2, e30) { return O5(t2) < this.startOf(e30); }, m2.isBefore = function(t2, e30) { return this.endOf(e30) < O5(t2); }, m2.$g = function(t2, e30, n2) { return b.u(t2) ? this[e30] : this.set(n2, t2); }, m2.unix = function() { return Math.floor(this.valueOf() / 1e3); }, m2.valueOf = function() { return this.$d.getTime(); }, m2.startOf = function(t2, e30) { var n2 = this, r2 = !!b.u(e30) || e30, f2 = b.p(t2), l2 = function(t3, e31) { var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e31, t3) : new Date(n2.$y, e31, t3), n2); return r2 ? i2 : i2.endOf(a); }, $7 = function(t3, e31) { return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e31)), n2); }, y2 = this.$W, M6 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); switch (f2) { case h: return r2 ? l2(1, 0) : l2(31, 11); case c: return r2 ? l2(1, M6) : l2(0, M6 + 1); case o: var g3 = this.$locale().weekStart || 0, D5 = (y2 < g3 ? y2 + 7 : y2) - g3; return l2(r2 ? m3 - D5 : m3 + (6 - D5), M6); case a: case d: return $7(v2 + "Hours", 0); case u: return $7(v2 + "Minutes", 1); case s: return $7(v2 + "Seconds", 2); case i: return $7(v2 + "Milliseconds", 3); default: return this.clone(); } }, m2.endOf = function(t2) { return this.startOf(t2, false); }, m2.$set = function(t2, e30) { var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $7 = o2 === a ? this.$D + (e30 - this.$W) : e30; if (o2 === c || o2 === h) { var y2 = this.clone().set(d, 1); y2.$d[l2]($7), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; } else l2 && this.$d[l2]($7); return this.init(), this; }, m2.set = function(t2, e30) { return this.clone().$set(t2, e30); }, m2.get = function(t2) { return this[b.p(t2)](); }, m2.add = function(r2, f2) { var d2, l2 = this; r2 = Number(r2); var $7 = b.p(f2), y2 = function(t2) { var e30 = O5(l2); return b.w(e30.date(e30.date() + Math.round(t2 * r2)), l2); }; if ($7 === c) return this.set(c, this.$M + r2); if ($7 === h) return this.set(h, this.$y + r2); if ($7 === a) return y2(1); if ($7 === o) return y2(7); var M6 = (d2 = {}, d2[s] = e29, d2[u] = n, d2[i] = t, d2)[$7] || 1, m3 = this.$d.getTime() + r2 * M6; return b.w(m3, this); }, m2.subtract = function(t2, e30) { return this.add(-1 * t2, e30); }, m2.format = function(t2) { var e30 = this, n2 = this.$locale(); if (!this.isValid()) return n2.invalidDate || l; var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) { return t3 && (t3[n3] || t3(e30, r2)) || i3[n3].slice(0, s3); }, d2 = function(t3) { return b.s(s2 % 12 || 12, t3, "0"); }, $7 = f2 || function(t3, e31, n3) { var r3 = t3 < 12 ? "AM" : "PM"; return n3 ? r3.toLowerCase() : r3; }; return r2.replace(y, (function(t3, r3) { return r3 || (function(t4) { switch (t4) { case "YY": return String(e30.$y).slice(-2); case "YYYY": return b.s(e30.$y, 4, "0"); case "M": return a2 + 1; case "MM": return b.s(a2 + 1, 2, "0"); case "MMM": return h2(n2.monthsShort, a2, c2, 3); case "MMMM": return h2(c2, a2); case "D": return e30.$D; case "DD": return b.s(e30.$D, 2, "0"); case "d": return String(e30.$W); case "dd": return h2(n2.weekdaysMin, e30.$W, o2, 2); case "ddd": return h2(n2.weekdaysShort, e30.$W, o2, 3); case "dddd": return o2[e30.$W]; case "H": return String(s2); case "HH": return b.s(s2, 2, "0"); case "h": return d2(1); case "hh": return d2(2); case "a": return $7(s2, u2, true); case "A": return $7(s2, u2, false); case "m": return String(u2); case "mm": return b.s(u2, 2, "0"); case "s": return String(e30.$s); case "ss": return b.s(e30.$s, 2, "0"); case "SSS": return b.s(e30.$ms, 3, "0"); case "Z": return i2; } return null; })(t3) || i2.replace(":", ""); })); }, m2.utcOffset = function() { return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); }, m2.diff = function(r2, d2, l2) { var $7, y2 = this, M6 = b.p(d2), m3 = O5(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e29, g3 = this - m3, D5 = function() { return b.m(y2, m3); }; switch (M6) { case h: $7 = D5() / 12; break; case c: $7 = D5(); break; case f: $7 = D5() / 3; break; case o: $7 = (g3 - v2) / 6048e5; break; case a: $7 = (g3 - v2) / 864e5; break; case u: $7 = g3 / n; break; case s: $7 = g3 / e29; break; case i: $7 = g3 / t; break; default: $7 = g3; } return l2 ? $7 : b.a($7); }, m2.daysInMonth = function() { return this.endOf(c).$D; }, m2.$locale = function() { return D4[this.$L]; }, m2.locale = function(t2, e30) { if (!t2) return this.$L; var n2 = this.clone(), r2 = w2(t2, e30, true); return r2 && (n2.$L = r2), n2; }, m2.clone = function() { return b.w(this.$d, this); }, m2.toDate = function() { return new Date(this.valueOf()); }, m2.toJSON = function() { return this.isValid() ? this.toISOString() : null; }, m2.toISOString = function() { return this.$d.toISOString(); }, m2.toString = function() { return this.$d.toUTCString(); }, M5; })(), k4 = _2.prototype; return O5.prototype = k4, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach((function(t2) { k4[t2[1]] = function(e30) { return this.$g(e30, t2[0], t2[1]); }; })), O5.extend = function(t2, e30) { return t2.$i || (t2(e30, _2, O5), t2.$i = true), O5; }, O5.locale = w2, O5.isDayjs = S4, O5.unix = function(t2) { return O5(1e3 * t2); }, O5.en = D4[g2], O5.Ls = D4, O5.p = {}, O5; })); } }); // node_modules/dayjs/plugin/advancedFormat.js var require_advancedFormat = __commonJS({ "node_modules/dayjs/plugin/advancedFormat.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_advancedFormat = t(); })(exports2, (function() { "use strict"; return function(e29, t) { var r = t.prototype, n = r.format; r.format = function(e30) { var t2 = this, r2 = this.$locale(); if (!this.isValid()) return n.bind(this)(e30); var s = this.$utils(), a = (e30 || "YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, (function(e31) { switch (e31) { case "Q": return Math.ceil((t2.$M + 1) / 3); case "Do": return r2.ordinal(t2.$D); case "gggg": return t2.weekYear(); case "GGGG": return t2.isoWeekYear(); case "wo": return r2.ordinal(t2.week(), "W"); case "w": case "ww": return s.s(t2.week(), "w" === e31 ? 1 : 2, "0"); case "W": case "WW": return s.s(t2.isoWeek(), "W" === e31 ? 1 : 2, "0"); case "k": case "kk": return s.s(String(0 === t2.$H ? 24 : t2.$H), "k" === e31 ? 1 : 2, "0"); case "X": return Math.floor(t2.$d.getTime() / 1e3); case "x": return t2.$d.getTime(); case "z": return "[" + t2.offsetName() + "]"; case "zzz": return "[" + t2.offsetName("long") + "]"; default: return e31; } })); return n.bind(this)(a); }; }; })); } }); // node_modules/dayjs/plugin/customParseFormat.js var require_customParseFormat = __commonJS({ "node_modules/dayjs/plugin/customParseFormat.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_customParseFormat = t(); })(exports2, (function() { "use strict"; var e29 = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, t = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, n = /\d/, r = /\d\d/, i = /\d\d?/, o = /\d*[^-_:/,()\s\d]+/, s = {}, a = function(e30) { return (e30 = +e30) + (e30 > 68 ? 1900 : 2e3); }; var f = function(e30) { return function(t2) { this[e30] = +t2; }; }, h = [/[+-]\d\d:?(\d\d)?|Z/, function(e30) { (this.zone || (this.zone = {})).offset = (function(e31) { if (!e31) return 0; if ("Z" === e31) return 0; var t2 = e31.match(/([+-]|\d\d)/g), n2 = 60 * t2[1] + (+t2[2] || 0); return 0 === n2 ? 0 : "+" === t2[0] ? -n2 : n2; })(e30); }], u = function(e30) { var t2 = s[e30]; return t2 && (t2.indexOf ? t2 : t2.s.concat(t2.f)); }, d = function(e30, t2) { var n2, r2 = s.meridiem; if (r2) { for (var i2 = 1; i2 <= 24; i2 += 1) if (e30.indexOf(r2(i2, 0, t2)) > -1) { n2 = i2 > 12; break; } } else n2 = e30 === (t2 ? "pm" : "PM"); return n2; }, c = { A: [o, function(e30) { this.afternoon = d(e30, false); }], a: [o, function(e30) { this.afternoon = d(e30, true); }], Q: [n, function(e30) { this.month = 3 * (e30 - 1) + 1; }], S: [n, function(e30) { this.milliseconds = 100 * +e30; }], SS: [r, function(e30) { this.milliseconds = 10 * +e30; }], SSS: [/\d{3}/, function(e30) { this.milliseconds = +e30; }], s: [i, f("seconds")], ss: [i, f("seconds")], m: [i, f("minutes")], mm: [i, f("minutes")], H: [i, f("hours")], h: [i, f("hours")], HH: [i, f("hours")], hh: [i, f("hours")], D: [i, f("day")], DD: [r, f("day")], Do: [o, function(e30) { var t2 = s.ordinal, n2 = e30.match(/\d+/); if (this.day = n2[0], t2) for (var r2 = 1; r2 <= 31; r2 += 1) t2(r2).replace(/\[|\]/g, "") === e30 && (this.day = r2); }], w: [i, f("week")], ww: [r, f("week")], M: [i, f("month")], MM: [r, f("month")], MMM: [o, function(e30) { var t2 = u("months"), n2 = (u("monthsShort") || t2.map((function(e31) { return e31.slice(0, 3); }))).indexOf(e30) + 1; if (n2 < 1) throw new Error(); this.month = n2 % 12 || n2; }], MMMM: [o, function(e30) { var t2 = u("months").indexOf(e30) + 1; if (t2 < 1) throw new Error(); this.month = t2 % 12 || t2; }], Y: [/[+-]?\d+/, f("year")], YY: [r, function(e30) { this.year = a(e30); }], YYYY: [/\d{4}/, f("year")], Z: h, ZZ: h }; function l(n2) { var r2, i2; r2 = n2, i2 = s && s.formats; for (var o2 = (n2 = r2.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(t2, n3, r3) { var o3 = r3 && r3.toUpperCase(); return n3 || i2[r3] || e29[r3] || i2[o3].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(e30, t3, n4) { return t3 || n4.slice(1); })); }))).match(t), a2 = o2.length, f2 = 0; f2 < a2; f2 += 1) { var h2 = o2[f2], u2 = c[h2], d2 = u2 && u2[0], l2 = u2 && u2[1]; o2[f2] = l2 ? { regex: d2, parser: l2 } : h2.replace(/^\[|\]$/g, ""); } return function(e30) { for (var t2 = {}, n3 = 0, r3 = 0; n3 < a2; n3 += 1) { var i3 = o2[n3]; if ("string" == typeof i3) r3 += i3.length; else { var s2 = i3.regex, f3 = i3.parser, h3 = e30.slice(r3), u3 = s2.exec(h3)[0]; f3.call(t2, u3), e30 = e30.replace(u3, ""); } } return (function(e31) { var t3 = e31.afternoon; if (void 0 !== t3) { var n4 = e31.hours; t3 ? n4 < 12 && (e31.hours += 12) : 12 === n4 && (e31.hours = 0), delete e31.afternoon; } })(t2), t2; }; } return function(e30, t2, n2) { n2.p.customParseFormat = true, e30 && e30.parseTwoDigitYear && (a = e30.parseTwoDigitYear); var r2 = t2.prototype, i2 = r2.parse; r2.parse = function(e31) { var t3 = e31.date, r3 = e31.utc, o2 = e31.args; this.$u = r3; var a2 = o2[1]; if ("string" == typeof a2) { var f2 = true === o2[2], h2 = true === o2[3], u2 = f2 || h2, d2 = o2[2]; h2 && (d2 = o2[2]), s = this.$locale(), !f2 && d2 && (s = n2.Ls[d2]), this.$d = (function(e32, t4, n3, r4) { try { if (["x", "X"].indexOf(t4) > -1) return new Date(("X" === t4 ? 1e3 : 1) * e32); var i3 = l(t4)(e32), o3 = i3.year, s2 = i3.month, a3 = i3.day, f3 = i3.hours, h3 = i3.minutes, u3 = i3.seconds, d3 = i3.milliseconds, c3 = i3.zone, m2 = i3.week, M5 = /* @__PURE__ */ new Date(), Y6 = a3 || (o3 || s2 ? 1 : M5.getDate()), p = o3 || M5.getFullYear(), v = 0; o3 && !s2 || (v = s2 > 0 ? s2 - 1 : M5.getMonth()); var D4, w2 = f3 || 0, g2 = h3 || 0, y = u3 || 0, L4 = d3 || 0; return c3 ? new Date(Date.UTC(p, v, Y6, w2, g2, y, L4 + 60 * c3.offset * 1e3)) : n3 ? new Date(Date.UTC(p, v, Y6, w2, g2, y, L4)) : (D4 = new Date(p, v, Y6, w2, g2, y, L4), m2 && (D4 = r4(D4).week(m2).toDate()), D4); } catch (e33) { return /* @__PURE__ */ new Date(""); } })(t3, a2, r3, n2), this.init(), d2 && true !== d2 && (this.$L = this.locale(d2).$L), u2 && t3 != this.format(a2) && (this.$d = /* @__PURE__ */ new Date("")), s = {}; } else if (a2 instanceof Array) for (var c2 = a2.length, m = 1; m <= c2; m += 1) { o2[1] = a2[m - 1]; var M4 = n2.apply(this, o2); if (M4.isValid()) { this.$d = M4.$d, this.$L = M4.$L, this.init(); break; } m === c2 && (this.$d = /* @__PURE__ */ new Date("")); } else i2.call(this, e31); }; }; })); } }); // node_modules/dayjs/plugin/localeData.js var require_localeData = __commonJS({ "node_modules/dayjs/plugin/localeData.js"(exports2, module2) { !(function(n, e29) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e29() : "function" == typeof define && define.amd ? define(e29) : (n = "undefined" != typeof globalThis ? globalThis : n || self).dayjs_plugin_localeData = e29(); })(exports2, (function() { "use strict"; return function(n, e29, t) { var r = e29.prototype, o = function(n2) { return n2 && (n2.indexOf ? n2 : n2.s); }, u = function(n2, e30, t2, r2, u2) { var i2 = n2.name ? n2 : n2.$locale(), a2 = o(i2[e30]), s2 = o(i2[t2]), f = a2 || s2.map((function(n3) { return n3.slice(0, r2); })); if (!u2) return f; var d = i2.weekStart; return f.map((function(n3, e31) { return f[(e31 + (d || 0)) % 7]; })); }, i = function() { return t.Ls[t.locale()]; }, a = function(n2, e30) { return n2.formats[e30] || (function(n3) { return n3.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(n4, e31, t2) { return e31 || t2.slice(1); })); })(n2.formats[e30.toUpperCase()]); }, s = function() { var n2 = this; return { months: function(e30) { return e30 ? e30.format("MMMM") : u(n2, "months"); }, monthsShort: function(e30) { return e30 ? e30.format("MMM") : u(n2, "monthsShort", "months", 3); }, firstDayOfWeek: function() { return n2.$locale().weekStart || 0; }, weekdays: function(e30) { return e30 ? e30.format("dddd") : u(n2, "weekdays"); }, weekdaysMin: function(e30) { return e30 ? e30.format("dd") : u(n2, "weekdaysMin", "weekdays", 2); }, weekdaysShort: function(e30) { return e30 ? e30.format("ddd") : u(n2, "weekdaysShort", "weekdays", 3); }, longDateFormat: function(e30) { return a(n2.$locale(), e30); }, meridiem: this.$locale().meridiem, ordinal: this.$locale().ordinal }; }; r.localeData = function() { return s.bind(this)(); }, t.localeData = function() { var n2 = i(); return { firstDayOfWeek: function() { return n2.weekStart || 0; }, weekdays: function() { return t.weekdays(); }, weekdaysShort: function() { return t.weekdaysShort(); }, weekdaysMin: function() { return t.weekdaysMin(); }, months: function() { return t.months(); }, monthsShort: function() { return t.monthsShort(); }, longDateFormat: function(e30) { return a(n2, e30); }, meridiem: n2.meridiem, ordinal: n2.ordinal }; }, t.months = function() { return u(i(), "months"); }, t.monthsShort = function() { return u(i(), "monthsShort", "months", 3); }, t.weekdays = function(n2) { return u(i(), "weekdays", null, null, n2); }, t.weekdaysShort = function(n2) { return u(i(), "weekdaysShort", "weekdays", 3, n2); }, t.weekdaysMin = function(n2) { return u(i(), "weekdaysMin", "weekdays", 2, n2); }; }; })); } }); // node_modules/dayjs/plugin/localizedFormat.js var require_localizedFormat = __commonJS({ "node_modules/dayjs/plugin/localizedFormat.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_localizedFormat = t(); })(exports2, (function() { "use strict"; var e29 = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }; return function(t, o, n) { var r = o.prototype, i = r.format; n.en.formats = e29, r.format = function(t2) { void 0 === t2 && (t2 = "YYYY-MM-DDTHH:mm:ssZ"); var o2 = this.$locale().formats, n2 = (function(t3, o3) { return t3.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(t4, n3, r2) { var i2 = r2 && r2.toUpperCase(); return n3 || o3[r2] || e29[r2] || o3[i2].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(e30, t5, o4) { return t5 || o4.slice(1); })); })); })(t2, void 0 === o2 ? {} : o2); return i.call(this, n2); }; }; })); } }); // node_modules/dayjs/plugin/utc.js var require_utc = __commonJS({ "node_modules/dayjs/plugin/utc.js"(exports2, module2) { !(function(t, i) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = i() : "function" == typeof define && define.amd ? define(i) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs_plugin_utc = i(); })(exports2, (function() { "use strict"; var t = "minute", i = /[+-]\d\d(?::?\d\d)?/g, e29 = /([+-]|\d\d)/g; return function(s, f, n) { var u = f.prototype; n.utc = function(t2) { var i2 = { date: t2, utc: true, args: arguments }; return new f(i2); }, u.utc = function(i2) { var e30 = n(this.toDate(), { locale: this.$L, utc: true }); return i2 ? e30.add(this.utcOffset(), t) : e30; }, u.local = function() { return n(this.toDate(), { locale: this.$L, utc: false }); }; var r = u.parse; u.parse = function(t2) { t2.utc && (this.$u = true), this.$utils().u(t2.$offset) || (this.$offset = t2.$offset), r.call(this, t2); }; var o = u.init; u.init = function() { if (this.$u) { var t2 = this.$d; this.$y = t2.getUTCFullYear(), this.$M = t2.getUTCMonth(), this.$D = t2.getUTCDate(), this.$W = t2.getUTCDay(), this.$H = t2.getUTCHours(), this.$m = t2.getUTCMinutes(), this.$s = t2.getUTCSeconds(), this.$ms = t2.getUTCMilliseconds(); } else o.call(this); }; var a = u.utcOffset; u.utcOffset = function(s2, f2) { var n2 = this.$utils().u; if (n2(s2)) return this.$u ? 0 : n2(this.$offset) ? a.call(this) : this.$offset; if ("string" == typeof s2 && (s2 = (function(t2) { void 0 === t2 && (t2 = ""); var s3 = t2.match(i); if (!s3) return null; var f3 = ("" + s3[0]).match(e29) || ["-", 0, 0], n3 = f3[0], u3 = 60 * +f3[1] + +f3[2]; return 0 === u3 ? 0 : "+" === n3 ? u3 : -u3; })(s2), null === s2)) return this; var u2 = Math.abs(s2) <= 16 ? 60 * s2 : s2; if (0 === u2) return this.utc(f2); var r2 = this.clone(); if (f2) return r2.$offset = u2, r2.$u = false, r2; var o2 = this.$u ? this.toDate().getTimezoneOffset() : -1 * this.utcOffset(); return (r2 = this.local().add(u2 + o2, t)).$offset = u2, r2.$x.$localOffset = o2, r2; }; var h = u.format; u.format = function(t2) { var i2 = t2 || (this.$u ? "YYYY-MM-DDTHH:mm:ss[Z]" : ""); return h.call(this, i2); }, u.valueOf = function() { var t2 = this.$utils().u(this.$offset) ? 0 : this.$offset + (this.$x.$localOffset || this.$d.getTimezoneOffset()); return this.$d.valueOf() - 6e4 * t2; }, u.isUTC = function() { return !!this.$u; }, u.toISOString = function() { return this.toDate().toISOString(); }, u.toString = function() { return this.toDate().toUTCString(); }; var l = u.toDate; u.toDate = function(t2) { return "s" === t2 && this.$offset ? n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate() : l.call(this); }; var c = u.diff; u.diff = function(t2, i2, e30) { if (t2 && this.$u === t2.$u) return c.call(this, t2, i2, e30); var s2 = this.local(), f2 = n(t2).local(); return c.call(s2, f2, i2, e30); }; }; })); } }); // node_modules/dayjs/plugin/weekday.js var require_weekday = __commonJS({ "node_modules/dayjs/plugin/weekday.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_weekday = t(); })(exports2, (function() { "use strict"; return function(e29, t) { t.prototype.weekday = function(e30) { var t2 = this.$locale().weekStart || 0, i = this.$W, n = (i < t2 ? i + 7 : i) - t2; return this.$utils().u(e30) ? n : this.subtract(n, "day").add(e30, "day"); }; }; })); } }); // node_modules/dayjs/plugin/weekOfYear.js var require_weekOfYear = __commonJS({ "node_modules/dayjs/plugin/weekOfYear.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_weekOfYear = t(); })(exports2, (function() { "use strict"; var e29 = "week", t = "year"; return function(i, n, r) { var f = n.prototype; f.week = function(i2) { if (void 0 === i2 && (i2 = null), null !== i2) return this.add(7 * (i2 - this.week()), "day"); var n2 = this.$locale().yearStart || 1; if (11 === this.month() && this.date() > 25) { var f2 = r(this).startOf(t).add(1, t).date(n2), s = r(this).endOf(e29); if (f2.isBefore(s)) return 1; } var a = r(this).startOf(t).date(n2).startOf(e29).subtract(1, "millisecond"), o = this.diff(a, e29, true); return o < 0 ? r(this).startOf("week").week() : Math.ceil(o); }, f.weeks = function(e30) { return void 0 === e30 && (e30 = null), this.week(e30); }; }; })); } }); // node_modules/dayjs/plugin/weekYear.js var require_weekYear = __commonJS({ "node_modules/dayjs/plugin/weekYear.js"(exports2, module2) { !(function(e29, t) { "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = t() : "function" == typeof define && define.amd ? define(t) : (e29 = "undefined" != typeof globalThis ? globalThis : e29 || self).dayjs_plugin_weekYear = t(); })(exports2, (function() { "use strict"; return function(e29, t) { t.prototype.weekYear = function() { var e30 = this.month(), t2 = this.week(), n = this.year(); return 1 === t2 && 11 === e30 ? n + 1 : 0 === e30 && t2 >= 52 ? n - 1 : n; }; }; })); } }); // node_modules/fast-diff/diff.js var require_diff = __commonJS({ "node_modules/fast-diff/diff.js"(exports2, module2) { var DIFF_DELETE = -1; var DIFF_INSERT = 1; var DIFF_EQUAL = 0; function diff_main(text1, text2, cursor_pos, cleanup, _fix_unicode) { if (text1 === text2) { if (text1) { return [[DIFF_EQUAL, text1]]; } return []; } if (cursor_pos != null) { var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos); if (editdiff) { return editdiff; } } var commonlength = diff_commonPrefix(text1, text2); var commonprefix = text1.substring(0, commonlength); text1 = text1.substring(commonlength); text2 = text2.substring(commonlength); commonlength = diff_commonSuffix(text1, text2); var commonsuffix = text1.substring(text1.length - commonlength); text1 = text1.substring(0, text1.length - commonlength); text2 = text2.substring(0, text2.length - commonlength); var diffs = diff_compute_(text1, text2); if (commonprefix) { diffs.unshift([DIFF_EQUAL, commonprefix]); } if (commonsuffix) { diffs.push([DIFF_EQUAL, commonsuffix]); } diff_cleanupMerge(diffs, _fix_unicode); if (cleanup) { diff_cleanupSemantic(diffs); } return diffs; } function diff_compute_(text1, text2) { var diffs; if (!text1) { return [[DIFF_INSERT, text2]]; } if (!text2) { return [[DIFF_DELETE, text1]]; } var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; var i = longtext.indexOf(shorttext); if (i !== -1) { diffs = [ [DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)] ]; if (text1.length > text2.length) { diffs[0][0] = diffs[2][0] = DIFF_DELETE; } return diffs; } if (shorttext.length === 1) { return [ [DIFF_DELETE, text1], [DIFF_INSERT, text2] ]; } var hm2 = diff_halfMatch_(text1, text2); if (hm2) { var text1_a = hm2[0]; var text1_b = hm2[1]; var text2_a = hm2[2]; var text2_b = hm2[3]; var mid_common = hm2[4]; var diffs_a = diff_main(text1_a, text2_a); var diffs_b = diff_main(text1_b, text2_b); return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b); } return diff_bisect_(text1, text2); } function diff_bisect_(text1, text2) { var text1_length = text1.length; var text2_length = text2.length; var max_d = Math.ceil((text1_length + text2_length) / 2); var v_offset = max_d; var v_length = 2 * max_d; var v1 = new Array(v_length); var v2 = new Array(v_length); for (var x2 = 0; x2 < v_length; x2++) { v1[x2] = -1; v2[x2] = -1; } v1[v_offset + 1] = 0; v2[v_offset + 1] = 0; var delta = text1_length - text2_length; var front = delta % 2 !== 0; var k1start = 0; var k1end = 0; var k2start = 0; var k2end = 0; for (var d = 0; d < max_d; d++) { for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { var k1_offset = v_offset + k1; var x1; if (k1 === -d || k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1]) { x1 = v1[k1_offset + 1]; } else { x1 = v1[k1_offset - 1] + 1; } var y1 = x1 - k1; while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) === text2.charAt(y1)) { x1++; y1++; } v1[k1_offset] = x1; if (x1 > text1_length) { k1end += 2; } else if (y1 > text2_length) { k1start += 2; } else if (front) { var k2_offset = v_offset + delta - k1; if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) { var x22 = text1_length - v2[k2_offset]; if (x1 >= x22) { return diff_bisectSplit_(text1, text2, x1, y1); } } } } for (var k22 = -d + k2start; k22 <= d - k2end; k22 += 2) { var k2_offset = v_offset + k22; var x22; if (k22 === -d || k22 !== d && v2[k2_offset - 1] < v2[k2_offset + 1]) { x22 = v2[k2_offset + 1]; } else { x22 = v2[k2_offset - 1] + 1; } var y2 = x22 - k22; while (x22 < text1_length && y2 < text2_length && text1.charAt(text1_length - x22 - 1) === text2.charAt(text2_length - y2 - 1)) { x22++; y2++; } v2[k2_offset] = x22; if (x22 > text1_length) { k2end += 2; } else if (y2 > text2_length) { k2start += 2; } else if (!front) { var k1_offset = v_offset + delta - k22; if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) { var x1 = v1[k1_offset]; var y1 = v_offset + x1 - k1_offset; x22 = text1_length - x22; if (x1 >= x22) { return diff_bisectSplit_(text1, text2, x1, y1); } } } } } return [ [DIFF_DELETE, text1], [DIFF_INSERT, text2] ]; } function diff_bisectSplit_(text1, text2, x2, y) { var text1a = text1.substring(0, x2); var text2a = text2.substring(0, y); var text1b = text1.substring(x2); var text2b = text2.substring(y); var diffs = diff_main(text1a, text2a); var diffsb = diff_main(text1b, text2b); return diffs.concat(diffsb); } function diff_commonPrefix(text1, text2) { if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) { return 0; } var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerstart = 0; while (pointermin < pointermid) { if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) { pointermin = pointermid; pointerstart = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) { pointermid--; } return pointermid; } function diff_commonOverlap_(text1, text2) { var text1_length = text1.length; var text2_length = text2.length; if (text1_length == 0 || text2_length == 0) { return 0; } if (text1_length > text2_length) { text1 = text1.substring(text1_length - text2_length); } else if (text1_length < text2_length) { text2 = text2.substring(0, text1_length); } var text_length = Math.min(text1_length, text2_length); if (text1 == text2) { return text_length; } var best = 0; var length = 1; while (true) { var pattern = text1.substring(text_length - length); var found = text2.indexOf(pattern); if (found == -1) { return best; } length += found; if (found == 0 || text1.substring(text_length - length) == text2.substring(0, length)) { best = length; length++; } } } function diff_commonSuffix(text1, text2) { if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) { return 0; } var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerend = 0; while (pointermin < pointermid) { if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) { pointermin = pointermid; pointerend = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) { pointermid--; } return pointermid; } function diff_halfMatch_(text1, text2) { var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { return null; } function diff_halfMatchI_(longtext2, shorttext2, i) { var seed = longtext2.substring(i, i + Math.floor(longtext2.length / 4)); var j4 = -1; var best_common = ""; var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; while ((j4 = shorttext2.indexOf(seed, j4 + 1)) !== -1) { var prefixLength = diff_commonPrefix( longtext2.substring(i), shorttext2.substring(j4) ); var suffixLength = diff_commonSuffix( longtext2.substring(0, i), shorttext2.substring(0, j4) ); if (best_common.length < suffixLength + prefixLength) { best_common = shorttext2.substring(j4 - suffixLength, j4) + shorttext2.substring(j4, j4 + prefixLength); best_longtext_a = longtext2.substring(0, i - suffixLength); best_longtext_b = longtext2.substring(i + prefixLength); best_shorttext_a = shorttext2.substring(0, j4 - suffixLength); best_shorttext_b = shorttext2.substring(j4 + prefixLength); } } if (best_common.length * 2 >= longtext2.length) { return [ best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common ]; } else { return null; } } var hm1 = diff_halfMatchI_( longtext, shorttext, Math.ceil(longtext.length / 4) ); var hm2 = diff_halfMatchI_( longtext, shorttext, Math.ceil(longtext.length / 2) ); var hm3; if (!hm1 && !hm2) { return null; } else if (!hm2) { hm3 = hm1; } else if (!hm1) { hm3 = hm2; } else { hm3 = hm1[4].length > hm2[4].length ? hm1 : hm2; } var text1_a, text1_b, text2_a, text2_b; if (text1.length > text2.length) { text1_a = hm3[0]; text1_b = hm3[1]; text2_a = hm3[2]; text2_b = hm3[3]; } else { text2_a = hm3[0]; text2_b = hm3[1]; text1_a = hm3[2]; text1_b = hm3[3]; } var mid_common = hm3[4]; return [text1_a, text1_b, text2_a, text2_b, mid_common]; } function diff_cleanupSemantic(diffs) { var changes = false; var equalities = []; var equalitiesLength = 0; var lastequality = null; var pointer = 0; var length_insertions1 = 0; var length_deletions1 = 0; var length_insertions2 = 0; var length_deletions2 = 0; while (pointer < diffs.length) { if (diffs[pointer][0] == DIFF_EQUAL) { equalities[equalitiesLength++] = pointer; length_insertions1 = length_insertions2; length_deletions1 = length_deletions2; length_insertions2 = 0; length_deletions2 = 0; lastequality = diffs[pointer][1]; } else { if (diffs[pointer][0] == DIFF_INSERT) { length_insertions2 += diffs[pointer][1].length; } else { length_deletions2 += diffs[pointer][1].length; } if (lastequality && lastequality.length <= Math.max(length_insertions1, length_deletions1) && lastequality.length <= Math.max(length_insertions2, length_deletions2)) { diffs.splice(equalities[equalitiesLength - 1], 0, [ DIFF_DELETE, lastequality ]); diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT; equalitiesLength--; equalitiesLength--; pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1; length_insertions1 = 0; length_deletions1 = 0; length_insertions2 = 0; length_deletions2 = 0; lastequality = null; changes = true; } } pointer++; } if (changes) { diff_cleanupMerge(diffs); } diff_cleanupSemanticLossless(diffs); pointer = 1; while (pointer < diffs.length) { if (diffs[pointer - 1][0] == DIFF_DELETE && diffs[pointer][0] == DIFF_INSERT) { var deletion = diffs[pointer - 1][1]; var insertion = diffs[pointer][1]; var overlap_length1 = diff_commonOverlap_(deletion, insertion); var overlap_length2 = diff_commonOverlap_(insertion, deletion); if (overlap_length1 >= overlap_length2) { if (overlap_length1 >= deletion.length / 2 || overlap_length1 >= insertion.length / 2) { diffs.splice(pointer, 0, [ DIFF_EQUAL, insertion.substring(0, overlap_length1) ]); diffs[pointer - 1][1] = deletion.substring( 0, deletion.length - overlap_length1 ); diffs[pointer + 1][1] = insertion.substring(overlap_length1); pointer++; } } else { if (overlap_length2 >= deletion.length / 2 || overlap_length2 >= insertion.length / 2) { diffs.splice(pointer, 0, [ DIFF_EQUAL, deletion.substring(0, overlap_length2) ]); diffs[pointer - 1][0] = DIFF_INSERT; diffs[pointer - 1][1] = insertion.substring( 0, insertion.length - overlap_length2 ); diffs[pointer + 1][0] = DIFF_DELETE; diffs[pointer + 1][1] = deletion.substring(overlap_length2); pointer++; } } pointer++; } pointer++; } } var nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/; var whitespaceRegex_ = /\s/; var linebreakRegex_ = /[\r\n]/; var blanklineEndRegex_ = /\n\r?\n$/; var blanklineStartRegex_ = /^\r?\n\r?\n/; function diff_cleanupSemanticLossless(diffs) { function diff_cleanupSemanticScore_(one, two) { if (!one || !two) { return 6; } var char1 = one.charAt(one.length - 1); var char2 = two.charAt(0); var nonAlphaNumeric1 = char1.match(nonAlphaNumericRegex_); var nonAlphaNumeric2 = char2.match(nonAlphaNumericRegex_); var whitespace1 = nonAlphaNumeric1 && char1.match(whitespaceRegex_); var whitespace2 = nonAlphaNumeric2 && char2.match(whitespaceRegex_); var lineBreak1 = whitespace1 && char1.match(linebreakRegex_); var lineBreak2 = whitespace2 && char2.match(linebreakRegex_); var blankLine1 = lineBreak1 && one.match(blanklineEndRegex_); var blankLine2 = lineBreak2 && two.match(blanklineStartRegex_); if (blankLine1 || blankLine2) { return 5; } else if (lineBreak1 || lineBreak2) { return 4; } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) { return 3; } else if (whitespace1 || whitespace2) { return 2; } else if (nonAlphaNumeric1 || nonAlphaNumeric2) { return 1; } return 0; } var pointer = 1; while (pointer < diffs.length - 1) { if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) { var equality1 = diffs[pointer - 1][1]; var edit = diffs[pointer][1]; var equality2 = diffs[pointer + 1][1]; var commonOffset = diff_commonSuffix(equality1, edit); if (commonOffset) { var commonString = edit.substring(edit.length - commonOffset); equality1 = equality1.substring(0, equality1.length - commonOffset); edit = commonString + edit.substring(0, edit.length - commonOffset); equality2 = commonString + equality2; } var bestEquality1 = equality1; var bestEdit = edit; var bestEquality2 = equality2; var bestScore = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2); while (edit.charAt(0) === equality2.charAt(0)) { equality1 += edit.charAt(0); edit = edit.substring(1) + equality2.charAt(0); equality2 = equality2.substring(1); var score = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2); if (score >= bestScore) { bestScore = score; bestEquality1 = equality1; bestEdit = edit; bestEquality2 = equality2; } } if (diffs[pointer - 1][1] != bestEquality1) { if (bestEquality1) { diffs[pointer - 1][1] = bestEquality1; } else { diffs.splice(pointer - 1, 1); pointer--; } diffs[pointer][1] = bestEdit; if (bestEquality2) { diffs[pointer + 1][1] = bestEquality2; } else { diffs.splice(pointer + 1, 1); pointer--; } } } pointer++; } } function diff_cleanupMerge(diffs, fix_unicode) { diffs.push([DIFF_EQUAL, ""]); var pointer = 0; var count_delete = 0; var count_insert = 0; var text_delete = ""; var text_insert = ""; var commonlength; while (pointer < diffs.length) { if (pointer < diffs.length - 1 && !diffs[pointer][1]) { diffs.splice(pointer, 1); continue; } switch (diffs[pointer][0]) { case DIFF_INSERT: count_insert++; text_insert += diffs[pointer][1]; pointer++; break; case DIFF_DELETE: count_delete++; text_delete += diffs[pointer][1]; pointer++; break; case DIFF_EQUAL: var previous_equality = pointer - count_insert - count_delete - 1; if (fix_unicode) { if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) { var stray = diffs[previous_equality][1].slice(-1); diffs[previous_equality][1] = diffs[previous_equality][1].slice( 0, -1 ); text_delete = stray + text_delete; text_insert = stray + text_insert; if (!diffs[previous_equality][1]) { diffs.splice(previous_equality, 1); pointer--; var k4 = previous_equality - 1; if (diffs[k4] && diffs[k4][0] === DIFF_INSERT) { count_insert++; text_insert = diffs[k4][1] + text_insert; k4--; } if (diffs[k4] && diffs[k4][0] === DIFF_DELETE) { count_delete++; text_delete = diffs[k4][1] + text_delete; k4--; } previous_equality = k4; } } if (starts_with_pair_end(diffs[pointer][1])) { var stray = diffs[pointer][1].charAt(0); diffs[pointer][1] = diffs[pointer][1].slice(1); text_delete += stray; text_insert += stray; } } if (pointer < diffs.length - 1 && !diffs[pointer][1]) { diffs.splice(pointer, 1); break; } if (text_delete.length > 0 || text_insert.length > 0) { if (text_delete.length > 0 && text_insert.length > 0) { commonlength = diff_commonPrefix(text_insert, text_delete); if (commonlength !== 0) { if (previous_equality >= 0) { diffs[previous_equality][1] += text_insert.substring( 0, commonlength ); } else { diffs.splice(0, 0, [ DIFF_EQUAL, text_insert.substring(0, commonlength) ]); pointer++; } text_insert = text_insert.substring(commonlength); text_delete = text_delete.substring(commonlength); } commonlength = diff_commonSuffix(text_insert, text_delete); if (commonlength !== 0) { diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1]; text_insert = text_insert.substring( 0, text_insert.length - commonlength ); text_delete = text_delete.substring( 0, text_delete.length - commonlength ); } } var n = count_insert + count_delete; if (text_delete.length === 0 && text_insert.length === 0) { diffs.splice(pointer - n, n); pointer = pointer - n; } else if (text_delete.length === 0) { diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]); pointer = pointer - n + 1; } else if (text_insert.length === 0) { diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]); pointer = pointer - n + 1; } else { diffs.splice( pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert] ); pointer = pointer - n + 2; } } if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) { diffs[pointer - 1][1] += diffs[pointer][1]; diffs.splice(pointer, 1); } else { pointer++; } count_insert = 0; count_delete = 0; text_delete = ""; text_insert = ""; break; } } if (diffs[diffs.length - 1][1] === "") { diffs.pop(); } var changes = false; pointer = 1; while (pointer < diffs.length - 1) { if (diffs[pointer - 1][0] === DIFF_EQUAL && diffs[pointer + 1][0] === DIFF_EQUAL) { if (diffs[pointer][1].substring( diffs[pointer][1].length - diffs[pointer - 1][1].length ) === diffs[pointer - 1][1]) { diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring( 0, diffs[pointer][1].length - diffs[pointer - 1][1].length ); diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; diffs.splice(pointer - 1, 1); changes = true; } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) { diffs[pointer - 1][1] += diffs[pointer + 1][1]; diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1]; diffs.splice(pointer + 1, 1); changes = true; } } pointer++; } if (changes) { diff_cleanupMerge(diffs, fix_unicode); } } function is_surrogate_pair_start(charCode) { return charCode >= 55296 && charCode <= 56319; } function is_surrogate_pair_end(charCode) { return charCode >= 56320 && charCode <= 57343; } function starts_with_pair_end(str) { return is_surrogate_pair_end(str.charCodeAt(0)); } function ends_with_pair_start(str) { return is_surrogate_pair_start(str.charCodeAt(str.length - 1)); } function remove_empty_tuples(tuples) { var ret = []; for (var i = 0; i < tuples.length; i++) { if (tuples[i][1].length > 0) { ret.push(tuples[i]); } } return ret; } function make_edit_splice(before, oldMiddle, newMiddle, after) { if (ends_with_pair_start(before) || starts_with_pair_end(after)) { return null; } return remove_empty_tuples([ [DIFF_EQUAL, before], [DIFF_DELETE, oldMiddle], [DIFF_INSERT, newMiddle], [DIFF_EQUAL, after] ]); } function find_cursor_edit_diff(oldText, newText, cursor_pos) { var oldRange = typeof cursor_pos === "number" ? { index: cursor_pos, length: 0 } : cursor_pos.oldRange; var newRange = typeof cursor_pos === "number" ? null : cursor_pos.newRange; var oldLength = oldText.length; var newLength = newText.length; if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) { var oldCursor = oldRange.index; var oldBefore = oldText.slice(0, oldCursor); var oldAfter = oldText.slice(oldCursor); var maybeNewCursor = newRange ? newRange.index : null; editBefore: { var newCursor = oldCursor + newLength - oldLength; if (maybeNewCursor !== null && maybeNewCursor !== newCursor) { break editBefore; } if (newCursor < 0 || newCursor > newLength) { break editBefore; } var newBefore = newText.slice(0, newCursor); var newAfter = newText.slice(newCursor); if (newAfter !== oldAfter) { break editBefore; } var prefixLength = Math.min(oldCursor, newCursor); var oldPrefix = oldBefore.slice(0, prefixLength); var newPrefix = newBefore.slice(0, prefixLength); if (oldPrefix !== newPrefix) { break editBefore; } var oldMiddle = oldBefore.slice(prefixLength); var newMiddle = newBefore.slice(prefixLength); return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter); } editAfter: { if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) { break editAfter; } var cursor = oldCursor; var newBefore = newText.slice(0, cursor); var newAfter = newText.slice(cursor); if (newBefore !== oldBefore) { break editAfter; } var suffixLength = Math.min(oldLength - cursor, newLength - cursor); var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength); var newSuffix = newAfter.slice(newAfter.length - suffixLength); if (oldSuffix !== newSuffix) { break editAfter; } var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength); var newMiddle = newAfter.slice(0, newAfter.length - suffixLength); return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix); } } if (oldRange.length > 0 && newRange && newRange.length === 0) { replaceRange: { var oldPrefix = oldText.slice(0, oldRange.index); var oldSuffix = oldText.slice(oldRange.index + oldRange.length); var prefixLength = oldPrefix.length; var suffixLength = oldSuffix.length; if (newLength < prefixLength + suffixLength) { break replaceRange; } var newPrefix = newText.slice(0, prefixLength); var newSuffix = newText.slice(newLength - suffixLength); if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) { break replaceRange; } var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength); var newMiddle = newText.slice(prefixLength, newLength - suffixLength); return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix); } } return null; } function diff(text1, text2, cursor_pos, cleanup) { return diff_main(text1, text2, cursor_pos, cleanup, true); } diff.INSERT = DIFF_INSERT; diff.DELETE = DIFF_DELETE; diff.EQUAL = DIFF_EQUAL; module2.exports = diff; } }); // node_modules/@univerjs/core/lib/es/index.js var import_async_lock = __toESM(require_async_lock()); // node_modules/@wendellhu/redi/dist/esm/index.js var IdentifierDecoratorSymbol = /* @__PURE__ */ Symbol("$$IDENTIFIER_DECORATOR"); function isIdentifierDecorator(thing) { return thing && thing[IdentifierDecoratorSymbol] === true; } function isCtor(thing) { return typeof thing === "function"; } function isClassDependencyItem(thing) { if (thing && typeof thing.useClass !== "undefined") return true; return false; } function isFactoryDependencyItem(thing) { if (thing && typeof thing.useFactory !== "undefined") return true; return false; } function isValueDependencyItem(thing) { if (thing && typeof thing.useValue !== "undefined") return true; return false; } function isExistingDependencyItem(thing) { if (thing && typeof thing.useExisting !== "undefined") return true; return false; } function isAsyncDependencyItem(thing) { if (thing && typeof thing.useAsync !== "undefined") return true; return false; } var AsyncHookSymbol = /* @__PURE__ */ Symbol("AsyncHook"); function isAsyncHook(thing) { if (thing && thing.__symbol === AsyncHookSymbol) return true; return false; } function prettyPrintIdentifier(id4) { return isCtor(id4) && !id4[IdentifierDecoratorSymbol] ? id4.name : id4.toString(); } var RediError = class extends Error { constructor(message) { super(`[redi]: ${message}`); } }; var Quantity = /* @__PURE__ */ (function(Quantity$1) { Quantity$1["MANY"] = "many"; Quantity$1["OPTIONAL"] = "optional"; Quantity$1["REQUIRED"] = "required"; return Quantity$1; })({}); var LookUp = /* @__PURE__ */ (function(LookUp$1) { LookUp$1["SELF"] = "self"; LookUp$1["SKIP_SELF"] = "skipSelf"; return LookUp$1; })({}); var TARGET = /* @__PURE__ */ Symbol("$$TARGET"); var DEPENDENCIES = /* @__PURE__ */ Symbol("$$DEPENDENCIES"); var DependencyDescriptorNotFoundError = class extends RediError { constructor(index, target) { const msg = `Could not find dependency registered on the ${index} (indexed) parameter of the constructor of "${prettyPrintIdentifier(target)}".`; super(msg); } }; var RequiredDecoratorMisusedError = class extends RediError { constructor(target, index) { const msg = `It seems that you forgot to provide a parameter to @Required() on the ${index}th parameter of "${prettyPrintIdentifier(target)}"`; super(msg); } }; var IdentifierUndefinedError = class extends RediError { constructor(target, index) { const msg = `It seems that you register "undefined" as dependency on the ${index}th parameter of "${prettyPrintIdentifier(target)}". Please make sure that there is not cyclic dependency among your TypeScript files, or consider using "forwardRef". For more info please visit our website https://redi.wendell.fun/docs/faq#could-not-find-dependency-registered-on`; super(msg); } }; function getDependencies(registerTarget) { const target = registerTarget; return target[DEPENDENCIES] || []; } function getDependencyByIndex(registerTarget, index) { const allDependencies = getDependencies(registerTarget); const dep = allDependencies.find((descriptor) => descriptor.paramIndex === index); if (!dep) throw new DependencyDescriptorNotFoundError(index, registerTarget); return dep; } function setDependency(registerTarget, identifier, paramIndex, quantity = Quantity.REQUIRED, lookUp) { const descriptor = { paramIndex, identifier, quantity, lookUp, withNew: false }; if (typeof identifier === "undefined") throw new IdentifierUndefinedError(registerTarget, paramIndex); const target = registerTarget; if (target[TARGET] === target) target[DEPENDENCIES].push(descriptor); else { target[DEPENDENCIES] = [descriptor]; target[TARGET] = target; } } var knownIdentifiers = /* @__PURE__ */ new Set(); var cachedIdentifiers = /* @__PURE__ */ new Map(); function createIdentifier(id4) { if (knownIdentifiers.has(id4)) { console.error(`Identifier "${id4}" already exists. Returning the cached identifier decorator.`); return cachedIdentifiers.get(id4); } const decorator = function(registerTarget, _key, index) { setDependency(registerTarget, decorator, index); }; decorator.decoratorName = id4; decorator.toString = () => decorator.decoratorName; decorator[IdentifierDecoratorSymbol] = true; knownIdentifiers.add(id4); cachedIdentifiers.set(id4, decorator); return decorator; } function changeLookup(target, index, lookUp) { const descriptor = getDependencyByIndex(target, index); descriptor.lookUp = lookUp; } function lookupDecoratorFactoryProducer(lookUp) { return function DecoratorFactory() { if (this instanceof DecoratorFactory) return this; return function(target, _key, index) { changeLookup(target, index, lookUp); }; }; } var SkipSelf = lookupDecoratorFactoryProducer(LookUp.SKIP_SELF); var Self = lookupDecoratorFactoryProducer(LookUp.SELF); function mapQuantityToNumber(quantity) { if (quantity === Quantity.OPTIONAL) return "0 or 1"; else return "1"; } var QuantityCheckError = class extends RediError { constructor(id4, quantity, actual) { let msg = `Expect ${mapQuantityToNumber(quantity)} dependency item(s) for id "${prettyPrintIdentifier(id4)}" but get ${actual}.`; if (actual === 0) msg += " Did you forget to register it?"; if (actual > 1) msg += " You register it more than once."; super(msg); this.quantity = quantity; this.actual = actual; } }; function checkQuantity(id4, quantity, length) { if (quantity === Quantity.OPTIONAL && length > 1 || quantity === Quantity.REQUIRED && length !== 1) throw new QuantityCheckError(id4, quantity, length); } function retrieveQuantity(quantity, arr) { if (quantity === Quantity.MANY) return arr; else return arr[0]; } function changeQuantity(target, index, quantity) { const descriptor = getDependencyByIndex(target, index); descriptor.quantity = quantity; } function quantifyDecoratorFactoryProducer(quantity) { return function decoratorFactory(id4) { if (this instanceof decoratorFactory) return this; return function(registerTarget, _key, index) { if (id4) setDependency(registerTarget, id4, index, quantity); else { if (quantity === Quantity.REQUIRED) throw new RequiredDecoratorMisusedError(registerTarget, index); changeQuantity(registerTarget, index, quantity); } }; }; } var Many = quantifyDecoratorFactoryProducer(Quantity.MANY); var Optional = quantifyDecoratorFactoryProducer(Quantity.OPTIONAL); var Inject = quantifyDecoratorFactoryProducer(Quantity.REQUIRED); function normalizeFactoryDeps(deps, startIndex = 0) { if (!deps) return []; return deps.map((dep, index) => { index += startIndex; if (!Array.isArray(dep)) return { paramIndex: index, identifier: dep, quantity: Quantity.REQUIRED, withNew: false }; const modifiers = dep.slice(0, dep.length - 1); const identifier = dep[dep.length - 1]; let lookUp; let quantity = Quantity.REQUIRED; let withNew = false; modifiers.forEach((modifier) => { if (modifier instanceof Self) lookUp = LookUp.SELF; else if (modifier instanceof SkipSelf) lookUp = LookUp.SKIP_SELF; else if (modifier instanceof Optional) quantity = Quantity.OPTIONAL; else if (modifier instanceof Many) quantity = Quantity.MANY; else withNew = true; }); return { paramIndex: index, identifier, quantity, lookUp, withNew }; }); } function isForwardRef(thing) { return !!thing && typeof thing.unwrap === "function"; } function normalizeForwardRef(id4) { if (isForwardRef(id4)) return id4.unwrap(); return id4; } function changeToSelf(target, index, withNew) { const descriptor = getDependencyByIndex(target, index); descriptor.withNew = withNew; } function withNewDecoratorFactoryProducer(withNew) { return function DecoratorFactory() { if (this instanceof DecoratorFactory) return this; return function(target, _key, index) { changeToSelf(target, index, withNew); }; }; } var WithNew = withNewDecoratorFactoryProducer(true); function isDisposable(thing) { return !!thing && typeof thing.dispose === "function"; } function isBareClassDependency(thing) { return thing.length === 1; } var ResolvingStack = []; function pushResolvingStack(id4) { ResolvingStack.push(id4); } function popupResolvingStack() { ResolvingStack.pop(); } function clearResolvingStack() { ResolvingStack.length = 0; } var DependencyNotFoundForModuleError = class extends RediError { constructor(toInstantiate, id4, index) { const msg = `Cannot find "${prettyPrintIdentifier(id4)}" registered by any injector. It is the ${index}th param of "${isIdentifierDecorator(toInstantiate) ? prettyPrintIdentifier(toInstantiate) : toInstantiate.name}".`; super(msg); } }; var DependencyNotFoundError = class extends RediError { constructor(id4) { const msg = `Cannot find "${prettyPrintIdentifier(id4)}" registered by any injector. The stack of dependencies is: "${ResolvingStack.map((id$1) => prettyPrintIdentifier(id$1)).join(" -> ")}".`; super(msg); clearResolvingStack(); } }; var DependencyCollection = class { constructor(dependencies) { __publicField(this, "dependencyMap", /* @__PURE__ */ new Map()); this.normalizeDependencies(dependencies).map((pair) => this.add(pair[0], pair[1])); } add(ctorOrId, val) { if (typeof val === "undefined") val = { useClass: ctorOrId, lazy: false }; let arr = this.dependencyMap.get(ctorOrId); if (typeof arr === "undefined") { arr = []; this.dependencyMap.set(ctorOrId, arr); } arr.push(val); } delete(id4) { this.dependencyMap.delete(id4); } get(id4, quantity) { const ret = this.dependencyMap.get(id4); checkQuantity(id4, quantity, ret.length); return retrieveQuantity(quantity, ret); } has(id4) { return this.dependencyMap.has(id4); } dispose() { this.dependencyMap.clear(); } /** * normalize dependencies to `DependencyItem` */ normalizeDependencies(dependencies) { return dependencies.map((dependency) => { const id4 = dependency[0]; let val; if (isBareClassDependency(dependency)) val = { useClass: dependency[0], lazy: false }; else val = dependency[1]; return [id4, val]; }); } }; var ResolvedDependencyCollection = class { constructor() { __publicField(this, "resolvedDependencies", /* @__PURE__ */ new Map()); } add(id4, val) { let arr = this.resolvedDependencies.get(id4); if (typeof arr === "undefined") { arr = []; this.resolvedDependencies.set(id4, arr); } arr.push(val); } has(id4) { return this.resolvedDependencies.has(id4); } get(id4, quantity) { const ret = this.resolvedDependencies.get(id4); if (!ret) throw new DependencyNotFoundError(id4); checkQuantity(id4, quantity, ret.length); if (quantity === Quantity.MANY) return ret; else return ret[0]; } dispose() { Array.from(this.resolvedDependencies.values()).forEach((items) => { items.forEach((item) => isDisposable(item) ? item.dispose() : void 0); }); this.resolvedDependencies.clear(); } }; var runWhenIdle; (function() { if (typeof requestIdleCallback !== "undefined" && typeof cancelIdleCallback !== "undefined") runWhenIdle = (runner, timeout) => { const handle = requestIdleCallback(runner, typeof timeout === "number" ? { timeout } : void 0); let disposed = false; return () => { if (disposed) return; disposed = true; cancelIdleCallback(handle); }; }; else { const dummyIdle = Object.freeze({ didTimeout: true, timeRemaining() { return 15; } }); runWhenIdle = (runner) => { const handle = setTimeout(() => runner(dummyIdle)); let disposed = false; return () => { if (disposed) return; disposed = true; clearTimeout(handle); }; }; } })(); var IdleValue = class { constructor(executor) { __publicField(this, "executor"); __publicField(this, "disposeIdleCallback"); __publicField(this, "didRun", false); __publicField(this, "value"); __publicField(this, "error"); this.executor = () => { try { this.value = executor(); } catch (err) { this.error = err; } finally { this.didRun = true; } }; this.disposeIdleCallback = runWhenIdle(() => this.executor()); } hasRun() { return this.didRun; } dispose() { this.disposeIdleCallback(); } getValue() { if (!this.didRun) { this.disposeIdleCallback(); this.executor(); } if (this.error) throw this.error; return this.value; } }; var MAX_RESOLUTIONS_QUEUED = 300; var NotInstantiatedSymbol = /* @__PURE__ */ Symbol("$$NOT_INSTANTIATED_SYMBOL"); var CircularDependencyError = class extends RediError { constructor(id4) { super(`Detecting cyclic dependency. The last identifier is "${prettyPrintIdentifier(id4)}".`); } }; var InjectorAlreadyDisposedError = class extends RediError { constructor() { super("Injector cannot be accessed after it was disposed."); } }; var AsyncItemReturnAsyncItemError = class extends RediError { constructor(id4) { super(`Async item "${prettyPrintIdentifier(id4)}" returns another async item.`); } }; var GetAsyncItemFromSyncApiError = class extends RediError { constructor(id4) { super(`Cannot get async item "${prettyPrintIdentifier(id4)}" from sync api.`); } }; var AddDependencyAfterResolutionError = class extends RediError { constructor(id4) { super(`Cannot add dependency "${prettyPrintIdentifier(id4)}" after it is already resolved.`); } }; var DeleteDependencyAfterResolutionError = class extends RediError { constructor(id4) { super(`Cannot delete dependency "${prettyPrintIdentifier(id4)}" when it is already resolved.`); } }; var Injector = class Injector2 { /** * Create a new `Injector` instance. * * @param dependencies - An array of dependencies to register with this injector. * Each dependency can be: * - `[ClassName]` - Register a class as its own identifier * - `[Identifier, DependencyItem]` - Register with a specific identifier and configuration * @param parent - Optional parent injector for hierarchical injection. * Child injectors inherit dependencies from their parent. * * @example * ```typescript * // Root injector * const rootInjector = new Injector([ * [AuthService], * [ILogger, { useClass: ConsoleLogger }], * ]); * * // Child injector with parent * const childInjector = new Injector( * [[ICache, { useClass: MemoryCache }]], * rootInjector * ); * ``` */ constructor(dependencies, parent = null) { __publicField(this, "dependencyCollection"); __publicField(this, "resolvedDependencyCollection"); __publicField(this, "children", []); __publicField(this, "resolutionOngoing", 0); __publicField(this, "disposingCallbacks", /* @__PURE__ */ new Set()); __publicField(this, "disposed", false); this.parent = parent; this.dependencyCollection = new DependencyCollection(dependencies || []); this.resolvedDependencyCollection = new ResolvedDependencyCollection(); if (parent) parent.children.push(this); } /** * Register a callback to be called when this injector is disposed. * * Use this to perform cleanup tasks or release external resources * when the injector lifecycle ends. * * **Note:** When your callback is invoked, the injector is already disposed * and you cannot interact with it anymore. * * @param callback - The function to call when the injector is disposed. * @returns A disposable that removes the callback when disposed. * * @example * ```typescript * const cleanup = injector.onDispose(() => { * console.log('Injector disposed, cleaning up...'); * }); * * // Later, remove the callback if no longer needed * cleanup.dispose(); * ``` */ onDispose(callback) { this.disposingCallbacks.add(callback); return { dispose: () => this.disposingCallbacks.delete(callback) }; } /** * Create a child injector that inherits from this injector. * * The child injector can: * - Access all dependencies registered in parent injectors * - Override parent dependencies with its own registrations * - Have its own scoped dependencies * * When the parent injector is disposed, all child injectors are disposed first. * * @param dependencies - Dependencies to register with the child injector. * @returns The newly created child injector. * * @example * ```typescript * const rootInjector = new Injector([[ILogger, { useClass: ConsoleLogger }]]); * * const requestInjector = rootInjector.createChild([ * [RequestContext, { useClass: RequestContext }], * ]); * * // requestInjector can access both RequestContext and ILogger * ``` */ createChild(dependencies) { this._ensureInjectorNotDisposed(); return new Injector2(dependencies, this); } /** * Dispose the injector and release all resources. * * This method: * 1. Recursively disposes all child injectors first * 2. Calls `dispose()` on all instantiated dependencies that implement `IDisposable` * 3. Clears all internal collections * 4. Detaches from parent injector * 5. Invokes all registered `onDispose` callbacks * * After disposal, the injector cannot be used anymore. * * @example * ```typescript * const injector = new Injector([[DatabaseService]]); * const db = injector.get(DatabaseService); * * // When done with the injector * injector.dispose(); // DatabaseService.dispose() is called automatically * ``` */ dispose() { this.children.forEach((c) => c.dispose()); this.children.length = 0; this.dependencyCollection.dispose(); this.resolvedDependencyCollection.dispose(); this.deleteSelfFromParent(); this.disposed = true; this.disposingCallbacks.forEach((callback) => callback()); this.disposingCallbacks.clear(); } deleteSelfFromParent() { if (this.parent) { const index = this.parent.children.indexOf(this); this.parent.children.splice(index, 1); } } /** * Add a dependency or pre-created instance to the injector at runtime. * * This allows dynamic registration of dependencies after the injector is created. * Throws an error if the dependency has already been instantiated. * * @param dependency - A tuple containing: * - `[Ctor]` - A class to register as its own identifier * - `[Identifier, DependencyItem]` - An identifier with its configuration * - `[Identifier, Instance]` - An identifier with a pre-created instance * * @throws {AddDependencyAfterResolutionError} If the dependency is already resolved. * * @example * ```typescript * const injector = new Injector(); * * // Add a class * injector.add([MyService]); * * // Add with configuration * injector.add([ILogger, { useClass: ConsoleLogger }]); * * // Add a pre-created instance * const config = { apiUrl: 'https://api.example.com' }; * injector.add([IConfig, config]); * ``` */ add(dependency) { this._ensureInjectorNotDisposed(); const identifierOrCtor = dependency[0]; const item = dependency[1]; if (this.resolvedDependencyCollection.has(identifierOrCtor)) throw new AddDependencyAfterResolutionError(identifierOrCtor); if (typeof item === "undefined") this.dependencyCollection.add(identifierOrCtor); else if (isAsyncDependencyItem(item) || isClassDependencyItem(item) || isValueDependencyItem(item) || isFactoryDependencyItem(item)) this.dependencyCollection.add(identifierOrCtor, item); else this.resolvedDependencyCollection.add(identifierOrCtor, item); } /** * Replace an existing dependency registration. * * Use this to swap out an implementation, typically for testing purposes. * Throws an error if the dependency has already been instantiated. * * @param dependency - A tuple of `[Identifier, DependencyItem]` to replace the existing registration. * * @throws {AddDependencyAfterResolutionError} If the dependency is already resolved. * * @example * ```typescript * // In tests, replace a real service with a mock * injector.replace([IHttpClient, { useClass: MockHttpClient }]); * ``` */ replace(dependency) { this._ensureInjectorNotDisposed(); const identifier = dependency[0]; if (this.resolvedDependencyCollection.has(identifier)) throw new AddDependencyAfterResolutionError(identifier); this.dependencyCollection.delete(identifier); this.dependencyCollection.add(identifier, dependency[1]); } /** * Remove a dependency registration from the injector. * * Throws an error if the dependency has already been instantiated. * * @param identifier - The identifier of the dependency to remove. * * @throws {DeleteDependencyAfterResolutionError} If the dependency is already resolved. * * @example * ```typescript * injector.delete(ITemporaryService); * ``` */ delete(identifier) { this._ensureInjectorNotDisposed(); if (this.resolvedDependencyCollection.has(identifier)) throw new DeleteDependencyAfterResolutionError(identifier); this.dependencyCollection.delete(identifier); } /** * Execute a function with controlled access to the injector. * * The callback receives an `IAccessor` that provides limited access to * the injector's `get` and `has` methods. This is useful for service locator * patterns or when you need to resolve dependencies dynamically. * * @param cb - The function to execute. Receives an accessor and any additional arguments. * @param args - Additional arguments to pass to the callback. * @returns The return value of the callback function. * * @example * ```typescript * const result = injector.invoke((accessor, multiplier) => { * const calc = accessor.get(ICalculator); * return calc.compute() * multiplier; * }, 2); * ``` */ invoke(cb, ...args) { this._ensureInjectorNotDisposed(); const accessor = { get: (id4, quantityOrLookup, lookUp) => { return this._get(id4, quantityOrLookup, lookUp); }, has: (id4) => { return this.has(id4); } }; return cb(accessor, ...args); } /** * Check if a dependency is registered in this injector or any parent injector. * * @param id - The identifier of the dependency to check. * @returns `true` if the dependency is registered, `false` otherwise. * * @example * ```typescript * if (injector.has(IOptionalFeature)) { * const feature = injector.get(IOptionalFeature); * feature.enable(); * } * ``` */ has(id4) { return this.dependencyCollection.has(id4) || this.parent?.has(id4) || false; } /** * Retrieve a dependency instance from the injector. * * The dependency will be instantiated on first access and cached for subsequent requests. * If the dependency is not found and not optional, an error is thrown. * * @param id - The identifier of the dependency to retrieve. * @param quantityOrLookup - Either a {@link Quantity} specifying how many instances to get, * or a {@link LookUp} specifying where to search. * @param lookUp - A {@link LookUp} specifying where to search (if first param is Quantity). * @returns The dependency instance, an array of instances (for `Quantity.MANY`), * or `null` (for `Quantity.OPTIONAL` when not found). * * @throws {DependencyNotFoundError} If the dependency is not registered and not optional. * @throws {GetAsyncItemFromSyncApiError} If trying to get an async dependency synchronously. * * @example * ```typescript * // Get a required dependency * const logger = injector.get(ILogger); * * // Get an optional dependency * const cache = injector.get(ICache, Quantity.OPTIONAL); * * // Get all registered handlers * const handlers = injector.get(IHandler, Quantity.MANY); * * // Only search current injector * const localService = injector.get(IService, LookUp.SELF); * ``` */ get(id4, quantityOrLookup, lookUp) { this._ensureInjectorNotDisposed(); const newResult = this._get(id4, quantityOrLookup, lookUp); if (Array.isArray(newResult) && newResult.some((r) => isAsyncHook(r)) || isAsyncHook(newResult)) throw new GetAsyncItemFromSyncApiError(id4); return newResult; } _get(id4, quantityOrLookup, lookUp, withNew) { let quantity = Quantity.REQUIRED; if (quantityOrLookup === Quantity.REQUIRED || quantityOrLookup === Quantity.OPTIONAL || quantityOrLookup === Quantity.MANY) quantity = quantityOrLookup; else lookUp = quantityOrLookup; if (!withNew) { const cachedResult = this.getValue(id4, quantity, lookUp); if (cachedResult !== NotInstantiatedSymbol) return cachedResult; } const shouldCache = !withNew; return this.createDependency(id4, quantity, lookUp, shouldCache); } /** * Get a dependency in the async way. */ getAsync(id4) { this._ensureInjectorNotDisposed(); const cachedResult = this.getValue(id4, Quantity.REQUIRED); if (cachedResult !== NotInstantiatedSymbol) return Promise.resolve(cachedResult); const newResult = this.createDependency(id4, Quantity.REQUIRED); if (!isAsyncHook(newResult)) return Promise.resolve(newResult); return newResult.whenReady(); } /** * Create an instance of a class with its dependencies injected. * * Unlike `get()`, the created instance is NOT cached by the injector. * Each call creates a new instance. You can also pass custom arguments * that will be passed before the injected dependencies. * * @param ctor - The class constructor to instantiate. * @param customArgs - Custom arguments to pass before injected dependencies. * @returns A new instance of the class. * * @example * ```typescript * class RequestHandler { * constructor( * requestId: string, // Custom arg * @Inject(ILogger) logger: ILogger // Injected * ) {} * } * * // Create instance with custom requestId * const handler = injector.createInstance(RequestHandler, 'req-123'); * ``` */ createInstance(ctor, ...customArgs) { this._ensureInjectorNotDisposed(); return this._resolveClassImpl({ useClass: ctor }, ...customArgs); } _resolveDependency(id4, item, shouldCache = true) { let result; pushResolvingStack(id4); try { if (isValueDependencyItem(item)) result = this._resolveValueDependency(id4, item); else if (isFactoryDependencyItem(item)) result = this._resolveFactory(id4, item, shouldCache); else if (isClassDependencyItem(item)) result = this._resolveClass(id4, item, shouldCache); else if (isExistingDependencyItem(item)) result = this._resolveExisting(id4, item); else result = this._resolveAsync(id4, item); popupResolvingStack(); } catch (e29) { popupResolvingStack(); throw e29; } return result; } _resolveExisting(id4, item) { const thing = this.get(item.useExisting); this.resolvedDependencyCollection.add(id4, thing); return thing; } _resolveValueDependency(id4, item) { const thing = item.useValue; this.resolvedDependencyCollection.add(id4, thing); return thing; } _resolveClass(id4, item, shouldCache) { let thing; if (item.lazy) { const idle = new IdleValue(() => { this._ensureInjectorNotDisposed(); return this._resolveClassImpl(item); }); thing = new Proxy(/* @__PURE__ */ Object.create(null), { get(target, key) { if (key in target) return target[key]; const thing$1 = idle.getValue(); let property = thing$1[key]; if (typeof property !== "function") return property; property = property.bind(thing$1); target[key] = property; return property; }, set(_target, key, value) { idle.getValue()[key] = value; return true; } }); } else thing = this._resolveClassImpl(item); if (id4 && shouldCache) this.resolvedDependencyCollection.add(id4, thing); return thing; } _resolveClassImpl(item, ...extraParams) { const Ctor = item.useClass; this.markNewResolution(Ctor); const declaredDependencies = getDependencies(Ctor).sort((a, b) => a.paramIndex - b.paramIndex).map((descriptor) => ({ ...descriptor, identifier: normalizeForwardRef(descriptor.identifier) })); const resolvedArgs = []; for (const dep of declaredDependencies) try { const thing$1 = this._get(dep.identifier, dep.quantity, dep.lookUp, dep.withNew); resolvedArgs.push(thing$1); } catch (error) { if (error instanceof DependencyNotFoundError || error instanceof QuantityCheckError && error.actual === 0) throw new DependencyNotFoundForModuleError(Ctor, dep.identifier, dep.paramIndex); throw error; } let args = [...extraParams]; const firstDependencyArgIndex = declaredDependencies.length > 0 ? declaredDependencies[0].paramIndex : args.length; if (args.length !== firstDependencyArgIndex) { console.warn(`[redi]: Expect ${firstDependencyArgIndex} custom parameter(s) of ${prettyPrintIdentifier(Ctor)} but get ${args.length}.`); const delta = firstDependencyArgIndex - args.length; if (delta > 0) args = [...args, ...Array.from({ length: delta }).fill(void 0)]; else args = args.slice(0, firstDependencyArgIndex); } const thing = new Ctor(...args, ...resolvedArgs); item?.onInstantiation?.(thing); this.markResolutionCompleted(); return thing; } _resolveFactory(id4, item, shouldCache) { this.markNewResolution(id4); const declaredDependencies = normalizeFactoryDeps(item.deps); const resolvedArgs = []; for (const dep of declaredDependencies) try { const thing$1 = this._get(dep.identifier, dep.quantity, dep.lookUp, dep.withNew); resolvedArgs.push(thing$1); } catch (error) { if (error instanceof DependencyNotFoundError || error instanceof QuantityCheckError && error.actual === 0) throw new DependencyNotFoundForModuleError(id4, dep.identifier, dep.paramIndex); throw error; } const thing = item.useFactory.apply(null, resolvedArgs); if (shouldCache) this.resolvedDependencyCollection.add(id4, thing); this.markResolutionCompleted(); item?.onInstantiation?.(thing); return thing; } _resolveAsync(id4, item) { const asyncLoader = { __symbol: AsyncHookSymbol, whenReady: () => this._resolveAsyncImpl(id4, item) }; return asyncLoader; } _resolveAsyncImpl(id4, item) { return item.useAsync().then((thing) => { const resolvedCheck = this.getValue(id4); if (resolvedCheck !== NotInstantiatedSymbol) return resolvedCheck; let ret; if (Array.isArray(thing)) { const item$1 = thing[1]; if (isAsyncDependencyItem(item$1)) throw new AsyncItemReturnAsyncItemError(id4); else ret = this._resolveDependency(id4, item$1); } else if (isCtor(thing)) ret = this._resolveClassImpl({ useClass: thing, onInstantiation: item.onInstantiation }); else ret = thing; this.resolvedDependencyCollection.add(id4, ret); return ret; }); } getValue(id4, quantity = Quantity.REQUIRED, lookUp) { const onSelf = () => { if (this.dependencyCollection.has(id4) && !this.resolvedDependencyCollection.has(id4)) return NotInstantiatedSymbol; return this.resolvedDependencyCollection.get(id4, quantity); }; const onParent = () => { if (this.parent) return this.parent.getValue(id4, quantity); else { if (quantity === Quantity.OPTIONAL) return null; else if (quantity === Quantity.MANY) return []; throw new QuantityCheckError(id4, Quantity.REQUIRED, 0); } }; if (lookUp === LookUp.SKIP_SELF) return onParent(); if (id4 === Injector2) return this; if (lookUp === LookUp.SELF) return onSelf(); if (this.resolvedDependencyCollection.has(id4) || this.dependencyCollection.has(id4)) return onSelf(); return onParent(); } createDependency(id4, quantity, lookUp, shouldCache = true) { const onSelf = () => { const registrations = this.dependencyCollection.get(id4, quantity); let ret = null; if (Array.isArray(registrations)) ret = registrations.map((dependencyItem) => this._resolveDependency(id4, dependencyItem, shouldCache)); else ret = this._resolveDependency(id4, registrations, shouldCache); return ret; }; const onParent = () => { if (this.parent) return this.parent.createDependency(id4, quantity, void 0, shouldCache); else { if (quantity === Quantity.OPTIONAL) return null; else if (quantity === Quantity.MANY) return []; pushResolvingStack(id4); throw new DependencyNotFoundError(id4); } }; if (lookUp === LookUp.SKIP_SELF) return onParent(); if (this.dependencyCollection.has(id4)) return onSelf(); return onParent(); } markNewResolution(id4) { this.resolutionOngoing += 1; if (this.resolutionOngoing >= MAX_RESOLUTIONS_QUEUED) throw new CircularDependencyError(id4); } markResolutionCompleted() { this.resolutionOngoing -= 1; } _ensureInjectorNotDisposed() { if (this.disposed) throw new InjectorAlreadyDisposedError(); } }; var globalObject = typeof globalThis !== "undefined" && globalThis || typeof window !== "undefined" && window || typeof global !== "undefined" && global; var __REDI_GLOBAL_LOCK__ = "REDI_GLOBAL_LOCK"; var isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null; if (globalObject[__REDI_GLOBAL_LOCK__]) { if (!isNode) console.error(`[redi]: You are loading scripts of redi more than once! This may cause undesired behavior in your application. Maybe your dependencies added redi as its dependency and bundled redi to its dist files. Or you import different versions of redi. For more info please visit our website: https://redi.wendell.fun/en-US/docs/faq#import-scripts-of-redi-more-than-once`); } else globalObject[__REDI_GLOBAL_LOCK__] = true; // node_modules/lodash-es/_freeGlobal.js var freeGlobal = typeof global == "object" && global && global.Object === Object && global; var freeGlobal_default = freeGlobal; // node_modules/lodash-es/_root.js var freeSelf = typeof self == "object" && self && self.Object === Object && self; var root = freeGlobal_default || freeSelf || Function("return this")(); var root_default = root; // node_modules/lodash-es/_Symbol.js var Symbol2 = root_default.Symbol; var Symbol_default = Symbol2; // node_modules/lodash-es/_getRawTag.js var objectProto = Object.prototype; var hasOwnProperty = objectProto.hasOwnProperty; var nativeObjectToString = objectProto.toString; var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0; function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag2 = value[symToStringTag]; try { value[symToStringTag] = void 0; var unmasked = true; } catch (e29) { } var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag2; } else { delete value[symToStringTag]; } } return result; } var getRawTag_default = getRawTag; // node_modules/lodash-es/_objectToString.js var objectProto2 = Object.prototype; var nativeObjectToString2 = objectProto2.toString; function objectToString(value) { return nativeObjectToString2.call(value); } var objectToString_default = objectToString; // node_modules/lodash-es/_baseGetTag.js var nullTag = "[object Null]"; var undefinedTag = "[object Undefined]"; var symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0; function baseGetTag(value) { if (value == null) { return value === void 0 ? undefinedTag : nullTag; } return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value); } var baseGetTag_default = baseGetTag; // node_modules/lodash-es/isObjectLike.js function isObjectLike(value) { return value != null && typeof value == "object"; } var isObjectLike_default = isObjectLike; // node_modules/lodash-es/isArray.js var isArray = Array.isArray; var isArray_default = isArray; // node_modules/lodash-es/isObject.js function isObject(value) { var type2 = typeof value; return value != null && (type2 == "object" || type2 == "function"); } var isObject_default = isObject; // node_modules/lodash-es/identity.js function identity(value) { return value; } var identity_default = identity; // node_modules/lodash-es/isFunction.js var asyncTag = "[object AsyncFunction]"; var funcTag = "[object Function]"; var genTag = "[object GeneratorFunction]"; var proxyTag = "[object Proxy]"; function isFunction(value) { if (!isObject_default(value)) { return false; } var tag2 = baseGetTag_default(value); return tag2 == funcTag || tag2 == genTag || tag2 == asyncTag || tag2 == proxyTag; } var isFunction_default = isFunction; // node_modules/lodash-es/_coreJsData.js var coreJsData = root_default["__core-js_shared__"]; var coreJsData_default = coreJsData; // node_modules/lodash-es/_isMasked.js var maskSrcKey = (function() { var uid = /[^.]+$/.exec(coreJsData_default && coreJsData_default.keys && coreJsData_default.keys.IE_PROTO || ""); return uid ? "Symbol(src)_1." + uid : ""; })(); function isMasked(func) { return !!maskSrcKey && maskSrcKey in func; } var isMasked_default = isMasked; // node_modules/lodash-es/_toSource.js var funcProto = Function.prototype; var funcToString = funcProto.toString; function toSource(func) { if (func != null) { try { return funcToString.call(func); } catch (e29) { } try { return func + ""; } catch (e29) { } } return ""; } var toSource_default = toSource; // node_modules/lodash-es/_baseIsNative.js var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; var reIsHostCtor = /^\[object .+?Constructor\]$/; var funcProto2 = Function.prototype; var objectProto3 = Object.prototype; var funcToString2 = funcProto2.toString; var hasOwnProperty2 = objectProto3.hasOwnProperty; var reIsNative = RegExp( "^" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" ); function baseIsNative(value) { if (!isObject_default(value) || isMasked_default(value)) { return false; } var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource_default(value)); } var baseIsNative_default = baseIsNative; // node_modules/lodash-es/_getValue.js function getValue(object, key) { return object == null ? void 0 : object[key]; } var getValue_default = getValue; // node_modules/lodash-es/_getNative.js function getNative(object, key) { var value = getValue_default(object, key); return baseIsNative_default(value) ? value : void 0; } var getNative_default = getNative; // node_modules/lodash-es/_baseCreate.js var objectCreate = Object.create; var baseCreate = /* @__PURE__ */ (function() { function object() { } return function(proto) { if (!isObject_default(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object(); object.prototype = void 0; return result; }; })(); var baseCreate_default = baseCreate; // node_modules/lodash-es/_apply.js function apply(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); case 2: return func.call(thisArg, args[0], args[1]); case 3: return func.call(thisArg, args[0], args[1], args[2]); } return func.apply(thisArg, args); } var apply_default = apply; // node_modules/lodash-es/_copyArray.js function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(length)); while (++index < length) { array[index] = source[index]; } return array; } var copyArray_default = copyArray; // node_modules/lodash-es/_shortOut.js var HOT_COUNT = 800; var HOT_SPAN = 16; var nativeNow = Date.now; function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(void 0, arguments); }; } var shortOut_default = shortOut; // node_modules/lodash-es/constant.js function constant(value) { return function() { return value; }; } var constant_default = constant; // node_modules/lodash-es/_defineProperty.js var defineProperty = (function() { try { var func = getNative_default(Object, "defineProperty"); func({}, "", {}); return func; } catch (e29) { } })(); var defineProperty_default = defineProperty; // node_modules/lodash-es/_baseSetToString.js var baseSetToString = !defineProperty_default ? identity_default : function(func, string) { return defineProperty_default(func, "toString", { "configurable": true, "enumerable": false, "value": constant_default(string), "writable": true }); }; var baseSetToString_default = baseSetToString; // node_modules/lodash-es/_setToString.js var setToString = shortOut_default(baseSetToString_default); var setToString_default = setToString; // node_modules/lodash-es/_isIndex.js var MAX_SAFE_INTEGER = 9007199254740991; var reIsUint = /^(?:0|[1-9]\d*)$/; function isIndex(value, length) { var type2 = typeof value; length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); } var isIndex_default = isIndex; // node_modules/lodash-es/_baseAssignValue.js function baseAssignValue(object, key, value) { if (key == "__proto__" && defineProperty_default) { defineProperty_default(object, key, { "configurable": true, "enumerable": true, "value": value, "writable": true }); } else { object[key] = value; } } var baseAssignValue_default = baseAssignValue; // node_modules/lodash-es/eq.js function eq(value, other) { return value === other || value !== value && other !== other; } var eq_default = eq; // node_modules/lodash-es/_assignValue.js var objectProto4 = Object.prototype; var hasOwnProperty3 = objectProto4.hasOwnProperty; function assignValue(object, key, value) { var objValue = object[key]; if (!(hasOwnProperty3.call(object, key) && eq_default(objValue, value)) || value === void 0 && !(key in object)) { baseAssignValue_default(object, key, value); } } var assignValue_default = assignValue; // node_modules/lodash-es/_copyObject.js function copyObject(source, props, object, customizer) { var isNew = !object; object || (object = {}); var index = -1, length = props.length; while (++index < length) { var key = props[index]; var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0; if (newValue === void 0) { newValue = source[key]; } if (isNew) { baseAssignValue_default(object, key, newValue); } else { assignValue_default(object, key, newValue); } } return object; } var copyObject_default = copyObject; // node_modules/lodash-es/_overRest.js var nativeMax = Math.max; function overRest(func, start, transform) { start = nativeMax(start === void 0 ? func.length - 1 : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); while (++index < length) { array[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array); return apply_default(func, this, otherArgs); }; } var overRest_default = overRest; // node_modules/lodash-es/_baseRest.js function baseRest(func, start) { return setToString_default(overRest_default(func, start, identity_default), func + ""); } var baseRest_default = baseRest; // node_modules/lodash-es/isLength.js var MAX_SAFE_INTEGER2 = 9007199254740991; function isLength(value) { return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER2; } var isLength_default = isLength; // node_modules/lodash-es/isArrayLike.js function isArrayLike(value) { return value != null && isLength_default(value.length) && !isFunction_default(value); } var isArrayLike_default = isArrayLike; // node_modules/lodash-es/_isIterateeCall.js function isIterateeCall(value, index, object) { if (!isObject_default(object)) { return false; } var type2 = typeof index; if (type2 == "number" ? isArrayLike_default(object) && isIndex_default(index, object.length) : type2 == "string" && index in object) { return eq_default(object[index], value); } return false; } var isIterateeCall_default = isIterateeCall; // node_modules/lodash-es/_createAssigner.js function createAssigner(assigner) { return baseRest_default(function(object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; if (guard && isIterateeCall_default(sources[0], sources[1], guard)) { customizer = length < 3 ? void 0 : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } var createAssigner_default = createAssigner; // node_modules/lodash-es/_isPrototype.js var objectProto5 = Object.prototype; function isPrototype(value) { var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto5; return value === proto; } var isPrototype_default = isPrototype; // node_modules/lodash-es/_baseTimes.js function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } var baseTimes_default = baseTimes; // node_modules/lodash-es/_baseIsArguments.js var argsTag = "[object Arguments]"; function baseIsArguments(value) { return isObjectLike_default(value) && baseGetTag_default(value) == argsTag; } var baseIsArguments_default = baseIsArguments; // node_modules/lodash-es/isArguments.js var objectProto6 = Object.prototype; var hasOwnProperty4 = objectProto6.hasOwnProperty; var propertyIsEnumerable = objectProto6.propertyIsEnumerable; var isArguments = baseIsArguments_default(/* @__PURE__ */ (function() { return arguments; })()) ? baseIsArguments_default : function(value) { return isObjectLike_default(value) && hasOwnProperty4.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); }; var isArguments_default = isArguments; // node_modules/lodash-es/stubFalse.js function stubFalse() { return false; } var stubFalse_default = stubFalse; // node_modules/lodash-es/isBuffer.js var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; var moduleExports = freeModule && freeModule.exports === freeExports; var Buffer2 = moduleExports ? root_default.Buffer : void 0; var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; var isBuffer = nativeIsBuffer || stubFalse_default; var isBuffer_default = isBuffer; // node_modules/lodash-es/_baseIsTypedArray.js var argsTag2 = "[object Arguments]"; var arrayTag = "[object Array]"; var boolTag = "[object Boolean]"; var dateTag = "[object Date]"; var errorTag = "[object Error]"; var funcTag2 = "[object Function]"; var mapTag = "[object Map]"; var numberTag = "[object Number]"; var objectTag = "[object Object]"; var regexpTag = "[object RegExp]"; var setTag = "[object Set]"; var stringTag = "[object String]"; var weakMapTag = "[object WeakMap]"; var arrayBufferTag = "[object ArrayBuffer]"; var dataViewTag = "[object DataView]"; var float32Tag = "[object Float32Array]"; var float64Tag = "[object Float64Array]"; var int8Tag = "[object Int8Array]"; var int16Tag = "[object Int16Array]"; var int32Tag = "[object Int32Array]"; var uint8Tag = "[object Uint8Array]"; var uint8ClampedTag = "[object Uint8ClampedArray]"; var uint16Tag = "[object Uint16Array]"; var uint32Tag = "[object Uint32Array]"; var typedArrayTags = {}; typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; function baseIsTypedArray(value) { return isObjectLike_default(value) && isLength_default(value.length) && !!typedArrayTags[baseGetTag_default(value)]; } var baseIsTypedArray_default = baseIsTypedArray; // node_modules/lodash-es/_baseUnary.js function baseUnary(func) { return function(value) { return func(value); }; } var baseUnary_default = baseUnary; // node_modules/lodash-es/_nodeUtil.js var freeExports2 = typeof exports == "object" && exports && !exports.nodeType && exports; var freeModule2 = freeExports2 && typeof module == "object" && module && !module.nodeType && module; var moduleExports2 = freeModule2 && freeModule2.exports === freeExports2; var freeProcess = moduleExports2 && freeGlobal_default.process; var nodeUtil = (function() { try { var types = freeModule2 && freeModule2.require && freeModule2.require("util").types; if (types) { return types; } return freeProcess && freeProcess.binding && freeProcess.binding("util"); } catch (e29) { } })(); var nodeUtil_default = nodeUtil; // node_modules/lodash-es/isTypedArray.js var nodeIsTypedArray = nodeUtil_default && nodeUtil_default.isTypedArray; var isTypedArray = nodeIsTypedArray ? baseUnary_default(nodeIsTypedArray) : baseIsTypedArray_default; var isTypedArray_default = isTypedArray; // node_modules/lodash-es/_arrayLikeKeys.js var objectProto7 = Object.prototype; var hasOwnProperty5 = objectProto7.hasOwnProperty; function arrayLikeKeys(value, inherited) { var isArr = isArray_default(value), isArg = !isArr && isArguments_default(value), isBuff = !isArr && !isArg && isBuffer_default(value), isType = !isArr && !isArg && !isBuff && isTypedArray_default(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes_default(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty5.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. isIndex_default(key, length)))) { result.push(key); } } return result; } var arrayLikeKeys_default = arrayLikeKeys; // node_modules/lodash-es/_overArg.js function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } var overArg_default = overArg; // node_modules/lodash-es/_nativeKeysIn.js function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } var nativeKeysIn_default = nativeKeysIn; // node_modules/lodash-es/_baseKeysIn.js var objectProto8 = Object.prototype; var hasOwnProperty6 = objectProto8.hasOwnProperty; function baseKeysIn(object) { if (!isObject_default(object)) { return nativeKeysIn_default(object); } var isProto = isPrototype_default(object), result = []; for (var key in object) { if (!(key == "constructor" && (isProto || !hasOwnProperty6.call(object, key)))) { result.push(key); } } return result; } var baseKeysIn_default = baseKeysIn; // node_modules/lodash-es/keysIn.js function keysIn(object) { return isArrayLike_default(object) ? arrayLikeKeys_default(object, true) : baseKeysIn_default(object); } var keysIn_default = keysIn; // node_modules/lodash-es/_nativeCreate.js var nativeCreate = getNative_default(Object, "create"); var nativeCreate_default = nativeCreate; // node_modules/lodash-es/_hashClear.js function hashClear() { this.__data__ = nativeCreate_default ? nativeCreate_default(null) : {}; this.size = 0; } var hashClear_default = hashClear; // node_modules/lodash-es/_hashDelete.js function hashDelete(key) { var result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } var hashDelete_default = hashDelete; // node_modules/lodash-es/_hashGet.js var HASH_UNDEFINED = "__lodash_hash_undefined__"; var objectProto9 = Object.prototype; var hasOwnProperty7 = objectProto9.hasOwnProperty; function hashGet(key) { var data = this.__data__; if (nativeCreate_default) { var result = data[key]; return result === HASH_UNDEFINED ? void 0 : result; } return hasOwnProperty7.call(data, key) ? data[key] : void 0; } var hashGet_default = hashGet; // node_modules/lodash-es/_hashHas.js var objectProto10 = Object.prototype; var hasOwnProperty8 = objectProto10.hasOwnProperty; function hashHas(key) { var data = this.__data__; return nativeCreate_default ? data[key] !== void 0 : hasOwnProperty8.call(data, key); } var hashHas_default = hashHas; // node_modules/lodash-es/_hashSet.js var HASH_UNDEFINED2 = "__lodash_hash_undefined__"; function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = nativeCreate_default && value === void 0 ? HASH_UNDEFINED2 : value; return this; } var hashSet_default = hashSet; // node_modules/lodash-es/_Hash.js function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } Hash.prototype.clear = hashClear_default; Hash.prototype["delete"] = hashDelete_default; Hash.prototype.get = hashGet_default; Hash.prototype.has = hashHas_default; Hash.prototype.set = hashSet_default; var Hash_default = Hash; // node_modules/lodash-es/_listCacheClear.js function listCacheClear() { this.__data__ = []; this.size = 0; } var listCacheClear_default = listCacheClear; // node_modules/lodash-es/_assocIndexOf.js function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq_default(array[length][0], key)) { return length; } } return -1; } var assocIndexOf_default = assocIndexOf; // node_modules/lodash-es/_listCacheDelete.js var arrayProto = Array.prototype; var splice = arrayProto.splice; function listCacheDelete(key) { var data = this.__data__, index = assocIndexOf_default(data, key); if (index < 0) { return false; } var lastIndex = data.length - 1; if (index == lastIndex) { data.pop(); } else { splice.call(data, index, 1); } --this.size; return true; } var listCacheDelete_default = listCacheDelete; // node_modules/lodash-es/_listCacheGet.js function listCacheGet(key) { var data = this.__data__, index = assocIndexOf_default(data, key); return index < 0 ? void 0 : data[index][1]; } var listCacheGet_default = listCacheGet; // node_modules/lodash-es/_listCacheHas.js function listCacheHas(key) { return assocIndexOf_default(this.__data__, key) > -1; } var listCacheHas_default = listCacheHas; // node_modules/lodash-es/_listCacheSet.js function listCacheSet(key, value) { var data = this.__data__, index = assocIndexOf_default(data, key); if (index < 0) { ++this.size; data.push([key, value]); } else { data[index][1] = value; } return this; } var listCacheSet_default = listCacheSet; // node_modules/lodash-es/_ListCache.js function ListCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } ListCache.prototype.clear = listCacheClear_default; ListCache.prototype["delete"] = listCacheDelete_default; ListCache.prototype.get = listCacheGet_default; ListCache.prototype.has = listCacheHas_default; ListCache.prototype.set = listCacheSet_default; var ListCache_default = ListCache; // node_modules/lodash-es/_Map.js var Map2 = getNative_default(root_default, "Map"); var Map_default = Map2; // node_modules/lodash-es/_mapCacheClear.js function mapCacheClear() { this.size = 0; this.__data__ = { "hash": new Hash_default(), "map": new (Map_default || ListCache_default)(), "string": new Hash_default() }; } var mapCacheClear_default = mapCacheClear; // node_modules/lodash-es/_isKeyable.js function isKeyable(value) { var type2 = typeof value; return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null; } var isKeyable_default = isKeyable; // node_modules/lodash-es/_getMapData.js function getMapData(map2, key) { var data = map2.__data__; return isKeyable_default(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; } var getMapData_default = getMapData; // node_modules/lodash-es/_mapCacheDelete.js function mapCacheDelete(key) { var result = getMapData_default(this, key)["delete"](key); this.size -= result ? 1 : 0; return result; } var mapCacheDelete_default = mapCacheDelete; // node_modules/lodash-es/_mapCacheGet.js function mapCacheGet(key) { return getMapData_default(this, key).get(key); } var mapCacheGet_default = mapCacheGet; // node_modules/lodash-es/_mapCacheHas.js function mapCacheHas(key) { return getMapData_default(this, key).has(key); } var mapCacheHas_default = mapCacheHas; // node_modules/lodash-es/_mapCacheSet.js function mapCacheSet(key, value) { var data = getMapData_default(this, key), size = data.size; data.set(key, value); this.size += data.size == size ? 0 : 1; return this; } var mapCacheSet_default = mapCacheSet; // node_modules/lodash-es/_MapCache.js function MapCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } MapCache.prototype.clear = mapCacheClear_default; MapCache.prototype["delete"] = mapCacheDelete_default; MapCache.prototype.get = mapCacheGet_default; MapCache.prototype.has = mapCacheHas_default; MapCache.prototype.set = mapCacheSet_default; var MapCache_default = MapCache; // node_modules/lodash-es/_getPrototype.js var getPrototype = overArg_default(Object.getPrototypeOf, Object); var getPrototype_default = getPrototype; // node_modules/lodash-es/isPlainObject.js var objectTag2 = "[object Object]"; var funcProto3 = Function.prototype; var objectProto11 = Object.prototype; var funcToString3 = funcProto3.toString; var hasOwnProperty9 = objectProto11.hasOwnProperty; var objectCtorString = funcToString3.call(Object); function isPlainObject(value) { if (!isObjectLike_default(value) || baseGetTag_default(value) != objectTag2) { return false; } var proto = getPrototype_default(value); if (proto === null) { return true; } var Ctor = hasOwnProperty9.call(proto, "constructor") && proto.constructor; return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString3.call(Ctor) == objectCtorString; } var isPlainObject_default = isPlainObject; // node_modules/lodash-es/_stackClear.js function stackClear() { this.__data__ = new ListCache_default(); this.size = 0; } var stackClear_default = stackClear; // node_modules/lodash-es/_stackDelete.js function stackDelete(key) { var data = this.__data__, result = data["delete"](key); this.size = data.size; return result; } var stackDelete_default = stackDelete; // node_modules/lodash-es/_stackGet.js function stackGet(key) { return this.__data__.get(key); } var stackGet_default = stackGet; // node_modules/lodash-es/_stackHas.js function stackHas(key) { return this.__data__.has(key); } var stackHas_default = stackHas; // node_modules/lodash-es/_stackSet.js var LARGE_ARRAY_SIZE = 200; function stackSet(key, value) { var data = this.__data__; if (data instanceof ListCache_default) { var pairs = data.__data__; if (!Map_default || pairs.length < LARGE_ARRAY_SIZE - 1) { pairs.push([key, value]); this.size = ++data.size; return this; } data = this.__data__ = new MapCache_default(pairs); } data.set(key, value); this.size = data.size; return this; } var stackSet_default = stackSet; // node_modules/lodash-es/_Stack.js function Stack(entries) { var data = this.__data__ = new ListCache_default(entries); this.size = data.size; } Stack.prototype.clear = stackClear_default; Stack.prototype["delete"] = stackDelete_default; Stack.prototype.get = stackGet_default; Stack.prototype.has = stackHas_default; Stack.prototype.set = stackSet_default; var Stack_default = Stack; // node_modules/lodash-es/_cloneBuffer.js var freeExports3 = typeof exports == "object" && exports && !exports.nodeType && exports; var freeModule3 = freeExports3 && typeof module == "object" && module && !module.nodeType && module; var moduleExports3 = freeModule3 && freeModule3.exports === freeExports3; var Buffer3 = moduleExports3 ? root_default.Buffer : void 0; var allocUnsafe = Buffer3 ? Buffer3.allocUnsafe : void 0; function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } var cloneBuffer_default = cloneBuffer; // node_modules/lodash-es/_Uint8Array.js var Uint8Array2 = root_default.Uint8Array; var Uint8Array_default = Uint8Array2; // node_modules/lodash-es/_cloneArrayBuffer.js function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new Uint8Array_default(result).set(new Uint8Array_default(arrayBuffer)); return result; } var cloneArrayBuffer_default = cloneArrayBuffer; // node_modules/lodash-es/_cloneTypedArray.js function cloneTypedArray(typedArray, isDeep) { var buffer = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer; return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); } var cloneTypedArray_default = cloneTypedArray; // node_modules/lodash-es/_initCloneObject.js function initCloneObject(object) { return typeof object.constructor == "function" && !isPrototype_default(object) ? baseCreate_default(getPrototype_default(object)) : {}; } var initCloneObject_default = initCloneObject; // node_modules/lodash-es/_createBaseFor.js function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } var createBaseFor_default = createBaseFor; // node_modules/lodash-es/_baseFor.js var baseFor = createBaseFor_default(); var baseFor_default = baseFor; // node_modules/lodash-es/_assignMergeValue.js function assignMergeValue(object, key, value) { if (value !== void 0 && !eq_default(object[key], value) || value === void 0 && !(key in object)) { baseAssignValue_default(object, key, value); } } var assignMergeValue_default = assignMergeValue; // node_modules/lodash-es/isArrayLikeObject.js function isArrayLikeObject(value) { return isObjectLike_default(value) && isArrayLike_default(value); } var isArrayLikeObject_default = isArrayLikeObject; // node_modules/lodash-es/_safeGet.js function safeGet(object, key) { if (key === "constructor" && typeof object[key] === "function") { return; } if (key == "__proto__") { return; } return object[key]; } var safeGet_default = safeGet; // node_modules/lodash-es/toPlainObject.js function toPlainObject(value) { return copyObject_default(value, keysIn_default(value)); } var toPlainObject_default = toPlainObject; // node_modules/lodash-es/_baseMergeDeep.js function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = safeGet_default(object, key), srcValue = safeGet_default(source, key), stacked = stack.get(srcValue); if (stacked) { assignMergeValue_default(object, key, stacked); return; } var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0; var isCommon = newValue === void 0; if (isCommon) { var isArr = isArray_default(srcValue), isBuff = !isArr && isBuffer_default(srcValue), isTyped = !isArr && !isBuff && isTypedArray_default(srcValue); newValue = srcValue; if (isArr || isBuff || isTyped) { if (isArray_default(objValue)) { newValue = objValue; } else if (isArrayLikeObject_default(objValue)) { newValue = copyArray_default(objValue); } else if (isBuff) { isCommon = false; newValue = cloneBuffer_default(srcValue, true); } else if (isTyped) { isCommon = false; newValue = cloneTypedArray_default(srcValue, true); } else { newValue = []; } } else if (isPlainObject_default(srcValue) || isArguments_default(srcValue)) { newValue = objValue; if (isArguments_default(objValue)) { newValue = toPlainObject_default(objValue); } else if (!isObject_default(objValue) || isFunction_default(objValue)) { newValue = initCloneObject_default(srcValue); } } else { isCommon = false; } } if (isCommon) { stack.set(srcValue, newValue); mergeFunc(newValue, srcValue, srcIndex, customizer, stack); stack["delete"](srcValue); } assignMergeValue_default(object, key, newValue); } var baseMergeDeep_default = baseMergeDeep; // node_modules/lodash-es/_baseMerge.js function baseMerge(object, source, srcIndex, customizer, stack) { if (object === source) { return; } baseFor_default(source, function(srcValue, key) { stack || (stack = new Stack_default()); if (isObject_default(srcValue)) { baseMergeDeep_default(object, source, key, srcIndex, baseMerge, customizer, stack); } else { var newValue = customizer ? customizer(safeGet_default(object, key), srcValue, key + "", object, source, stack) : void 0; if (newValue === void 0) { newValue = srcValue; } assignMergeValue_default(object, key, newValue); } }, keysIn_default); } var baseMerge_default = baseMerge; // node_modules/lodash-es/merge.js var merge = createAssigner_default(function(object, source, srcIndex) { baseMerge_default(object, source, srcIndex); }); var merge_default = merge; // node_modules/tslib/tslib.es6.mjs var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __2() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__2.prototype = b.prototype, new __2()); } function __awaiter(thisArg, _arguments, P6, generator) { function adopt(value) { return value instanceof P6 ? value : new P6(function(resolve) { resolve(value); }); } return new (P6 || (P6 = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e29) { reject(e29); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e29) { reject(e29); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _2 = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g2 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); return g2.next = verb(0), g2["throw"] = verb(1), g2["return"] = verb(2), typeof Symbol === "function" && (g2[Symbol.iterator] = function() { return this; }), g2; function verb(n) { return function(v) { return step([n, v]); }; } function step(op2) { if (f) throw new TypeError("Generator is already executing."); while (g2 && (g2 = 0, op2[0] && (_2 = 0)), _2) try { if (f = 1, y && (t = op2[0] & 2 ? y["return"] : op2[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op2[1])).done) return t; if (y = 0, t) op2 = [op2[0] & 2, t.value]; switch (op2[0]) { case 0: case 1: t = op2; break; case 4: _2.label++; return { value: op2[1], done: false }; case 5: _2.label++; y = op2[1]; op2 = [0]; continue; case 7: op2 = _2.ops.pop(); _2.trys.pop(); continue; default: if (!(t = _2.trys, t = t.length > 0 && t[t.length - 1]) && (op2[0] === 6 || op2[0] === 2)) { _2 = 0; continue; } if (op2[0] === 3 && (!t || op2[1] > t[0] && op2[1] < t[3])) { _2.label = op2[1]; break; } if (op2[0] === 6 && _2.label < t[1]) { _2.label = t[1]; t = op2; break; } if (t && _2.label < t[2]) { _2.label = t[2]; _2.ops.push(op2); break; } if (t[2]) _2.ops.pop(); _2.trys.pop(); continue; } op2 = body.call(thisArg, _2); } catch (e29) { op2 = [6, e29]; y = 0; } finally { f = t = 0; } if (op2[0] & 5) throw op2[1]; return { value: op2[0] ? op2[1] : void 0, done: true }; } } function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function() { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar5 = [], e29; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar5.push(r.value); } catch (error) { e29 = { error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e29) throw e29.error; } } return ar5; } function __spreadArray(to4, from2, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from2.length, ar5; i < l; i++) { if (ar5 || !(i in from2)) { if (!ar5) ar5 = Array.prototype.slice.call(from2, 0, i); ar5[i] = from2[i]; } } return to4.concat(ar5 || Array.prototype.slice.call(from2)); } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g2 = generator.apply(thisArg, _arguments || []), i, q5 = []; return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { return this; }, i; function awaitReturn(f) { return function(v) { return Promise.resolve(v).then(f, reject); }; } function verb(n, f) { if (g2[n]) { i[n] = function(v) { return new Promise(function(a, b) { q5.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } function resume(n, v) { try { step(g2[n](v)); } catch (e29) { settle(q5[0][3], e29); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q5[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q5.shift(), q5.length) resume(q5[0][0], q5[0][1]); } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i); function verb(n) { i[n] = o[n] && function(v) { return new Promise(function(resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v2) { resolve({ value: v2, done: d }); }, reject); } } // node_modules/rxjs/dist/esm5/internal/util/isFunction.js function isFunction2(value) { return typeof value === "function"; } // node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js function createErrorClass(createImpl) { var _super = function(instance) { Error.call(instance); instance.stack = new Error().stack; }; var ctorFunc = createImpl(_super); ctorFunc.prototype = Object.create(Error.prototype); ctorFunc.prototype.constructor = ctorFunc; return ctorFunc; } // node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js var UnsubscriptionError = createErrorClass(function(_super) { return function UnsubscriptionErrorImpl(errors) { _super(this); this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) { return i + 1 + ") " + err.toString(); }).join("\n ") : ""; this.name = "UnsubscriptionError"; this.errors = errors; }; }); // node_modules/rxjs/dist/esm5/internal/util/arrRemove.js function arrRemove(arr, item) { if (arr) { var index = arr.indexOf(item); 0 <= index && arr.splice(index, 1); } } // node_modules/rxjs/dist/esm5/internal/Subscription.js var Subscription = (function() { function Subscription2(initialTeardown) { this.initialTeardown = initialTeardown; this.closed = false; this._parentage = null; this._finalizers = null; } Subscription2.prototype.unsubscribe = function() { var e_1, _a4, e_2, _b; var errors; if (!this.closed) { this.closed = true; var _parentage = this._parentage; if (_parentage) { this._parentage = null; if (Array.isArray(_parentage)) { try { for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) { var parent_1 = _parentage_1_1.value; parent_1.remove(this); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_parentage_1_1 && !_parentage_1_1.done && (_a4 = _parentage_1.return)) _a4.call(_parentage_1); } finally { if (e_1) throw e_1.error; } } } else { _parentage.remove(this); } } var initialFinalizer = this.initialTeardown; if (isFunction2(initialFinalizer)) { try { initialFinalizer(); } catch (e29) { errors = e29 instanceof UnsubscriptionError ? e29.errors : [e29]; } } var _finalizers = this._finalizers; if (_finalizers) { this._finalizers = null; try { for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { var finalizer = _finalizers_1_1.value; try { execFinalizer(finalizer); } catch (err) { errors = errors !== null && errors !== void 0 ? errors : []; if (err instanceof UnsubscriptionError) { errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); } else { errors.push(err); } } } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); } finally { if (e_2) throw e_2.error; } } } if (errors) { throw new UnsubscriptionError(errors); } } }; Subscription2.prototype.add = function(teardown) { var _a4; if (teardown && teardown !== this) { if (this.closed) { execFinalizer(teardown); } else { if (teardown instanceof Subscription2) { if (teardown.closed || teardown._hasParent(this)) { return; } teardown._addParent(this); } (this._finalizers = (_a4 = this._finalizers) !== null && _a4 !== void 0 ? _a4 : []).push(teardown); } } }; Subscription2.prototype._hasParent = function(parent) { var _parentage = this._parentage; return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent); }; Subscription2.prototype._addParent = function(parent) { var _parentage = this._parentage; this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; }; Subscription2.prototype._removeParent = function(parent) { var _parentage = this._parentage; if (_parentage === parent) { this._parentage = null; } else if (Array.isArray(_parentage)) { arrRemove(_parentage, parent); } }; Subscription2.prototype.remove = function(teardown) { var _finalizers = this._finalizers; _finalizers && arrRemove(_finalizers, teardown); if (teardown instanceof Subscription2) { teardown._removeParent(this); } }; Subscription2.EMPTY = (function() { var empty = new Subscription2(); empty.closed = true; return empty; })(); return Subscription2; })(); var EMPTY_SUBSCRIPTION = Subscription.EMPTY; function isSubscription(value) { return value instanceof Subscription || value && "closed" in value && isFunction2(value.remove) && isFunction2(value.add) && isFunction2(value.unsubscribe); } function execFinalizer(finalizer) { if (isFunction2(finalizer)) { finalizer(); } else { finalizer.unsubscribe(); } } // node_modules/rxjs/dist/esm5/internal/config.js var config = { onUnhandledError: null, onStoppedNotification: null, Promise: void 0, useDeprecatedSynchronousErrorHandling: false, useDeprecatedNextContext: false }; // node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js var timeoutProvider = { setTimeout: function(handler, timeout) { var args = []; for (var _i5 = 2; _i5 < arguments.length; _i5++) { args[_i5 - 2] = arguments[_i5]; } var delegate = timeoutProvider.delegate; if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) { return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args))); } return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); }, clearTimeout: function(handle) { var delegate = timeoutProvider.delegate; return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js function reportUnhandledError(err) { timeoutProvider.setTimeout(function() { var onUnhandledError = config.onUnhandledError; if (onUnhandledError) { onUnhandledError(err); } else { throw err; } }); } // node_modules/rxjs/dist/esm5/internal/util/noop.js function noop() { } // node_modules/rxjs/dist/esm5/internal/NotificationFactories.js var COMPLETE_NOTIFICATION = (function() { return createNotification("C", void 0, void 0); })(); function errorNotification(error) { return createNotification("E", void 0, error); } function nextNotification(value) { return createNotification("N", value, void 0); } function createNotification(kind, value, error) { return { kind, value, error }; } // node_modules/rxjs/dist/esm5/internal/util/errorContext.js var context = null; function errorContext(cb) { if (config.useDeprecatedSynchronousErrorHandling) { var isRoot = !context; if (isRoot) { context = { errorThrown: false, error: null }; } cb(); if (isRoot) { var _a4 = context, errorThrown = _a4.errorThrown, error = _a4.error; context = null; if (errorThrown) { throw error; } } } else { cb(); } } function captureError(err) { if (config.useDeprecatedSynchronousErrorHandling && context) { context.errorThrown = true; context.error = err; } } // node_modules/rxjs/dist/esm5/internal/Subscriber.js var Subscriber = (function(_super) { __extends(Subscriber2, _super); function Subscriber2(destination) { var _this = _super.call(this) || this; _this.isStopped = false; if (destination) { _this.destination = destination; if (isSubscription(destination)) { destination.add(_this); } } else { _this.destination = EMPTY_OBSERVER; } return _this; } Subscriber2.create = function(next, error, complete) { return new SafeSubscriber(next, error, complete); }; Subscriber2.prototype.next = function(value) { if (this.isStopped) { handleStoppedNotification(nextNotification(value), this); } else { this._next(value); } }; Subscriber2.prototype.error = function(err) { if (this.isStopped) { handleStoppedNotification(errorNotification(err), this); } else { this.isStopped = true; this._error(err); } }; Subscriber2.prototype.complete = function() { if (this.isStopped) { handleStoppedNotification(COMPLETE_NOTIFICATION, this); } else { this.isStopped = true; this._complete(); } }; Subscriber2.prototype.unsubscribe = function() { if (!this.closed) { this.isStopped = true; _super.prototype.unsubscribe.call(this); this.destination = null; } }; Subscriber2.prototype._next = function(value) { this.destination.next(value); }; Subscriber2.prototype._error = function(err) { try { this.destination.error(err); } finally { this.unsubscribe(); } }; Subscriber2.prototype._complete = function() { try { this.destination.complete(); } finally { this.unsubscribe(); } }; return Subscriber2; })(Subscription); var _bind = Function.prototype.bind; function bind(fn3, thisArg) { return _bind.call(fn3, thisArg); } var ConsumerObserver = (function() { function ConsumerObserver2(partialObserver) { this.partialObserver = partialObserver; } ConsumerObserver2.prototype.next = function(value) { var partialObserver = this.partialObserver; if (partialObserver.next) { try { partialObserver.next(value); } catch (error) { handleUnhandledError(error); } } }; ConsumerObserver2.prototype.error = function(err) { var partialObserver = this.partialObserver; if (partialObserver.error) { try { partialObserver.error(err); } catch (error) { handleUnhandledError(error); } } else { handleUnhandledError(err); } }; ConsumerObserver2.prototype.complete = function() { var partialObserver = this.partialObserver; if (partialObserver.complete) { try { partialObserver.complete(); } catch (error) { handleUnhandledError(error); } } }; return ConsumerObserver2; })(); var SafeSubscriber = (function(_super) { __extends(SafeSubscriber2, _super); function SafeSubscriber2(observerOrNext, error, complete) { var _this = _super.call(this) || this; var partialObserver; if (isFunction2(observerOrNext) || !observerOrNext) { partialObserver = { next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0, error: error !== null && error !== void 0 ? error : void 0, complete: complete !== null && complete !== void 0 ? complete : void 0 }; } else { var context_1; if (_this && config.useDeprecatedNextContext) { context_1 = Object.create(observerOrNext); context_1.unsubscribe = function() { return _this.unsubscribe(); }; partialObserver = { next: observerOrNext.next && bind(observerOrNext.next, context_1), error: observerOrNext.error && bind(observerOrNext.error, context_1), complete: observerOrNext.complete && bind(observerOrNext.complete, context_1) }; } else { partialObserver = observerOrNext; } } _this.destination = new ConsumerObserver(partialObserver); return _this; } return SafeSubscriber2; })(Subscriber); function handleUnhandledError(error) { if (config.useDeprecatedSynchronousErrorHandling) { captureError(error); } else { reportUnhandledError(error); } } function defaultErrorHandler(err) { throw err; } function handleStoppedNotification(notification, subscriber) { var onStoppedNotification = config.onStoppedNotification; onStoppedNotification && timeoutProvider.setTimeout(function() { return onStoppedNotification(notification, subscriber); }); } var EMPTY_OBSERVER = { closed: true, next: noop, error: defaultErrorHandler, complete: noop }; // node_modules/rxjs/dist/esm5/internal/symbol/observable.js var observable = (function() { return typeof Symbol === "function" && Symbol.observable || "@@observable"; })(); // node_modules/rxjs/dist/esm5/internal/util/identity.js function identity2(x2) { return x2; } // node_modules/rxjs/dist/esm5/internal/util/pipe.js function pipeFromArray(fns) { if (fns.length === 0) { return identity2; } if (fns.length === 1) { return fns[0]; } return function piped(input) { return fns.reduce(function(prev, fn3) { return fn3(prev); }, input); }; } // node_modules/rxjs/dist/esm5/internal/Observable.js var Observable = (function() { function Observable2(subscribe) { if (subscribe) { this._subscribe = subscribe; } } Observable2.prototype.lift = function(operator) { var observable2 = new Observable2(); observable2.source = this; observable2.operator = operator; return observable2; }; Observable2.prototype.subscribe = function(observerOrNext, error, complete) { var _this = this; var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); errorContext(function() { var _a4 = _this, operator = _a4.operator, source = _a4.source; subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber)); }); return subscriber; }; Observable2.prototype._trySubscribe = function(sink) { try { return this._subscribe(sink); } catch (err) { sink.error(err); } }; Observable2.prototype.forEach = function(next, promiseCtor) { var _this = this; promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor(function(resolve, reject) { var subscriber = new SafeSubscriber({ next: function(value) { try { next(value); } catch (err) { reject(err); subscriber.unsubscribe(); } }, error: reject, complete: resolve }); _this.subscribe(subscriber); }); }; Observable2.prototype._subscribe = function(subscriber) { var _a4; return (_a4 = this.source) === null || _a4 === void 0 ? void 0 : _a4.subscribe(subscriber); }; Observable2.prototype[observable] = function() { return this; }; Observable2.prototype.pipe = function() { var operations = []; for (var _i5 = 0; _i5 < arguments.length; _i5++) { operations[_i5] = arguments[_i5]; } return pipeFromArray(operations)(this); }; Observable2.prototype.toPromise = function(promiseCtor) { var _this = this; promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor(function(resolve, reject) { var value; _this.subscribe(function(x2) { return value = x2; }, function(err) { return reject(err); }, function() { return resolve(value); }); }); }; Observable2.create = function(subscribe) { return new Observable2(subscribe); }; return Observable2; })(); function getPromiseCtor(promiseCtor) { var _a4; return (_a4 = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a4 !== void 0 ? _a4 : Promise; } function isObserver(value) { return value && isFunction2(value.next) && isFunction2(value.error) && isFunction2(value.complete); } function isSubscriber(value) { return value && value instanceof Subscriber || isObserver(value) && isSubscription(value); } // node_modules/rxjs/dist/esm5/internal/util/lift.js function hasLift(source) { return isFunction2(source === null || source === void 0 ? void 0 : source.lift); } function operate(init) { return function(source) { if (hasLift(source)) { return source.lift(function(liftedSource) { try { return init(liftedSource, this); } catch (err) { this.error(err); } }); } throw new TypeError("Unable to lift unknown Observable type"); }; } // node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); } var OperatorSubscriber = (function(_super) { __extends(OperatorSubscriber2, _super); function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { var _this = _super.call(this, destination) || this; _this.onFinalize = onFinalize; _this.shouldUnsubscribe = shouldUnsubscribe; _this._next = onNext ? function(value) { try { onNext(value); } catch (err) { destination.error(err); } } : _super.prototype._next; _this._error = onError ? function(err) { try { onError(err); } catch (err2) { destination.error(err2); } finally { this.unsubscribe(); } } : _super.prototype._error; _this._complete = onComplete ? function() { try { onComplete(); } catch (err) { destination.error(err); } finally { this.unsubscribe(); } } : _super.prototype._complete; return _this; } OperatorSubscriber2.prototype.unsubscribe = function() { var _a4; if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { var closed_1 = this.closed; _super.prototype.unsubscribe.call(this); !closed_1 && ((_a4 = this.onFinalize) === null || _a4 === void 0 ? void 0 : _a4.call(this)); } }; return OperatorSubscriber2; })(Subscriber); // node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js var ObjectUnsubscribedError = createErrorClass(function(_super) { return function ObjectUnsubscribedErrorImpl() { _super(this); this.name = "ObjectUnsubscribedError"; this.message = "object unsubscribed"; }; }); // node_modules/rxjs/dist/esm5/internal/Subject.js var Subject = (function(_super) { __extends(Subject2, _super); function Subject2() { var _this = _super.call(this) || this; _this.closed = false; _this.currentObservers = null; _this.observers = []; _this.isStopped = false; _this.hasError = false; _this.thrownError = null; return _this; } Subject2.prototype.lift = function(operator) { var subject = new AnonymousSubject(this, this); subject.operator = operator; return subject; }; Subject2.prototype._throwIfClosed = function() { if (this.closed) { throw new ObjectUnsubscribedError(); } }; Subject2.prototype.next = function(value) { var _this = this; errorContext(function() { var e_1, _a4; _this._throwIfClosed(); if (!_this.isStopped) { if (!_this.currentObservers) { _this.currentObservers = Array.from(_this.observers); } try { for (var _b = __values(_this.currentObservers), _c4 = _b.next(); !_c4.done; _c4 = _b.next()) { var observer = _c4.value; observer.next(value); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c4 && !_c4.done && (_a4 = _b.return)) _a4.call(_b); } finally { if (e_1) throw e_1.error; } } } }); }; Subject2.prototype.error = function(err) { var _this = this; errorContext(function() { _this._throwIfClosed(); if (!_this.isStopped) { _this.hasError = _this.isStopped = true; _this.thrownError = err; var observers = _this.observers; while (observers.length) { observers.shift().error(err); } } }); }; Subject2.prototype.complete = function() { var _this = this; errorContext(function() { _this._throwIfClosed(); if (!_this.isStopped) { _this.isStopped = true; var observers = _this.observers; while (observers.length) { observers.shift().complete(); } } }); }; Subject2.prototype.unsubscribe = function() { this.isStopped = this.closed = true; this.observers = this.currentObservers = null; }; Object.defineProperty(Subject2.prototype, "observed", { get: function() { var _a4; return ((_a4 = this.observers) === null || _a4 === void 0 ? void 0 : _a4.length) > 0; }, enumerable: false, configurable: true }); Subject2.prototype._trySubscribe = function(subscriber) { this._throwIfClosed(); return _super.prototype._trySubscribe.call(this, subscriber); }; Subject2.prototype._subscribe = function(subscriber) { this._throwIfClosed(); this._checkFinalizedStatuses(subscriber); return this._innerSubscribe(subscriber); }; Subject2.prototype._innerSubscribe = function(subscriber) { var _this = this; var _a4 = this, hasError = _a4.hasError, isStopped = _a4.isStopped, observers = _a4.observers; if (hasError || isStopped) { return EMPTY_SUBSCRIPTION; } this.currentObservers = null; observers.push(subscriber); return new Subscription(function() { _this.currentObservers = null; arrRemove(observers, subscriber); }); }; Subject2.prototype._checkFinalizedStatuses = function(subscriber) { var _a4 = this, hasError = _a4.hasError, thrownError = _a4.thrownError, isStopped = _a4.isStopped; if (hasError) { subscriber.error(thrownError); } else if (isStopped) { subscriber.complete(); } }; Subject2.prototype.asObservable = function() { var observable2 = new Observable(); observable2.source = this; return observable2; }; Subject2.create = function(destination, source) { return new AnonymousSubject(destination, source); }; return Subject2; })(Observable); var AnonymousSubject = (function(_super) { __extends(AnonymousSubject2, _super); function AnonymousSubject2(destination, source) { var _this = _super.call(this) || this; _this.destination = destination; _this.source = source; return _this; } AnonymousSubject2.prototype.next = function(value) { var _a4, _b; (_b = (_a4 = this.destination) === null || _a4 === void 0 ? void 0 : _a4.next) === null || _b === void 0 ? void 0 : _b.call(_a4, value); }; AnonymousSubject2.prototype.error = function(err) { var _a4, _b; (_b = (_a4 = this.destination) === null || _a4 === void 0 ? void 0 : _a4.error) === null || _b === void 0 ? void 0 : _b.call(_a4, err); }; AnonymousSubject2.prototype.complete = function() { var _a4, _b; (_b = (_a4 = this.destination) === null || _a4 === void 0 ? void 0 : _a4.complete) === null || _b === void 0 ? void 0 : _b.call(_a4); }; AnonymousSubject2.prototype._subscribe = function(subscriber) { var _a4, _b; return (_b = (_a4 = this.source) === null || _a4 === void 0 ? void 0 : _a4.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION; }; return AnonymousSubject2; })(Subject); // node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js var BehaviorSubject = (function(_super) { __extends(BehaviorSubject2, _super); function BehaviorSubject2(_value) { var _this = _super.call(this) || this; _this._value = _value; return _this; } Object.defineProperty(BehaviorSubject2.prototype, "value", { get: function() { return this.getValue(); }, enumerable: false, configurable: true }); BehaviorSubject2.prototype._subscribe = function(subscriber) { var subscription = _super.prototype._subscribe.call(this, subscriber); !subscription.closed && subscriber.next(this._value); return subscription; }; BehaviorSubject2.prototype.getValue = function() { var _a4 = this, hasError = _a4.hasError, thrownError = _a4.thrownError, _value = _a4._value; if (hasError) { throw thrownError; } this._throwIfClosed(); return _value; }; BehaviorSubject2.prototype.next = function(value) { _super.prototype.next.call(this, this._value = value); }; return BehaviorSubject2; })(Subject); // node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js var dateTimestampProvider = { now: function() { return (dateTimestampProvider.delegate || Date).now(); }, delegate: void 0 }; // node_modules/rxjs/dist/esm5/internal/ReplaySubject.js var ReplaySubject = (function(_super) { __extends(ReplaySubject2, _super); function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) { if (_bufferSize === void 0) { _bufferSize = Infinity; } if (_windowTime === void 0) { _windowTime = Infinity; } if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; } var _this = _super.call(this) || this; _this._bufferSize = _bufferSize; _this._windowTime = _windowTime; _this._timestampProvider = _timestampProvider; _this._buffer = []; _this._infiniteTimeWindow = true; _this._infiniteTimeWindow = _windowTime === Infinity; _this._bufferSize = Math.max(1, _bufferSize); _this._windowTime = Math.max(1, _windowTime); return _this; } ReplaySubject2.prototype.next = function(value) { var _a4 = this, isStopped = _a4.isStopped, _buffer = _a4._buffer, _infiniteTimeWindow = _a4._infiniteTimeWindow, _timestampProvider = _a4._timestampProvider, _windowTime = _a4._windowTime; if (!isStopped) { _buffer.push(value); !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); } this._trimBuffer(); _super.prototype.next.call(this, value); }; ReplaySubject2.prototype._subscribe = function(subscriber) { this._throwIfClosed(); this._trimBuffer(); var subscription = this._innerSubscribe(subscriber); var _a4 = this, _infiniteTimeWindow = _a4._infiniteTimeWindow, _buffer = _a4._buffer; var copy = _buffer.slice(); for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { subscriber.next(copy[i]); } this._checkFinalizedStatuses(subscriber); return subscription; }; ReplaySubject2.prototype._trimBuffer = function() { var _a4 = this, _bufferSize = _a4._bufferSize, _timestampProvider = _a4._timestampProvider, _buffer = _a4._buffer, _infiniteTimeWindow = _a4._infiniteTimeWindow; var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); if (!_infiniteTimeWindow) { var now = _timestampProvider.now(); var last2 = 0; for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) { last2 = i; } last2 && _buffer.splice(0, last2 + 1); } }; return ReplaySubject2; })(Subject); // node_modules/rxjs/dist/esm5/internal/observable/empty.js var EMPTY = new Observable(function(subscriber) { return subscriber.complete(); }); // node_modules/rxjs/dist/esm5/internal/util/isScheduler.js function isScheduler(value) { return value && isFunction2(value.schedule); } // node_modules/rxjs/dist/esm5/internal/util/args.js function last(arr) { return arr[arr.length - 1]; } function popResultSelector(args) { return isFunction2(last(args)) ? args.pop() : void 0; } function popScheduler(args) { return isScheduler(last(args)) ? args.pop() : void 0; } function popNumber(args, defaultValue) { return typeof last(args) === "number" ? args.pop() : defaultValue; } // node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js var isArrayLike2 = (function(x2) { return x2 && typeof x2.length === "number" && typeof x2 !== "function"; }); // node_modules/rxjs/dist/esm5/internal/util/isPromise.js function isPromise(value) { return isFunction2(value === null || value === void 0 ? void 0 : value.then); } // node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js function isInteropObservable(input) { return isFunction2(input[observable]); } // node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js function isAsyncIterable(obj) { return Symbol.asyncIterator && isFunction2(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]); } // node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js function createInvalidObservableTypeError(input) { return new TypeError("You provided " + (input !== null && typeof input === "object" ? "an invalid object" : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable."); } // node_modules/rxjs/dist/esm5/internal/symbol/iterator.js function getSymbolIterator() { if (typeof Symbol !== "function" || !Symbol.iterator) { return "@@iterator"; } return Symbol.iterator; } var iterator = getSymbolIterator(); // node_modules/rxjs/dist/esm5/internal/util/isIterable.js function isIterable(input) { return isFunction2(input === null || input === void 0 ? void 0 : input[iterator]); } // node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js function readableStreamLikeToAsyncGenerator(readableStream) { return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() { var reader, _a4, value, done; return __generator(this, function(_b) { switch (_b.label) { case 0: reader = readableStream.getReader(); _b.label = 1; case 1: _b.trys.push([1, , 9, 10]); _b.label = 2; case 2: if (false) return [3, 8]; return [4, __await(reader.read())]; case 3: _a4 = _b.sent(), value = _a4.value, done = _a4.done; if (!done) return [3, 5]; return [4, __await(void 0)]; case 4: return [2, _b.sent()]; case 5: return [4, __await(value)]; case 6: return [4, _b.sent()]; case 7: _b.sent(); return [3, 2]; case 8: return [3, 10]; case 9: reader.releaseLock(); return [7]; case 10: return [2]; } }); }); } function isReadableStreamLike(obj) { return isFunction2(obj === null || obj === void 0 ? void 0 : obj.getReader); } // node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js function innerFrom(input) { if (input instanceof Observable) { return input; } if (input != null) { if (isInteropObservable(input)) { return fromInteropObservable(input); } if (isArrayLike2(input)) { return fromArrayLike(input); } if (isPromise(input)) { return fromPromise(input); } if (isAsyncIterable(input)) { return fromAsyncIterable(input); } if (isIterable(input)) { return fromIterable(input); } if (isReadableStreamLike(input)) { return fromReadableStreamLike(input); } } throw createInvalidObservableTypeError(input); } function fromInteropObservable(obj) { return new Observable(function(subscriber) { var obs = obj[observable](); if (isFunction2(obs.subscribe)) { return obs.subscribe(subscriber); } throw new TypeError("Provided object does not correctly implement Symbol.observable"); }); } function fromArrayLike(array) { return new Observable(function(subscriber) { for (var i = 0; i < array.length && !subscriber.closed; i++) { subscriber.next(array[i]); } subscriber.complete(); }); } function fromPromise(promise) { return new Observable(function(subscriber) { promise.then(function(value) { if (!subscriber.closed) { subscriber.next(value); subscriber.complete(); } }, function(err) { return subscriber.error(err); }).then(null, reportUnhandledError); }); } function fromIterable(iterable) { return new Observable(function(subscriber) { var e_1, _a4; try { for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) { var value = iterable_1_1.value; subscriber.next(value); if (subscriber.closed) { return; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (iterable_1_1 && !iterable_1_1.done && (_a4 = iterable_1.return)) _a4.call(iterable_1); } finally { if (e_1) throw e_1.error; } } subscriber.complete(); }); } function fromAsyncIterable(asyncIterable) { return new Observable(function(subscriber) { process2(asyncIterable, subscriber).catch(function(err) { return subscriber.error(err); }); }); } function fromReadableStreamLike(readableStream) { return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); } function process2(asyncIterable, subscriber) { var asyncIterable_1, asyncIterable_1_1; var e_2, _a4; return __awaiter(this, void 0, void 0, function() { var value, e_2_1; return __generator(this, function(_b) { switch (_b.label) { case 0: _b.trys.push([0, 5, 6, 11]); asyncIterable_1 = __asyncValues(asyncIterable); _b.label = 1; case 1: return [4, asyncIterable_1.next()]; case 2: if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4]; value = asyncIterable_1_1.value; subscriber.next(value); if (subscriber.closed) { return [2]; } _b.label = 3; case 3: return [3, 1]; case 4: return [3, 11]; case 5: e_2_1 = _b.sent(); e_2 = { error: e_2_1 }; return [3, 11]; case 6: _b.trys.push([6, , 9, 10]); if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a4 = asyncIterable_1.return))) return [3, 8]; return [4, _a4.call(asyncIterable_1)]; case 7: _b.sent(); _b.label = 8; case 8: return [3, 10]; case 9: if (e_2) throw e_2.error; return [7]; case 10: return [7]; case 11: subscriber.complete(); return [2]; } }); }); } // node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js function executeSchedule(parentSubscription, scheduler, work, delay, repeat) { if (delay === void 0) { delay = 0; } if (repeat === void 0) { repeat = false; } var scheduleSubscription = scheduler.schedule(function() { work(); if (repeat) { parentSubscription.add(this.schedule(null, delay)); } else { this.unsubscribe(); } }, delay); parentSubscription.add(scheduleSubscription); if (!repeat) { return scheduleSubscription; } } // node_modules/rxjs/dist/esm5/internal/operators/observeOn.js function observeOn(scheduler, delay) { if (delay === void 0) { delay = 0; } return operate(function(source, subscriber) { source.subscribe(createOperatorSubscriber(subscriber, function(value) { return executeSchedule(subscriber, scheduler, function() { return subscriber.next(value); }, delay); }, function() { return executeSchedule(subscriber, scheduler, function() { return subscriber.complete(); }, delay); }, function(err) { return executeSchedule(subscriber, scheduler, function() { return subscriber.error(err); }, delay); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js function subscribeOn(scheduler, delay) { if (delay === void 0) { delay = 0; } return operate(function(source, subscriber) { subscriber.add(scheduler.schedule(function() { return source.subscribe(subscriber); }, delay)); }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js function scheduleObservable(input, scheduler) { return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); } // node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js function schedulePromise(input, scheduler) { return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js function scheduleArray(input, scheduler) { return new Observable(function(subscriber) { var i = 0; return scheduler.schedule(function() { if (i === input.length) { subscriber.complete(); } else { subscriber.next(input[i++]); if (!subscriber.closed) { this.schedule(); } } }); }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js function scheduleIterable(input, scheduler) { return new Observable(function(subscriber) { var iterator2; executeSchedule(subscriber, scheduler, function() { iterator2 = input[iterator](); executeSchedule(subscriber, scheduler, function() { var _a4; var value; var done; try { _a4 = iterator2.next(), value = _a4.value, done = _a4.done; } catch (err) { subscriber.error(err); return; } if (done) { subscriber.complete(); } else { subscriber.next(value); } }, 0, true); }); return function() { return isFunction2(iterator2 === null || iterator2 === void 0 ? void 0 : iterator2.return) && iterator2.return(); }; }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js function scheduleAsyncIterable(input, scheduler) { if (!input) { throw new Error("Iterable cannot be null"); } return new Observable(function(subscriber) { executeSchedule(subscriber, scheduler, function() { var iterator2 = input[Symbol.asyncIterator](); executeSchedule(subscriber, scheduler, function() { iterator2.next().then(function(result) { if (result.done) { subscriber.complete(); } else { subscriber.next(result.value); } }); }, 0, true); }); }); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js function scheduleReadableStreamLike(input, scheduler) { return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler); } // node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js function scheduled(input, scheduler) { if (input != null) { if (isInteropObservable(input)) { return scheduleObservable(input, scheduler); } if (isArrayLike2(input)) { return scheduleArray(input, scheduler); } if (isPromise(input)) { return schedulePromise(input, scheduler); } if (isAsyncIterable(input)) { return scheduleAsyncIterable(input, scheduler); } if (isIterable(input)) { return scheduleIterable(input, scheduler); } if (isReadableStreamLike(input)) { return scheduleReadableStreamLike(input, scheduler); } } throw createInvalidObservableTypeError(input); } // node_modules/rxjs/dist/esm5/internal/observable/from.js function from(input, scheduler) { return scheduler ? scheduled(input, scheduler) : innerFrom(input); } // node_modules/rxjs/dist/esm5/internal/observable/of.js function of() { var args = []; for (var _i5 = 0; _i5 < arguments.length; _i5++) { args[_i5] = arguments[_i5]; } var scheduler = popScheduler(args); return from(args, scheduler); } // node_modules/rxjs/dist/esm5/internal/util/isObservable.js function isObservable(obj) { return !!obj && (obj instanceof Observable || isFunction2(obj.lift) && isFunction2(obj.subscribe)); } // node_modules/rxjs/dist/esm5/internal/util/EmptyError.js var EmptyError = createErrorClass(function(_super) { return function EmptyErrorImpl() { _super(this); this.name = "EmptyError"; this.message = "no elements in sequence"; }; }); // node_modules/rxjs/dist/esm5/internal/firstValueFrom.js function firstValueFrom(source, config3) { var hasConfig = typeof config3 === "object"; return new Promise(function(resolve, reject) { var subscriber = new SafeSubscriber({ next: function(value) { resolve(value); subscriber.unsubscribe(); }, error: reject, complete: function() { if (hasConfig) { resolve(config3.defaultValue); } else { reject(new EmptyError()); } } }); source.subscribe(subscriber); }); } // node_modules/rxjs/dist/esm5/internal/operators/map.js function map(project, thisArg) { return operate(function(source, subscriber) { var index = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { subscriber.next(project.call(thisArg, value, index++)); })); }); } // node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js var isArray2 = Array.isArray; function callOrApply(fn3, args) { return isArray2(args) ? fn3.apply(void 0, __spreadArray([], __read(args))) : fn3(args); } function mapOneOrManyArgs(fn3) { return map(function(args) { return callOrApply(fn3, args); }); } // node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js var isArray3 = Array.isArray; var getPrototypeOf = Object.getPrototypeOf; var objectProto12 = Object.prototype; var getKeys = Object.keys; function argsArgArrayOrObject(args) { if (args.length === 1) { var first_1 = args[0]; if (isArray3(first_1)) { return { args: first_1, keys: null }; } if (isPOJO(first_1)) { var keys = getKeys(first_1); return { args: keys.map(function(key) { return first_1[key]; }), keys }; } } return { args, keys: null }; } function isPOJO(obj) { return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto12; } // node_modules/rxjs/dist/esm5/internal/util/createObject.js function createObject(keys, values) { return keys.reduce(function(result, key, i) { return result[key] = values[i], result; }, {}); } // node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js function combineLatest() { var args = []; for (var _i5 = 0; _i5 < arguments.length; _i5++) { args[_i5] = arguments[_i5]; } var scheduler = popScheduler(args); var resultSelector = popResultSelector(args); var _a4 = argsArgArrayOrObject(args), observables = _a4.args, keys = _a4.keys; if (observables.length === 0) { return from([], scheduler); } var result = new Observable(combineLatestInit(observables, scheduler, keys ? function(values) { return createObject(keys, values); } : identity2)); return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result; } function combineLatestInit(observables, scheduler, valueTransform) { if (valueTransform === void 0) { valueTransform = identity2; } return function(subscriber) { maybeSchedule(scheduler, function() { var length = observables.length; var values = new Array(length); var active = length; var remainingFirstValues = length; var _loop_1 = function(i2) { maybeSchedule(scheduler, function() { var source = from(observables[i2], scheduler); var hasFirstValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { values[i2] = value; if (!hasFirstValue) { hasFirstValue = true; remainingFirstValues--; } if (!remainingFirstValues) { subscriber.next(valueTransform(values.slice())); } }, function() { if (!--active) { subscriber.complete(); } })); }, subscriber); }; for (var i = 0; i < length; i++) { _loop_1(i); } }, subscriber); }; } function maybeSchedule(scheduler, execute, subscription) { if (scheduler) { executeSchedule(subscription, scheduler, execute); } else { execute(); } } // node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) { var buffer = []; var active = 0; var index = 0; var isComplete = false; var checkComplete = function() { if (isComplete && !buffer.length && !active) { subscriber.complete(); } }; var outerNext = function(value) { return active < concurrent ? doInnerSub(value) : buffer.push(value); }; var doInnerSub = function(value) { expand && subscriber.next(value); active++; var innerComplete = false; innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function(innerValue) { onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue); if (expand) { outerNext(innerValue); } else { subscriber.next(innerValue); } }, function() { innerComplete = true; }, void 0, function() { if (innerComplete) { try { active--; var _loop_1 = function() { var bufferedValue = buffer.shift(); if (innerSubScheduler) { executeSchedule(subscriber, innerSubScheduler, function() { return doInnerSub(bufferedValue); }); } else { doInnerSub(bufferedValue); } }; while (buffer.length && active < concurrent) { _loop_1(); } checkComplete(); } catch (err) { subscriber.error(err); } } })); }; source.subscribe(createOperatorSubscriber(subscriber, outerNext, function() { isComplete = true; checkComplete(); })); return function() { additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer(); }; } // node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js function mergeMap(project, resultSelector, concurrent) { if (concurrent === void 0) { concurrent = Infinity; } if (isFunction2(resultSelector)) { return mergeMap(function(a, i) { return map(function(b, ii4) { return resultSelector(a, b, i, ii4); })(innerFrom(project(a, i))); }, concurrent); } else if (typeof resultSelector === "number") { concurrent = resultSelector; } return operate(function(source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); }); } // node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js function mergeAll(concurrent) { if (concurrent === void 0) { concurrent = Infinity; } return mergeMap(identity2, concurrent); } // node_modules/rxjs/dist/esm5/internal/observable/merge.js function merge2() { var args = []; for (var _i5 = 0; _i5 < arguments.length; _i5++) { args[_i5] = arguments[_i5]; } var scheduler = popScheduler(args); var concurrent = popNumber(args, Infinity); var sources = args; return !sources.length ? EMPTY : sources.length === 1 ? innerFrom(sources[0]) : mergeAll(concurrent)(from(sources, scheduler)); } // node_modules/rxjs/dist/esm5/internal/operators/filter.js function filter(predicate, thisArg) { return operate(function(source, subscriber) { var index = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js function bufferWhen(closingSelector) { return operate(function(source, subscriber) { var buffer = null; var closingSubscriber = null; var openBuffer = function() { closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe(); var b = buffer; buffer = []; b && subscriber.next(b); innerFrom(closingSelector()).subscribe(closingSubscriber = createOperatorSubscriber(subscriber, openBuffer, noop)); }; openBuffer(); source.subscribe(createOperatorSubscriber(subscriber, function(value) { return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); }, function() { buffer && subscriber.next(buffer); subscriber.complete(); }, void 0, function() { return buffer = closingSubscriber = null; })); }); } // node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js function defaultIfEmpty(defaultValue) { return operate(function(source, subscriber) { var hasValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { hasValue = true; subscriber.next(value); }, function() { if (!hasValue) { subscriber.next(defaultValue); } subscriber.complete(); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/take.js function take(count) { return count <= 0 ? function() { return EMPTY; } : operate(function(source, subscriber) { var seen = 0; source.subscribe(createOperatorSubscriber(subscriber, function(value) { if (++seen <= count) { subscriber.next(value); if (count <= seen) { subscriber.complete(); } } })); }); } // node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js function distinctUntilChanged(comparator, keySelector) { if (keySelector === void 0) { keySelector = identity2; } comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare; return operate(function(source, subscriber) { var previousKey; var first2 = true; source.subscribe(createOperatorSubscriber(subscriber, function(value) { var currentKey = keySelector(value); if (first2 || !comparator(previousKey, currentKey)) { first2 = false; previousKey = currentKey; subscriber.next(value); } })); }); } function defaultCompare(a, b) { return a === b; } // node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js function throwIfEmpty(errorFactory) { if (errorFactory === void 0) { errorFactory = defaultErrorFactory; } return operate(function(source, subscriber) { var hasValue = false; source.subscribe(createOperatorSubscriber(subscriber, function(value) { hasValue = true; subscriber.next(value); }, function() { return hasValue ? subscriber.complete() : subscriber.error(errorFactory()); })); }); } function defaultErrorFactory() { return new EmptyError(); } // node_modules/rxjs/dist/esm5/internal/operators/first.js function first(predicate, defaultValue) { var hasDefaultValue = arguments.length >= 2; return function(source) { return source.pipe(predicate ? filter(function(v, i) { return predicate(v, i, source); }) : identity2, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function() { return new EmptyError(); })); }; } // node_modules/rxjs/dist/esm5/internal/operators/share.js function share(options) { if (options === void 0) { options = {}; } var _a4 = options.connector, connector = _a4 === void 0 ? function() { return new Subject(); } : _a4, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c4 = options.resetOnComplete, resetOnComplete = _c4 === void 0 ? true : _c4, _d3 = options.resetOnRefCountZero, resetOnRefCountZero = _d3 === void 0 ? true : _d3; return function(wrapperSource) { var connection; var resetConnection; var subject; var refCount = 0; var hasCompleted = false; var hasErrored = false; var cancelReset = function() { resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe(); resetConnection = void 0; }; var reset = function() { cancelReset(); connection = subject = void 0; hasCompleted = hasErrored = false; }; var resetAndUnsubscribe = function() { var conn = connection; reset(); conn === null || conn === void 0 ? void 0 : conn.unsubscribe(); }; return operate(function(source, subscriber) { refCount++; if (!hasErrored && !hasCompleted) { cancelReset(); } var dest = subject = subject !== null && subject !== void 0 ? subject : connector(); subscriber.add(function() { refCount--; if (refCount === 0 && !hasErrored && !hasCompleted) { resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero); } }); dest.subscribe(subscriber); if (!connection && refCount > 0) { connection = new SafeSubscriber({ next: function(value) { return dest.next(value); }, error: function(err) { hasErrored = true; cancelReset(); resetConnection = handleReset(reset, resetOnError, err); dest.error(err); }, complete: function() { hasCompleted = true; cancelReset(); resetConnection = handleReset(reset, resetOnComplete); dest.complete(); } }); innerFrom(source).subscribe(connection); } })(wrapperSource); }; } function handleReset(reset, on4) { var args = []; for (var _i5 = 2; _i5 < arguments.length; _i5++) { args[_i5 - 2] = arguments[_i5]; } if (on4 === true) { reset(); return; } if (on4 === false) { return; } var onSubscriber = new SafeSubscriber({ next: function() { onSubscriber.unsubscribe(); reset(); } }); return innerFrom(on4.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber); } // node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js function shareReplay(configOrBufferSize, windowTime, scheduler) { var _a4, _b, _c4; var bufferSize; var refCount = false; if (configOrBufferSize && typeof configOrBufferSize === "object") { _a4 = configOrBufferSize.bufferSize, bufferSize = _a4 === void 0 ? Infinity : _a4, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c4 = configOrBufferSize.refCount, refCount = _c4 === void 0 ? false : _c4, scheduler = configOrBufferSize.scheduler; } else { bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity; } return share({ connector: function() { return new ReplaySubject(bufferSize, windowTime, scheduler); }, resetOnError: true, resetOnComplete: false, resetOnRefCountZero: refCount }); } // node_modules/rxjs/dist/esm5/internal/operators/skip.js function skip(count) { return filter(function(_2, index) { return count <= index; }); } // node_modules/rxjs/dist/esm5/internal/operators/switchMap.js function switchMap(project, resultSelector) { return operate(function(source, subscriber) { var innerSubscriber = null; var index = 0; var isComplete = false; var checkComplete = function() { return isComplete && !innerSubscriber && subscriber.complete(); }; source.subscribe(createOperatorSubscriber(subscriber, function(value) { innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe(); var innerIndex = 0; var outerIndex = index++; innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = createOperatorSubscriber(subscriber, function(innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function() { innerSubscriber = null; checkComplete(); })); }, function() { isComplete = true; checkComplete(); })); }); } // node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js function takeUntil(notifier) { return operate(function(source, subscriber) { innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function() { return subscriber.complete(); }, noop)); !subscriber.closed && source.subscribe(subscriber); }); } // node_modules/@univerjs/protocol/lib/es/index.js var O = /* @__PURE__ */ ((_2) => (_2[_2.UNIVER_UNKNOWN = 0] = "UNIVER_UNKNOWN", _2[_2.UNIVER_DOC = 1] = "UNIVER_DOC", _2[_2.UNIVER_SHEET = 2] = "UNIVER_SHEET", _2[_2.UNIVER_SLIDE = 3] = "UNIVER_SLIDE", _2[_2.UNIVER_PROJECT = 4] = "UNIVER_PROJECT", _2[_2.UNRECOGNIZED = -1] = "UNRECOGNIZED", _2))(O || {}); var R = /* @__PURE__ */ ((_2) => (_2[_2.View = 0] = "View", _2[_2.Edit = 1] = "Edit", _2[_2.ManageCollaborator = 2] = "ManageCollaborator", _2[_2.Print = 3] = "Print", _2[_2.Duplicate = 4] = "Duplicate", _2[_2.Comment = 5] = "Comment", _2[_2.Copy = 6] = "Copy", _2[_2.Share = 7] = "Share", _2[_2.Export = 8] = "Export", _2[_2.MoveWorksheet = 9] = "MoveWorksheet", _2[_2.DeleteWorksheet = 10] = "DeleteWorksheet", _2[_2.HideWorksheet = 11] = "HideWorksheet", _2[_2.RenameWorksheet = 12] = "RenameWorksheet", _2[_2.CreateWorksheet = 13] = "CreateWorksheet", _2[_2.SetWorksheetStyle = 14] = "SetWorksheetStyle", _2[_2.EditWorksheetCell = 15] = "EditWorksheetCell", _2[_2.InsertHyperlink = 16] = "InsertHyperlink", _2[_2.Sort = 17] = "Sort", _2[_2.Filter = 18] = "Filter", _2[_2.PivotTable = 19] = "PivotTable", _2[_2.FloatImg = 20] = "FloatImg", _2[_2.History = 21] = "History", _2[_2.RwHgtClWdt = 22] = "RwHgtClWdt", _2[_2.ViemRwHgtClWdt = 23] = "ViemRwHgtClWdt", _2[_2.ViewFilter = 24] = "ViewFilter", _2[_2.MoveSheet = 25] = "MoveSheet", _2[_2.DeleteSheet = 26] = "DeleteSheet", _2[_2.HideSheet = 27] = "HideSheet", _2[_2.CopySheet = 28] = "CopySheet", _2[_2.RenameSheet = 29] = "RenameSheet", _2[_2.CreateSheet = 30] = "CreateSheet", _2[_2.SelectProtectedCells = 31] = "SelectProtectedCells", _2[_2.SelectUnProtectedCells = 32] = "SelectUnProtectedCells", _2[_2.SetCellStyle = 33] = "SetCellStyle", _2[_2.SetCellValue = 34] = "SetCellValue", _2[_2.SetRowStyle = 35] = "SetRowStyle", _2[_2.SetColumnStyle = 36] = "SetColumnStyle", _2[_2.InsertRow = 37] = "InsertRow", _2[_2.InsertColumn = 38] = "InsertColumn", _2[_2.DeleteRow = 39] = "DeleteRow", _2[_2.DeleteColumn = 40] = "DeleteColumn", _2[_2.EditExtraObject = 41] = "EditExtraObject", _2[_2.Delete = 42] = "Delete", _2[_2.RecoverHistory = 43] = "RecoverHistory", _2[_2.ViewHistory = 44] = "ViewHistory", _2[_2.CreatePermissionObject = 45] = "CreatePermissionObject", _2[_2.UNRECOGNIZED = -1] = "UNRECOGNIZED", _2))(R || {}); var T = /* @__PURE__ */ ((_2) => (_2[_2.Reader = 0] = "Reader", _2[_2.Editor = 1] = "Editor", _2[_2.Owner = 2] = "Owner", _2[_2.UNRECOGNIZED = -1] = "UNRECOGNIZED", _2))(T || {}); var S = /* @__PURE__ */ ((_2) => (_2[_2.Unkonwn = 0] = "Unkonwn", _2[_2.Workbook = 1] = "Workbook", _2[_2.Worksheet = 2] = "Worksheet", _2[_2.SelectRange = 3] = "SelectRange", _2[_2.Document = 4] = "Document", _2[_2.Slide = 5] = "Slide", _2[_2.UNRECOGNIZED = -1] = "UNRECOGNIZED", _2))(S || {}); var P = /* @__PURE__ */ ((_2) => (_2[_2.SomeCollaborator = 0] = "SomeCollaborator", _2[_2.AllCollaborator = 1] = "AllCollaborator", _2[_2.OneSelf = 2] = "OneSelf", _2[_2.UNRECOGNIZED = -1] = "UNRECOGNIZED", _2))(P || {}); // node_modules/nanoid/url-alphabet/index.js var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; // node_modules/nanoid/index.browser.js var random = (bytes) => crypto.getRandomValues(new Uint8Array(bytes)); var customRandom = (alphabet, defaultSize, getRandom) => { let mask = (2 << Math.log2(alphabet.length - 1)) - 1; let step = -~(1.6 * mask * defaultSize / alphabet.length); return (size = defaultSize) => { let id4 = ""; while (true) { let bytes = getRandom(step); let j4 = step | 0; while (j4--) { id4 += alphabet[bytes[j4] & mask] || ""; if (id4.length >= size) return id4; } } }; }; var customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size | 0, random); var nanoid = (size = 21) => { let id4 = ""; let bytes = crypto.getRandomValues(new Uint8Array(size |= 0)); while (size--) { id4 += urlAlphabet[bytes[size] & 63]; } return id4; }; // node_modules/@univerjs/core/lib/es/index.js var S2 = __toESM(require_dist2()); // node_modules/numfmt/lib/index.js var lib_exports = {}; __export(lib_exports, { addLocale: () => addLocale, dateFromSerial: () => dateFromSerial, dateToSerial: () => dateToSerial, dec2frac: () => dec2frac, format: () => format, formatColor: () => formatColor2, getFormatDateInfo: () => getFormatDateInfo, getFormatInfo: () => getFormatInfo, getLocale: () => getLocale, isDateFormat: () => isDateFormat, isPercentFormat: () => isPercentFormat, isTextFormat: () => isTextFormat, isValidFormat: () => isValidFormat, parseBool: () => parseBool, parseDate: () => parseDate, parseLocale: () => parseLocale, parseNumber: () => parseNumber, parseTime: () => parseTime, parseValue: () => parseValue, round: () => round, tokenTypes: () => tokenTypes, tokenize: () => tokenize }); // node_modules/numfmt/lib/constants.js var u_YEAR = 2; var u_MONTH = 2 ** 2; var u_DAY = 2 ** 3; var u_HOUR = 2 ** 4; var u_MIN = 2 ** 5; var u_SEC = 2 ** 6; var u_DSEC = 2 ** 7; var u_CSEC = 2 ** 8; var u_MSEC = 2 ** 9; var MIN_S_DATE = 0; var MAX_S_DATE = 2958466; var MIN_L_DATE = -694324; var MAX_L_DATE = 35830291; var EPOCH_1904 = -1; var EPOCH_1900 = 1; var EPOCH_1317 = 6; var TOKEN_GENERAL = "general"; var TOKEN_HASH = "hash"; var TOKEN_ZERO = "zero"; var TOKEN_QMARK = "qmark"; var TOKEN_SLASH = "slash"; var TOKEN_GROUP = "group"; var TOKEN_SCALE = "scale"; var TOKEN_COMMA = "comma"; var TOKEN_BREAK = "break"; var TOKEN_TEXT = "text"; var TOKEN_PLUS = "plus"; var TOKEN_MINUS = "minus"; var TOKEN_POINT = "point"; var TOKEN_SPACE = "space"; var TOKEN_PERCENT = "percent"; var TOKEN_DIGIT = "digit"; var TOKEN_CALENDAR = "calendar"; var TOKEN_ERROR = "error"; var TOKEN_DATETIME = "datetime"; var TOKEN_DURATION = "duration"; var TOKEN_CONDITION = "condition"; var TOKEN_DBNUM = "dbnum"; var TOKEN_NATNUM = "natnum"; var TOKEN_LOCALE = "locale"; var TOKEN_COLOR = "color"; var TOKEN_MODIFIER = "modifier"; var TOKEN_AMPM = "ampm"; var TOKEN_ESCAPED = "escaped"; var TOKEN_STRING = "string"; var TOKEN_SKIP = "skip"; var TOKEN_EXP = "exp"; var TOKEN_FILL = "fill"; var TOKEN_PAREN = "paren"; var TOKEN_CHAR = "char"; var indexColors = [ "#000000", "#FFFFFF", "#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF", "#800000", "#008000", "#000080", "#808000", "#800080", "#008080", "#C0C0C0", "#808080", "#9999FF", "#993366", "#FFFFCC", "#CCFFFF", "#660066", "#FF8080", "#0066CC", "#CCCCFF", "#000080", "#FF00FF", "#FFFF00", "#00FFFF", "#800080", "#800000", "#008080", "#0000FF", "#00CCFF", "#CCFFFF", "#CCFFCC", "#FFFF99", "#99CCFF", "#FF99CC", "#CC99FF", "#FFCC99", "#3366FF", "#33CCCC", "#99CC00", "#FFCC00", "#FF9900", "#FF6600", "#666699", "#969696", "#003366", "#339966", "#003300", "#333300", "#993300", "#993366", "#333399", "#333333" ]; var currencySymbols = [ "\xA4", "$", "\xA3", "\xA5", "\u058F", "\u060B", "\u09F3", "\u0E3F", "\u17DB", "\u20A1", "\u20A6", "\u20A9", "\u20AA", "\u20AB", "\u20AC", "\u20AD", "\u20AE", "\u20B1", "\u20B2", "\u20B4", "\u20B8", "\u20B9", "\u20BA", "\u20BC", "\u20BD", "\u20BE", "\u20BF" ]; var reCurrencySymbols = new RegExp("[" + currencySymbols.join("") + "]"); // node_modules/numfmt/lib/codeToLocale.js var codeToLocale_default = Object.freeze({ 1078: "af", // Afrikaans 1052: "sq", // Albanian 1118: "am", // Amharic 5121: "ar_DZ", // Arabic - Algeria 15361: "ar_BH", // Arabic - Bahrain 3073: "ar_EG", // Arabic - Egypt 2049: "ar_IQ", // Arabic - Iraq 11265: "ar_JO", // Arabic - Jordan 13313: "ar_KW", // Arabic - Kuwait 12289: "ar_LB", // Arabic - Lebanon 4097: "ar_LY", // Arabic - Libya 6145: "ar_MA", // Arabic - Morocco 8193: "ar_OM", // Arabic - Oman 16385: "ar_QA", // Arabic - Qatar 1025: "ar_SA", // Arabic - Saudi Arabia 10241: "ar_SY", // Arabic - Syria 7169: "ar_TN", // Arabic - Tunisia 14337: "ar_AE", // Arabic - United Arab Emirates 9217: "ar_YE", // Arabic - Yemen 1067: "hy", // Armenian 1101: "as", // Assamese 2092: "az_AZ", // Azeri - Cyrillic 1068: "az_AZ", // Azeri - Latin 1069: "eu", // Basque 1059: "be", // Belarusian 2117: "bn", // Bengali - Bangladesh 1093: "bn_IN", // Bengali - India 5146: "bs", // Bosnian 1026: "bg", // Bulgarian 1109: "my", // Burmese 1027: "ca", // Catalan 2052: "zh_CN", // Chinese - China 3076: "zh_HK", // Chinese - Hong Kong SAR 5124: "zh_MO", // Chinese - Macau SAR 4100: "zh_SG", // Chinese - Singapore 1028: "zh_TW", // Chinese - Taiwan 1050: "hr", // Croatian 1029: "cs", // Czech 1030: "da", // Danish 1125: "dv", // Divehi; Dhivehi; Maldivian 2067: "nl_BE", // Dutch - Belgium 1043: "nl_NL", // Dutch - Netherlands 1126: "bin", // Edo 3081: "en_AU", // English - Australia 10249: "en_BZ", // English - Belize 4105: "en_CA", // English - Canada 9225: "en_CB", // English - Caribbean 2057: "en_GB", // English - Great Britain 16393: "en_IN", // English - India 6153: "en_IE", // English - Ireland 8201: "en_JM", // English - Jamaica 5129: "en_NZ", // English - New Zealand 13321: "en_PH", // English - Phillippines 7177: "en_ZA", // English - Southern Africa 11273: "en_TT", // English - Trinidad 1033: "en_US", // English - United States 12297: "en_ZW", // English - Zimbabwe 1061: "et", // Estonian 1071: "mk", // FYRO Macedonia 1080: "fo", // Faroese 1065: "fa", // Farsi - Persian 1124: "fil", // Filipino 1035: "fi", // Finnish 2060: "fr_BE", // French - Belgium 11276: "fr_CM", // French - Cameroon 3084: "fr_CA", // French - Canada 9228: "fr_CG", // French - Congo 12300: "fr_CI", // French - Cote d'Ivoire 1036: "fr_FR", // French - France 5132: "fr_LU", // French - Luxembourg 13324: "fr_ML", // French - Mali 6156: "fr_MC", // French - Monaco 14348: "fr_MA", // French - Morocco 10252: "fr_SN", // French - Senegal 4108: "fr_CH", // French - Switzerland 7180: "fr", // French - West Indies 1122: "fy_NL", // Frisian - Netherlands 2108: "gd_IE", // Gaelic - Ireland 1084: "gd", // Gaelic - Scotland 1110: "gl", // Galician 1079: "ka", // Georgian 3079: "de_AT", // German - Austria 1031: "de_DE", // German - Germany 5127: "de_LI", // German - Liechtenstein 4103: "de_LU", // German - Luxembourg 2055: "de_CH", // German - Switzerland 1032: "el", // Greek 1140: "gn", // Guarani - Paraguay 1095: "gu", // Gujarati 1279: "en", // HID (Human Interface Device) 1037: "he", // Hebrew 1081: "hi", // Hindi 1038: "hu", // Hungarian 1039: "is", // Icelandic 1136: "ig_NG", // Igbo - Nigeria 1057: "id", // Indonesian 1040: "it_IT", // Italian - Italy 2064: "it_CH", // Italian - Switzerland 1041: "ja", // Japanese 1099: "kn", // Kannada 1120: "ks", // Kashmiri 1087: "kk", // Kazakh 1107: "km", // Khmer 1111: "kok", // Konkani 1042: "ko", // Korean 1088: "ky", // Kyrgyz - Cyrillic 1108: "lo", // Lao 1142: "la", // Latin 1062: "lv", // Latvian 1063: "lt", // Lithuanian 2110: "ms_BN", // Malay - Brunei 1086: "ms_MY", // Malay - Malaysia 1100: "ml", // Malayalam 1082: "mt", // Maltese 1112: "mni", // Manipuri 1153: "mi", // Maori 1102: "mr", // Marathi 1104: "mn", // Mongolian 2128: "mn", // Mongolian 1121: "ne", // Nepali 1044: "no_NO", // Norwegian - Bokml 2068: "no_NO", // Norwegian - Nynorsk 1096: "or", // Oriya 1045: "pl", // Polish 1046: "pt_BR", // Portuguese - Brazil 2070: "pt_PT", // Portuguese - Portugal 1094: "pa", // Punjabi 1047: "rm", // Raeto-Romance 2072: "ro_MO", // Romanian - Moldova 1048: "ro_RO", // Romanian - Romania 1049: "ru", // Russian 2073: "ru_MO", // Russian - Moldova 1083: "se", // Sami Lappish 1103: "sa", // Sanskrit 3098: "sr_SP", // Serbian - Cyrillic 2074: "sr_SP", // Serbian - Latin 1072: "st", // Sesotho (Sutu) 1074: "tn", // Setsuana 1113: "sd", // Sindhi 1115: "si", // Sinhala; Sinhalese 1051: "sk", // Slovak 1060: "sl", // Slovenian 1143: "so", // Somali 1070: "sb", // Sorbian 11274: "es_AR", // Spanish - Argentina 16394: "es_BO", // Spanish - Bolivia 13322: "es_CL", // Spanish - Chile 9226: "es_CO", // Spanish - Colombia 5130: "es_CR", // Spanish - Costa Rica 7178: "es_DO", // Spanish - Dominican Republic 12298: "es_EC", // Spanish - Ecuador 17418: "es_SV", // Spanish - El Salvador 4106: "es_GT", // Spanish - Guatemala 18442: "es_HN", // Spanish - Honduras 2058: "es_MX", // Spanish - Mexico 19466: "es_NI", // Spanish - Nicaragua 6154: "es_PA", // Spanish - Panama 15370: "es_PY", // Spanish - Paraguay 10250: "es_PE", // Spanish - Peru 20490: "es_PR", // Spanish - Puerto Rico 1034: "es_ES", // Spanish - Spain (Traditional) 14346: "es_UY", // Spanish - Uruguay 8202: "es_VE", // Spanish - Venezuela 1089: "sw", // Swahili 2077: "sv_FI", // Swedish - Finland 1053: "sv_SE", // Swedish - Sweden 1114: "syc", // Syriac 1064: "tg", // Tajik 1097: "ta", // Tamil 1092: "tt", // Tatar 1098: "te", // Telugu 1054: "th", // Thai 1105: "bo", // Tibetan 1073: "ts", // Tsonga 1055: "tr", // Turkish 1090: "tk", // Turkmen 1058: "uk", // Ukrainian 1056: "ur", // Urdu 2115: "uz_UZ", // Uzbek - Cyrillic 1091: "uz_UZ", // Uzbek - Latin 1075: "ve", // Venda 1066: "vi", // Vietnamese 1106: "cy", // Welsh 1076: "xh", // Xhosa 1085: "yi", // Yiddish 1077: "zu" // Zulu }); // node_modules/numfmt/lib/locale.js var re_locale = /^([a-z\d]+)(?:[_-]([a-z\d]+))?(?:\.([a-z\d]+))?(?:@([a-z\d]+))?$/i; var locales = {}; var _ = (str, tilde = "") => str.replace(/~/g, tilde).split(";"); var xm = (o, ml4 = 0, dl4 = 0) => { if (!o.mmm) { o.mmm = ml4 < 1 ? o.mmmm.concat() : o.mmmm.map((d) => { const s = d.slice(0, ml4 % 10); return s + (ml4 < 10 || d === s ? "" : "."); }); } if (!o.ddd) { o.ddd = dl4 < 1 ? o.dddd.concat() : o.dddd.map((d) => { const s = d.slice(0, dl4 % 10); return s + (dl4 < 10 || d === s ? "" : "."); }); } if (!o.mmm6 && o.mmmm6) { o.mmm6 = o.mmmm6; } return o; }; var baseLocaleData = { group: "\xA0", decimal: ".", positive: "+", negative: "-", percent: "%", exponent: "E", nan: "NaN", infinity: "\u221E", ampm: _("AM;PM"), mmmm6: _("Muharram;Safar;Rabi\u02BB I;Rabi\u02BB II;Jumada I;Jumada II;Rajab;Sha\u02BBban;Ramadan;Shawwal;Dhu\u02BBl-Qi\u02BBdah;Dhu\u02BBl-Hijjah"), mmm6: _("Muh.;Saf.;Rab. I;Rab. II;Jum. I;Jum. II;Raj.;Sha.;Ram.;Shaw.;Dhu\u02BBl-Q.;Dhu\u02BBl-H."), mmmm: _("January;February;March;April;May;June;July;August;September;October;November;December"), mmm: _("Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec"), dddd: _("Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday"), ddd: _("Sun;Mon;Tue;Wed;Thu;Fri;Sat"), bool: _("TRUE;FALSE"), preferMDY: false }; function parseLocale(locale) { const lm2 = re_locale.exec(locale); if (!lm2) { throw new SyntaxError(`Malformed locale: ${locale}`); } return { lang: lm2[1] + (lm2[2] ? "_" + lm2[2] : ""), language: lm2[1], territory: lm2[2] || "" }; } function resolveLocale(l4e) { if (typeof l4e === "number") { return codeToLocale_default[l4e & 65535] || null; } const wincode = parseInt(l4e, 16); if (isFinite(wincode) && codeToLocale_default[wincode & 65535]) { return codeToLocale_default[wincode & 65535] || null; } if (re_locale.test(l4e)) { return l4e; } return null; } function getLocale(locale) { const tag2 = resolveLocale(locale); let obj = null; if (tag2) { const c = parseLocale(tag2); obj = locales[c.lang] || locales[c.language] || null; } return obj; } function createLocale(data) { return Object.assign({}, baseLocaleData, data); } function addLocale(localeSettings, l4e) { const c = typeof l4e === "object" ? l4e : parseLocale(l4e); locales[c.lang] = createLocale(localeSettings); if (c.language !== c.lang && !locales[c.language]) { locales[c.language] = createLocale(localeSettings); } return locales[c.lang]; } var defaultLocale = createLocale({ group: ",", preferMDY: true }); defaultLocale.isDefault = true; addLocale({ group: ",", ampm: _("\u4E0A\u5348;\u4E0B\u5348"), mmmm: _("\u4E00\u6708;\u4E8C\u6708;\u4E09\u6708;\u56DB\u6708;\u4E94\u6708;\u516D\u6708;\u4E03\u6708;\u516B\u6708;\u4E5D\u6708;\u5341\u6708;\u5341\u4E00\u6708;\u5341\u4E8C\u6708"), mmm: _("1\u6708;2\u6708;3\u6708;4\u6708;5\u6708;6\u6708;7\u6708;8\u6708;9\u6708;10\u6708;11\u6708;12\u6708"), dddd: _("~\u65E5;~\u4E00;~\u4E8C;~\u4E09;~\u56DB;~\u4E94;~\u516D", "\u661F\u671F"), ddd: _("\u5468\u65E5;\u5468\u4E00;\u5468\u4E8C;\u5468\u4E09;\u5468\u56DB;\u5468\u4E94;\u5468\u516D") }, "zh_CN"); var _zh = { group: ",", ampm: _("\u4E0A\u5348;\u4E0B\u5348"), mmmm: _("1\u6708;2\u6708;3\u6708;4\u6708;5\u6708;6\u6708;7\u6708;8\u6708;9\u6708;10\u6708;11\u6708;12\u6708"), mmm: _("1\u6708;2\u6708;3\u6708;4\u6708;5\u6708;6\u6708;7\u6708;8\u6708;9\u6708;10\u6708;11\u6708;12\u6708"), dddd: _("~\u65E5;~\u4E00;~\u4E8C;~\u4E09;~\u56DB;~\u4E94;~\u516D", "\u661F\u671F"), ddd: _("\u5468\u65E5;\u5468\u4E00;\u5468\u4E8C;\u5468\u4E09;\u5468\u56DB;\u5468\u4E94;\u5468\u516D") }; addLocale({ ..._zh, nan: "\u975E\u6578\u503C", dddd: _("~\u65E5;~\u4E00;~\u4E8C;~\u4E09;~\u56DB;~\u4E94;~\u516D", "\u661F\u671F") }, "zh_TW"); addLocale({ ..._zh, dddd: _("~\u65E5;~\u4E00;~\u4E8C;~\u4E09;~\u56DB;~\u4E94;~\u516D", "\u661F\u671F") }, "zh_HK"); addLocale({ ..._zh, ampm: _("\u5348\u524D;\u5348\u5F8C"), dddd: _("\u65E5~;\u6708~;\u706B~;\u6C34~;\u6728~;\u91D1~;\u571F~", "\u66DC\u65E5"), ddd: _("\u65E5;\u6708;\u706B;\u6C34;\u6728;\u91D1;\u571F") }, "ja"); addLocale({ group: ",", ampm: _("\uC624\uC804;\uC624\uD6C4"), mmmm: _("1\uC6D4;2\uC6D4;3\uC6D4;4\uC6D4;5\uC6D4;6\uC6D4;7\uC6D4;8\uC6D4;9\uC6D4;10\uC6D4;11\uC6D4;12\uC6D4"), mmm: _("1\uC6D4;2\uC6D4;3\uC6D4;4\uC6D4;5\uC6D4;6\uC6D4;7\uC6D4;8\uC6D4;9\uC6D4;10\uC6D4;11\uC6D4;12\uC6D4"), dddd: _("\uC77C\uC694\uC77C;\uC6D4\uC694\uC77C;\uD654\uC694\uC77C;\uC218\uC694\uC77C;\uBAA9\uC694\uC77C;\uAE08\uC694\uC77C;\uD1A0\uC694\uC77C"), ddd: _("\uC77C;\uC6D4;\uD654;\uC218;\uBAA9;\uAE08;\uD1A0") }, "ko"); addLocale({ group: ",", ampm: _("\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E17\u0E35\u0E48\u0E22\u0E07;\u0E2B\u0E25\u0E31\u0E07\u0E40\u0E17\u0E35\u0E48\u0E22\u0E07"), mmmm: _("\u0E21\u0E01\u0E23~;\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C;\u0E21\u0E35\u0E19~;\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19;\u0E1E\u0E24\u0E29\u0E20~;\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19;\u0E01\u0E23\u0E01\u0E0E~;\u0E2A\u0E34\u0E07\u0E2B~;\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19;\u0E15\u0E38\u0E25~;\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19;\u0E18\u0E31\u0E19\u0E27~", "\u0E32\u0E04\u0E21"), mmm: _("\u0E21.\u0E04.;\u0E01.\u0E1E.;\u0E21\u0E35.\u0E04.;\u0E40\u0E21.\u0E22.;\u0E1E.\u0E04.;\u0E21\u0E34.\u0E22.;\u0E01.\u0E04.;\u0E2A.\u0E04.;\u0E01.\u0E22.;\u0E15.\u0E04.;\u0E1E.\u0E22.;\u0E18.\u0E04."), dddd: _("\u0E27\u0E31\u0E19\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C;\u0E27\u0E31\u0E19\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C;\u0E27\u0E31\u0E19\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23;\u0E27\u0E31\u0E19\u0E1E\u0E38\u0E18;\u0E27\u0E31\u0E19\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35;\u0E27\u0E31\u0E19\u0E28\u0E38\u0E01\u0E23\u0E4C;\u0E27\u0E31\u0E19\u0E40\u0E2A\u0E32\u0E23\u0E4C"), ddd: _("\u0E2D\u0E32.;\u0E08.;\u0E2D.;\u0E1E.;\u0E1E\u0E24.;\u0E28.;\u0E2A.") }, "th"); addLocale(xm({ decimal: ",", ampm: _("dop.;odp."), mmmm: _("ledna;\xFAnora;b\u0159ezna;dubna;kv\u011Btna;\u010Dervna;\u010Dervence;srpna;z\xE1\u0159\xED;\u0159\xEDjna;listopadu;prosince"), mmm: _("I;II;III;IV;V;VI;VII;VIII;IX;X;XI;XII"), dddd: _("ned\u011Ble;pond\u011Bl\xED;\xFAter\xFD;st\u0159eda;\u010Dtvrtek;p\xE1tek;sobota"), bool: _("PRAVDA;NEPRAVDA") }, -1, 2), "cs"); addLocale(xm({ group: ".", decimal: ",", mmmm: _("januar;februar;marts;april;maj;juni;juli;august;september;oktober;november;december"), dddd: _("s\xF8n~;man~;tirs~;ons~;tors~;fre~;l\xF8r~", "dag"), bool: _("SAND;FALSK") }, 13, 13), "da"); addLocale(xm({ group: ".", decimal: ",", ampm: _("a.m.;p.m."), mmmm: _("januari;februari;maart;april;mei;juni;juli;augustus;september;oktober;november;december"), mmm: _("jan.;feb.;mrt.;apr.;mei;jun.;jul.;aug.;sep.;okt.;nov.;dec."), dddd: _("zondag;maandag;dinsdag;woensdag;donderdag;vrijdag;zaterdag"), bool: _("WAAR;ONWAAR") }, -1, 2), "nl"); addLocale({ group: ",", preferMDY: true }, "en"); addLocale({ group: ",", preferMDY: true }, "en_US"); addLocale({ group: "," }, "en_AU"); addLocale({ group: "," }, "en_CA"); addLocale({ group: "," }, "en_GB"); addLocale({ group: ",", mmm: _("Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sept;Oct;Nov;Dec") }, "en_IE"); addLocale(xm({ decimal: ",", nan: "ep\xE4luku", ampm: _("ap.;ip."), mmmm: _("tammi~;helmi~;maalis~;huhti~;touko~;kes\xE4~;hein\xE4~;elo~;syys~;loka~;marras~;joulu~", "kuuta"), mmm: _("tammik.;helmik.;maalisk.;huhtik.;toukok.;kes\xE4k.;hein\xE4k.;elok.;syysk.;lokak.;marrask.;jouluk."), dddd: _("sunnun~;maanan~;tiis~;keskiviikkona;tors~;perjan~;lauan~", "taina"), bool: _("TOSI;EP\xC4TOSI") }, -1, 2), "fi"); var _fr = xm({ group: "\u202F", decimal: ",", mmmm: _("janvier;f\xE9vrier;mars;avril;mai;juin;juillet;ao\xFBt;septembre;octobre;novembre;d\xE9cembre"), mmm: _("janv.;f\xE9vr.;mars;avr.;mai;juin;juil.;ao\xFBt;sept.;oct.;nov.;d\xE9c."), dddd: _("~manche;lun~;mar~;mercre~;jeu~;vendre~;same~", "di"), bool: _("VRAI;FAUX") }, -1, 13); addLocale({ ..._fr }, "fr"); addLocale({ ..._fr, mmm: _("janv.;f\xE9vr.;mars;avr.;mai;juin;juill.;ao\xFBt;sept.;oct.;nov.;d\xE9c.") }, "fr_CA"); addLocale({ group: "'", decimal: ".", ..._fr }, "fr_CH"); var _de = xm({ mmmm: _("Januar;Februar;M\xE4rz;April;Mai;Juni;Juli;August;September;Oktober;November;Dezember"), mmm: _("Jan.;Feb.;M\xE4rz;Apr.;Mai;Juni;Juli;Aug.;Sept.;Okt.;Nov.;Dez."), dddd: _("Sonn~;Mon~;Diens~;Mittwoch;Donners~;Frei~;Sams~", "tag"), bool: _("WAHR;FALSCH") }, -1, 12); addLocale({ group: ".", decimal: ",", ..._de }, "de"); addLocale({ group: "'", decimal: ".", ..._de }, "de_CH"); addLocale(xm({ group: ".", decimal: ",", ampm: _("\u03C0.\u03BC.;\u03BC.\u03BC."), mmmm: _("\u0399\u03B1\u03BD\u03BF\u03C5\u03B1\u03C1~;\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03B1\u03C1~;\u039C\u03B1\u03C1\u03C4~;\u0391\u03C0\u03C1\u03B9\u03BB~;\u039C\u03B1\u0390\u03BF\u03C5;\u0399\u03BF\u03C5\u03BD~;\u0399\u03BF\u03C5\u03BB~;\u0391\u03C5\u03B3\u03BF\u03CD\u03C3\u03C4\u03BF\u03C5;\u03A3\u03B5\u03C0\u03C4\u03B5\u03BC\u03B2\u03C1~;\u039F\u03BA\u03C4\u03C9\u03B2\u03C1~;\u039D\u03BF\u03B5\u03BC\u03B2\u03C1~;\u0394\u03B5\u03BA\u03B5\u03BC\u03B2\u03C1~", "\u03AF\u03BF\u03C5"), mmm: _("\u0399\u03B1\u03BD;\u03A6\u03B5\u03B2;\u039C\u03B1\u03C1;\u0391\u03C0\u03C1;\u039C\u03B1\u0390;\u0399\u03BF\u03C5\u03BD;\u0399\u03BF\u03C5\u03BB;\u0391\u03C5\u03B3;\u03A3\u03B5\u03C0;\u039F\u03BA\u03C4;\u039D\u03BF\u03B5;\u0394\u03B5\u03BA"), dddd: _("\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE;\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1;\u03A4\u03C1\u03AF\u03C4\u03B7;\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7;\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7;\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE;\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF") }, -1, 3), "el"); addLocale({ decimal: ",", ampm: _("de.;du."), mmmm: _("janu\xE1r;febru\xE1r;m\xE1rcius;\xE1prilis;m\xE1jus;j\xFAnius;j\xFAlius;augusztus;szeptember;okt\xF3ber;november;december"), mmm: _("jan.;febr.;m\xE1rc.;\xE1pr.;m\xE1j.;j\xFAn.;j\xFAl.;aug.;szept.;okt.;nov.;dec."), dddd: _("vas\xE1rnap;h\xE9tf\u0151;kedd;szerda;cs\xFCt\xF6rt\xF6k;p\xE9ntek;szombat"), ddd: _("V;H;K;Sze;Cs;P;Szo"), bool: _("IGAZ;HAMIS") }, "hu"); addLocale(xm({ group: ".", decimal: ",", ampm: _("f.h.;e.h."), mmmm: _("jan\xFAar;febr\xFAar;mars;apr\xEDl;ma\xED;j\xFAn\xED;j\xFAl\xED;\xE1g\xFAst;september;okt\xF3ber;n\xF3vember;desember"), dddd: _("sunnu~;m\xE1nu~;\xFEri\xF0ju~;mi\xF0viku~;fimmtu~;f\xF6stu~;laugar~", "dagur") }, 13, 13), "is"); addLocale(xm({ group: ".", decimal: ",", mmmm: _("Januari;Februari;Maret;April;Mei;Juni;Juli;Agustus;September;Oktober;November;Desember"), dddd: _("Minggu;Senin;Selasa;Rabu;Kamis;Jumat;Sabtu") }, 3, 3), "id"); var _it = xm({ mmmm: _("gennaio;febbraio;marzo;aprile;maggio;giugno;luglio;agosto;settembre;ottobre;novembre;dicembre"), dddd: _("domenica;luned\xEC;marted\xEC;mercoled\xEC;gioved\xEC;venerd\xEC;sabato"), bool: _("VERO;FALSO") }, 3, 3); addLocale({ group: ".", decimal: ",", ..._it }, "it"); addLocale({ group: "'", decimal: ".", ..._it }, "it_CH"); var _no = { decimal: ",", ampm: _("a.m.;p.m."), mmmm: _("januar;februar;mars;april;mai;juni;juli;august;september;oktober;november;desember"), mmm: _("jan.;feb.;mar.;apr.;mai;jun.;jul.;aug.;sep.;okt.;nov.;des."), dddd: _("s\xF8n~;man~;tirs~;ons~;tors~;fre~;l\xF8r~", "dag"), bool: _("SANN;USANN") }; addLocale(xm({ ..._no }, -1, 13), "nb"); addLocale(xm({ ..._no }, -1, 13), "no"); addLocale(xm({ decimal: ",", mmmm: _("stycznia;lutego;marca;kwietnia;maja;czerwca;lipca;sierpnia;wrze\u015Bnia;pa\u017Adziernika;listopada;grudnia"), dddd: _("niedziela;poniedzia\u0142ek;wtorek;\u015Broda;czwartek;pi\u0105tek;sobota"), ddd: _("niedz.;pon.;wt.;\u015Br.;czw.;pt.;sob."), bool: _("PRAWDA;FA\u0141SZ") }, 3, -1), "pl"); var _pt = { group: ".", decimal: ",", mmmm: _("janeiro;fevereiro;mar\xE7o;abril;maio;junho;julho;agosto;setembro;outubro;novembro;dezembro"), dddd: _("domingo;segunda-feira;ter\xE7a-feira;quarta-feira;quinta-feira;sexta-feira;s\xE1bado"), bool: _("VERDADEIRO;FALSO") }; addLocale(xm(_pt, 13, 13), "pt"); addLocale(xm(_pt, 13, 13), "pt_BR"); addLocale({ decimal: ",", nan: "\u043D\u0435\xA0\u0447\u0438\u0441\u043B\u043E", mmmm: _("\u044F\u043D\u0432\u0430\u0440\u044F;\u0444\u0435\u0432\u0440\u0430\u043B\u044F;\u043C\u0430\u0440\u0442\u0430;\u0430\u043F\u0440\u0435\u043B\u044F;\u043C\u0430\u044F;\u0438\u044E\u043D\u044F;\u0438\u044E\u043B\u044F;\u0430\u0432\u0433\u0443\u0441\u0442\u0430;\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F;\u043E\u043A\u0442\u044F\u0431\u0440\u044F;\u043D\u043E\u044F\u0431\u0440\u044F;\u0434\u0435\u043A\u0430\u0431\u0440\u044F"), mmm: _("\u044F\u043D\u0432.;\u0444\u0435\u0432\u0440.;\u043C\u0430\u0440.;\u0430\u043F\u0440.;\u043C\u0430\u044F;\u0438\u044E\u043D.;\u0438\u044E\u043B.;\u0430\u0432\u0433.;\u0441\u0435\u043D\u0442.;\u043E\u043A\u0442.;\u043D\u043E\u044F\u0431.;\u0434\u0435\u043A."), dddd: _("\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435;\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A;\u0432\u0442\u043E\u0440\u043D\u0438\u043A;\u0441\u0440\u0435\u0434\u0430;\u0447\u0435\u0442\u0432\u0435\u0440\u0433;\u043F\u044F\u0442\u043D\u0438\u0446\u0430;\u0441\u0443\u0431\u0431\u043E\u0442\u0430"), ddd: _("\u0432\u0441;\u043F\u043D;\u0432\u0442;\u0441\u0440;\u0447\u0442;\u043F\u0442;\u0441\u0431"), mmmm6: _("\u0440\u0430\u043C\u0430\u0434\u0430\u043D;\u0448\u0430\u0432\u0432\u0430\u043B\u044C;\u0437\u0443\u043B\u044C-\u043A\u0430\u0430\u0434\u0430;\u0437\u0443\u043B\u044C-\u0445\u0438\u0434\u0436\u0436\u0430;\u043C\u0443\u0445\u0430\u0440\u0440\u0430\u043C;\u0440\u0430\u0431\u0438-\u0443\u043B\u044C-\u0430\u0432\u0432\u0430\u043B\u044C;\u0440\u0430\u0431\u0438-\u0443\u043B\u044C-\u0430\u0445\u0438\u0440;\u0434\u0436\u0443\u043C\u0430\u0434-\u0443\u043B\u044C-\u0430\u0432\u0432\u0430\u043B\u044C;\u0434\u0436\u0443\u043C\u0430\u0434-\u0443\u043B\u044C-\u0430\u0445\u0438\u0440;\u0440\u0430\u0434\u0436\u0430\u0431;\u0448\u0430\u0430\u0431\u0430\u043D;\u0440\u0430\u043C\u0430\u0434\u0430\u043D"), mmm6: _("\u0440\u0430\u043C.;\u0448\u0430\u0432.;\u0437\u0443\u043B\u044C-\u043A.;\u0437\u0443\u043B\u044C-\u0445.;\u043C\u0443\u0445.;\u0440\u0430\u0431. I;\u0440\u0430\u0431. II;\u0434\u0436\u0443\u043C. I;\u0434\u0436\u0443\u043C. II;\u0440\u0430\u0434\u0436.;\u0448\u0430\u0430\u0431.;\u0440\u0430\u043C."), bool: _("\u0418\u0421\u0422\u0418\u041D\u0410;\u041B\u041E\u0416\u042C") }, "ru"); addLocale(xm({ decimal: ",", mmmm: _("janu\xE1ra;febru\xE1ra;marca;apr\xEDla;m\xE1ja;j\xFAna;j\xFAla;augusta;septembra;okt\xF3bra;novembra;decembra"), dddd: _("nede\u013Ea;pondelok;utorok;streda;\u0161tvrtok;piatok;sobota") }, 3, 2), "sk"); var _es = { group: ".", decimal: ",", ampm: _("a.\xA0m.;p.\xA0m."), mmmm: _("enero;febrero;marzo;abril;mayo;junio;julio;agosto;septiem~;octu~;noviem~;diciem~", "bre"), mmm: _("ene;feb;mar;abr;may;jun;jul;ago;sept;oct;nov;dic"), dddd: _("domingo;lunes;martes;mi\xE9rcoles;jueves;viernes;s\xE1bado"), ddd: _("dom;lun;mar;mi\xE9;jue;vie;s\xE1b"), bool: _("VERDADERO;FALSO") }; var _esM3 = _("ene;feb;mar;abr;may;jun;jul;ago;sep;oct;nov;dic"); var _esM13 = _("ene.;feb.;mar.;abr.;may.;jun.;jul.;ago.;sept.;oct.;nov.;dic."); addLocale({ ..._es }, "es"); addLocale({ ..._es }, "es_AR"); addLocale({ ..._es }, "es_BO"); addLocale({ ..._es }, "es_CL"); addLocale({ ..._es }, "es_CO"); addLocale({ ..._es }, "es_EC"); addLocale({ ..._es, mmm: _esM3, ampm: _("a.m.;p.m.") }, "es_MX"); addLocale({ ..._es, mmm: _esM13 }, "es_PY"); addLocale({ ..._es, mmm: _esM13 }, "es_UY"); addLocale({ ..._es, mmm: _esM13, mmmm: _("enero;febrero;marzo;abril;mayo;junio;julio;agosto;setiembre;octubre;noviembre;diciembre") }, "es_VE"); addLocale({ decimal: ",", ampm: _("fm;em"), mmmm: _("januari;februari;mars;april;maj;juni;juli;augusti;september;oktober;november;december"), mmm: _("jan.;feb.;mars;apr.;maj;juni;juli;aug.;sep.;okt.;nov.;dec."), dddd: _("s\xF6n~;m\xE5n~;tis~;ons~;tors~;fre~;l\xF6r~", "dag"), ddd: _("s\xF6n;m\xE5n;tis;ons;tors;fre;l\xF6r") }, "sv"); addLocale(xm({ group: ".", decimal: ",", ampm: _("\xD6\xD6;\xD6S"), mmmm: _("Ocak;\u015Eubat;Mart;Nisan;May\u0131s;Haziran;Temmuz;A\u011Fustos;Eyl\xFCl;Ekim;Kas\u0131m;Aral\u0131k"), mmm: _("Oca;\u015Eub;Mar;Nis;May;Haz;Tem;A\u011Fu;Eyl;Eki;Kas;Ara"), dddd: _("Pazar;Pazartesi;Sal\u0131;\xC7ar\u015Famba;Per\u015Fembe;Cuma;Cumartesi"), ddd: _("Paz;Pzt;Sal;\xC7ar;Per;Cum;Cmt"), bool: _("DO\u011ERU;YANLI\u015E") }, 3, -1), "tr"); addLocale({ group: ",", ampm: _("yb;yh"), mmmm: _("Ionawr;Chwefror;Mawrth;Ebrill;Mai;Mehefin;Gorffennaf;Awst;Medi;Hydref;Tachwedd;Rhagfyr"), mmm: _("Ion;Chwef;Maw;Ebr;Mai;Meh;Gorff;Awst;Medi;Hyd;Tach;Rhag"), dddd: _("Dydd Sul;Dydd Llun;Dydd Mawrth;Dydd Mercher;Dydd Iau;Dydd Gwener;Dydd Sadwrn"), ddd: _("Sul;Llun;Maw;Mer;Iau;Gwen;Sad") }, "cy"); addLocale({ group: ".", decimal: ",", mmmm: _("yanvar;fevral;mart;aprel;may;iyun;iyul;avqust;sentyabr;oktyabr;noyabr;dekabr"), mmm: _("yan;fev;mar;apr;may;iyn;iyl;avq;sen;okt;noy;dek"), dddd: _("bazar;bazar ert\u0259si;\xE7\u0259r\u015F\u0259nb\u0259 ax\u015Fam\u0131;\xE7\u0259r\u015F\u0259nb\u0259;c\xFCm\u0259 ax\u015Fam\u0131;c\xFCm\u0259;\u015F\u0259nb\u0259"), ddd: _("B.;B.e.;\xC7.a.;\xC7.;C.a.;C.;\u015E.") }, "az"); addLocale(xm({ decimal: ",", mmmm: _("\u0441\u0442\u0443\u0434\u0437\u0435\u043D\u044F;\u043B\u044E\u0442\u0430\u0433\u0430;\u0441\u0430\u043A\u0430\u0432\u0456\u043A\u0430;\u043A\u0440\u0430\u0441\u0430\u0432\u0456\u043A\u0430;\u043C\u0430\u044F;\u0447\u044D\u0440\u0432\u0435\u043D\u044F;\u043B\u0456\u043F\u0435\u043D\u044F;\u0436\u043D\u0456\u045E\u043D\u044F;\u0432\u0435\u0440\u0430\u0441\u043D\u044F;\u043A\u0430\u0441\u0442\u0440\u044B\u0447\u043D\u0456\u043A\u0430;\u043B\u0456\u0441\u0442\u0430\u043F\u0430\u0434\u0430;\u0441\u043D\u0435\u0436\u043D\u044F"), dddd: _("\u043D\u044F\u0434\u0437\u0435\u043B\u044F;\u043F\u0430\u043D\u044F\u0434\u0437\u0435\u043B\u0430\u043A;\u0430\u045E\u0442\u043E\u0440\u0430\u043A;\u0441\u0435\u0440\u0430\u0434\u0430;\u0447\u0430\u0446\u0432\u0435\u0440;\u043F\u044F\u0442\u043D\u0456\u0446\u0430;\u0441\u0443\u0431\u043E\u0442\u0430"), ddd: _("\u043D\u0434;\u043F\u043D;\u0430\u045E;\u0441\u0440;\u0447\u0446;\u043F\u0442;\u0441\u0431") }, 3, -1), "be"); addLocale({ decimal: ",", ampm: _("\u043F\u0440.\u043E\u0431.;\u0441\u043B.\u043E\u0431."), mmmm: _("\u044F\u043D\u0443\u0430\u0440\u0438;\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438;\u043C\u0430\u0440\u0442;\u0430\u043F\u0440\u0438\u043B;\u043C\u0430\u0439;\u044E\u043D\u0438;\u044E\u043B\u0438;\u0430\u0432\u0433\u0443\u0441\u0442;\u0441\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438;\u043E\u043A\u0442\u043E\u043C\u0432\u0440\u0438;\u043D\u043E\u0435\u043C\u0432\u0440\u0438;\u0434\u0435\u043A\u0435\u043C\u0432\u0440\u0438"), mmm: _("\u044F\u043D\u0443;\u0444\u0435\u0432;\u043C\u0430\u0440\u0442;\u0430\u043F\u0440;\u043C\u0430\u0439;\u044E\u043D\u0438;\u044E\u043B\u0438;\u0430\u0432\u0433;\u0441\u0435\u043F;\u043E\u043A\u0442;\u043D\u043E\u0435;\u0434\u0435\u043A"), dddd: _("\u043D\u0435\u0434\u0435\u043B\u044F;\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A;\u0432\u0442\u043E\u0440\u043D\u0438\u043A;\u0441\u0440\u044F\u0434\u0430;\u0447\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A;\u043F\u0435\u0442\u044A\u043A;\u0441\u044A\u0431\u043E\u0442\u0430"), ddd: _("\u043D\u0434;\u043F\u043D;\u0432\u0442;\u0441\u0440;\u0447\u0442;\u043F\u0442;\u0441\u0431"), bool: _("\u0418\u0421\u0422\u0418\u041D\u0410;\u041B\u041E\u0416\u042C") }, "bg"); addLocale({ group: ".", decimal: ",", mmmm: _("de gener;de febrer;de mar\xE7;d\u2019abril;de maig;de juny;de juliol;d\u2019agost;de setembre;d\u2019octubre;de novembre;de desembre"), mmm: _("de gen.;de febr.;de mar\xE7;d\u2019abr.;de maig;de juny;de jul.;d\u2019ag.;de set.;d\u2019oct.;de nov.;de des."), dddd: _("diumenge;dilluns;dimarts;dimecres;dijous;divendres;dissabte"), ddd: _("dg.;dl.;dt.;dc.;dj.;dv.;ds."), ampm: _("a.\xA0m.;p.\xA0m.") }, "ca"); addLocale(xm({ group: ",", decimal: ".", mmmm: _("Enero;Pebrero;Marso;Abril;Mayo;Hunyo;Hulyo;Agosto;Setyembre;Oktubre;Nobyembre;Disyembre"), dddd: _("Linggo;Lunes;Martes;Miyerkules;Huwebes;Biyernes;Sabado") }, 3, 3), "fil"); addLocale({ group: ",", decimal: ".", mmmm: _("\u0A9C\u0ABE\u0AA8\u0ACD\u0AAF\u0AC1\u0A86\u0AB0\u0AC0;\u0AAB\u0AC7\u0AAC\u0ACD\u0AB0\u0AC1\u0A86\u0AB0\u0AC0;\u0AAE\u0ABE\u0AB0\u0ACD\u0A9A;\u0A8F\u0AAA\u0ACD\u0AB0\u0ABF\u0AB2;\u0AAE\u0AC7;\u0A9C\u0AC2\u0AA8;\u0A9C\u0AC1\u0AB2\u0ABE\u0A88;\u0A91\u0A97\u0AB8\u0ACD\u0A9F;\u0AB8\u0AAA\u0ACD\u0A9F\u0AC7\u0AAE\u0ACD\u0AAC\u0AB0;\u0A91\u0A95\u0ACD\u0A9F\u0ACB\u0AAC\u0AB0;\u0AA8\u0AB5\u0AC7\u0AAE\u0ACD\u0AAC\u0AB0;\u0AA1\u0ABF\u0AB8\u0AC7\u0AAE\u0ACD\u0AAC\u0AB0"), mmm: _("\u0A9C\u0ABE\u0AA8\u0ACD\u0AAF\u0AC1;\u0AAB\u0AC7\u0AAC\u0ACD\u0AB0\u0AC1;\u0AAE\u0ABE\u0AB0\u0ACD\u0A9A;\u0A8F\u0AAA\u0ACD\u0AB0\u0ABF\u0AB2;\u0AAE\u0AC7;\u0A9C\u0AC2\u0AA8;\u0A9C\u0AC1\u0AB2\u0ABE\u0A88;\u0A91\u0A97\u0AB8\u0ACD\u0A9F;\u0AB8\u0AAA\u0ACD\u0A9F\u0AC7;\u0A91\u0A95\u0ACD\u0A9F\u0ACB;\u0AA8\u0AB5\u0AC7;\u0AA1\u0ABF\u0AB8\u0AC7"), dddd: _("\u0AB0\u0AB5\u0ABF~;\u0AB8\u0ACB\u0AAE~;\u0AAE\u0A82\u0A97\u0AB3~;\u0AAC\u0AC1\u0AA7~;\u0A97\u0AC1\u0AB0\u0AC1~;\u0AB6\u0AC1\u0A95\u0ACD\u0AB0~;\u0AB6\u0AA8\u0ABF~", "\u0AB5\u0ABE\u0AB0"), ddd: _("\u0AB0\u0AB5\u0ABF;\u0AB8\u0ACB\u0AAE;\u0AAE\u0A82\u0A97\u0AB3;\u0AAC\u0AC1\u0AA7;\u0A97\u0AC1\u0AB0\u0AC1;\u0AB6\u0AC1\u0A95\u0ACD\u0AB0;\u0AB6\u0AA8\u0ABF") }, "gu"); addLocale({ group: ",", decimal: ".", ampm: _("\u05DC\u05E4\u05E0\u05D4\u05F4\u05E6;\u05D0\u05D7\u05D4\u05F4\u05E6"), dddd: _("~\u05E8\u05D0\u05E9\u05D5\u05DF;~\u05E9\u05E0\u05D9;~\u05E9\u05DC\u05D9\u05E9\u05D9;~\u05E8\u05D1\u05D9\u05E2\u05D9;~\u05D7\u05DE\u05D9\u05E9\u05D9;~\u05E9\u05D9\u05E9\u05D9;~\u05E9\u05D1\u05EA", "\u05D9\u05D5\u05DD "), ddd: _("~\u05D0\u05F3;~\u05D1\u05F3;~\u05D2\u05F3;~\u05D3\u05F3;~\u05D4\u05F3;~\u05D5\u05F3;\u05E9\u05D1\u05EA", "\u05D9\u05D5\u05DD "), mmmm: _("\u05D9\u05E0\u05D5\u05D0\u05E8;\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8;\u05DE\u05E8\u05E5;\u05D0\u05E4\u05E8\u05D9\u05DC;\u05DE\u05D0\u05D9;\u05D9\u05D5\u05E0\u05D9;\u05D9\u05D5\u05DC\u05D9;\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8;\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8;\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8;\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8;\u05D3\u05E6\u05DE\u05D1\u05E8"), mmm: _("\u05D9\u05E0\u05D5\u05F3;\u05E4\u05D1\u05E8\u05F3;\u05DE\u05E8\u05E5;\u05D0\u05E4\u05E8\u05F3;\u05DE\u05D0\u05D9;\u05D9\u05D5\u05E0\u05D9;\u05D9\u05D5\u05DC\u05D9;\u05D0\u05D5\u05D2\u05F3;\u05E1\u05E4\u05D8\u05F3;\u05D0\u05D5\u05E7\u05F3;\u05E0\u05D5\u05D1\u05F3;\u05D3\u05E6\u05DE\u05F3"), mmmm6: _("\u05E8\u05DE\u05D3\u05D0\u05DF;\u05E9\u05D5\u05D5\u05D0\u05DC;\u05D3\u05F3\u05D5 \u05D0\u05DC\u05BE\u05E7\u05E2\u05D3\u05D4;\u05D3\u05F3\u05D5 \u05D0\u05DC\u05BE\u05D7\u05D9\u05D2\u05F3\u05D4;\u05DE\u05D5\u05D7\u05E8\u05DD;\u05E8\u05D1\u05D9\u05E2 \u05D0\u05DC\u05BE\u05D0\u05D5\u05D5\u05DC;\u05E8\u05D1\u05D9\u05E2 \u05D0\u05BE\u05EA\u05F3\u05D0\u05E0\u05D9;\u05D2\u05F3\u05D5\u05DE\u05D0\u05D3\u05D0 \u05D0\u05DC\u05BE\u05D0\u05D5\u05DC\u05D0;\u05D2\u05F3\u05D5\u05DE\u05D0\u05D3\u05D0 \u05D0\u05BE\u05EA\u05F3\u05D0\u05E0\u05D9\u05D4;\u05E8\u05D2\u05F3\u05D1;\u05E9\u05E2\u05D1\u05D0\u05DF;\u05E8\u05DE\u05D3\u05D0\u05DF"), mmm6: _("\u05E8\u05DE\u05D3\u05D0\u05DF;\u05E9\u05D5\u05D5\u05D0\u05DC;\u05D3\u05F3\u05D5 \u05D0\u05DC\u05BE\u05E7\u05E2\u05D3\u05D4;\u05D3\u05F3\u05D5 \u05D0\u05DC\u05BE\u05D7\u05D9\u05D2\u05F3\u05D4;\u05DE\u05D5\u05D7\u05E8\u05DD;\u05E8\u05D1\u05D9\u05E2 \u05D0\u05F3;\u05E8\u05D1\u05D9\u05E2 \u05D1\u05F3;\u05D2\u05F3\u05D5\u05DE\u05D0\u05D3\u05D0 \u05D0\u05F3;\u05D2\u05F3\u05D5\u05DE\u05D0\u05D3\u05D0 \u05D1\u05F3;\u05E8\u05D2\u05F3\u05D1;\u05E9\u05E2\u05D1\u05D0\u05DF;\u05E8\u05DE\u05D3\u05D0\u05DF") }, "he"); addLocale(xm({ group: ".", decimal: ",", mmmm: _("sije\u010Dnja;velja\u010De;o\u017Eujka;travnja;svibnja;lipnja;srpnja;kolovoza;rujna;listopada;studenoga;prosinca"), mmm: _("sij;velj;o\u017Eu;tra;svi;lip;srp;kol;ruj;lis;stu;pro"), dddd: _("nedjelja;ponedjeljak;utorak;srijeda;\u010Detvrtak;petak;subota") }, -1, 3), "hr"); addLocale({ decimal: ",", mmmm: _("\u0570\u0578\u0582\u0576\u057E\u0561\u0580\u056B;\u0583\u0565\u057F\u0580\u057E\u0561\u0580\u056B;\u0574\u0561\u0580\u057F\u056B;\u0561\u057A\u0580\u056B\u056C\u056B;\u0574\u0561\u0575\u056B\u057D\u056B;\u0570\u0578\u0582\u0576\u056B\u057D\u056B;\u0570\u0578\u0582\u056C\u056B\u057D\u056B;\u0585\u0563\u0578\u057D\u057F\u0578\u057D\u056B;\u057D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580\u056B;\u0570\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B;\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056B;\u0564\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B"), mmm: _("\u0570\u0576\u057E;\u0583\u057F\u057E;\u0574\u0580\u057F;\u0561\u057A\u0580;\u0574\u0575\u057D;\u0570\u0576\u057D;\u0570\u056C\u057D;\u0585\u0563\u057D;\u057D\u0565\u057A;\u0570\u0578\u056F;\u0576\u0578\u0575;\u0564\u0565\u056F"), dddd: _("\u056F\u056B\u0580\u0561\u056F\u056B;\u0565\u0580\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B;\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B;\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B;\u0570\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B;\u0578\u0582\u0580\u0562\u0561\u0569;\u0577\u0561\u0562\u0561\u0569"), ddd: _("\u056F\u056B\u0580;\u0565\u0580\u056F;\u0565\u0580\u0584;\u0579\u0580\u0584;\u0570\u0576\u0563;\u0578\u0582\u0580;\u0577\u0562\u0569") }, "hy"); addLocale(xm({ decimal: ",", mmmm: _("\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8;\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8;\u10DB\u10D0\u10E0\u10E2\u10D8;\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8;\u10DB\u10D0\u10D8\u10E1\u10D8;\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8;\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8;\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD;\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8;\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8;\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8;\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8"), dddd: _("\u10D9\u10D5\u10D8\u10E0\u10D0;\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8;\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8;\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8;\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8;\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8;\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8") }, 3, 3), "ka"); addLocale(xm({ decimal: ",", mmmm: _("\u049B\u0430\u04A3\u0442\u0430\u0440;\u0430\u049B\u043F\u0430\u043D;\u043D\u0430\u0443\u0440\u044B\u0437;\u0441\u04D9\u0443\u0456\u0440;\u043C\u0430\u043C\u044B\u0440;\u043C\u0430\u0443\u0441\u044B\u043C;\u0448\u0456\u043B\u0434\u0435;\u0442\u0430\u043C\u044B\u0437;\u049B\u044B\u0440\u043A\u04AF\u0439\u0435\u043A;\u049B\u0430\u0437\u0430\u043D;\u049B\u0430\u0440\u0430\u0448\u0430;\u0436\u0435\u043B\u0442\u043E\u049B\u0441\u0430\u043D"), dddd: _("\u0436\u0435\u043A\u0441\u0435\u043D\u0431\u0456;\u0434\u04AF\u0439\u0441\u0435\u043D\u0431\u0456;\u0441\u0435\u0439\u0441\u0435\u043D\u0431\u0456;\u0441\u04D9\u0440\u0441\u0435\u043D\u0431\u0456;\u0431\u0435\u0439\u0441\u0435\u043D\u0431\u0456;\u0436\u04B1\u043C\u0430;\u0441\u0435\u043D\u0431\u0456"), ddd: _("\u0436\u0441;\u0434\u0441;\u0441\u0441;\u0441\u0440;\u0431\u0441;\u0436\u043C;\u0441\u0431") }, 13, -1), "kk"); addLocale({ group: ",", mmmm: _("\u0C9C\u0CA8\u0CB5\u0CB0\u0CBF;\u0CAB\u0CC6\u0CAC\u0CCD\u0CB0\u0CB5\u0CB0\u0CBF;\u0CAE\u0CBE\u0CB0\u0CCD\u0C9A\u0CCD;\u0C8F\u0CAA\u0CCD\u0CB0\u0CBF\u0CB2\u0CCD;\u0CAE\u0CC7;\u0C9C\u0CC2\u0CA8\u0CCD;\u0C9C\u0CC1\u0CB2\u0CC8;\u0C86\u0C97\u0CB8\u0CCD\u0C9F\u0CCD;\u0CB8\u0CC6\u0CAA\u0CCD\u0C9F\u0CC6\u0C82\u0CAC\u0CB0\u0CCD;\u0C85\u0C95\u0CCD\u0C9F\u0CCB\u0CAC\u0CB0\u0CCD;\u0CA8\u0CB5\u0CC6\u0C82\u0CAC\u0CB0\u0CCD;\u0CA1\u0CBF\u0CB8\u0CC6\u0C82\u0CAC\u0CB0\u0CCD"), mmm: _("\u0C9C\u0CA8\u0CB5\u0CB0\u0CBF;\u0CAB\u0CC6\u0CAC\u0CCD\u0CB0\u0CB5\u0CB0\u0CBF;\u0CAE\u0CBE\u0CB0\u0CCD\u0C9A\u0CCD;\u0C8F\u0CAA\u0CCD\u0CB0\u0CBF;\u0CAE\u0CC7;\u0C9C\u0CC2\u0CA8\u0CCD;\u0C9C\u0CC1\u0CB2\u0CC8;\u0C86\u0C97\u0CB8\u0CCD\u0C9F\u0CCD;\u0CB8\u0CC6\u0CAA\u0CCD\u0C9F\u0CC6\u0C82;\u0C85\u0C95\u0CCD\u0C9F\u0CCB;\u0CA8\u0CB5\u0CC6\u0C82;\u0CA1\u0CBF\u0CB8\u0CC6\u0C82"), dddd: _("\u0CAD\u0CBE\u0CA8\u0CC1~;\u0CB8\u0CCB\u0CAE~;\u0CAE\u0C82\u0C97\u0CB3~;\u0CAC\u0CC1\u0CA7~;\u0C97\u0CC1\u0CB0\u0CC1~;\u0CB6\u0CC1\u0C95\u0CCD\u0CB0~;\u0CB6\u0CA8\u0CBF~", "\u0CB5\u0CBE\u0CB0"), ddd: _("\u0CAD\u0CBE\u0CA8\u0CC1;\u0CB8\u0CCB\u0CAE;\u0CAE\u0C82\u0C97\u0CB3;\u0CAC\u0CC1\u0CA7;\u0C97\u0CC1\u0CB0\u0CC1;\u0CB6\u0CC1\u0C95\u0CCD\u0CB0;\u0CB6\u0CA8\u0CBF"), ampm: _("\u0CAA\u0CC2\u0CB0\u0CCD\u0CB5\u0CBE\u0CB9\u0CCD\u0CA8;\u0C85\u0CAA\u0CB0\u0CBE\u0CB9\u0CCD\u0CA8") }, "kn"); addLocale({ decimal: ",", mmmm: _("sausio;vasario;kovo;baland\u017Eio;gegu\u017E\u0117s;bir\u017Eelio;liepos;rugpj\u016B\u010Dio;rugs\u0117jo;spalio;lapkri\u010Dio;gruod\u017Eio"), mmm: _("saus.;vas.;kov.;bal.;geg.;bir\u017E.;liep.;rugp.;rugs.;spal.;lapkr.;gruod."), dddd: _("sekmadienis;pirmadienis;antradienis;tre\u010Diadienis;ketvirtadienis;penktadienis;\u0161e\u0161tadienis"), ddd: _("sk;pr;an;tr;kt;pn;\u0161t"), ampm: _("prie\u0161piet;popiet") }, "lt"); addLocale({ decimal: ",", mmmm: _("janv\u0101ris;febru\u0101ris;marts;apr\u012Blis;maijs;j\u016Bnijs;j\u016Blijs;augusts;septembris;oktobris;novembris;decembris"), mmm: _("janv.;febr.;marts;apr.;maijs;j\u016Bn.;j\u016Bl.;aug.;sept.;okt.;nov.;dec."), dddd: _("sv\u0113tdiena;pirmdiena;otrdiena;tre\u0161diena;ceturtdiena;piektdiena;sestdiena"), ddd: _("sv\u0113td.;pirmd.;otrd.;tre\u0161d.;ceturtd.;piektd.;sestd."), ampm: _("priek\u0161pusdien\u0101;p\u0113cpusdien\u0101") }, "lv"); addLocale({ group: ",", decimal: ".", mmmm: _("\u0D1C\u0D28\u0D41\u0D35\u0D30\u0D3F;\u0D2B\u0D46\u0D2C\u0D4D\u0D30\u0D41\u0D35\u0D30\u0D3F;\u0D2E\u0D3E\u0D7C\u0D1A\u0D4D\u0D1A\u0D4D;\u0D0F\u0D2A\u0D4D\u0D30\u0D3F\u0D7D;\u0D2E\u0D47\u0D2F\u0D4D;\u0D1C\u0D42\u0D7A;\u0D1C\u0D42\u0D32\u0D48;\u0D13\u0D17\u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D4D;\u0D38\u0D46\u0D2A\u0D4D\u0D31\u0D4D\u0D31\u0D02\u0D2C\u0D7C;\u0D12\u0D15\u0D4D\u200C\u0D1F\u0D4B\u0D2C\u0D7C;\u0D28\u0D35\u0D02\u0D2C\u0D7C;\u0D21\u0D3F\u0D38\u0D02\u0D2C\u0D7C"), mmm: _("\u0D1C\u0D28\u0D41;\u0D2B\u0D46\u0D2C\u0D4D\u0D30\u0D41;\u0D2E\u0D3E\u0D7C;\u0D0F\u0D2A\u0D4D\u0D30\u0D3F;\u0D2E\u0D47\u0D2F\u0D4D;\u0D1C\u0D42\u0D7A;\u0D1C\u0D42\u0D32\u0D48;\u0D13\u0D17;\u0D38\u0D46\u0D2A\u0D4D\u0D31\u0D4D\u0D31\u0D02;\u0D12\u0D15\u0D4D\u0D1F\u0D4B;\u0D28\u0D35\u0D02;\u0D21\u0D3F\u0D38\u0D02"), dddd: _("\u0D1E\u0D3E\u0D2F\u0D31\u0D3E\u0D34\u0D4D\u200C\u0D1A;\u0D24\u0D3F\u0D19\u0D4D\u0D15\u0D33\u0D3E\u0D34\u0D4D\u200C\u0D1A;\u0D1A\u0D4A\u0D35\u0D4D\u0D35\u0D3E\u0D34\u0D4D\u0D1A;\u0D2C\u0D41\u0D27\u0D28\u0D3E\u0D34\u0D4D\u200C\u0D1A;\u0D35\u0D4D\u0D2F\u0D3E\u0D34\u0D3E\u0D34\u0D4D\u200C\u0D1A;\u0D35\u0D46\u0D33\u0D4D\u0D33\u0D3F\u0D2F\u0D3E\u0D34\u0D4D\u200C\u0D1A;\u0D36\u0D28\u0D3F\u0D2F\u0D3E\u0D34\u0D4D\u200C\u0D1A"), ddd: _("\u0D1E\u0D3E\u0D2F\u0D7C;\u0D24\u0D3F\u0D19\u0D4D\u0D15\u0D7E;\u0D1A\u0D4A\u0D35\u0D4D\u0D35;\u0D2C\u0D41\u0D27\u0D7B;\u0D35\u0D4D\u0D2F\u0D3E\u0D34\u0D02;\u0D35\u0D46\u0D33\u0D4D\u0D33\u0D3F;\u0D36\u0D28\u0D3F") }, "ml"); addLocale({ group: ",", decimal: ".", mmmm: _("\u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D~;\u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430~;\u0433\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430~;\u0434\u04E9\u0440\u04E9\u0432\u0434\u04AF\u0433\u044D\u044D~;\u0442\u0430\u0432\u0434\u0443\u0433\u0430\u0430~;\u0437\u0443\u0440\u0433\u0430\u0430\u0434\u0443\u0433\u0430\u0430~;\u0434\u043E\u043B\u043E\u043E\u0434\u0443\u0433\u0430\u0430~;\u043D\u0430\u0439\u043C\u0434\u0443\u0433\u0430\u0430~;\u0435\u0441\u0434\u04AF\u0433\u044D\u044D~;\u0430\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430~;\u0430\u0440\u0432\u0430\u043D \u043D\u044D\u0433\u0434\u04AF\u0433\u044D\u044D~;\u0430\u0440\u0432\u0430\u043D \u0445\u043E\u0451\u0440\u0434\u0443\u0433\u0430\u0430~", "\u0440 \u0441\u0430\u0440"), mmm: _("1~;2~;3~;4~;5~;6~;7~;8~;9~;10~;11~;12~", "-\u0440 \u0441\u0430\u0440"), dddd: _("\u043D\u044F\u043C;\u0434\u0430\u0432\u0430\u0430;\u043C\u044F\u0433\u043C\u0430\u0440;\u043B\u0445\u0430\u0433\u0432\u0430;\u043F\u04AF\u0440\u044D\u0432;\u0431\u0430\u0430\u0441\u0430\u043D;\u0431\u044F\u043C\u0431\u0430"), ddd: _("\u041D\u044F;\u0414\u0430;\u041C\u044F;\u041B\u0445;\u041F\u04AF;\u0411\u0430;\u0411\u044F"), ampm: _("\u04AF.\u04E9.;\u04AF.\u0445.") }, "mn"); addLocale({ group: ",", decimal: ".", mmmm: _("\u091C\u093E\u0928\u0947\u0935\u093E\u0930\u0940;\u092B\u0947\u092C\u094D\u0930\u0941\u0935\u093E\u0930\u0940;\u092E\u093E\u0930\u094D\u091A;\u090F\u092A\u094D\u0930\u093F\u0932;\u092E\u0947;\u091C\u0942\u0928;\u091C\u0941\u0932\u0948;\u0911\u0917\u0938\u094D\u091F;\u0938\u092A\u094D\u091F\u0947\u0902\u092C\u0930;\u0911\u0915\u094D\u091F\u094B\u092C\u0930;\u0928\u094B\u0935\u094D\u0939\u0947\u0902\u092C\u0930;\u0921\u093F\u0938\u0947\u0902\u092C\u0930"), mmm: _("\u091C\u093E\u0928\u0947;\u092B\u0947\u092C\u094D\u0930\u0941;\u092E\u093E\u0930\u094D\u091A;\u090F\u092A\u094D\u0930\u093F;\u092E\u0947;\u091C\u0942\u0928;\u091C\u0941\u0932\u0948;\u0911\u0917;\u0938\u092A\u094D\u091F\u0947\u0902;\u0911\u0915\u094D\u091F\u094B;\u0928\u094B\u0935\u094D\u0939\u0947\u0902;\u0921\u093F\u0938\u0947\u0902"), dddd: _("\u0930\u0935\u093F\u0935\u093E\u0930;\u0938\u094B\u092E\u0935\u093E\u0930;\u092E\u0902\u0917\u0933\u0935\u093E\u0930;\u092C\u0941\u0927\u0935\u093E\u0930;\u0917\u0941\u0930\u0941\u0935\u093E\u0930;\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930;\u0936\u0928\u093F\u0935\u093E\u0930"), ddd: _("\u0930\u0935\u093F;\u0938\u094B\u092E;\u092E\u0902\u0917\u0933;\u092C\u0941\u0927;\u0917\u0941\u0930\u0941;\u0936\u0941\u0915\u094D\u0930;\u0936\u0928\u093F") }, "mr"); addLocale(xm({ group: ",", decimal: ".", mmmm: _("\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E;\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E;\u1019\u1010\u103A;\u1027\u1015\u103C\u102E;\u1019\u1031;\u1007\u103D\u1014\u103A;\u1007\u1030\u101C\u102D\u102F\u1004\u103A;\u1029\u1002\u102F\u1010\u103A;\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C;\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C;\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C;\u1012\u102E\u1007\u1004\u103A\u1018\u102C"), mmm: _("\u1007\u1014\u103A;\u1016\u1031;\u1019\u1010\u103A;\u1027;\u1019\u1031;\u1007\u103D\u1014\u103A;\u1007\u1030;\u1029;\u1005\u1000\u103A;\u1021\u1031\u102C\u1000\u103A;\u1014\u102D\u102F;\u1012\u102E"), dddd: _("\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031;\u1010\u1014\u1004\u103A\u1039\u101C\u102C;\u1021\u1004\u103A\u1039\u1002\u102B;\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038;\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038;\u101E\u1031\u102C\u1000\u103C\u102C;\u1005\u1014\u1031"), ampm: _("\u1014\u1036\u1014\u1000\u103A;\u100A\u1014\u1031") }, -1, 0), "my"); addLocale({ group: ",", decimal: ".", mmmm: _("\u0A1C\u0A28\u0A35\u0A30\u0A40;\u0A2B\u0A3C\u0A30\u0A35\u0A30\u0A40;\u0A2E\u0A3E\u0A30\u0A1A;\u0A05\u0A2A\u0A4D\u0A30\u0A48\u0A32;\u0A2E\u0A08;\u0A1C\u0A42\u0A28;\u0A1C\u0A41\u0A32\u0A3E\u0A08;\u0A05\u0A17\u0A38\u0A24;\u0A38\u0A24\u0A70\u0A2C\u0A30;\u0A05\u0A15\u0A24\u0A42\u0A2C\u0A30;\u0A28\u0A35\u0A70\u0A2C\u0A30;\u0A26\u0A38\u0A70\u0A2C\u0A30"), mmm: _("\u0A1C\u0A28;\u0A2B\u0A3C\u0A30;\u0A2E\u0A3E\u0A30\u0A1A;\u0A05\u0A2A\u0A4D\u0A30\u0A48;\u0A2E\u0A08;\u0A1C\u0A42\u0A28;\u0A1C\u0A41\u0A32\u0A3E;\u0A05\u0A17;\u0A38\u0A24\u0A70;\u0A05\u0A15\u0A24\u0A42;\u0A28\u0A35\u0A70;\u0A26\u0A38\u0A70"), dddd: _("\u0A10\u0A24\u0A35\u0A3E\u0A30;\u0A38\u0A4B\u0A2E\u0A35\u0A3E\u0A30;\u0A2E\u0A70\u0A17\u0A32\u0A35\u0A3E\u0A30;\u0A2C\u0A41\u0A71\u0A27\u0A35\u0A3E\u0A30;\u0A35\u0A40\u0A30\u0A35\u0A3E\u0A30;\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30\u0A35\u0A3E\u0A30;\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30\u0A35\u0A3E\u0A30"), ddd: _("\u0A10\u0A24;\u0A38\u0A4B\u0A2E;\u0A2E\u0A70\u0A17\u0A32;\u0A2C\u0A41\u0A71\u0A27;\u0A35\u0A40\u0A30;\u0A38\u0A3C\u0A41\u0A71\u0A15\u0A30;\u0A38\u0A3C\u0A28\u0A3F\u0A71\u0A1A\u0A30"), ampm: _("\u0A2A\u0A42.\u0A26\u0A41.;\u0A2C\u0A3E.\u0A26\u0A41.") }, "pa"); addLocale({ group: ".", decimal: ",", mmmm: _("ianuarie;februarie;martie;aprilie;mai;iunie;iulie;august;septem~;octom~;noiem~;decem~", "brie"), mmm: _("ian.;feb.;mar.;apr.;mai;iun.;iul.;aug.;sept.;oct.;nov.;dec."), dddd: _("duminic\u0103;luni;mar\u021Bi;miercuri;joi;vineri;s\xE2mb\u0103t\u0103"), ddd: _("dum.;lun.;mar.;mie.;joi;vin.;s\xE2m."), ampm: _("a.m.;p.m.") }, "ro"); addLocale(xm({ group: ".", decimal: ",", mmmm: _("januar;februar;marec;april;maj;junij;julij;avgust;september;oktober;november;december"), mmm: _("jan.;feb.;mar.;apr.;maj;jun.;jul.;avg.;sep.;okt.;nov.;dec."), dddd: _("nedelja;ponedeljek;torek;sreda;\u010Detrtek;petek;sobota"), ampm: _("dop.;pop.") }, -1, 13), "sl"); addLocale(xm({ group: ".", decimal: ",", mmmm: _("\u0458\u0430\u043D\u0443\u0430\u0440;\u0444\u0435\u0431\u0440\u0443\u0430\u0440;\u043C\u0430\u0440\u0442;\u0430\u043F\u0440\u0438\u043B;\u043C\u0430\u0458;\u0458\u0443\u043D;\u0458\u0443\u043B;\u0430\u0432\u0433\u0443\u0441\u0442;\u0441\u0435\u043F\u0442\u0435\u043C\u0431\u0430\u0440;\u043E\u043A\u0442\u043E\u0431\u0430\u0440;\u043D\u043E\u0432\u0435\u043C\u0431\u0430\u0440;\u0434\u0435\u0446\u0435\u043C\u0431\u0430\u0440"), dddd: _("\u043D\u0435\u0434\u0435\u0459\u0430;\u043F\u043E\u043D\u0435\u0434\u0435\u0459\u0430\u043A;\u0443\u0442\u043E\u0440\u0430\u043A;\u0441\u0440\u0435\u0434\u0430;\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043A;\u043F\u0435\u0442\u0430\u043A;\u0441\u0443\u0431\u043E\u0442\u0430") }, 3, 3), "sr"); addLocale({ group: ",", decimal: ".", mmmm: _("\u0B9C\u0BA9\u0BB5\u0BB0\u0BBF;\u0BAA\u0BBF\u0BAA\u0BCD\u0BB0\u0BB5\u0BB0\u0BBF;\u0BAE\u0BBE\u0BB0\u0BCD\u0B9A\u0BCD;\u0B8F\u0BAA\u0BCD\u0BB0\u0BB2\u0BCD;\u0BAE\u0BC7;\u0B9C\u0BC2\u0BA9\u0BCD;\u0B9C\u0BC2\u0BB2\u0BC8;\u0B86\u0B95\u0BB8\u0BCD\u0B9F\u0BCD;\u0B9A\u0BC6\u0BAA\u0BCD\u0B9F\u0BAE\u0BCD\u0BAA\u0BB0\u0BCD;\u0B85\u0B95\u0BCD\u0B9F\u0BCB\u0BAA\u0BB0\u0BCD;\u0BA8\u0BB5\u0BAE\u0BCD\u0BAA\u0BB0\u0BCD;\u0B9F\u0BBF\u0B9A\u0BAE\u0BCD\u0BAA\u0BB0\u0BCD"), mmm: _("\u0B9C\u0BA9.;\u0BAA\u0BBF\u0BAA\u0BCD.;\u0BAE\u0BBE\u0BB0\u0BCD.;\u0B8F\u0BAA\u0BCD.;\u0BAE\u0BC7;\u0B9C\u0BC2\u0BA9\u0BCD;\u0B9C\u0BC2\u0BB2\u0BC8;\u0B86\u0B95.;\u0B9A\u0BC6\u0BAA\u0BCD.;\u0B85\u0B95\u0BCD.;\u0BA8\u0BB5.;\u0B9F\u0BBF\u0B9A."), dddd: _("\u0B9E\u0BBE\u0BAF\u0BBF\u0BB1\u0BC1;\u0BA4\u0BBF\u0B99\u0BCD\u0B95\u0BB3\u0BCD;\u0B9A\u0BC6\u0BB5\u0BCD\u0BB5\u0BBE\u0BAF\u0BCD;\u0BAA\u0BC1\u0BA4\u0BA9\u0BCD;\u0BB5\u0BBF\u0BAF\u0BBE\u0BB4\u0BA9\u0BCD;\u0BB5\u0BC6\u0BB3\u0BCD\u0BB3\u0BBF;\u0B9A\u0BA9\u0BBF"), ddd: _("\u0B9E\u0BBE\u0BAF\u0BBF.;\u0BA4\u0BBF\u0B99\u0BCD.;\u0B9A\u0BC6\u0BB5\u0BCD.;\u0BAA\u0BC1\u0BA4.;\u0BB5\u0BBF\u0BAF\u0BBE.;\u0BB5\u0BC6\u0BB3\u0BCD.;\u0B9A\u0BA9\u0BBF") }, "ta"); addLocale({ group: ",", decimal: ".", mmmm: _("\u0C1C\u0C28\u0C35\u0C30\u0C3F;\u0C2B\u0C3F\u0C2C\u0C4D\u0C30\u0C35\u0C30\u0C3F;\u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C3F;\u0C0F\u0C2A\u0C4D\u0C30\u0C3F\u0C32\u0C4D;\u0C2E\u0C47;\u0C1C\u0C42\u0C28\u0C4D;\u0C1C\u0C41\u0C32\u0C48;\u0C06\u0C17\u0C38\u0C4D\u0C1F\u0C41;\u0C38\u0C46\u0C2A\u0C4D\u0C1F\u0C46\u0C02\u0C2C\u0C30\u0C4D;\u0C05\u0C15\u0C4D\u0C1F\u0C4B\u0C2C\u0C30\u0C4D;\u0C28\u0C35\u0C02\u0C2C\u0C30\u0C4D;\u0C21\u0C3F\u0C38\u0C46\u0C02\u0C2C\u0C30\u0C4D"), mmm: _("\u0C1C\u0C28;\u0C2B\u0C3F\u0C2C\u0C4D\u0C30;\u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C3F;\u0C0F\u0C2A\u0C4D\u0C30\u0C3F;\u0C2E\u0C47;\u0C1C\u0C42\u0C28\u0C4D;\u0C1C\u0C41\u0C32\u0C48;\u0C06\u0C17;\u0C38\u0C46\u0C2A\u0C4D\u0C1F\u0C46\u0C02;\u0C05\u0C15\u0C4D\u0C1F\u0C4B;\u0C28\u0C35\u0C02;\u0C21\u0C3F\u0C38\u0C46\u0C02"), dddd: _("\u0C06\u0C26\u0C3F\u0C35\u0C3E\u0C30\u0C02;\u0C38\u0C4B\u0C2E\u0C35\u0C3E\u0C30\u0C02;\u0C2E\u0C02\u0C17\u0C33\u0C35\u0C3E\u0C30\u0C02;\u0C2C\u0C41\u0C27\u0C35\u0C3E\u0C30\u0C02;\u0C17\u0C41\u0C30\u0C41\u0C35\u0C3E\u0C30\u0C02;\u0C36\u0C41\u0C15\u0C4D\u0C30\u0C35\u0C3E\u0C30\u0C02;\u0C36\u0C28\u0C3F\u0C35\u0C3E\u0C30\u0C02"), ddd: _("\u0C06\u0C26\u0C3F;\u0C38\u0C4B\u0C2E;\u0C2E\u0C02\u0C17\u0C33;\u0C2C\u0C41\u0C27;\u0C17\u0C41\u0C30\u0C41;\u0C36\u0C41\u0C15\u0C4D\u0C30;\u0C36\u0C28\u0C3F") }, "te"); addLocale({ decimal: ",", mmmm: _("\u0441\u0456\u0447\u043D\u044F;\u043B\u044E\u0442\u043E\u0433\u043E;\u0431\u0435\u0440\u0435\u0437\u043D\u044F;\u043A\u0432\u0456\u0442\u043D\u044F;\u0442\u0440\u0430\u0432\u043D\u044F;\u0447\u0435\u0440\u0432\u043D\u044F;\u043B\u0438\u043F\u043D\u044F;\u0441\u0435\u0440\u043F\u043D\u044F;\u0432\u0435\u0440\u0435\u0441\u043D\u044F;\u0436\u043E\u0432\u0442\u043D\u044F;\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434\u0430;\u0433\u0440\u0443\u0434\u043D\u044F"), mmm: _("\u0441\u0456\u0447.;\u043B\u044E\u0442.;\u0431\u0435\u0440.;\u043A\u0432\u0456\u0442.;\u0442\u0440\u0430\u0432.;\u0447\u0435\u0440\u0432.;\u043B\u0438\u043F.;\u0441\u0435\u0440\u043F.;\u0432\u0435\u0440.;\u0436\u043E\u0432\u0442.;\u043B\u0438\u0441\u0442.;\u0433\u0440\u0443\u0434."), dddd: _("\u043D\u0435\u0434\u0456\u043B\u044E;\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A;\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A;\u0441\u0435\u0440\u0435\u0434\u0443;\u0447\u0435\u0442\u0432\u0435\u0440;\u043F\u02BC\u044F\u0442\u043D\u0438\u0446\u044E;\u0441\u0443\u0431\u043E\u0442\u0443"), ddd: _("\u043D\u0434;\u043F\u043D;\u0432\u0442;\u0441\u0440;\u0447\u0442;\u043F\u0442;\u0441\u0431"), ampm: _("\u0434\u043F;\u043F\u043F") }, "uk"); addLocale({ group: ".", decimal: ",", mmmm: _("~1;~2;~3;~4;~5;~6;~7;~8;~9;~10;~11;~12", "th\xE1ng "), mmm: _("~1;~2;~3;~4;~5;~6;~7;~8;~9;~10;~11;~12", "thg "), dddd: _("Ch\u1EE7 Nh\u1EADt;Th\u1EE9 Hai;Th\u1EE9 Ba;Th\u1EE9 T\u01B0;Th\u1EE9 N\u0103m;Th\u1EE9 S\xE1u;Th\u1EE9 B\u1EA3y"), ddd: _("CN;Th 2;Th 3;Th 4;Th 5;Th 6;Th 7"), ampm: _("SA;CH") }, "vi"); addLocale(xm({ group: "\u066C", decimal: "\u066B", ampm: _("\u0635;\u0645"), mmmm: _("\u064A\u0646\u0627\u064A\u0631;\u0641\u0628\u0631\u0627\u064A\u0631;\u0645\u0627\u0631\u0633;\u0623\u0628\u0631\u064A\u0644;\u0645\u0627\u064A\u0648;\u064A\u0648\u0646\u064A\u0648;\u064A\u0648\u0644\u064A\u0648;\u0623\u063A\u0633\u0637\u0633;\u0633\u0628\u062A\u0645\u0628\u0631;\u0623\u0643\u062A\u0648\u0628\u0631;\u0646\u0648\u0641\u0645\u0628\u0631;\u062F\u064A\u0633\u0645\u0628\u0631"), dddd: _("\u0627\u0644\u0623\u062D\u062F;\u0627\u0644\u0627\u062B\u0646\u064A\u0646;\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621;\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621;\u0627\u0644\u062E\u0645\u064A\u0633;\u0627\u0644\u062C\u0645\u0639\u0629;\u0627\u0644\u0633\u0628\u062A"), mmmm6: _("\u0631\u0645\u0636\u0627\u0646;\u0634\u0648\u0627\u0644;\u0630\u0648 \u0627\u0644\u0642\u0639\u062F\u0629;\u0630\u0648 \u0627\u0644\u062D\u062C\u0629;\u0645\u062D\u0631\u0645;\u0631\u0628\u064A\u0639 \u0627\u0644\u0623\u0648\u0644;\u0631\u0628\u064A\u0639 \u0627\u0644\u0622\u062E\u0631\u0629;\u062C\u0645\u0627\u062F\u0649 \u0627\u0644\u0623\u0648\u0644\u0649;\u062C\u0645\u0627\u062F\u0649 \u0627\u0644\u0622\u062E\u0631\u0629;\u0631\u062C\u0628;\u0634\u0639\u0628\u0627\u0646;\u0631\u0645\u0636\u0627\u0646") }, 0, 0), "ar"); addLocale({ group: ",", decimal: ".", mmmm: _("\u099C\u09BE\u09A8\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0;\u09AB\u09C7\u09AC\u09CD\u09B0\u09C1\u09AF\u09BC\u09BE\u09B0\u09C0;\u09AE\u09BE\u09B0\u09CD\u099A;\u098F\u09AA\u09CD\u09B0\u09BF\u09B2;\u09AE\u09C7;\u099C\u09C1\u09A8;\u099C\u09C1\u09B2\u09BE\u0987;\u0986\u0997\u09B8\u09CD\u099F;\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u09AE\u09CD\u09AC\u09B0;\u0985\u0995\u09CD\u099F\u09CB\u09AC\u09B0;\u09A8\u09AD\u09C7\u09AE\u09CD\u09AC\u09B0;\u09A1\u09BF\u09B8\u09C7\u09AE\u09CD\u09AC\u09B0"), mmm: _("\u099C\u09BE\u09A8\u09C1;\u09AB\u09C7\u09AC;\u09AE\u09BE\u09B0\u09CD\u099A;\u098F\u09AA\u09CD\u09B0\u09BF;\u09AE\u09C7;\u099C\u09C1\u09A8;\u099C\u09C1\u09B2;\u0986\u0997;\u09B8\u09C7\u09AA\u09CD\u099F\u09C7\u0983;\u0985\u0995\u09CD\u099F\u09CB\u0983;\u09A8\u09AD\u09C7\u0983;\u09A1\u09BF\u09B8\u09C7\u0983"), dddd: _("\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0;\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0;\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0;\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0;\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0;\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0;\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"), ddd: _("\u09B0\u09AC\u09BF;\u09B8\u09CB\u09AE;\u09AE\u0999\u09CD\u0997\u09B2;\u09AC\u09C1\u09A7;\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF;\u09B6\u09C1\u0995\u09CD\u09B0;\u09B6\u09A8\u09BF") }, "bn"); addLocale({ group: ",", decimal: ".", mmmm: _("\u091C\u0928\u0935\u0930\u0940;\u092B\u093C\u0930\u0935\u0930\u0940;\u092E\u093E\u0930\u094D\u091A;\u0905\u092A\u094D\u0930\u0948\u0932;\u092E\u0908;\u091C\u0942\u0928;\u091C\u0941\u0932\u093E\u0908;\u0905\u0917\u0938\u094D\u0924;\u0938\u093F\u0924\u0902\u092C\u0930;\u0905\u0915\u094D\u0924\u0942\u092C\u0930;\u0928\u0935\u0902\u092C\u0930;\u0926\u093F\u0938\u0902\u092C\u0930"), mmm: _("\u091C\u0928\u0970;\u092B\u093C\u0930\u0970;\u092E\u093E\u0930\u094D\u091A;\u0905\u092A\u094D\u0930\u0948\u0932;\u092E\u0908;\u091C\u0942\u0928;\u091C\u0941\u0932\u0970;\u0905\u0917\u0970;\u0938\u093F\u0924\u0970;\u0905\u0915\u094D\u0924\u0942\u0970;\u0928\u0935\u0970;\u0926\u093F\u0938\u0970"), dddd: _("\u0930\u0935\u093F\u0935\u093E\u0930;\u0938\u094B\u092E\u0935\u093E\u0930;\u092E\u0902\u0917\u0932\u0935\u093E\u0930;\u092C\u0941\u0927\u0935\u093E\u0930;\u0917\u0941\u0930\u0941\u0935\u093E\u0930;\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930;\u0936\u0928\u093F\u0935\u093E\u0930"), ddd: _("\u0930\u0935\u093F;\u0938\u094B\u092E;\u092E\u0902\u0917\u0932;\u092C\u0941\u0927;\u0917\u0941\u0930\u0941;\u0936\u0941\u0915\u094D\u0930;\u0936\u0928\u093F"), ampm: _("am;pm") }, "hi"); // node_modules/numfmt/lib/options.js var defaultOptions = { // Overflow error string overflow: "######", // dateErrorThrow needs to be off! [prev in locale] // Should it throw when there is an overflow error? dateErrorThrows: false, // Should it emit a number when date has an overflow error? (Sheets does this) dateErrorNumber: true, // dateErrorThrow needs to be off! // Should it emit a number when bigint has an is an overflow error? bigintErrorNumber: false, // Sheets mode (see #3) dateSpanLarge: true, // Simulate the Lotus 1-2-3 leap year bug leap1900: true, // Emit regular vs. non-breaking spaces nbsp: false, // Robust/throw mode throws: true, // What is emitted when robust mode fails to parse (###### currently) invalid: "######", // Locale locale: "", // Don't adjust dates to UTC when converting them to serial time ignoreTimezone: false, // Integer digit grouping grouping: [3, 3], // resolve indexed colors to hex indexColors: true, // Skip-next signifier character skipChar: "", // Repear-next signifier character repeatChar: "" }; // node_modules/numfmt/lib/round.js function round(number, places = 0) { if (typeof number !== "number") { return number; } if (number < 0) { return -round(-number, places); } if (places) { const p = 10 ** places || 1; return round(number * p, 0) / p; } return Math.round(number); } // node_modules/numfmt/lib/dec2frac.js var PRECISION = 1e-13; function dec2frac(number, numeratorMaxDigits = 2, denominatorMaxDigits = 2) { const sign2 = number < 0 ? -1 : 1; const maxdigits_n = 10 ** (numeratorMaxDigits || 2); const maxdigits_d = 10 ** (denominatorMaxDigits || 2); let z4 = Math.abs(number); let last_d = 0; let last_n = 0; let curr_n = 0; let curr_d = 1; let tmp; let r; number = z4; if (number % 1 === 0) { r = [number * sign2, 1]; } else if (number < 1e-19) { r = [sign2, 1e19]; } else if (number > 1e19) { r = [1e19 * sign2, 1]; } else { do { z4 = 1 / (z4 - Math.floor(z4)); tmp = curr_d; curr_d = curr_d * Math.floor(z4) + last_d; last_d = tmp; last_n = curr_n; curr_n = Math.floor(number * curr_d + 0.5); if (curr_n >= maxdigits_n || curr_d >= maxdigits_d) { return [sign2 * last_n, last_d]; } } while (Math.abs(number - curr_n / curr_d) >= PRECISION && z4 !== Math.floor(z4)); r = [sign2 * curr_n, curr_d]; } return r; } // node_modules/numfmt/lib/toYMD.js var floor = Math.floor; function toYMD_1900(ord, leap1900 = true) { if (leap1900 && ord >= 0) { if (ord === 0) { return [1900, 1, 0]; } if (ord === 60) { return [1900, 2, 29]; } if (ord < 60) { return [1900, ord < 32 ? 1 : 2, (ord - 1) % 31 + 1]; } } let l = ord + 68569 + 2415019; const n = floor(4 * l / 146097); l = l - floor((146097 * n + 3) / 4); const i = floor(4e3 * (l + 1) / 1461001); l = l - floor(1461 * i / 4) + 31; const j4 = floor(80 * l / 2447); const nDay = l - floor(2447 * j4 / 80); l = floor(j4 / 11); const nMonth = j4 + 2 - 12 * l; const nYear = 100 * (n - 49) + i + l; return [nYear | 0, nMonth | 0, nDay | 0]; } function toYMD_1904(ord) { return toYMD_1900(ord + 1462); } function toYMD_1317(ord) { if (ord === 60) { throw new Error("#VALUE!"); } if (ord <= 1) { return [1317, 8, 29]; } if (ord < 60) { return [1317, ord < 32 ? 9 : 10, 1 + (ord - 2) % 30]; } const y = 10631 / 30; const shift1 = 8.01 / 60; let z4 = ord + 466935; const cyc = floor(z4 / 10631); z4 = z4 - 10631 * cyc; const j4 = floor((z4 - shift1) / y); z4 = z4 - floor(j4 * y + shift1); const m = floor((z4 + 28.5001) / 29.5); if (m === 13) { return [30 * cyc + j4, 12, 30]; } return [30 * cyc + j4, m, z4 - floor(29.5001 * m - 29)]; } function toYMD(ord, system = 0, leap1900 = true) { const int = floor(ord); if (system === EPOCH_1317) { return toYMD_1317(int); } if (system === EPOCH_1904) { return toYMD_1904(int); } return toYMD_1900(int, leap1900); } // node_modules/numfmt/lib/serialDate.js var floor2 = Math.floor; var DAYSIZE = 86400; function dateToSerial(date, options) { let ts4 = null; if (Array.isArray(date)) { const [y, m, d, hh2, mm2, ss4] = date; ts4 = Date.UTC(y, m == null ? 0 : m - 1, d ?? 1, hh2 || 0, mm2 || 0, ss4 || 0); } else if (date instanceof Date) { ts4 = date * 1; if (!options || !options.ignoreTimezone) { const dt3 = /* @__PURE__ */ new Date(); dt3.setUTCFullYear( date.getFullYear(), date.getMonth(), date.getDate() ); dt3.setUTCHours( date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds() ); ts4 = dt3 * 1; } } if (ts4 != null && isFinite(ts4)) { const d = ts4 / 864e5; return d - (d <= -25509 ? -25568 : -25569); } return null; } function dateFromSerial(serialDate, options) { let date = serialDate | 0; const t = DAYSIZE * (serialDate - date); let time = floor2(t); if (t - time > 0.9999) { time += 1; if (time === DAYSIZE) { time = 0; date += 1; } } const x2 = time < 0 ? DAYSIZE + time : time; const [y, m, d] = toYMD(serialDate, 0, options && options.leap1900); const hh2 = floor2(x2 / 60 / 60) % 60; const mm2 = floor2(x2 / 60) % 60; const ss4 = floor2(x2) % 60; return [y, m, d, hh2, mm2, ss4]; } // node_modules/numfmt/lib/parseValue.js var okDateFormats = [ // day-month-year "!d-m-y", "!d-m-Y", "!j-m-y", "!j-m-Y", "!d-n-y", "!d-n-Y", "!j-n-y", "!j-n-Y", // month-day-year "?m-d-y", "?m-d-Y", "?m-j-y", "?m-j-Y", "?n-d-y", "?n-d-Y", "?n-j-y", "?n-j-Y", // unab "d-M-y", "d-M-Y", "j-M-y", "j-M-Y", "M-d-y", "M-d-Y", "M-j-y", "M-j-Y", "d-F-y", "d-F-Y", "F-d-y", "F-d-Y", "F-j-y", "F-j-Y", "j-F-y", "j-F-Y", "y-F-d", "y-F-j", "y-M-d", "y-M-j", "Y-F-d", "Y-F-j", "Y-M-d", "Y-m-d", "Y-M-j", "Y-m-j", "Y-n-d", "Y-n-j", "j-F", // 2-April "j-M", // 2-Apr "d-F", // 02-April "d-M", // 02-Apr "n-d", // 4-02 "n-j", // 4-2 "n-Y", // 4-1908 "m-d", // 04-02 "m-j", // 04-2 "m-Y", // 04-1908 "M-Y", // Apr-1908 "M-y", // Apr-08 "F-y", // April-08 "F-Y", // April-1908 "Y-M", // 1908-Apr "Y-n", // 1908-4 "Y-m", // 1908-04 "Y-F", // 1908-April "Y-M" // 1908-Apr ]; var tx0 = { j: "d", d: "d", D: "ddd", l: "dddd", n: "m", m: "m", M: "mmm", F: "mmmm", y: "yy", Y: "yyyy" }; var tx00 = { j: "dd", d: "dd", D: "ddd", l: "dddd", n: "mm", m: "mm", M: "mmm", F: "mmmm", y: "yy", Y: "yyyy" }; var dateTrieDM = {}; var dateTrieMD = {}; function packDate(f, node, allowType = 1) { if (f) { const char = f[0]; const next = f.slice(1); if (char === "!") { packDate(next, node, 4); } else if (char === "?") { packDate(next, node, 2); } else { node[char] = node[char] || {}; packDate(next, node[char], allowType); } } else { node.$ = allowType; } } function addFormatToTrie(fmt, trie) { packDate(fmt, trie); packDate(fmt + " x", trie); packDate(fmt + " l", trie); packDate(fmt + " l x", trie); packDate("l " + fmt, trie); packDate("l " + fmt + " x", trie); packDate(fmt + " D", trie); packDate(fmt + " D x", trie); packDate("D " + fmt, trie); packDate("D " + fmt + " x", trie); } okDateFormats.forEach((fmt) => { fmt[0] !== "?" && addFormatToTrie(fmt, dateTrieDM); fmt[0] !== "!" && addFormatToTrie(fmt, dateTrieMD); }); var currentYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); var PT = "."; var CM = ","; var SP = " "; var NS = "\xA0"; var NN = "\u202F"; var AP = "'"; var AG = "\u066C"; var dec2group = { ".": [CM, NS, NN, AP, AG], ",": [PT, NS, NN, AP, AG], "\u066B": [PT, NS, NN, AP, AG] }; var isDigit = (d) => d && d.length === 1 && d >= "0" && d <= "9"; function parseNumber(value, options = {}) { const l10n = getLocale(options.locale || "") || defaultLocale; const dec = l10n.decimal; const grp = [...dec2group[dec] || [AP, AG]]; if (!grp.includes(l10n.group) && l10n.group !== SP && l10n.group !== dec) { grp.push(l10n.group); } let num = ""; let exp2 = ""; let sign2 = 1; let format2 = ""; let minus = false; let openParen = false; let closeParen = false; let percent = false; let currency = false; let currencySymbol = null; let currencyTrailing = false; let i = 0; const prefixChars = [SP, NS, NN, "+", "%", "(", "-"].concat(currencySymbols); while (prefixChars.includes(value[i])) { const char = value[i]; if (char === "-") { if (minus || openParen) { return null; } minus = true; sign2 = -1; } else if (reCurrencySymbols.test(char)) { if (currency) { return null; } currency = true; currencySymbol = char; } else if (char === "(") { if (openParen || minus) { return null; } openParen = true; sign2 = -1; } else if (char === "%") { if (percent) { return null; } percent = true; } i++; } let haveDecimal = false; let g2; if (value[i] === dec || isDigit(value[i])) { while (i < value.length) { const ch2 = value[i]; if (!g2 && grp.includes(ch2)) { g2 = ch2; } else if (g2 && g2 === ch2) { } else if (ch2 === dec) { if (haveDecimal) { break; } num += "."; haveDecimal = true; } else if (isDigit(ch2)) { num += ch2; } else { break; } i++; } } if (value[i] === "e" || value[i] === "E") { exp2 += value[i]; i++; if (value[i] === "+" || value[i] === "-") { exp2 += value[i]; i++; } const d = i; while (isDigit(value[i])) { exp2 += value[i]; i++; } if (d === i) { return null; } } const suffixChars = [SP, NS, NN, "%", "$", ")"].concat(currencySymbols); while (suffixChars.includes(value[i])) { const char = value[i]; if (reCurrencySymbols.test(char)) { if (currency) { return null; } currency = true; currencySymbol = char; currencyTrailing = true; } else if (char === ")") { if (closeParen || !openParen) { return null; } closeParen = true; } else if (char === "%") { if (percent) { return null; } percent = true; } i++; } if (i !== value.length) { return null; } let numberValue = parseFloat(num + exp2); if (!isFinite(numberValue)) { return null; } if (exp2) { if (percent || currency) { return null; } format2 = "0.00E+00"; } else if (percent) { if (currency) { return null; } format2 = num.includes(".") ? "0.00%" : "0%"; numberValue *= 0.01; } else if (currency) { const currencyFormat = num.includes(".") ? "#,##0.00" : "#,##0"; if (currencyTrailing) { format2 = currencyFormat + currencySymbol; } else { format2 = currencySymbol + currencyFormat; } } else if (g2) { format2 = num.includes(".") ? "#,##0.00" : "#,##0"; } const ret = { v: numberValue * sign2 }; if (format2) { ret.z = format2; } return ret; } function isValidDate(y, m, d) { if (d < 1) { return false; } if (m < 1 || m > 12) { return false; } if (m === 2) { const isLeapYear = y % 4 === 0 && y % 100 !== 0 || y % 400 === 0; const febDays = isLeapYear || y === 1900 ? 29 : 28; if (d > febDays) { return false; } } else if ((m === 4 || m === 6 || m === 9 || m === 11) && d > 30 || (m === 1 || m === 3 || m === 5 || m === 7 || m === 8 || m === 10 || m === 12) && d > 31) { return false; } return true; } var matchRec = (str, data, skipPeriod = false) => { for (const item of data) { if (str.startsWith(item[0])) { let l = item[0].length; if (skipPeriod && (item[2] === "D" || item[2] === "M") && str[l] === ".") { l++; } return [str.slice(0, l), item]; } } return ["", null]; }; var nextToken = (str, node, data, lData) => { const path = data.path || ""; const matchOrder = Object.keys(node); for (let i = 0; i < matchOrder.length; i++) { let r; const t = matchOrder[i]; if (!node[t]) { continue; } if (t === "$" || t === "\u20AC") { if (!str) { r = data; } } else if (t === "-") { const m = /^(\s*([./-]|,\s)\s*|\s+)/.exec(str); if (m) { const sep = m[1] === "-" || m[1] === "/" || m[1] === "." ? m[1] : " "; if (!data.sep || data.sep === sep) { const s = m[0].replace(/\s+/g, " "); r = nextToken(str.slice(m[0].length), node[t], { ...data, sep, path: path + s }, lData); } } } else if (t === " ") { const m = /^[,.]?\s+/.exec(str); if (m) { const s = m[0].replace(/\s+/g, " "); r = nextToken(str.slice(m[0].length), node[t], { ...data, path: path + s }, lData); } } else if (t === "j" || t === "d") { const m = /^(0?[1-9]|1\d|2\d|3[01])\b/.exec(str); if (m) { r = nextToken(str.slice(m[0].length), node[t], { ...data, day: m[0], path: path + t }, lData); } } else if (t === "n" || t === "m") { const m = /^(0?[1-9]|1[012])\b/.exec(str); if (m) { r = nextToken(str.slice(m[0].length), node[t], { ...data, month: +m[0], _mon: m[0], path: path + t }, lData); } } else if (t === "F" || t === "M") { const [m, match] = matchRec(str, lData.mon, lData.mp); if (match && match[2] === t) { r = nextToken( str.slice(m.length), node[t], { ...data, month: match[1], _mon: m, path: path + t }, lData ); } } else if (t === "l" || t === "D") { const [m, match] = matchRec(str, lData.day, lData.dp); if (match && match[2] === t) { r = nextToken(str.slice(m.length), node[t], { ...data, path: path + t }, lData); } } else if (t === "y") { const m = /^\d\d\b/.exec(str); if (m) { const y = +m[0] >= 30 ? +m[0] + 1900 : +m[0] + 2e3; r = nextToken(str.slice(m[0].length), node[t], { ...data, year: y, path: path + t }, lData); } } else if (t === "Y") { const m = /^\d\d\d\d\b/.exec(str); if (m) { r = nextToken(str.slice(m[0].length), node[t], { ...data, year: +m[0], path: path + t }, lData); } } else if (t === "x") { const time = parseTime(str, { locale: lData.locale }); if (time) { r = nextToken("", node[t], { ...data, time: time.v, tf: time.z, path: path + t }, lData); } } else { throw new Error(`Unknown date token "${t}"`); } if (r) { if (isValidDate(data.year || 1916, data.month || 1, data.day ? +data.day : 1)) { return r; } } } }; var normDateStr = (s) => s.replace(/\s+/g, " ").trim().replace(/’/, "'").replace(/\.$/, "").toLowerCase(); var getLookups = (arr, sym) => { const s = arr.map((d, i) => [normDateStr(d), i + 1, sym]); s.sort((a, b) => b[0].length - a[0].length); return s; }; function parseDate(value, options = {}) { const l10n = getLocale(options.locale || "") || defaultLocale; const lData = { mon: getLookups(l10n.mmmm, "F").concat(getLookups(l10n.mmm, "M")), mp: l10n.mmm[0].at(-1) === ".", day: getLookups(l10n.dddd, "l").concat(getLookups(l10n.ddd, "D")), dp: l10n.ddd[0].at(-1) === ".", locale: options.locale }; const date = nextToken( normDateStr(value), l10n.preferMDY ? dateTrieMD : dateTrieDM, { path: "" }, lData ); if (date) { if (date.sep === "." && date.path.length === 3) { return null; } const year = +(date.year ?? currentYear); if (!date.day) { date.day = 1; } let epoch = -Infinity; if (year < 1900) { return null; } else if (year <= 1900 && date.month <= 2) { epoch = 25568; } else if (year < 1e4) { epoch = 25569; } const dateValue = Date.UTC(year, date.month - 1, date.day) / 864e5 + epoch + (date.time || 0); if (dateValue >= 0 && dateValue <= 2958465) { const lead0 = ( // either has a leading zero date._mon[0] === "0" || date.day[0] === "0" || // both are 2-digits long date._mon.length === 2 && date.day.length === 2 ); const format2 = date.path.replace(/[jdlDnmMFyYx]/g, (a) => { if (a === "x") { return date.tf || ""; } return (lead0 ? tx00[a] : tx0[a]) || a; }); return { v: dateValue, z: format2 }; } } return null; } var normAMPMStr = (s) => s.replace(/\s+/g, "").trim().replace(/\./g, "").toLowerCase(); function parseTime(value, options = {}) { const l10n = getLocale(options.locale || "") || defaultLocale; const parts = /^\s*([10]?\d|2[0-4])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?(\.\d{1,10})?(?=\s*[^\s\d]|$)/.exec(value); let ampm = ""; if (parts) { const tail = normAMPMStr(value.slice(parts[0].length)); if (tail === normAMPMStr(l10n.ampm[0]) || tail === "a" || tail === "am") { ampm = "a"; } else if (tail === normAMPMStr(l10n.ampm[1]) || tail === "p" || tail === "pm") { ampm = "p"; } else if (tail) { return null; } } if (parts) { const [, h, m, s, f] = parts; if (f && !s) { return null; } if (!ampm && !m && !s) { return null; } let hrs = +(h || 0) * 1; if (ampm) { if (hrs >= 13) { return null; } if (ampm === "p") { hrs += 12; } } const min2 = +(m || 0) * 1; const sec = +(s || 0) * 1; const mss = +(f || 0) * 1; return { v: (hrs * 60 * 60 + min2 * 60 + sec + mss) / (60 * 60 * 24), z: (h.length === 2 ? "hh" : "h") + ":mm" + (s ? ":ss" : "") + (ampm ? " AM/PM" : "") }; } return null; } function parseBool(value, options = {}) { const l10n = getLocale(options.locale || "") || defaultLocale; const v = value.trim().toLowerCase(); const bT = l10n.bool[0].toLowerCase(); if (v === "true" || v === bT) { return { v: true }; } const bF = l10n.bool[1].toLowerCase(); if (v === "false" || v === bF) { return { v: false }; } return null; } function parseValue(value, options) { return parseNumber(value, options) ?? parseDate(value, options) ?? parseTime(value, options) ?? parseBool(value, options); } // node_modules/numfmt/lib/parseFormatSection.js function minMaxPad(str, part, prefix) { part[prefix + "_max"] = str.length; part[prefix + "_min"] = str.replace(/#/g, "").length; return part; } function add(s, tokens) { if (typeof s === "string") { tokens.push({ type: "string", value: s }); } else { tokens.push(s); } } function isNumOp(token, activePattern) { const type2 = token && token.type; return type2 === TOKEN_HASH || type2 === TOKEN_ZERO || type2 === TOKEN_QMARK || type2 === TOKEN_DIGIT && activePattern === "den"; } function parseFormatSection(inputTokens) { const outputTokens = []; const part = { scale: 1, percent: false, text: false, date: 0, date_eval: false, date_system: EPOCH_1900, sec_decimals: 0, general: false, clock: 24, int_pattern: [], frac_pattern: [], man_pattern: [], den_pattern: [], num_pattern: [], tokens: outputTokens }; let currentPattern = "int"; let lastNumberChunk = null; const dateChunks = []; let last2; let haveLocale = false; let index = -1; let partOver = false; let patternSource = ""; let haveSlash = false; while (++index < inputTokens.length && !partOver) { const token = inputTokens[index]; const type2 = token.type || TOKEN_ERROR; patternSource += token.raw; if (type2 === TOKEN_GENERAL) { part.general = true; add(token, outputTokens); } else if (isNumOp(token, currentPattern)) { const pt3 = part[currentPattern + "_pattern"]; if (isNumOp(last2, currentPattern) || last2?.type === TOKEN_GROUP) { pt3.push((pt3.pop() || "") + token.value); lastNumberChunk.num += token.value; } else { pt3.push(token.value); lastNumberChunk = { type: currentPattern, num: token.value }; add(lastNumberChunk, outputTokens); } } else if (type2 === TOKEN_PAREN) { if (token.value === "(") { part.parens = true; } add(token.value, outputTokens); } else if (type2 === TOKEN_DIGIT) { add(token.value, outputTokens); } else if (type2 === TOKEN_SLASH) { haveSlash = true; if (part[currentPattern + "_pattern"].length) { if (!lastNumberChunk) { throw new SyntaxError("Format pattern is missing a numerator"); } part.fractions = true; part.num_pattern.push(part[currentPattern + "_pattern"].pop()); lastNumberChunk.type = "num"; currentPattern = "den"; add({ type: "div" }, outputTokens); } else { add(token.value, outputTokens); } } else if (type2 === TOKEN_COMMA) { add(",", outputTokens); } else if (type2 === TOKEN_SCALE) { part.scale = 1e-3 ** token.raw.length; } else if (type2 === TOKEN_GROUP) { if (currentPattern === "int") { part.grouping = true; } if (currentPattern === "den") { throw new SyntaxError("Cannot group denominator digits"); } } else if (type2 === TOKEN_SPACE) { add(token, outputTokens); } else if (type2 === TOKEN_BREAK) { partOver = true; break; } else if (type2 === TOKEN_TEXT) { part.text = true; add(token, outputTokens); } else if (type2 === TOKEN_PLUS || type2 === TOKEN_MINUS) { add(token, outputTokens); } else if (type2 === TOKEN_DURATION) { const tokenValue = token.value.toLowerCase(); const startsWith = tokenValue[0]; const bit = { type: "", size: 0, date: 1, pad: tokenValue.length }; if (startsWith === "h") { bit.size = u_HOUR; bit.type = "hour-elap"; } else if (startsWith === "m") { bit.size = u_MIN; bit.type = "min-elap"; } else { bit.size = u_SEC; bit.type = "sec-elap"; } part.date = part.date | bit.size; dateChunks.push(bit); add(bit, outputTokens); } else if (part.date && type2 === TOKEN_POINT && inputTokens[index + 1]?.type === TOKEN_ZERO) { let dec = 1; index++; let raw = "0"; if (inputTokens[index + 1]?.type === TOKEN_ZERO) { raw += "0"; dec = 2; index++; } if (inputTokens[index + 1]?.type === TOKEN_ZERO) { raw += "0"; dec = 3; index++; } patternSource += raw; const size = [u_SEC, u_DSEC, u_CSEC, u_MSEC][dec]; part.date = part.date | size; part.date_eval = true; part.sec_decimals = Math.max(part.sec_decimals, dec); add({ type: "subsec", size, decimals: dec, date: 1 }, outputTokens); } else if (type2 === TOKEN_CALENDAR) { if (!haveLocale) { if (token.value === "B2" || token.value === "b2") { part.date_system = EPOCH_1317; } else { part.date_system = EPOCH_1900; } } } else if (type2 === TOKEN_DATETIME) { const bit = { type: "", size: 0, date: 1 }; const value = token.value.toLowerCase(); const startsWith = value[0]; if (value === "y" || value === "yy") { bit.size = u_YEAR; bit.type = "year-short"; } else if (startsWith === "y" || startsWith === "e") { bit.size = u_YEAR; bit.type = "year"; } else if (value === "b" || value === "bb") { bit.size = u_YEAR; bit.type = "b-year-short"; } else if (startsWith === "b") { bit.size = u_YEAR; bit.type = "b-year"; } else if (value === "d" || value === "dd") { bit.size = u_DAY; bit.type = "day"; bit.pad = /dd/.test(value); } else if (value === "ddd" || value === "aaa") { bit.size = u_DAY; bit.type = "weekday-short"; } else if (startsWith === "d" || startsWith === "a") { bit.size = u_DAY; bit.type = "weekday"; } else if (startsWith === "h") { bit.size = u_HOUR; bit.type = "hour"; bit.pad = /hh/i.test(value); } else if (startsWith === "m") { if (value.length === 3) { bit.size = u_MONTH; bit.type = "monthname-short"; } else if (value.length === 5) { bit.size = u_MONTH; bit.type = "monthname-single"; } else if (value.length >= 4) { bit.size = u_MONTH; bit.type = "monthname"; } const last_date_chunk = dateChunks[dateChunks.length - 1]; if (!bit.type && last_date_chunk && !last_date_chunk.used && last_date_chunk.size & (u_HOUR | u_SEC)) { last_date_chunk.used = true; bit.size = u_MIN; bit.type = "min"; bit.pad = /mm/.test(value); } if (!bit.type) { bit.size = u_MONTH; bit.type = "month"; bit.pad = /mm/.test(value); bit.indeterminate = true; } } else if (startsWith === "s") { bit.size = u_SEC; bit.type = "sec"; bit.pad = /ss/.test(value); const last_date_chunk = dateChunks[dateChunks.length - 1]; if (last_date_chunk && last_date_chunk.size & u_MIN) { bit.used = true; } else if (last_date_chunk && last_date_chunk.indeterminate) { delete last_date_chunk.indeterminate; last_date_chunk.size = u_MIN; last_date_chunk.type = "min"; bit.used = true; } } else if (startsWith === "g") { } part.date = part.date | bit.size; part.date_eval = true; dateChunks.push(bit); add(bit, outputTokens); } else if (type2 === TOKEN_AMPM) { part.clock = 12; part.date = part.date | u_HOUR; part.date_eval = true; token.short = token.value === "A/P"; add(token, outputTokens); } else if (type2 === TOKEN_STRING || type2 === TOKEN_ESCAPED || type2 === TOKEN_CHAR) { add(token.value, outputTokens); } else if (type2 === TOKEN_CONDITION) { part.condition = [ token.value[0], // operator parseFloat(token.value[1]) // operand ]; } else if (type2 === TOKEN_LOCALE) { const bits = token.value.split("-"); const code = bits.length < 2 ? "" : bits.slice(1).join("-"); const currency = bits[0]; if (currency) { add(currency, outputTokens); } const l4e = resolveLocale(code); if (l4e) { part.locale = l4e; } const wincode = parseInt(code, 16); if (isFinite(wincode) && wincode & 16711680) { const cal = wincode >> 16 & 255; if (cal === 6) { part.date_system = EPOCH_1317; } } haveLocale = true; } else if (type2 === TOKEN_COLOR) { let cm2; let v = token.value.toLowerCase(); if (cm2 = /^color\s*(\d+)$/i.exec(v)) { v = parseInt(cm2[1], 10); } part.color = v; } else if (type2 === TOKEN_PERCENT) { part.scale = 100; part.percent = true; add("%", outputTokens); } else if (type2 === TOKEN_POINT) { add(token, outputTokens); if (!part.date) { part.dec_fractions = true; currentPattern = "frac"; } } else if (type2 === TOKEN_EXP) { part.exponential = true; part.exp_plus = token.value.includes("+"); currentPattern = "man"; add({ type: "exp", plus: part.exp_plus }, outputTokens); } else if (type2 === TOKEN_SKIP) { add(token, outputTokens); } else if (type2 === TOKEN_FILL) { add(token, outputTokens); } else if (type2 === TOKEN_DBNUM || type2 === TOKEN_NATNUM) { } else if (type2 === TOKEN_ERROR) { throw new SyntaxError(`Illegal character: ${patternSource}`); } else { throw new SyntaxError(`Unknown token ${type2} in ${patternSource}`); } last2 = token; } part.tokensUsed = index; part.pattern = patternSource; if (/^((?:\[[^\]]+\])+)(;|$)/.test(part.pattern) && !/^\[(?:h+|m+|s+)\]/.test(part.pattern)) { add({ type: "text" }, outputTokens); } if (part.fractions && part.dec_fractions || part.grouping && !part.int_pattern.length || part.fractions && part.exponential || part.fractions && part.den_pattern.length * part.num_pattern.length === 0 || haveSlash && !part.fractions && !part.date || part.exponential && (part.int_pattern.length || part.frac_pattern.length) * part.man_pattern.length === 0) { throw new SyntaxError(`Invalid pattern: ${patternSource}`); } const intPattern = part.int_pattern.join(""); const manPattern = part.man_pattern.join(""); const fracPattern = part.frac_pattern.join(""); minMaxPad(intPattern, part, "int"); let min2 = 0; for (let i = 0; i < intPattern.length; i++) { const ch2 = intPattern[intPattern.length - 1 - i]; if (/^[0-9?]/.test(ch2)) { min2 = i + 1; } } part.int_min = min2; minMaxPad(fracPattern, part, "frac"); minMaxPad(manPattern, part, "man"); let num_pat = part.num_pattern.join(""); let den_pat = part.den_pattern[0] || ""; const enforce_padded = den_pat.includes("?") || num_pat.includes("?"); if (enforce_padded) { den_pat = den_pat.replace(/\d/g, "?"); den_pat = den_pat.replace(/#$/g, "?"); minMaxPad(num_pat, part, "num"); minMaxPad(den_pat, part, "den"); num_pat = num_pat.replace(/#$/g, "?"); } else { minMaxPad(num_pat, part, "num"); minMaxPad(den_pat, part, "den"); } part.int_p = intPattern; part.man_p = manPattern; part.num_p = num_pat; part.den_p = den_pat; if (part.den_pattern.length) { part.denominator = parseInt(part.den_pattern.join("").replace(/\D/g, ""), 10); } part.integer = !!intPattern.length; if (!part.integer && !part.exponential && fracPattern.length) { const pointIdx = part.tokens.findIndex((d) => d.type === "point"); part.tokens.splice(pointIdx, 0, { type: "int", value: "#" }); part.integer = true; part.int_pattern = ["#"]; part.int_p = "#"; } if (part.fractions) { for (let i = 0; i < outputTokens.length - 1; i++) { const tok = outputTokens[i]; if (tok.type !== "string" && tok.type !== "space") { continue; } const nextType = outputTokens[i + 1].type; if (nextType === "num") { tok.rule = "num+int"; } else if (nextType === "div") { tok.rule = "num"; } else if (nextType === "den") { tok.rule = "den"; } else { } } } if (part.grouping) { if (part.int_pattern.length > 1) { part.grouping = false; } } return part; } // node_modules/numfmt/lib/clamp.js function clamp(number) { if (number === 0) { return number; } const d = Math.ceil(Math.log10(number < 0 ? -number : number)); const mag = 10 ** (16 - Math.floor(d)); return isFinite(mag) ? Math.round(number * mag) / mag : 0; } // node_modules/numfmt/lib/numberProps.js function getExponent(num, int_max = 0) { const exp2 = Math.floor(Math.log10(num)); return int_max > 1 ? Math.floor(exp2 / int_max) * int_max : exp2; } function getSignificand(n, exp2 = 1) { if (exp2 < -300) { return parseFloat(n.toExponential().split("e")[0]); } return n * 10 ** -exp2; } // node_modules/numfmt/lib/numdec.js var zero = { total: 1, sign: 0, period: 0, int: 1, frac: 0 }; function numdec(value, incl_sign = true) { const v = Math.abs(value); if (!v) { return zero; } const signSize = incl_sign && value < 0 ? 1 : 0; const intPart = Math.floor(v); const intSize = Math.floor(Math.log10(v) + 1); let periodSize = 0; let fracSize = 0; if (intPart !== v) { periodSize = 1; const n = String( round(v * 10 ** -intSize, 15) ); let f = n.length; let z4 = true; let i = 0; while (i <= n.length) { if (n[i] === ".") { f--; break; } else if (n[i] === "0" && z4) { f--; } else { z4 = false; } i++; } fracSize = f - intSize; if (fracSize < 0) { fracSize = 0; periodSize = 0; } } return { total: signSize + Math.max(intSize, 1) + periodSize + fracSize, digits: Math.max(intSize, 0) + fracSize, sign: signSize, period: periodSize, int: Math.max(intSize, 1), frac: fracSize }; } // node_modules/numfmt/lib/general.js var fixLocale = (s, l10n) => { return s.replace(/\./, l10n.decimal); }; var getExp = (n, exp2, l10n) => { const x2 = Math.abs(exp2); let m; if (n === 1) { m = n; } else { m = round(n, 5); } return [ fixLocale(m + "", l10n), l10n.exponent, exp2 < 0 ? l10n.negative : l10n.positive, x2 < 10 ? "0" : "", x2 ]; }; function general(ret, part, value, l10n) { const int = value | 0; if (typeof value === "string") { ret.push(value); } else if (value === int) { ret.push(Math.abs(int)); } else { const v = Math.abs(value); let exp2 = getExponent(v); let n = getSignificand(v, exp2); if (n === 10) { n = 1; exp2++; } const num_dig = numdec(v); if (exp2 >= -4 && exp2 <= -1) { const o = v.toPrecision(10 + exp2).replace(/\.?0+$/, ""); ret.push(fixLocale(o, l10n)); } else if (exp2 === 10) { const o = v.toFixed(10).slice(0, 12).replace(/\.$/, ""); ret.push(fixLocale(o, l10n)); } else if (Math.abs(exp2) <= 9) { if (num_dig.total <= 11) { const o = round(v, 9).toFixed(num_dig.frac); ret.push(fixLocale(o, l10n)); } else if (exp2 === 9) { ret.push(Math.floor(v)); } else if (exp2 >= 0 && exp2 < 9) { ret.push(fixLocale(String(round(v, 9 - exp2)), l10n)); } else { ret.push(...getExp(n, exp2, l10n)); } } else if (num_dig.total >= 12) { ret.push(...getExp(n, exp2, l10n)); } else { ret.push(fixLocale(round(v, 9).toFixed(num_dig.frac), l10n)); } } return ret; } // node_modules/numfmt/lib/pad.js function pad(c, nbsp = false) { if (c === "0") { return "0"; } else if (c === "?") { return nbsp ? "\xA0" : " "; } return ""; } // node_modules/numfmt/lib/runPart.js var DAYSIZE2 = 86400; var dateOverflows = (inputValue, roundedValue, bigRange) => { if (bigRange) { return inputValue < MIN_L_DATE || roundedValue >= MAX_L_DATE; } return inputValue < MIN_S_DATE || roundedValue >= MAX_S_DATE; }; function runPart(value, part, opts, l10n_) { let mantissa = ""; let mantissa_sign = ""; let numerator = ""; let denominator = ""; let fraction = ""; let integer = ""; let exp2 = 0; let date = 0; if (typeof value === "bigint") { if (value <= Number.MAX_SAFE_INTEGER && value >= Number.MIN_SAFE_INTEGER) { value = Number(value); } else { return opts.bigintErrorNumber ? String(value) : opts.overflow; } date = value; } else { date = Math.trunc(value); } let time = 0; let year = 0; let month = 1; let day = 0; let weekday = 0; let hour = 0; let minute = 0; let second = 0; let subsec = 0; const l10n = l10n_ || defaultLocale; if (!part.text && isFinite(part.scale) && part.scale !== 1) { value = clamp(value * part.scale); } if (part.exponential) { let v = Math.abs(value); if (v) { exp2 = getExponent(v, part.int_max); } if (value && !part.integer) { exp2++; } v = getSignificand(v, exp2); if (part.int_max === 1 && round(v, part.frac_max) === 10) { v = 1; exp2++; } value = value < 0 ? -v : v; mantissa += Math.abs(exp2); } if (part.integer) { const i = Math.abs(round(value, part.fractions ? 1 : part.frac_max)); integer += i < 1 ? "" : Math.floor(i); } const group_pri = opts.grouping[0] ?? 3; const group_sec = opts.grouping[1] ?? group_pri; if (part.dec_fractions) { fraction = String(round(value, part.frac_max)).split(".")[1] || ""; } const fixed_slash = !part.error && (part.num_p.includes("0") || part.den_p.includes("0")); let have_fraction = fixed_slash; if (part.fractions) { have_fraction = fixed_slash || !!(value % 1); const _dec = Math.abs(part.integer ? value % 1 : value); if (_dec) { have_fraction = true; if (part.denominator && isFinite(part.denominator)) { denominator += part.denominator; numerator += round(_dec * part.denominator); if (numerator === "0") { numerator = ""; denominator = ""; have_fraction = fixed_slash; } } else { const frt = dec2frac(_dec, Infinity, part.den_max); numerator += frt[0]; denominator += frt[1]; if (part.integer && numerator === "0") { numerator = ""; denominator = ""; have_fraction = fixed_slash; } } } else if (!value && !part.integer) { have_fraction = true; numerator = "0"; denominator = "1"; } if (part.integer && !have_fraction && !Math.trunc(value)) { integer = "0"; } } if (part.date) { date = Math.trunc(value); const t = DAYSIZE2 * (value - date); time = Math.floor(t); subsec = t - time; if (Math.abs(subsec) < 1e-6) { subsec = 0; } else if (subsec > 0.9999) { subsec = 0; time += 1; if (time === DAYSIZE2) { time = 0; date += 1; } } if (subsec) { const minU = part.date & u_MSEC || part.date & u_CSEC || part.date & u_DSEC; if (minU === u_MSEC && subsec > 0.9995 || minU === u_CSEC && subsec > 0.995 || minU === u_DSEC && subsec > 0.95 || !minU && subsec >= 0.5) { time++; subsec = 0; } } if (date || part.date_system) { const dout = toYMD(value, part.date_system, opts.leap1900); year = dout[0]; month = dout[1]; day = dout[2]; } if (time) { const x2 = time < 0 ? DAYSIZE2 + time : time; second = Math.floor(x2) % 60; minute = Math.floor(x2 / 60) % 60; hour = Math.floor(x2 / 60 / 60) % 60; } weekday = (6 + date) % 7; if (part.date_eval && dateOverflows(value, date + time / DAYSIZE2, opts.dateSpanLarge)) { if (opts.dateErrorThrows) { throw new Error("Date out of bounds"); } if (opts.dateErrorNumber) { const _ret = value < 0 ? [l10n.negative] : []; return general(_ret, {}, value, l10n).join(""); } return opts.overflow; } } const padQ = pad("?", opts.nbsp); if (exp2 < 0) { mantissa_sign = "-"; } else if (part.exp_plus) { mantissa_sign = "+"; } const ret = []; const digitsStart = (numstr, pattern, part2, offset) => { const l = !offset && numstr.length > pattern.length ? part2.length + numstr.length - pattern.length : part2.length; if (numstr.length < pattern.length) { offset += numstr.length - pattern.length; } for (let i = 0; i < l; i++) { ret.push(numstr[i + offset] || pad(part2[i], opts.nbsp)); } return l; }; let denominator_fixed = false; const counter = { int: 0, frac: 0, man: 0, num: 0, den: 0 }; for (let ti4 = 0, tl4 = part.tokens.length; ti4 < tl4; ti4++) { const tok = part.tokens[ti4]; const tokenType = tok.type; const len = tok.num ? tok.num.length : 0; if (tokenType === "string") { if (tok.rule) { if (tok.rule === "num") { if (have_fraction) { ret.push(tok.value.replace(/ /g, padQ)); } else if (part.num_min > 0 || part.den_min > 0) { ret.push(tok.value.replace(/./g, padQ)); } } else if (tok.rule === "num+int") { if (have_fraction && integer) { ret.push(tok.value.replace(/ /g, padQ)); } else if (part.den_min > 0 && (integer || part.num_min)) { ret.push(tok.value.replace(/./g, padQ)); } } else if (tok.rule === "den") { if (have_fraction) { ret.push(tok.value.replace(/ /g, padQ)); } else if (part.den_min > 0 || part.den_min > 0) { ret.push(tok.value.replace(/./g, padQ)); } } } else { ret.push(tok.value.replace(/ /g, padQ)); } } else if (tokenType === "space") { if (tok.rule === "num+int") { if ((have_fraction || part.num_min || part.den_min) && (integer || part.num_min)) { ret.push(padQ); } } else { ret.push(padQ); } } else if (tokenType === "error") { ret.push(opts.invalid); } else if (tokenType === "point") { ret.push(part.date ? tok.value : l10n.decimal); } else if (tokenType === "general") { general(ret, part, value, l10n); } else if (tokenType === "exp") { ret.push(l10n.exponent); } else if (tokenType === "minus") { if (tok.volatile && part.date) { } else if (tok.volatile && (value >= 0 || typeof value !== "number")) { } else if (tok.volatile && !part.fractions && (part.integer || part.dec_fractions)) { if (value < 0 && (integer && integer !== "0") || fraction) { ret.push(l10n.negative); } } else { ret.push(l10n.negative); } } else if (tokenType === "plus") { ret.push(l10n.positive); } else if (tokenType === "text") { ret.push(value); } else if (tokenType === "fill") { if (opts.fillChar) { ret.push(opts.fillChar, tok.value); } } else if (tokenType === "skip") { if (opts.skipChar) { ret.push(opts.skipChar, tok.value); } else { ret.push(opts.nbsp ? "\xA0" : " "); } } else if (tokenType === "div") { if (have_fraction) { ret.push("/"); } else if (part.num_min > 0 || part.den_min > 0) { ret.push(padQ); } else { ret.push(pad("#", opts.nbsp)); } } else if (tokenType === "int") { if (part.int_pattern.length === 1) { const pt3 = part.int_p; const l = Math.max(part.int_min, integer.length); let digits = ""; for (let i = l; i > 0; i--) { const d = integer.charAt(integer.length - i); const p = d ? "" : pt3.charAt(pt3.length - i) || pt3[0]; let sep = ""; if (part.grouping) { const n = i - 1 - group_pri; if (n >= 0 && !(n % group_sec)) { sep = d || p === "0" ? l10n.group : pad("?", opts.nbsp); } } digits += (d || pad(p, opts.nbsp)) + sep; } ret.push(digits); } else { counter.int += digitsStart(integer, part.int_p, tok.num, counter.int); } } else if (tokenType === "frac") { const o = counter.frac; for (let i = 0; i < len; i++) { ret.push(fraction[i + o] || pad(tok.num[i], opts.nbsp)); } counter.frac += len; } else if (tokenType === "man") { if (!counter[tokenType] && !counter.man) { ret.push(mantissa_sign); } counter.man += digitsStart(mantissa, part.man_p, tok.num, counter.man); } else if (tokenType === "num") { counter.num += digitsStart(numerator, part.num_p, tok.num, counter.num); } else if (tokenType === "den") { const o = counter.den; for (let i = 0; i < len; i++) { let digit = denominator[i + o]; if (!digit) { const ch2 = tok.num[i]; if ("123456789".includes(ch2) || denominator_fixed && ch2 === "0") { denominator_fixed = true; digit = opts.nbsp ? "\xA0" : " "; } else if (!denominator_fixed && i === len - 1 && ch2 === "0" && !denominator) { digit = "1"; } else { digit = pad(ch2, opts.nbsp); } } ret.push(digit); } counter.den += len; } else if (tokenType === "year") { if (year < 0) { ret.push(l10n.negative); } ret.push(String(Math.abs(year)).padStart(4, "0")); } else if (tokenType === "year-short") { const y = year % 100; ret.push(y < 10 ? "0" : "", y); } else if (tokenType === "month") { ret.push(tok.pad && month < 10 ? "0" : "", month); } else if (tokenType === "monthname-single") { if (part.date_system === EPOCH_1317) { ret.push(l10n.mmmm6[month - 1].charAt(0)); } else { ret.push(l10n.mmmm[month - 1].charAt(0)); } } else if (tokenType === "monthname-short") { if (part.date_system === EPOCH_1317) { ret.push(l10n.mmm6[month - 1]); } else { ret.push(l10n.mmm[month - 1]); } } else if (tokenType === "monthname") { if (part.date_system === EPOCH_1317) { ret.push(l10n.mmmm6[month - 1]); } else { ret.push(l10n.mmmm[month - 1]); } } else if (tok.type === "weekday-short") { ret.push(l10n.ddd[weekday]); } else if (tokenType === "weekday") { ret.push(l10n.dddd[weekday]); } else if (tokenType === "day") { ret.push(tok.pad && day < 10 ? "0" : "", day); } else if (tokenType === "hour") { const h = hour % part.clock || (part.clock < 24 ? part.clock : 0); ret.push(tok.pad && h < 10 ? "0" : "", h); } else if (tokenType === "min") { ret.push(tok.pad && minute < 10 ? "0" : "", minute); } else if (tokenType === "sec") { ret.push(tok.pad && second < 10 ? "0" : "", second); } else if (tokenType === "subsec") { ret.push(l10n.decimal); const f = subsec.toFixed(part.sec_decimals); ret.push(f.slice(2, 2 + tok.decimals)); } else if (tokenType === "ampm") { const idx = hour < 12 ? 0 : 1; if (tok.short && !l10n_) { ret.push("AP"[idx]); } else { ret.push(l10n.ampm[idx]); } } else if (tokenType === "hour-elap") { if (value < 0) { ret.push(l10n.negative); } const hh2 = date * 24 + Math.floor(Math.abs(time) / (60 * 60)); ret.push(String(Math.abs(hh2)).padStart(tok.pad, "0")); } else if (tokenType === "min-elap") { if (value < 0) { ret.push(l10n.negative); } const mm2 = date * 1440 + Math.floor(Math.abs(time) / 60); ret.push(String(Math.abs(mm2)).padStart(tok.pad, "0")); } else if (tokenType === "sec-elap") { if (value < 0) { ret.push(l10n.negative); } const ss4 = date * DAYSIZE2 + Math.abs(time); ret.push(String(Math.abs(ss4)).padStart(tok.pad, "0")); } else if (tokenType === "b-year") { ret.push(year + 543); } else if (tokenType === "b-year-short") { const y = (year + 543) % 100; ret.push(y < 10 ? "0" : "", y); } } return ret.join(""); } // node_modules/numfmt/lib/formatNumber.js var default_text = parseFormatSection([ { type: TOKEN_TEXT, value: "@", raw: "@" } ]); function getPart(value, parts) { for (let pi3 = 0; pi3 < 3; pi3++) { const part = parts[pi3]; if (part) { let cond; if (part.condition) { const operator = part.condition[0]; const operand = part.condition[1]; if (operator === "=") { cond = value === operand; } else if (operator === ">") { cond = value > operand; } else if (operator === "<") { cond = value < operand; } else if (operator === ">=") { cond = value >= operand; } else if (operator === "<=") { cond = value <= operand; } else if (operator === "<>") { cond = value !== operand; } } else { cond = true; } if (cond) { return part; } } } return void 0; } function formatColor(value, parseData, opts) { const parts = parseData.partitions; let part = parts[3]; let color = null; if ((typeof value === "number" || typeof value === "bigint") && isFinite(value)) { part = getPart(value, parts); } if (part && part.color) { color = part.color; } if (color && typeof color === "number" && opts.indexColors) { color = indexColors[color - 1] || "#000"; } return color; } function formatValue(value, parseData, opts) { const parts = parseData.partitions; const l10n = getLocale(parseData.locale || opts.locale); const text_part = parts[3] ? parts[3] : default_text; if (typeof value === "boolean") { const loc = l10n || defaultLocale; value = loc.bool[value ? 0 : 1]; } if (value == null) { return ""; } const n = typeof value === "bigint"; if (typeof value !== "number" && !n) { return runPart(value, text_part, opts, l10n); } if (!n && !isFinite(value)) { const loc = l10n || defaultLocale; if (isNaN(value)) { return loc.nan; } return (value < 0 ? loc.negative : "") + loc.infinity; } const part = getPart(value, parts); return part ? runPart(value, part, opts, l10n) : opts.overflow; } // node_modules/numfmt/lib/formatInfo.js function isPercent(partitions) { return !!(partitions[0] && partitions[0].percent || partitions[1] && partitions[1].percent || partitions[2] && partitions[2].percent || partitions[3] && partitions[3].percent); } function isDate(partitions) { return !!(partitions[0] && partitions[0].date || partitions[1] && partitions[1].date || partitions[2] && partitions[2].date || partitions[3] && partitions[3].date); } function isText(partitions) { const [part1, part2, part3, part4] = partitions; return !!((!part1 || part1.generated) && (!part2 || part2.generated) && (!part3 || part3.generated) && (part4 && part4.text && !part4.generated)); } var level = { text: 15, datetime: 10.8, date: 10.8, time: 10.8, percent: 10.6, currency: 10.4, grouped: 10.2, scientific: 6, number: 4, fraction: 2, general: 0, error: 0 }; var dateCodes = [ ["DMY", 1], ["DM", 2], ["MY", 3], ["MDY", 4], ["MD", 5], ["hmsa", 6], ["hma", 7], ["hms", 8], ["hm", 9] ]; function info(partitions, currencyId = null) { const [partPos, partNeg] = partitions; const frac_max = partPos.frac_max; const info2 = { type: "general", isDate: isDate(partitions), isText: isText(partitions), isPercent: isPercent(partitions), maxDecimals: partPos.general ? 9 : frac_max, scale: partPos.scale ?? 1, color: 0, parentheses: 0, grouped: partPos.grouping ? 1 : 0 }; const isCurrency = !info2.isDate && !info2.isText && !partPos.error && partPos.tokens.some((tok) => tok.type === "string" && (currencyId ? tok.value === currencyId : reCurrencySymbols.test(tok.value))); let codeType = "G"; let codeNum = frac_max >= 0 ? Math.min(15, frac_max) : ""; let codeParens = ""; let codeDash = ""; if (partNeg && partNeg.color) { codeDash = "-"; info2.color = 1; } if (partPos.parens) { codeParens = "()"; info2.parentheses = 1; } if (isCurrency) { codeType = "C"; info2.type = "currency"; } else if (partPos.error) { info2.type = "error"; info2.maxDecimals = 0; } else if (info2.isDate) { let haveTime = 0; let haveDate = 0; let order = ""; partPos.tokens.forEach((tok) => { const type2 = tok.type; if (/^(b-)?year/.test(type2)) { order += "Y"; haveDate++; } else if (type2.startsWith("month")) { order += "M"; haveDate++; } else if (/^(week)?day/.test(type2)) { order += "D"; haveDate++; } else if (type2 === "hour" || type2 === "min" || type2 === "sec" || type2 === "ampm") { order += type2[0]; haveTime++; } }); info2.type = "date"; if (haveDate && haveTime) { info2.type = "datetime"; } else if (!haveDate && haveTime) { info2.type = "time"; } const code = dateCodes.find((d) => order.startsWith(d[0])); codeType = code ? "D" : "G"; codeNum = code ? code[1] : ""; } else if (info2.isText) { codeType = "G"; info2.type = "text"; codeNum = ""; info2.maxDecimals = 0; } else if (partPos.general) { codeType = "G"; info2.type = "general"; codeNum = ""; } else if (partPos.fractions) { codeType = "G"; info2.type = "fraction"; codeNum = ""; } else if (partPos.exponential) { codeType = "S"; info2.type = "scientific"; } else if (info2.isPercent) { codeType = "P"; info2.type = "percent"; } else if (partPos.grouping) { codeType = ","; info2.type = "grouped"; } else if (partPos.int_max || frac_max) { codeType = "F"; info2.type = "number"; } info2.code = codeType + codeNum + codeDash + codeParens; info2.level = level[info2.type]; return Object.freeze(info2); } function dateInfo(partitions) { const [partPos] = partitions; const r = { year: !!(partPos.date & u_YEAR), month: !!(partPos.date & u_MONTH), day: !!(partPos.date & u_DAY), hours: !!(partPos.date & u_HOUR), minutes: !!(partPos.date & u_MIN), seconds: !!(partPos.date & u_SEC), clockType: partPos.clock === 12 ? 12 : 24 }; return r; } // node_modules/numfmt/lib/tokenize.js var tokenHandlers = [ [TOKEN_GENERAL, /^General/i, 0], [TOKEN_HASH, /^#/, 0], [TOKEN_ZERO, /^0/, 0], [TOKEN_QMARK, /^\?/, 0], [TOKEN_SLASH, /^\//, 0], // Commas are dealt with as a special case in the tokenizer but will end up // as one of these: // [ TOKEN_GROUP, /^(,),*/, 1 ], // [ TOKEN_SCALE, /^(,),*/, 1 ], // [ TOKEN_COMMA, /^(,),*/, 1 ], [TOKEN_BREAK, /^;/, 0], [TOKEN_TEXT, /^@/, 0], [TOKEN_PLUS, /^\+/, 0], [TOKEN_MINUS, /^-/, 0], [TOKEN_POINT, /^\./, 0], [TOKEN_SPACE, /^ /, 0], [TOKEN_PERCENT, /^%/, 0], [TOKEN_DIGIT, /^[1-9]/, 0], [TOKEN_CALENDAR, /^(?:B[12])/i, 0], [TOKEN_ERROR, /^B$/, 0], // pattern must not end in a "B" [TOKEN_DATETIME, /^(?:[hH]+|[mM]+|[sS]+|[yY]+|[bB]+|[dD]+|[gG]+|[aA]{3,}|e+)/, 0], [TOKEN_DURATION, /^(?:\[(h+|m+|s+)\])/i, 1], [TOKEN_CONDITION, /^\[(<[=>]?|>=?|=)\s*(-?[.\d]+)\]/, [1, 2]], [TOKEN_DBNUM, /^\[(DBNum[0-4]?\d)\]/i, 1], [TOKEN_NATNUM, /^\[(NatNum[0-4]?\d)\]/i, 1], [TOKEN_LOCALE, /^\[\$([^\]]+)\]/, 1], [TOKEN_COLOR, /^\[(black|blue|cyan|green|magenta|red|white|yellow|color\s*\d+)\]/i, 1], // conditionally allow these open ended directions? [TOKEN_MODIFIER, /^\[([^\]]+)\]/, 1], [TOKEN_AMPM, /^(?:AM\/PM|am\/pm|A\/P)/, 0], [TOKEN_ESCAPED, /^\\(.)/, 1], [TOKEN_STRING, /^"([^"]*?)"/, 1], [TOKEN_SKIP, /^_(\\.|.)/, 1], // Google Sheets and Excel diverge on "e": Excel only accepts E. [TOKEN_EXP, /^[Ee]([+-])/, 1], [TOKEN_FILL, /^\*(\\.|.)/, 1], [TOKEN_PAREN, /^[()]/, 0], [TOKEN_ERROR, /^[EÈÉÊËèéêëĒēĔĕĖėĘęĚěȄȅȆȇȨȩNnÑñŃńŅņŇňǸǹ["*/\\_]/, 0], [TOKEN_CHAR, /^./, 0] ]; var CODE_QMRK = 63; var CODE_HASH = 35; var CODE_ZERO = 48; var CODE_NINE = 57; var isNumOp2 = (char) => { const c = (char || "\0").charCodeAt(0); return c === CODE_QMRK || c === CODE_HASH || c >= CODE_ZERO && c <= CODE_NINE; }; function tokenize(pattern) { let i = 0; const tokens = []; const unresolvedCommas = []; while (i < pattern.length) { const curr = pattern.slice(i); let step = 0; const mComma = /^(,+)(.)?/.exec(curr); if (mComma) { const raw = mComma[1]; step = raw.length; const lookBehind = pattern[i - 1] || ""; let maybeGROUP = false; let maybeSCALE = false; if (isNumOp2(lookBehind)) { maybeGROUP = true; maybeSCALE = true; } else if (lookBehind === ".") { maybeSCALE = true; } const lookAhead = mComma[2] || ""; if (maybeGROUP && (!lookAhead || lookAhead === ";")) { maybeGROUP = false; } if (maybeSCALE && isNumOp2(lookAhead)) { maybeSCALE = false; } if (maybeGROUP && !maybeSCALE) { tokens.push({ type: TOKEN_GROUP, value: ",", raw }); } else if (!maybeGROUP && maybeSCALE) { tokens.push({ type: TOKEN_SCALE, value: ",", raw }); } else if (maybeGROUP && maybeSCALE) { const t = { type: TOKEN_SCALE, value: ",", raw }; tokens.push(t); unresolvedCommas.push(t); } else { tokens.push({ type: TOKEN_COMMA, value: ",", raw }); } } else { let token; for (const [type2, expr, group] of tokenHandlers) { const m = expr.exec(curr); if (m) { const value = Array.isArray(group) ? group.map((d) => m[d]) : m[group || 0]; token = { type: type2, value, raw: m[0] }; tokens.push(token); step = m[0].length; break; } } if (unresolvedCommas.length && token.raw === ";") { unresolvedCommas.length = 0; } if (unresolvedCommas.length && isNumOp2(token.raw)) { unresolvedCommas.forEach((d) => d.type = TOKEN_GROUP); unresolvedCommas.length = 0; } } if (!step) { const raw = curr[0]; step = 1; tokens.push({ type: TOKEN_CHAR, value: raw, raw }); } i += step; } return tokens; } // node_modules/numfmt/lib/parsePattern.js var maybeAddMinus = (part) => { const cond = part.condition; const exception = cond && cond[1] < 0 && (cond[0] === "<" || cond[0] === "<=" || cond[0] === "="); if (!exception) { part.tokens.unshift({ type: "minus", volatile: true }); } }; var clonePart = (part, prefixToken = null) => { const r = {}; for (const key in part) { if (Array.isArray(part[key])) { r[key] = [...part[key]]; } else { r[key] = part[key]; } } if (prefixToken) { r.tokens.unshift(prefixToken); } r.generated = true; return r; }; function parsePattern(pattern) { const partitions = []; let conditional = false; let l10n_override; let text_partition = null; let more = 0; let part = false; let i = 0; let conditions = 0; let tokens = tokenize(pattern); do { part = parseFormatSection(tokens); if ((part.date || part.general) && (part.int_pattern.length || part.frac_pattern.length || part.scale !== 1 || part.text)) { throw new Error("Illegal format"); } if (part.condition) { conditions++; conditional = true; } if (part.text) { if (text_partition) { throw new Error("Unexpected partition"); } text_partition = part; } if (part.locale) { l10n_override = resolveLocale(part.locale); } partitions.push(part); more = tokens[part.tokensUsed]?.type === "break" ? 1 : 0; tokens = tokens.slice(part.tokensUsed + more); i++; } while (more && i < 4 && conditions < 3); if (more) { throw new Error("Unexpected partition"); } if (conditions > 2) { throw new Error("Unexpected condition"); } const part3 = partitions[3]; if (part3 && (part3.int_pattern.length || part3.frac_pattern.length || part3.date)) { throw new Error("Unexpected partition"); } if (conditional) { const numParts = partitions.length; if (numParts === 1) { partitions[1] = parseFormatSection(tokenize("General")); partitions[1].generated = true; } if (numParts <= 2) { } if (numParts < 3) { const part1 = partitions[0]; const part2 = partitions[1]; maybeAddMinus(part1); if (part2.condition) { maybeAddMinus(part2); } else { const cond = part1.condition; if (cond[0] === "=" || cond[1] >= 0 && (cond[0] === ">" || cond[0] === ">=")) { part2.tokens.unshift({ type: "minus", volatile: true }); } } } else { partitions.forEach(maybeAddMinus); } } else { if (partitions.length < 4 && text_partition) { for (let pi3 = 0, pl4 = partitions.length; pi3 < pl4; pi3++) { if (partitions[pi3] === text_partition) { partitions.splice(pi3, 1); } } } if (partitions.length < 1 && text_partition) { partitions[0] = parseFormatSection(tokenize("General")); partitions[0].generated = true; } if (partitions.length < 2) { const volMinus = { type: "minus", volatile: true }; partitions.push(clonePart(partitions[0], volMinus)); } if (partitions.length < 3) { partitions.push(clonePart(partitions[0])); } if (partitions.length < 4) { if (text_partition) { partitions.push(text_partition); } else { const part2 = parseFormatSection(tokenize("@")); part2.generated = true; partitions.push(part2); } } partitions[0].condition = [">", 0]; partitions[1].condition = ["<", 0]; partitions[2].condition = null; } return { pattern, partitions, locale: l10n_override }; } // node_modules/numfmt/lib/index.js var _parseDataCache = /* @__PURE__ */ Object.create({}); function prepareFormatterData(pattern, shouldThrow = false) { if (!pattern) { pattern = "General"; } let parseData = _parseDataCache[pattern]; if (!parseData) { try { parseData = parsePattern(pattern); _parseDataCache[pattern] = parseData; } catch (err) { if (shouldThrow) { throw err; } const errPart = { tokens: [{ type: "error" }], error: err.message }; parseData = { pattern, partitions: [errPart, errPart, errPart, errPart], error: err.message, locale: null }; } } return parseData; } function format(pattern, value, options = {}) { const opts = Object.assign({}, defaultOptions, options); const data = prepareFormatterData(pattern, opts.throws); const val = dateToSerial(value, opts) ?? value; return formatValue(val, data, opts); } function formatColor2(pattern, value, options) { const opts = Object.assign({}, defaultOptions, options); const data = prepareFormatterData(pattern, opts.throws); const val = dateToSerial(value, opts) ?? value; return formatColor(val, data, opts); } function isDateFormat(pattern) { const data = prepareFormatterData(pattern, false); return isDate(data.partitions); } function isPercentFormat(pattern) { const data = prepareFormatterData(pattern, false); return isPercent(data.partitions); } function isTextFormat(pattern) { const data = prepareFormatterData(pattern, false); return isText(data.partitions); } function isValidFormat(pattern) { try { prepareFormatterData(pattern, true); return true; } catch (err) { return false; } } function getFormatInfo(pattern, options = {}) { const data = prepareFormatterData(pattern, false); if (!data.info) { data.info = info(data.partitions, options?.currency); } return data.info; } function getFormatDateInfo(pattern) { const data = prepareFormatterData(pattern, false); if (!data.dateInfo) { data.dateInfo = dateInfo(data.partitions); } return data.dateInfo; } var tokenTypes = Object.freeze({ AMPM: TOKEN_AMPM, BREAK: TOKEN_BREAK, CALENDAR: TOKEN_CALENDAR, CHAR: TOKEN_CHAR, COLOR: TOKEN_COLOR, COMMA: TOKEN_COMMA, CONDITION: TOKEN_CONDITION, DATETIME: TOKEN_DATETIME, DBNUM: TOKEN_DBNUM, DIGIT: TOKEN_DIGIT, DURATION: TOKEN_DURATION, ERROR: TOKEN_ERROR, ESCAPED: TOKEN_ESCAPED, EXP: TOKEN_EXP, FILL: TOKEN_FILL, GENERAL: TOKEN_GENERAL, GROUP: TOKEN_GROUP, HASH: TOKEN_HASH, LOCALE: TOKEN_LOCALE, MINUS: TOKEN_MINUS, MODIFIER: TOKEN_MODIFIER, NATNUM: TOKEN_NATNUM, PAREN: TOKEN_PAREN, PERCENT: TOKEN_PERCENT, PLUS: TOKEN_PLUS, POINT: TOKEN_POINT, QMARK: TOKEN_QMARK, SCALE: TOKEN_SCALE, SKIP: TOKEN_SKIP, SLASH: TOKEN_SLASH, SPACE: TOKEN_SPACE, STRING: TOKEN_STRING, TEXT: TOKEN_TEXT, ZERO: TOKEN_ZERO }); // node_modules/@univerjs/core/lib/es/index.js var import_dayjs = __toESM(require_dayjs_min()); var import_advancedFormat = __toESM(require_advancedFormat()); var import_customParseFormat = __toESM(require_customParseFormat()); var import_localeData = __toESM(require_localeData()); var import_localizedFormat = __toESM(require_localizedFormat()); var import_utc = __toESM(require_utc()); var import_weekday = __toESM(require_weekday()); var import_weekOfYear = __toESM(require_weekOfYear()); var import_weekYear = __toESM(require_weekYear()); // node_modules/quickselect/index.js function quickselect(arr, k4, left = 0, right = arr.length - 1, compare = defaultCompare2) { while (right > left) { if (right - left > 600) { const n = right - left + 1; const m = k4 - left + 1; const z4 = Math.log(n); const s = 0.5 * Math.exp(2 * z4 / 3); const sd4 = 0.5 * Math.sqrt(z4 * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); const newLeft = Math.max(left, Math.floor(k4 - m * s / n + sd4)); const newRight = Math.min(right, Math.floor(k4 + (n - m) * s / n + sd4)); quickselect(arr, k4, newLeft, newRight, compare); } const t = arr[k4]; let i = left; let j4 = right; swap(arr, left, k4); if (compare(arr[right], t) > 0) swap(arr, left, right); while (i < j4) { swap(arr, i, j4); i++; j4--; while (compare(arr[i], t) < 0) i++; while (compare(arr[j4], t) > 0) j4--; } if (compare(arr[left], t) === 0) swap(arr, left, j4); else { j4++; swap(arr, j4, right); } if (j4 <= k4) left = j4 + 1; if (k4 <= j4) right = j4 - 1; } } function swap(arr, i, j4) { const tmp = arr[i]; arr[i] = arr[j4]; arr[j4] = tmp; } function defaultCompare2(a, b) { return a < b ? -1 : a > b ? 1 : 0; } // node_modules/rbush/index.js var RBush = class { constructor(maxEntries = 9) { this._maxEntries = Math.max(4, maxEntries); this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)); this.clear(); } all() { return this._all(this.data, []); } search(bbox) { let node = this.data; const result = []; if (!intersects(bbox, node)) return result; const toBBox = this.toBBox; const nodesToSearch = []; while (node) { for (let i = 0; i < node.children.length; i++) { const child = node.children[i]; const childBBox = node.leaf ? toBBox(child) : child; if (intersects(bbox, childBBox)) { if (node.leaf) result.push(child); else if (contains(bbox, childBBox)) this._all(child, result); else nodesToSearch.push(child); } } node = nodesToSearch.pop(); } return result; } collides(bbox) { let node = this.data; if (!intersects(bbox, node)) return false; const nodesToSearch = []; while (node) { for (let i = 0; i < node.children.length; i++) { const child = node.children[i]; const childBBox = node.leaf ? this.toBBox(child) : child; if (intersects(bbox, childBBox)) { if (node.leaf || contains(bbox, childBBox)) return true; nodesToSearch.push(child); } } node = nodesToSearch.pop(); } return false; } load(data) { if (!(data && data.length)) return this; if (data.length < this._minEntries) { for (let i = 0; i < data.length; i++) { this.insert(data[i]); } return this; } let node = this._build(data.slice(), 0, data.length - 1, 0); if (!this.data.children.length) { this.data = node; } else if (this.data.height === node.height) { this._splitRoot(this.data, node); } else { if (this.data.height < node.height) { const tmpNode = this.data; this.data = node; node = tmpNode; } this._insert(node, this.data.height - node.height - 1, true); } return this; } insert(item) { if (item) this._insert(item, this.data.height - 1); return this; } clear() { this.data = createNode([]); return this; } remove(item, equalsFn) { if (!item) return this; let node = this.data; const bbox = this.toBBox(item); const path = []; const indexes = []; let i, parent, goingUp; while (node || path.length) { if (!node) { node = path.pop(); parent = path[path.length - 1]; i = indexes.pop(); goingUp = true; } if (node.leaf) { const index = findItem(item, node.children, equalsFn); if (index !== -1) { node.children.splice(index, 1); path.push(node); this._condense(path); return this; } } if (!goingUp && !node.leaf && contains(node, bbox)) { path.push(node); indexes.push(i); i = 0; parent = node; node = node.children[0]; } else if (parent) { i++; node = parent.children[i]; goingUp = false; } else node = null; } return this; } toBBox(item) { return item; } compareMinX(a, b) { return a.minX - b.minX; } compareMinY(a, b) { return a.minY - b.minY; } toJSON() { return this.data; } fromJSON(data) { this.data = data; return this; } _all(node, result) { const nodesToSearch = []; while (node) { if (node.leaf) result.push(...node.children); else nodesToSearch.push(...node.children); node = nodesToSearch.pop(); } return result; } _build(items, left, right, height) { const N4 = right - left + 1; let M4 = this._maxEntries; let node; if (N4 <= M4) { node = createNode(items.slice(left, right + 1)); calcBBox(node, this.toBBox); return node; } if (!height) { height = Math.ceil(Math.log(N4) / Math.log(M4)); M4 = Math.ceil(N4 / Math.pow(M4, height - 1)); } node = createNode([]); node.leaf = false; node.height = height; const N22 = Math.ceil(N4 / M4); const N1 = N22 * Math.ceil(Math.sqrt(M4)); multiSelect(items, left, right, N1, this.compareMinX); for (let i = left; i <= right; i += N1) { const right2 = Math.min(i + N1 - 1, right); multiSelect(items, i, right2, N22, this.compareMinY); for (let j4 = i; j4 <= right2; j4 += N22) { const right3 = Math.min(j4 + N22 - 1, right2); node.children.push(this._build(items, j4, right3, height - 1)); } } calcBBox(node, this.toBBox); return node; } _chooseSubtree(bbox, node, level2, path) { while (true) { path.push(node); if (node.leaf || path.length - 1 === level2) break; let minArea = Infinity; let minEnlargement = Infinity; let targetNode; for (let i = 0; i < node.children.length; i++) { const child = node.children[i]; const area = bboxArea(child); const enlargement = enlargedArea(bbox, child) - area; if (enlargement < minEnlargement) { minEnlargement = enlargement; minArea = area < minArea ? area : minArea; targetNode = child; } else if (enlargement === minEnlargement) { if (area < minArea) { minArea = area; targetNode = child; } } } node = targetNode || node.children[0]; } return node; } _insert(item, level2, isNode2) { const bbox = isNode2 ? item : this.toBBox(item); const insertPath = []; const node = this._chooseSubtree(bbox, this.data, level2, insertPath); node.children.push(item); extend(node, bbox); while (level2 >= 0) { if (insertPath[level2].children.length > this._maxEntries) { this._split(insertPath, level2); level2--; } else break; } this._adjustParentBBoxes(bbox, insertPath, level2); } // split overflowed node into two _split(insertPath, level2) { const node = insertPath[level2]; const M4 = node.children.length; const m = this._minEntries; this._chooseSplitAxis(node, m, M4); const splitIndex = this._chooseSplitIndex(node, m, M4); const newNode = createNode(node.children.splice(splitIndex, node.children.length - splitIndex)); newNode.height = node.height; newNode.leaf = node.leaf; calcBBox(node, this.toBBox); calcBBox(newNode, this.toBBox); if (level2) insertPath[level2 - 1].children.push(newNode); else this._splitRoot(node, newNode); } _splitRoot(node, newNode) { this.data = createNode([node, newNode]); this.data.height = node.height + 1; this.data.leaf = false; calcBBox(this.data, this.toBBox); } _chooseSplitIndex(node, m, M4) { let index; let minOverlap = Infinity; let minArea = Infinity; for (let i = m; i <= M4 - m; i++) { const bbox1 = distBBox(node, 0, i, this.toBBox); const bbox2 = distBBox(node, i, M4, this.toBBox); const overlap = intersectionArea(bbox1, bbox2); const area = bboxArea(bbox1) + bboxArea(bbox2); if (overlap < minOverlap) { minOverlap = overlap; index = i; minArea = area < minArea ? area : minArea; } else if (overlap === minOverlap) { if (area < minArea) { minArea = area; index = i; } } } return index || M4 - m; } // sorts node children by the best axis for split _chooseSplitAxis(node, m, M4) { const compareMinX = node.leaf ? this.compareMinX : compareNodeMinX; const compareMinY = node.leaf ? this.compareMinY : compareNodeMinY; const xMargin = this._allDistMargin(node, m, M4, compareMinX); const yMargin = this._allDistMargin(node, m, M4, compareMinY); if (xMargin < yMargin) node.children.sort(compareMinX); } // total margin of all possible split distributions where each node is at least m full _allDistMargin(node, m, M4, compare) { node.children.sort(compare); const toBBox = this.toBBox; const leftBBox = distBBox(node, 0, m, toBBox); const rightBBox = distBBox(node, M4 - m, M4, toBBox); let margin = bboxMargin(leftBBox) + bboxMargin(rightBBox); for (let i = m; i < M4 - m; i++) { const child = node.children[i]; extend(leftBBox, node.leaf ? toBBox(child) : child); margin += bboxMargin(leftBBox); } for (let i = M4 - m - 1; i >= m; i--) { const child = node.children[i]; extend(rightBBox, node.leaf ? toBBox(child) : child); margin += bboxMargin(rightBBox); } return margin; } _adjustParentBBoxes(bbox, path, level2) { for (let i = level2; i >= 0; i--) { extend(path[i], bbox); } } _condense(path) { for (let i = path.length - 1, siblings; i >= 0; i--) { if (path[i].children.length === 0) { if (i > 0) { siblings = path[i - 1].children; siblings.splice(siblings.indexOf(path[i]), 1); } else this.clear(); } else calcBBox(path[i], this.toBBox); } } }; function findItem(item, items, equalsFn) { if (!equalsFn) return items.indexOf(item); for (let i = 0; i < items.length; i++) { if (equalsFn(item, items[i])) return i; } return -1; } function calcBBox(node, toBBox) { distBBox(node, 0, node.children.length, toBBox, node); } function distBBox(node, k4, p, toBBox, destNode) { if (!destNode) destNode = createNode(null); destNode.minX = Infinity; destNode.minY = Infinity; destNode.maxX = -Infinity; destNode.maxY = -Infinity; for (let i = k4; i < p; i++) { const child = node.children[i]; extend(destNode, node.leaf ? toBBox(child) : child); } return destNode; } function extend(a, b) { a.minX = Math.min(a.minX, b.minX); a.minY = Math.min(a.minY, b.minY); a.maxX = Math.max(a.maxX, b.maxX); a.maxY = Math.max(a.maxY, b.maxY); return a; } function compareNodeMinX(a, b) { return a.minX - b.minX; } function compareNodeMinY(a, b) { return a.minY - b.minY; } function bboxArea(a) { return (a.maxX - a.minX) * (a.maxY - a.minY); } function bboxMargin(a) { return a.maxX - a.minX + (a.maxY - a.minY); } function enlargedArea(a, b) { return (Math.max(b.maxX, a.maxX) - Math.min(b.minX, a.minX)) * (Math.max(b.maxY, a.maxY) - Math.min(b.minY, a.minY)); } function intersectionArea(a, b) { const minX = Math.max(a.minX, b.minX); const minY = Math.max(a.minY, b.minY); const maxX = Math.min(a.maxX, b.maxX); const maxY = Math.min(a.maxY, b.maxY); return Math.max(0, maxX - minX) * Math.max(0, maxY - minY); } function contains(a, b) { return a.minX <= b.minX && a.minY <= b.minY && b.maxX <= a.maxX && b.maxY <= a.maxY; } function intersects(a, b) { return b.minX <= a.maxX && b.minY <= a.maxY && b.maxX >= a.minX && b.maxY >= a.minY; } function createNode(children) { return { children, height: 1, leaf: true, minX: Infinity, minY: Infinity, maxX: -Infinity, maxY: -Infinity }; } function multiSelect(arr, left, right, n, compare) { const stack = [left, right]; while (stack.length) { right = stack.pop(); left = stack.pop(); if (right - left <= n) continue; const mid = left + Math.ceil((right - left) / n / 2) * n; quickselect(arr, mid, left, right, compare); stack.push(left, mid, mid, right); } } // node_modules/@univerjs/core/lib/es/index.js var import_fast_diff = __toESM(require_diff()); // node_modules/kdbush/index.js var ARRAY_TYPES = [ Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array ]; var VERSION = 1; var HEADER_SIZE = 8; var KDBush = class _KDBush { /** * Creates an index from raw `ArrayBuffer` data. * @param {ArrayBuffer} data */ static from(data) { if (!(data instanceof ArrayBuffer)) { throw new Error("Data must be an instance of ArrayBuffer."); } const [magic, versionAndType] = new Uint8Array(data, 0, 2); if (magic !== 219) { throw new Error("Data does not appear to be in a KDBush format."); } const version = versionAndType >> 4; if (version !== VERSION) { throw new Error(`Got v${version} data when expected v${VERSION}.`); } const ArrayType = ARRAY_TYPES[versionAndType & 15]; if (!ArrayType) { throw new Error("Unrecognized array type."); } const [nodeSize] = new Uint16Array(data, 2, 1); const [numItems] = new Uint32Array(data, 4, 1); return new _KDBush(numItems, nodeSize, ArrayType, data); } /** * Creates an index that will hold a given number of items. * @param {number} numItems * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default). * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default). * @param {ArrayBuffer} [data] (For internal use only) */ constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) { if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`); this.numItems = +numItems; this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535); this.ArrayType = ArrayType; this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array; const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType); const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT; const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT; const padCoords = (8 - idsByteSize % 8) % 8; if (arrayTypeIndex < 0) { throw new Error(`Unexpected typed array class: ${ArrayType}.`); } if (data && data instanceof ArrayBuffer) { this.data = data; this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems); this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2); this._pos = numItems * 2; this._finished = true; } else { this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords); this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems); this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2); this._pos = 0; this._finished = false; new Uint8Array(this.data, 0, 2).set([219, (VERSION << 4) + arrayTypeIndex]); new Uint16Array(this.data, 2, 1)[0] = nodeSize; new Uint32Array(this.data, 4, 1)[0] = numItems; } } /** * Add a point to the index. * @param {number} x * @param {number} y * @returns {number} An incremental index associated with the added item (starting from `0`). */ add(x2, y) { const index = this._pos >> 1; this.ids[index] = index; this.coords[this._pos++] = x2; this.coords[this._pos++] = y; return index; } /** * Perform indexing of the added points. */ finish() { const numAdded = this._pos >> 1; if (numAdded !== this.numItems) { throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`); } sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0); this._finished = true; return this; } /** * Search the index for items within a given bounding box. * @param {number} minX * @param {number} minY * @param {number} maxX * @param {number} maxY * @returns {number[]} An array of indices correponding to the found items. */ range(minX, minY, maxX, maxY) { if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); const { ids, coords, nodeSize } = this; const stack = [0, ids.length - 1, 0]; const result = []; while (stack.length) { const axis = stack.pop() || 0; const right = stack.pop() || 0; const left = stack.pop() || 0; if (right - left <= nodeSize) { for (let i = left; i <= right; i++) { const x3 = coords[2 * i]; const y2 = coords[2 * i + 1]; if (x3 >= minX && x3 <= maxX && y2 >= minY && y2 <= maxY) result.push(ids[i]); } continue; } const m = left + right >> 1; const x2 = coords[2 * m]; const y = coords[2 * m + 1]; if (x2 >= minX && x2 <= maxX && y >= minY && y <= maxY) result.push(ids[m]); if (axis === 0 ? minX <= x2 : minY <= y) { stack.push(left); stack.push(m - 1); stack.push(1 - axis); } if (axis === 0 ? maxX >= x2 : maxY >= y) { stack.push(m + 1); stack.push(right); stack.push(1 - axis); } } return result; } /** * Search the index for items within a given radius. * @param {number} qx * @param {number} qy * @param {number} r Query radius. * @returns {number[]} An array of indices correponding to the found items. */ within(qx, qy2, r) { if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); const { ids, coords, nodeSize } = this; const stack = [0, ids.length - 1, 0]; const result = []; const r2 = r * r; while (stack.length) { const axis = stack.pop() || 0; const right = stack.pop() || 0; const left = stack.pop() || 0; if (right - left <= nodeSize) { for (let i = left; i <= right; i++) { if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy2) <= r2) result.push(ids[i]); } continue; } const m = left + right >> 1; const x2 = coords[2 * m]; const y = coords[2 * m + 1]; if (sqDist(x2, y, qx, qy2) <= r2) result.push(ids[m]); if (axis === 0 ? qx - r <= x2 : qy2 - r <= y) { stack.push(left); stack.push(m - 1); stack.push(1 - axis); } if (axis === 0 ? qx + r >= x2 : qy2 + r >= y) { stack.push(m + 1); stack.push(right); stack.push(1 - axis); } } return result; } }; function sort(ids, coords, nodeSize, left, right, axis) { if (right - left <= nodeSize) return; const m = left + right >> 1; select(ids, coords, m, left, right, axis); sort(ids, coords, nodeSize, left, m - 1, 1 - axis); sort(ids, coords, nodeSize, m + 1, right, 1 - axis); } function select(ids, coords, k4, left, right, axis) { while (right > left) { if (right - left > 600) { const n = right - left + 1; const m = k4 - left + 1; const z4 = Math.log(n); const s = 0.5 * Math.exp(2 * z4 / 3); const sd4 = 0.5 * Math.sqrt(z4 * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1); const newLeft = Math.max(left, Math.floor(k4 - m * s / n + sd4)); const newRight = Math.min(right, Math.floor(k4 + (n - m) * s / n + sd4)); select(ids, coords, k4, newLeft, newRight, axis); } const t = coords[2 * k4 + axis]; let i = left; let j4 = right; swapItem(ids, coords, left, k4); if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right); while (i < j4) { swapItem(ids, coords, i, j4); i++; j4--; while (coords[2 * i + axis] < t) i++; while (coords[2 * j4 + axis] > t) j4--; } if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j4); else { j4++; swapItem(ids, coords, j4, right); } if (j4 <= k4) left = j4 + 1; if (k4 <= j4) right = j4 - 1; } } function swapItem(ids, coords, i, j4) { swap2(ids, i, j4); swap2(coords, 2 * i, 2 * j4); swap2(coords, 2 * i + 1, 2 * j4 + 1); } function swap2(arr, i, j4) { const tmp = arr[i]; arr[i] = arr[j4]; arr[j4] = tmp; } function sqDist(ax, ay2, bx, by2) { const dx = ax - bx; const dy2 = ay2 - by2; return dx * dx + dy2 * dy2; } // node_modules/@univerjs/core/lib/es/index.js var Xe = typeof global < `u` ? global : typeof self < `u` ? self : window; function Ze() { let e29 = /* @__PURE__ */ new Map(), t = 0; typeof Xe.requestIdleCallback != `function` && (Xe.requestIdleCallback = function(n) { let r = Date.now(), i = ++t, a = setTimeout(function() { e29.delete(i); let t2 = Math.max(0, 50 - (Date.now() - r)); n({ didTimeout: t2 === 0, timeRemaining() { return t2; } }); }, 1); return e29.set(i, a), i; }), typeof Xe.cancelIdleCallback != `function` && (Xe.cancelIdleCallback = function(t2) { let n = e29.get(t2); n !== void 0 && (clearTimeout(n), e29.delete(t2)); }); } function Qe() { typeof Xe.Array.prototype.findLastIndex != `function` && (Xe.Array.prototype.findLastIndex = function(e29, t) { if (this == null) throw TypeError(`Array.prototype.findLastIndex called on null or undefined`); if (typeof e29 != `function`) throw TypeError(`callback must be a function`); let n = this.length >>> 0; for (let r = n - 1; r >= 0; r--) if (r in this && e29.call(t, this[r], r, this)) return r; return -1; }), typeof Xe.Array.prototype.findLast != `function` && (Xe.Array.prototype.findLast = function(e29, t) { let n = this.findLastIndex(e29, t); return n === -1 ? void 0 : this[n]; }); } function $e() { typeof Xe.String.prototype.at != `function` && (Xe.String.prototype.at = function(e29) { if (this == null) throw TypeError(`String.prototype.at called on null or undefined`); let t = this.length; if (e29 < 0 && (e29 = t + e29), !(e29 < 0 || e29 >= t)) return this.charAt(e29); }); } function et() { Ze(), Qe(), $e(); } function tt(e29, t) { let n = e29.indexOf(t); return n > -1 ? (e29.splice(n, 1), true) : false; } function it(e29, t) { for (let n = e29.length - 1; n > -1; n--) { let r = e29[n]; if (t(r, n)) return r; } return null; } var ct = /* @__PURE__ */ new Set([`true`, `false`]); function lt(e29) { return ct.has(e29.toLowerCase()); } var ut = `__INTERNAL_EDITOR__`; var dt = `${ut}DOCS_NORMAL`; var ft = `${ut}DOCS_FORMULA_BAR`; var pt = `${ut}ZEN_EDITOR`; var mt = `${ut}COMMENT_EDITOR`; var gt = `isRowStylePrecedeColumnStyle`; var _t = /* @__PURE__ */ Symbol(`AUTO_HEIGHT_FOR_MERGED_CELLS`); function yt(e29) { return e29.startsWith(ut); } function xt(e29, t) { t.forEach((t2) => e29.add(t2)); } function St(e29, t) { t.forEach(([t2]) => { e29.has(t2) && e29.get(t2); }); } function Ct(e29, t) { if (Object.is(e29, t)) return true; if (typeof e29 != `object` || !e29 || typeof t != `object` || !t) return false; let n = Object.keys(e29), r = Object.keys(t); if (n.length !== r.length) return false; let i = Object.prototype.hasOwnProperty.bind(t); for (let r2 = 0; r2 < n.length; r2++) { let a = n[r2]; if (!i(a) || e29[a] !== t[a]) return false; } return true; } var wt = class extends Error { constructor(e29) { super(e29), this.name = `CustomCommandExecutionError`; } }; function Et(e29, t = 16) { let n = 0, r = null; return function(...i) { let a = Date.now(); a - n < t ? (r && clearTimeout(r), r = setTimeout(() => { n = a, e29.apply(this, i); }, t)) : (n = a, e29.apply(this, i)); }; } function Dt(e29) { "@babel/helpers - typeof"; return Dt = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e30) { return typeof e30; } : function(e30) { return e30 && typeof Symbol == `function` && e30.constructor === Symbol && e30 !== Symbol.prototype ? `symbol` : typeof e30; }, Dt(e29); } function Ot(e29, t) { if (Dt(e29) != `object` || !e29) return e29; var n = e29[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e29, t || `default`); if (Dt(r) != `object`) return r; throw TypeError(`@@toPrimitive must return a primitive value.`); } return (t === `string` ? String : Number)(e29); } function kt(e29) { var t = Ot(e29, `string`); return Dt(t) == `symbol` ? t : t + ``; } function C(e29, t, n) { return (t = kt(t)) in e29 ? Object.defineProperty(e29, t, { value: n, enumerable: true, configurable: true, writable: true }) : e29[t] = n, e29; } var At = (function(e29) { return e29[e29.Style = 1] = `Style`, e29[e29.Value = 2] = `Value`, e29; })({}); function jt(e29) { return `sheet_interceptor_${e29}`; } var Mt = (e29) => function(t, n) { let r = -1, i = t; for (let t2 = 0; t2 <= e29.length; t2++) { if (t2 <= r) throw Error(`[SheetInterceptorService]: next() called multiple times!`); if (r = t2, t2 === e29.length) return i; let a = e29[t2], o = false; if (i = a.handler(i, n, (e30) => (o = true, e30)), !o) break; } return i; }; var Nt = class { constructor(e29) { C(this, `_interceptorsByName`, /* @__PURE__ */ new Map()), C(this, `_interceptorPoints`, void 0), this._interceptorPoints = e29; } fetchThroughInterceptors(e29, t) { let n = e29, r = this._interceptorsByName.get(n); return t && (r = r.filter(t)), Mt(r || []); } intercept(e29, t) { let n = e29; this._interceptorsByName.has(n) || this._interceptorsByName.set(n, []); let r = this._interceptorsByName.get(n); return r.push(t), this._interceptorsByName.set(n, r.sort((e30, t2) => { var n2, r2; return ((n2 = t2.priority) == null ? 0 : n2) - ((r2 = e30.priority) == null ? 0 : r2); })), () => tt(this._interceptorsByName.get(n), t); } getInterceptPoints() { return this._interceptorPoints; } dispose() { this._interceptorsByName.clear(); } }; function Bt(e29, t, n) { let r = [e29, t, n].map((e30) => e30 <= 0.03928 ? e30 / 12.92 : ((e30 + 0.055) / 1.055) ** 2.4); return 0.2126 * r[0] + 0.7152 * r[1] + 0.0722 * r[2]; } var Ut = { r: 1, g: 1, b: 1 }; var Wt = { r: 0, g: 0, b: 0 }; var Gt = Bt(Ut.r, Ut.g, Ut.b); var Kt = Bt(Wt.r, Wt.g, Wt.b); var Zt = class { constructor() { C(this, `cursor`, 0); } reset() { return this.cursor = 0, this; } moveCursor(e29) { this.cursor += e29; } moveCursorTo(e29) { this.cursor = e29; } }; function $t(e29) { return /^-?\d+(\.\d+)?$/.test(e29); } function en(e29) { return $t(e29) ? Number(e29) <= 2 ** 53 - 1 : false; } function tn(e29) { return Number(e29) > 2 ** 53 - 1 || e29.length >= 18; } function an(e29) { let t = new MessageChannel(), n = false, r = () => { n || e29(); }; return t.port1.onmessage = r, t.port2.postMessage(null), () => { n = true, t.port1.onmessage = null, t.port1.close(), t.port2.close(); }; } async function on(e29) { for (let [t, n] of e29.entries()) try { if (!await n()) return { index: t, result: false }; } catch (e30) { return { index: t, result: false, error: e30 }; } return { result: true, index: -1 }; } function sn(e29) { for (let [t, n] of e29.entries()) try { if (!n()) return { index: t, result: false }; } catch (e30) { return { index: t, result: false, error: e30 }; } return { result: true, index: -1 }; } function ln(e29) { return e29 instanceof Subscription || e29 instanceof Subject || e29 && `closed` in e29 && e29.unsubscribe !== void 0; } function T2(e29) { let t = false; return e29 ? ln(e29) ? { dispose: () => e29.unsubscribe() } : typeof e29 == `function` ? { dispose: () => { t || (t = true, e29()); } } : e29 : T2(() => { }); } var un = class { constructor() { C(this, `_disposables`, /* @__PURE__ */ new Set()); } add(e29) { let t = T2(e29); return this._disposables.add(t), { dispose: (e30 = false) => { e30 || t.dispose(), this._disposables.delete(t); } }; } dispose() { this._disposables.forEach((e29) => { e29.dispose(); }), this._disposables.clear(); } }; var E = class { constructor() { C(this, `_disposed`, false), C(this, `_collection`, new un()); } disposeWithMe(e29) { return this._collection.add(e29); } ensureNotDisposed() { if (this._disposed) throw Error(`[Disposable]: object is disposed!`); } dispose() { this._disposed || (this._disposed = true, this._collection.dispose()); } }; var dn = class extends E { constructor(...e29) { super(...e29), C(this, `dispose$`, new Subject()); } dispose() { super.dispose(), this.dispose$.next(), this.dispose$.complete(); } }; var pn = class extends E { }; var mn = new Set(`ac.ad.ae.aero.af.ag.ai.al.am.ao.aq.ar.arpa.as.asia.at.au.aw.ax.az.ba.bb.bd.be.bf.bg.bh.bi.biz.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cat.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.com.coop.cr.cu.cv.cw.cx.cy.cz.de.dj.dk.dm.do.dz.ec.edu.ee.eg.er.es.et.eu.fi.fj.fk.fm.fo.fr.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gov.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.info.int.io.iq.ir.is.it.je.jm.jo.jobs.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.me.mg.mh.mil.mk.ml.mm.mn.mo.mobi.mp.mq.mr.ms.mt.mu.museum.mv.mw.mx.my.mz.na.name.nc.ne.net.nf.ng.ni.nl.no.np.nr.nu.nz.om.onion.org.pa.pe.pf.pg.ph.pk.pl.pm.pn.post.pr.pro.ps.pt.pw.py.qa.re.ro.rs.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.ss.st.su.sv.sx.sy.sz.tc.td.tel.tf.tg.th.tj.tk.tl.tm.tn.to.tr.tt.tv.tw.tz.ua.ug.uk.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.yt.za.zm.zw`.split(`.`)); var hn = RegExp(`^(?:(?:(?:https?|ftp):)?\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$`, `i`); function gn(e29) { if (!Number.isNaN(+e29)) return false; if (e29.startsWith(`http://localhost:3002`) || e29.startsWith(`localhost:3002`)) return true; if (hn.test(e29)) { if (_n(e29)) return true; try { let t = new URL(yn(e29)).hostname.split(`.`).pop(); if (t && mn.has(t)) return true; } catch { return false; } } return false; } function _n(e29) { return /^[a-zA-Z]+:\/\//.test(e29); } function vn(e29) { return /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(e29); } function yn(e29) { return _n(e29) ? e29 : vn(e29) ? `mailto://${e29}` : `https://${e29}`; } function xn(e29, t) { return D.getValueType(e29) === D.getValueType(t) ? D.isArray(e29) ? Sn(e29, t) : D.isObject(e29) ? Cn(e29, t) : D.isDate(e29) ? e29.getTime() === t.getTime() : D.isRegExp(e29) ? e29.toString() === t.toString() : e29 === t : false; } function Sn(e29, t) { if (e29.length !== t.length) return false; for (let n = 0, r = e29.length; n < r; n++) { let r2 = e29[n], i = t[n]; if (!xn(r2, i)) return false; } return true; } function Cn(e29, t) { let n = Object.keys(e29), r = Object.keys(t); if (n.length !== r.length) return false; for (let i of n) { if (!r.includes(i)) return false; let n2 = e29[i], a = t[i]; if (!xn(n2, a)) return false; } return true; } var D = class e3 { static deleteNull(e29) { for (let t in e29) (e29[t] === null || e29[t] === void 0) && delete e29[t]; return e29; } static getSystemType() { let e29 = navigator.userAgent, t = navigator.platform === `Win32` || navigator.platform === `Windows`, n = navigator.platform === `Mac68K` || navigator.platform === `MacPPC` || navigator.platform === `Macintosh` || navigator.platform === `MacIntel`; if (n) return `Mac`; if (navigator.platform === `X11` && !t && !n) return `Unix`; if (String(navigator.platform).indexOf(`Linux`) > -1) return `Linux`; if (t) { if (e29.indexOf(`Windows NT 5.0`) > -1 || e29.indexOf(`Windows 2000`) > -1) return `Windows 2000`; if (e29.indexOf(`Windows NT 5.1`) > -1 || e29.indexOf(`Windows XP`) > -1) return `Windows XP`; if (e29.indexOf(`Windows NT 5.2`) > -1 || e29.indexOf(`Windows 2003`) > -1) return `Windows 2003`; if (e29.indexOf(`Windows NT 6.0`) > -1 || e29.indexOf(`Windows Vista`) > -1) return `Windows Vista`; if (e29.indexOf(`Windows NT 6.1`) > -1 || e29.indexOf(`Windows 7`) > -1) return `Windows 7`; if (e29.indexOf(`Windows NT 10`) > -1 || e29.indexOf(`Windows 10`) > -1) return `Windows 10`; if (e29.indexOf(`Windows NT 11`) > -1 || e29.indexOf(`Windows 11`) > -1) return `Windows 11`; } return `Unknown system`; } static getBrowserType() { let e29 = navigator.userAgent, t = e29.indexOf(`Opera`) > -1, n = e29.indexOf(`compatible`) > -1 && e29.indexOf(`MSIE`) > -1 && !t, r = e29.indexOf(`Trident`) > -1 && e29.indexOf(`rv:11.0`) > -1, i = e29.indexOf(`Edge`) > -1, a = e29.indexOf(`Firefox`) > -1, o = e29.indexOf(`Safari`) > -1 && e29.indexOf(`Chrome`) === -1, s = e29.indexOf(`Chrome`) > -1 && e29.indexOf(`Safari`) > -1; if (n) { RegExp(`MSIE (\\d+\\.\\d+);`).test(e29); let t2 = Number.parseFloat(RegExp.$1); return t2 === 7 ? `IE7` : t2 === 8 ? `IE8` : t2 === 9 ? `IE9` : t2 === 10 ? `IE10` : `0`; } return a ? `FF` : t ? `Opera` : o ? `Safari` : s ? `Chrome` : i ? `Edge` : r ? `IE11` : `Unknown browser`; } static deepMerge(t, ...n) { n.forEach((e29) => e29 && a(e29)); function r(t2, n2) { t2.forEach((t3, a2) => { if (e3.isArray(t3)) { var o; let e29 = (o = n2[a2]) == null ? [] : o; n2[a2] = e29, r(t3, e29); return; } if (e3.isObject(t3)) { var s; let e29 = (s = n2[a2]) == null ? {} : s; n2[a2] = e29, i(t3, e29); return; } n2[a2] = t3; }); } function i(t2, n2) { Object.keys(t2).forEach((a2) => { let o = t2[a2]; if (e3.isObject(o)) { var s; let e29 = (s = n2[a2]) == null ? {} : s; n2[a2] = e29, i(o, e29); return; } if (e3.isArray(o)) { var c; let e29 = (c = n2[a2]) == null ? [] : c; n2[a2] = e29, r(o, e29); return; } n2[a2] = o; }); } function a(n2) { Object.keys(n2).forEach((a2) => { let o = n2[a2]; if (e3.isArray(o)) { var s; let e29 = (s = t[a2]) == null ? [] : s; t[a2] = e29, r(o, e29); return; } if (e3.isObject(o)) { var c; let e29 = (c = t[a2]) == null ? {} : c; t[a2] = e29, i(o, e29); return; } t[a2] = o; }); } return t; } static diffValue(e29, t) { return xn(e29, t); } static deepClone(t) { if (!this.isDefine(t)) return t; if (this.isRegExp(t)) return new RegExp(t); if (this.isDate(t)) return new Date(t); if (this.isArray(t)) { let n = []; return t.forEach((t2, r) => { n[r] = e3.deepClone(t2); }), n; } if (this.isObject(t)) { let n = {}; return Object.keys(t).forEach((r) => { let i = t[r]; n[r] = e3.deepClone(i); }), Object.setPrototypeOf(n, Object.getPrototypeOf(t)), n; } return t; } static getValueType(e29) { return Object.prototype.toString.apply(e29); } static isDefine(e29) { return e29 != null; } static isBlank(e29) { return this.isDefine(e29) ? this.isString(e29) ? e29.trim() === `` : false : true; } static isPlainObject(e29) { return this.isDefine(e29) ? Object.getPrototypeOf(e29) === Object.getPrototypeOf({}) : false; } static isDate(e29) { return this.getValueType(e29) === `[object Date]`; } static isRegExp(e29) { return this.getValueType(e29) === `[object RegExp]`; } static isArray(e29) { return this.getValueType(e29) === `[object Array]`; } static isString(e29) { return this.getValueType(e29) === `[object String]`; } static isNumber(e29) { return this.getValueType(e29) === `[object Number]`; } static isStringNumber(e29) { return !isNaN(Number.parseFloat(e29)) && isFinite(e29); } static isObject(e29) { return this.getValueType(e29) === `[object Object]`; } static isEmptyObject(e29) { for (let t in e29) return false; return true; } static isTablet() { return /ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle/i.test(navigator.userAgent.toLowerCase()); } static isIPhone() { return /iPhone/i.test(navigator.userAgent); } static isLegalUrl(e29) { return gn(e29); } static normalizeUrl(e29) { return yn(e29); } static topLevelDomainCombiningString() { return [...mn].join(`|`); } static removeNull(t) { return this.isObject(t) && Object.keys(t).forEach((n) => { let r = t[n]; r == null ? delete t[n] : e3.removeNull(r); }), t; } static numToWord(e29) { let t = ``; for (; e29 > 0; ) { let n = e29 % 26; n = n === 0 ? n = 26 : n, t = String.fromCharCode(96 + n) + t, e29 = (e29 - n) / 26; } return t.toLocaleUpperCase(); } static ABCatNum(e29) { if (e29 == null || e29.length === 0) return NaN; let t = e29.toLowerCase().split(``), n = t.length, r = 0, i = 0; for (let e30 = 0; e30 < n; e30++) i = t[e30].charCodeAt(0) - 96, r += i * 26 ** (n - e30 - 1); return r === 0 ? NaN : r - 1; } static chatAtABC(e29) { let t = ``; for (; e29 >= 0; ) t = String.fromCharCode(e29 % 26 + 97) + t, e29 = Math.floor(e29 / 26) - 1; return t.toUpperCase(); } static commonExtend(e29, t) { let n = {}; for (let t2 in e29) n[t2] = e29[t2]; for (let e30 in t) t[e30] != null && (n[e30] = t[e30]); return n; } static hasIntersectionBetweenTwoRanges(e29, t, n, r) { return t >= n && r >= e29; } static isStartValidPosition(e29) { return /^[A-Za-zА-Яа-яЁё_]/.test(e29); } static isValidParameter(e29) { let t = /[~!@#$%^&*()+=\-{}\[\]\|:;"'<>,?\/ ]+/.test(e29), n = e29.length <= 255; return !t && n; } static clamp(e29, t, n) { return Math.max(t, Math.min(n, e29)); } static now() { return performance && performance.now ? performance.now() : Date.now(); } }; function O2(e29 = 21, t) { return t ? customAlphabet(t, e29)() : nanoid(e29); } function wn(...e29) { let t = {}, n = e29.length; for (let r = n - 1; r >= 0; r--) { let n2 = e29[r]; if (n2) { let e30 = Object.keys(n2); for (let r2 of e30) t[r2] === void 0 && (t[r2] = n2[r2]); } } return t; } var Tn = () => typeof process < `u` && process.versions != null && process.versions.node != null; var Dn = (function(e29) { return e29[e29.DEFAULT_SERIES = 0] = `DEFAULT_SERIES`, e29[e29.ALTERNATE_SERIES = 1] = `ALTERNATE_SERIES`, e29; })({}); var k = (function(e29) { return e29[e29.NONE = 0] = `NONE`, e29[e29.THIN = 1] = `THIN`, e29[e29.HAIR = 2] = `HAIR`, e29[e29.DOTTED = 3] = `DOTTED`, e29[e29.DASHED = 4] = `DASHED`, e29[e29.DASH_DOT = 5] = `DASH_DOT`, e29[e29.DASH_DOT_DOT = 6] = `DASH_DOT_DOT`, e29[e29.DOUBLE = 7] = `DOUBLE`, e29[e29.MEDIUM = 8] = `MEDIUM`, e29[e29.MEDIUM_DASHED = 9] = `MEDIUM_DASHED`, e29[e29.MEDIUM_DASH_DOT = 10] = `MEDIUM_DASH_DOT`, e29[e29.MEDIUM_DASH_DOT_DOT = 11] = `MEDIUM_DASH_DOT_DOT`, e29[e29.SLANT_DASH_DOT = 12] = `SLANT_DASH_DOT`, e29[e29.THICK = 13] = `THICK`, e29; })({}); var On = (function(e29) { return e29.TOP = `top`, e29.BOTTOM = `bottom`, e29.LEFT = `left`, e29.RIGHT = `right`, e29.NONE = `none`, e29.ALL = `all`, e29.OUTSIDE = `outside`, e29.INSIDE = `inside`, e29.HORIZONTAL = `horizontal`, e29.VERTICAL = `vertical`, e29.TLBR = `tlbr`, e29.TLBC_TLMR = `tlbc_tlmr`, e29.TLBR_TLBC_TLMR = `tlbr_tlbc_tlmr`, e29.BLTR = `bl_tr`, e29.MLTR_BCTR = `mltr_bctr`, e29; })({}); var kn = (function(e29) { return e29[e29.UNSUPPORTED = 0] = `UNSUPPORTED`, e29[e29.RGB = 1] = `RGB`, e29[e29.HEX = 2] = `HEX`, e29[e29.THEME = 3] = `THEME`, e29; })({}); var An = (function(e29) { return e29[e29.ON = 0] = `ON`, e29[e29.OFF = 1] = `OFF`, e29; })({}); var jn = (function(e29) { return e29[e29.PASTE_NORMAL = 0] = `PASTE_NORMAL`, e29[e29.PASTE_NO_BORDERS = 1] = `PASTE_NO_BORDERS`, e29[e29.PASTE_FORMAT = 2] = `PASTE_FORMAT`, e29[e29.PASTE_FORMULA = 3] = `PASTE_FORMULA`, e29[e29.PASTE_DATA_VALIDATION = 4] = `PASTE_DATA_VALIDATION`, e29[e29.PASTE_VALUES = 5] = `PASTE_VALUES`, e29[e29.PASTE_CONDITIONAL_FORMATTING = 6] = `PASTE_CONDITIONAL_FORMATTING`, e29[e29.PASTE_COLUMN_WIDTHS = 7] = `PASTE_COLUMN_WIDTHS`, e29; })({}); var Mn = (function(e29) { return e29[e29.LEFT = 0] = `LEFT`, e29[e29.RIGHT = 1] = `RIGHT`, e29; })({}); var Nn = (function(e29) { return e29[e29.DOCUMENT = 0] = `DOCUMENT`, e29[e29.PROJECT = 1] = `PROJECT`, e29; })({}); var Pn = (function(e29) { return e29[e29.COLUMNS = 0] = `COLUMNS`, e29[e29.ROWS = 1] = `ROWS`, e29; })({}); var Fn = (function(e29) { return e29[e29.UP = 0] = `UP`, e29[e29.RIGHT = 1] = `RIGHT`, e29[e29.DOWN = 2] = `DOWN`, e29[e29.LEFT = 3] = `LEFT`, e29; })({}); var Ln = (function(e29) { return e29[e29.INTERPOLATION_POINT_TYPE_UNSPECIFIED = 0] = `INTERPOLATION_POINT_TYPE_UNSPECIFIED`, e29[e29.MIN = 1] = `MIN`, e29[e29.MAX = 2] = `MAX`, e29[e29.NUMBER = 3] = `NUMBER`, e29[e29.PERCENT = 4] = `PERCENT`, e29[e29.PERCENTILE = 5] = `PERCENTILE`, e29; })({}); var Rn = (function(e29) { return e29.EN_US = `enUS`, e29.FR_FR = `frFR`, e29.ZH_CN = `zhCN`, e29.RU_RU = `ruRU`, e29.ZH_TW = `zhTW`, e29.VI_VN = `viVN`, e29.FA_IR = `faIR`, e29.JA_JP = `jaJP`, e29.KO_KR = `koKR`, e29.ES_ES = `esES`, e29.CA_ES = `caES`, e29.SK_SK = `skSK`, e29; })({}); var zn = (function(e29) { return e29[e29.PERSON = 0] = `PERSON`, e29[e29.FILE = 1] = `FILE`, e29[e29.DATE = 2] = `DATE`, e29[e29.LOCATION = 3] = `LOCATION`, e29[e29.EVENT = 4] = `EVENT`, e29; })({}); var Bn = (function(e29) { return e29[e29.RANGE = 0] = `RANGE`, e29[e29.SHEET = 1] = `SHEET`, e29; })({}); var Vn = (function(e29) { return e29.Line = `line`, e29.LineInv = `lineInv`, e29.Triangle = `triangle`, e29.RtTriangle = `rtTriangle`, e29.Rect = `rect`, e29.Diamond = `diamond`, e29.Parallelogram = `parallelogram`, e29.Trapezoid = `trapezoid`, e29.NonIsocelesTrapezoid = `nonIsocelesTrapezoid`, e29.Pentagon = `pentagon`, e29.Hexagon = `hexagon`, e29.Heptagon = `heptagon`, e29.Octagon = `octagon`, e29.Decagon = `decagon`, e29.Dodecagon = `dodecagon`, e29.Star4 = `star4`, e29.Star5 = `star5`, e29.Star6 = `star6`, e29.Star7 = `star7`, e29.Star8 = `star8`, e29.Star10 = `star10`, e29.Star12 = `star12`, e29.Star16 = `star16`, e29.Star24 = `star24`, e29.Star32 = `star32`, e29.RoundRect = `roundRect`, e29.Round1Rect = `round1Rect`, e29.Round2SameRect = `round2SameRect`, e29.Round2DiagRect = `round2DiagRect`, e29.Ellipse = `ellipse`, e29; })({}); var Hn = (function(e29) { return e29.RightArrow = `rightArrow`, e29.LeftArrow = `leftArrow`, e29.UpArrow = `upArrow`, e29.DownArrow = `downArrow`, e29.LeftRightArrow = `leftRightArrow`, e29.UpDownArrow = `upDownArrow`, e29.QuadArrow = `quadArrow`, e29.LeftRightUpArrow = `leftRightUpArrow`, e29.BentArrow = `bentArrow`, e29.UturnArrow = `uturnArrow`, e29.CircularArrow = `circularArrow`, e29.NotchedRightArrow = `notchedRightArrow`, e29.HomePlate = `homePlate`, e29.Chevron = `chevron`, e29.LeftCircularArrow = `leftCircularArrow`, e29.LeftRightCircularArrow = `leftRightCircularArrow`, e29; })({}); var Un = (function(e29) { return e29.Plaque = `plaque`, e29.Can = `can`, e29.Cube = `cube`, e29.Bevel = `bevel`, e29.Donut = `donut`, e29.NoSmoking = `noSmoking`, e29.BlockArc = `blockArc`, e29.FoldedCorner = `foldedCorner`, e29; })({}); var Wn = (function(e29) { return e29.SmileyFace = `smileyFace`, e29.Heart = `heart`, e29.LightningBolt = `lightningBolt`, e29.Sun = `sun`, e29.Moon = `moon`, e29.Cloud = `cloud`, e29.Arc = `arc`, e29.Backpack = `backpack`, e29.Frame = `frame`, e29.HalfFrame = `halfFrame`, e29.Corner = `corner`, e29.Chord = `chord`, e29.Pie = `pie`, e29.Teardrop = `teardrop`, e29.WedgeRectCallout = `wedgeRectCallout`, e29.WedgeRRectCallout = `wedgeRRectCallout`, e29.WedgeEllipseCallout = `wedgeEllipseCallout`, e29.CloudCallout = `cloudCallout`, e29.BorderCallout1 = `borderCallout1`, e29.BorderCallout2 = `borderCallout2`, e29.BorderCallout3 = `borderCallout3`, e29.AccentCallout1 = `accentCallout1`, e29.AccentCallout2 = `accentCallout2`, e29.AccentCallout3 = `accentCallout3`, e29.Callout1 = `callout1`, e29.Callout2 = `callout2`, e29.Callout3 = `callout3`, e29.ActionButtonBackPrevious = `actionButtonBackPrevious`, e29.ActionButtonEnd = `actionButtonEnd`, e29.ActionButtonForwardNext = `actionButtonForwardNext`, e29.ActionButtonHelp = `actionButtonHelp`, e29.ActionButtonHome = `actionButtonHome`, e29.ActionButtonInformation = `actionButtonInformation`, e29.ActionButtonMovie = `actionButtonMovie`, e29.ActionButtonReturn = `actionButtonReturn`, e29.ActionButtonSound = `actionButtonSound`, e29; })({}); var Gn = (function(e29) { return e29[e29.RELATIVE_DATE_UNSPECIFIED = 0] = `RELATIVE_DATE_UNSPECIFIED`, e29[e29.PAST_YEAR = 1] = `PAST_YEAR`, e29[e29.PAST_MONTH = 2] = `PAST_MONTH`, e29[e29.PAST_WEEK = 3] = `PAST_WEEK`, e29[e29.YESTERDAY = 4] = `YESTERDAY`, e29[e29.TODAY = 5] = `TODAY`, e29[e29.TOMORROW = 6] = `TOMORROW`, e29; })({}); var Kn = (function(e29) { return e29[e29.GRID = 0] = `GRID`, e29[e29.KANBAN = 1] = `KANBAN`, e29[e29.GANTT = 2] = `GANTT`, e29; })({}); var qn = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.LEFT_TO_RIGHT = 1] = `LEFT_TO_RIGHT`, e29[e29.RIGHT_TO_LEFT = 2] = `RIGHT_TO_LEFT`, e29; })({}); var Jn = (function(e29) { return e29[e29.DASH = 0] = `DASH`, e29[e29.DASH_DOT_DOT_HEAVY = 1] = `DASH_DOT_DOT_HEAVY`, e29[e29.DASH_DOT_HEAVY = 2] = `DASH_DOT_HEAVY`, e29[e29.DASHED_HEAVY = 3] = `DASHED_HEAVY`, e29[e29.DASH_LONG = 4] = `DASH_LONG`, e29[e29.DASH_LONG_HEAVY = 5] = `DASH_LONG_HEAVY`, e29[e29.DOT_DASH = 6] = `DOT_DASH`, e29[e29.DOT_DOT_DASH = 7] = `DOT_DOT_DASH`, e29[e29.DOTTED = 8] = `DOTTED`, e29[e29.DOTTED_HEAVY = 9] = `DOTTED_HEAVY`, e29[e29.DOUBLE = 10] = `DOUBLE`, e29[e29.NONE = 11] = `NONE`, e29[e29.SINGLE = 12] = `SINGLE`, e29[e29.THICK = 13] = `THICK`, e29[e29.WAVE = 14] = `WAVE`, e29[e29.WAVY_DOUBLE = 15] = `WAVY_DOUBLE`, e29[e29.WAVY_HEAVY = 16] = `WAVY_HEAVY`, e29[e29.WORDS = 17] = `WORDS`, e29; })({}); var Yn = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.LEFT = 1] = `LEFT`, e29[e29.CENTER = 2] = `CENTER`, e29[e29.RIGHT = 3] = `RIGHT`, e29[e29.JUSTIFIED = 4] = `JUSTIFIED`, e29[e29.BOTH = 5] = `BOTH`, e29[e29.DISTRIBUTED = 6] = `DISTRIBUTED`, e29; })({}); var Xn = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.TOP = 1] = `TOP`, e29[e29.MIDDLE = 2] = `MIDDLE`, e29[e29.BOTTOM = 3] = `BOTTOM`, e29; })({}); var Zn = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.OVERFLOW = 1] = `OVERFLOW`, e29[e29.CLIP = 2] = `CLIP`, e29[e29.WRAP = 3] = `WRAP`, e29; })({}); var Qn = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.ITALIC = 1] = `ITALIC`, e29; })({}); var $n = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.BOLD = 1] = `BOLD`, e29; })({}); var er = (function(e29) { return e29[e29.NORMAL = 1] = `NORMAL`, e29[e29.SUBSCRIPT = 2] = `SUBSCRIPT`, e29[e29.SUPERSCRIPT = 3] = `SUPERSCRIPT`, e29; })({}); var A = (function(e29) { return e29[e29.FALSE = 0] = `FALSE`, e29[e29.TRUE = 1] = `TRUE`, e29; })({}); var tr = (function(e29) { return e29[e29.STRING = 1] = `STRING`, e29[e29.NUMBER = 2] = `NUMBER`, e29[e29.BOOLEAN = 3] = `BOOLEAN`, e29[e29.FORCE_STRING = 4] = `FORCE_STRING`, e29; })({}); var j = (function(e29) { return e29[e29.DARK1 = 0] = `DARK1`, e29[e29.LIGHT1 = 1] = `LIGHT1`, e29[e29.DARK2 = 2] = `DARK2`, e29[e29.LIGHT2 = 3] = `LIGHT2`, e29[e29.ACCENT1 = 4] = `ACCENT1`, e29[e29.ACCENT2 = 5] = `ACCENT2`, e29[e29.ACCENT3 = 6] = `ACCENT3`, e29[e29.ACCENT4 = 7] = `ACCENT4`, e29[e29.ACCENT5 = 8] = `ACCENT5`, e29[e29.ACCENT6 = 9] = `ACCENT6`, e29[e29.HYPERLINK = 10] = `HYPERLINK`, e29[e29.FOLLOWED_HYPERLINK = 11] = `FOLLOWED_HYPERLINK`, e29; })({}); var nr = (function(e29) { return e29.OFFICE = `Office`, e29.OFFICE_2007_2010 = `Office 2007-2010`, e29.GRAYSCALE = `Grayscale`, e29.BLUE_WARM = `Blue Warm`, e29.BLUE = `Blue`, e29.BLUE_II = `Blue II`, e29.BLUE_GREEN = `Blue Green`, e29.GREEN = `Green`, e29.GREEN_YELLOW = `Green Yellow`, e29.YELLOW = `Yellow`, e29.YELLOW_ORANGE = `Yellow Orange`, e29.ORANGE = `Orange`, e29.ORANGE_RED = `Orange Red`, e29.RED_ORANGE = `Red Orange`, e29.RED = `Red`, e29.RED_VIOLET = `Red Violet`, e29.VIOLET = `Violet`, e29.VIOLET_II = `Violet II`, e29.MEDIAN = `Median`, e29.PAPER = `Paper`, e29.MARQUEE = `Marquee`, e29.SLIPSTREAM = `Slipstream`, e29.Aspect = `Aspect`, e29; })({}); var rr = (function(e29) { return e29[e29.character = 0] = `character`, e29[e29.paragraph = 1] = `paragraph`, e29[e29.table = 2] = `table`, e29[e29.numbering = 3] = `numbering`, e29; })({}); var ir = (function(e29) { return e29[e29.TAB = 0] = `TAB`, e29[e29.SPACE = 1] = `SPACE`, e29[e29.NOTHING = 2] = `NOTHING`, e29; })({}); var M = (function(e29) { return e29[e29.BULLET = 0] = `BULLET`, e29[e29.NONE = 1] = `NONE`, e29[e29.DECIMAL = 2] = `DECIMAL`, e29[e29.DECIMAL_ZERO = 3] = `DECIMAL_ZERO`, e29[e29.UPPER_LETTER = 4] = `UPPER_LETTER`, e29[e29.LOWER_LETTER = 5] = `LOWER_LETTER`, e29[e29.UPPER_ROMAN = 6] = `UPPER_ROMAN`, e29[e29.LOWER_ROMAN = 7] = `LOWER_ROMAN`, e29[e29.ORDINAL = 8] = `ORDINAL`, e29[e29.CARDINAL_TEXT = 9] = `CARDINAL_TEXT`, e29[e29.ORDINAL_TEXT = 10] = `ORDINAL_TEXT`, e29[e29.HEX = 11] = `HEX`, e29[e29.CHICAGO = 12] = `CHICAGO`, e29[e29.IDEOGRAPH_DIGITAL = 13] = `IDEOGRAPH_DIGITAL`, e29[e29.JAPANESE_COUNTING = 14] = `JAPANESE_COUNTING`, e29[e29.AIUEO = 15] = `AIUEO`, e29[e29.IROHA = 16] = `IROHA`, e29[e29.DECIMAL_FULL_WIDTH = 17] = `DECIMAL_FULL_WIDTH`, e29[e29.DECIMAL_HALF_WIDTH = 18] = `DECIMAL_HALF_WIDTH`, e29[e29.JAPANESE_LEGAL = 19] = `JAPANESE_LEGAL`, e29[e29.JAPANESE_DIGITAL_TEN_THOUSAND = 20] = `JAPANESE_DIGITAL_TEN_THOUSAND`, e29[e29.DECIMAL_ENCLOSED_CIRCLE = 21] = `DECIMAL_ENCLOSED_CIRCLE`, e29[e29.DECIMAL_FULL_WIDTH2 = 22] = `DECIMAL_FULL_WIDTH2`, e29[e29.AIUEO_FULL_WIDTH = 23] = `AIUEO_FULL_WIDTH`, e29[e29.IROHA_FULL_WIDTH = 24] = `IROHA_FULL_WIDTH`, e29[e29.GANADA = 25] = `GANADA`, e29[e29.CHOSUNG = 26] = `CHOSUNG`, e29[e29.DECIMAL_ENCLOSED_FULLSTOP = 27] = `DECIMAL_ENCLOSED_FULLSTOP`, e29[e29.DECIMAL_ENCLOSED_PAREN = 28] = `DECIMAL_ENCLOSED_PAREN`, e29[e29.DECIMAL_ENCLOSED_CIRCLE_CHINESE = 29] = `DECIMAL_ENCLOSED_CIRCLE_CHINESE`, e29[e29.IDEOGRAPH_ENCLOSED_CIRCLE = 30] = `IDEOGRAPH_ENCLOSED_CIRCLE`, e29[e29.IDEOGRAPH_TRADITIONAL = 31] = `IDEOGRAPH_TRADITIONAL`, e29[e29.IDEOGRAPH_ZODIAC = 32] = `IDEOGRAPH_ZODIAC`, e29[e29.IDEOGRAPH_ZODIAC_TRADITIONAL = 33] = `IDEOGRAPH_ZODIAC_TRADITIONAL`, e29[e29.TAIWANESE_COUNTING = 34] = `TAIWANESE_COUNTING`, e29[e29.IDEOGRAPH_LEGAL_TRADITIONAL = 35] = `IDEOGRAPH_LEGAL_TRADITIONAL`, e29[e29.TAIWANESE_COUNTING_THOUSAND = 36] = `TAIWANESE_COUNTING_THOUSAND`, e29[e29.TAIWANESE_DIGITAL = 37] = `TAIWANESE_DIGITAL`, e29[e29.CHINESE_COUNTING = 38] = `CHINESE_COUNTING`, e29[e29.CHINESE_LEGAL_SIMPLIFIED = 39] = `CHINESE_LEGAL_SIMPLIFIED`, e29[e29.CHINESE_COUNTING_THOUSAND = 40] = `CHINESE_COUNTING_THOUSAND`, e29[e29.KOREAN_DIGITAL = 41] = `KOREAN_DIGITAL`, e29[e29.KOREAN_COUNTING = 42] = `KOREAN_COUNTING`, e29[e29.KOREAN_LEGAL = 43] = `KOREAN_LEGAL`, e29[e29.KOREAN_DIGITAL2 = 44] = `KOREAN_DIGITAL2`, e29[e29.VIETNAMESE_COUNTING = 45] = `VIETNAMESE_COUNTING`, e29[e29.RUSSIAN_LOWER = 46] = `RUSSIAN_LOWER`, e29[e29.RUSSIAN_UPPER = 47] = `RUSSIAN_UPPER`, e29[e29.NUMBER_IN_DASH = 48] = `NUMBER_IN_DASH`, e29[e29.HEBREW1 = 49] = `HEBREW1`, e29[e29.HEBREW2 = 50] = `HEBREW2`, e29[e29.ARABIC_ALPHA = 51] = `ARABIC_ALPHA`, e29[e29.ARABIC_ABJAD = 52] = `ARABIC_ABJAD`, e29[e29.HINDI_VOWELS = 53] = `HINDI_VOWELS`, e29[e29.HINDI_CONSONANTS = 54] = `HINDI_CONSONANTS`, e29[e29.HINDI_NUMBERS = 55] = `HINDI_NUMBERS`, e29[e29.HINDI_COUNTING = 56] = `HINDI_COUNTING`, e29[e29.THAI_LETTERS = 57] = `THAI_LETTERS`, e29[e29.THAI_NUMBERS = 58] = `THAI_NUMBERS`, e29[e29.THAI_COUNTING = 59] = `THAI_COUNTING`, e29[e29.CUSTOM = 60] = `CUSTOM`, e29; })({}); var ar = (function(e29) { return e29[e29.BULLET_ALIGNMENT_UNSPECIFIED = 0] = `BULLET_ALIGNMENT_UNSPECIFIED`, e29[e29.START = 1] = `START`, e29[e29.CENTER = 2] = `CENTER`, e29[e29.END = 3] = `END`, e29[e29.BOTH = 4] = `BOTH`, e29; })({}); var or = (function(e29) { return e29[e29.HYPERLINK = 0] = `HYPERLINK`, e29[e29.FIELD = 1] = `FIELD`, e29[e29.SDT = 2] = `SDT`, e29[e29.BOOKMARK = 3] = `BOOKMARK`, e29[e29.COMMENT = 4] = `COMMENT`, e29[e29.CUSTOM = 5] = `CUSTOM`, e29[e29.MENTION = 6] = `MENTION`, e29[e29.UNI_FORMULA = 7] = `UNI_FORMULA`, e29[e29.DELTED = 9999] = `DELTED`, e29; })({}); var sr = (function(e29) { return e29[e29.COMMENT = 0] = `COMMENT`, e29[e29.DELETED = 9999] = `DELETED`, e29; })({}); var cr = (function(e29) { return e29[e29.DRAWING = 0] = `DRAWING`, e29[e29.CUSTOM = 1] = `CUSTOM`, e29; })({}); var lr = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.TRADITIONAL = 1] = `TRADITIONAL`, e29[e29.MODERN = 2] = `MODERN`, e29; })({}); var ur = (function(e29) { return e29[e29.DEFAULT = 0] = `DEFAULT`, e29[e29.LINES = 1] = `LINES`, e29[e29.LINES_AND_CHARS = 2] = `LINES_AND_CHARS`, e29[e29.SNAP_TO_CHARS = 3] = `SNAP_TO_CHARS`, e29; })({}); var dr = (function(e29) { return e29[e29.SECTION_TYPE_UNSPECIFIED = 0] = `SECTION_TYPE_UNSPECIFIED`, e29[e29.CONTINUOUS = 1] = `CONTINUOUS`, e29[e29.NEXT_PAGE = 2] = `NEXT_PAGE`, e29[e29.EVEN_PAGE = 3] = `EVEN_PAGE`, e29[e29.ODD_PAGE = 4] = `ODD_PAGE`, e29; })({}); var fr = (function(e29) { return e29[e29.COLUMN_SEPARATOR_STYLE_UNSPECIFIED = 0] = `COLUMN_SEPARATOR_STYLE_UNSPECIFIED`, e29[e29.NONE = 1] = `NONE`, e29[e29.BETWEEN_EACH_COLUMN = 2] = `BETWEEN_EACH_COLUMN`, e29; })({}); var pr = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.TBRL = 1] = `TBRL`, e29[e29.LRTBV = 2] = `LRTBV`, e29; })({}); var mr = (function(e29) { return e29[e29.TEXT_RUN = 0] = `TEXT_RUN`, e29[e29.AUTO_TEXT = 1] = `AUTO_TEXT`, e29[e29.PAGE_BREAK = 2] = `PAGE_BREAK`, e29[e29.COLUMN_BREAK = 3] = `COLUMN_BREAK`, e29[e29.FOOT_NOTE_REFERENCE = 4] = `FOOT_NOTE_REFERENCE`, e29[e29.HORIZONTAL_RULE = 5] = `HORIZONTAL_RULE`, e29[e29.EQUATION = 6] = `EQUATION`, e29[e29.DRAWING = 7] = `DRAWING`, e29[e29.PERSON = 8] = `PERSON`, e29[e29.RICH_LINK = 9] = `RICH_LINK`, e29; })({}); var hr = (function(e29) { return e29[e29.BOTH_SIDES = 0] = `BOTH_SIDES`, e29[e29.LEFT = 1] = `LEFT`, e29[e29.RIGHT = 2] = `RIGHT`, e29[e29.LARGEST = 3] = `LARGEST`, e29; })({}); var gr = (function(e29) { return e29[e29.INLINE = 0] = `INLINE`, e29[e29.WRAP_NONE = 1] = `WRAP_NONE`, e29[e29.WRAP_POLYGON = 2] = `WRAP_POLYGON`, e29[e29.WRAP_SQUARE = 3] = `WRAP_SQUARE`, e29[e29.WRAP_THROUGH = 4] = `WRAP_THROUGH`, e29[e29.WRAP_TIGHT = 5] = `WRAP_TIGHT`, e29[e29.WRAP_TOP_AND_BOTTOM = 6] = `WRAP_TOP_AND_BOTTOM`, e29; })({}); var N = (function(e29) { return e29[e29.NAMED_STYLE_TYPE_UNSPECIFIED = 0] = `NAMED_STYLE_TYPE_UNSPECIFIED`, e29[e29.NORMAL_TEXT = 1] = `NORMAL_TEXT`, e29[e29.TITLE = 2] = `TITLE`, e29[e29.SUBTITLE = 3] = `SUBTITLE`, e29[e29.HEADING_1 = 4] = `HEADING_1`, e29[e29.HEADING_2 = 5] = `HEADING_2`, e29[e29.HEADING_3 = 6] = `HEADING_3`, e29[e29.HEADING_4 = 7] = `HEADING_4`, e29[e29.HEADING_5 = 8] = `HEADING_5`, e29; })({}); var _r = (function(e29) { return e29[e29.AUTO = 0] = `AUTO`, e29[e29.AT_LEAST = 1] = `AT_LEAST`, e29[e29.EXACT = 2] = `EXACT`, e29; })({}); var vr = (function(e29) { return e29[e29.DASH_STYLE_UNSPECIFIED = 0] = `DASH_STYLE_UNSPECIFIED`, e29[e29.SOLID = 1] = `SOLID`, e29[e29.DOT = 2] = `DOT`, e29[e29.DASH = 3] = `DASH`, e29; })({}); var yr = (function(e29) { return e29[e29.TAB_STOP_ALIGNMENT_UNSPECIFIED = 0] = `TAB_STOP_ALIGNMENT_UNSPECIFIED`, e29[e29.START = 1] = `START`, e29[e29.CENTER = 2] = `CENTER`, e29[e29.END = 3] = `END`, e29; })({}); var br = (function(e29) { return e29[e29.UNSPECIFIED = 0] = `UNSPECIFIED`, e29[e29.SPECIFIED = 1] = `SPECIFIED`, e29; })({}); var xr = (function(e29) { return e29[e29.START = 0] = `START`, e29[e29.CENTER = 1] = `CENTER`, e29[e29.END = 2] = `END`, e29; })({}); var Sr = (function(e29) { return e29[e29.AUTO_FIT = 0] = `AUTO_FIT`, e29[e29.FIXED = 1] = `FIXED`, e29; })({}); var Cr = (function(e29) { return e29[e29.NONE = 0] = `NONE`, e29[e29.WRAP = 1] = `WRAP`, e29; })({}); var wr = (function(e29) { return e29[e29.AUTO = 0] = `AUTO`, e29[e29.AT_LEAST = 1] = `AT_LEAST`, e29[e29.EXACT = 2] = `EXACT`, e29; })({}); var Tr = (function(e29) { return e29[e29.CONTENT_ALIGNMENT_UNSPECIFIED = 0] = `CONTENT_ALIGNMENT_UNSPECIFIED`, e29[e29.BOTH = 1] = `BOTH`, e29[e29.TOP = 2] = `TOP`, e29[e29.CENTER = 3] = `CENTER`, e29[e29.BOTTOM = 4] = `BOTTOM`, e29; })({}); var Er = (function(e29) { return e29.NORMAL = `normal`, e29.BOLD = `bold`, e29.ITALIC = `italic`, e29; })({}); var Dr = (function(e29) { return e29[e29.PAGE = 0] = `PAGE`, e29[e29.COLUMN = 1] = `COLUMN`, e29[e29.CHARACTER = 2] = `CHARACTER`, e29[e29.MARGIN = 3] = `MARGIN`, e29[e29.INSIDE_MARGIN = 4] = `INSIDE_MARGIN`, e29[e29.OUTSIDE_MARGIN = 5] = `OUTSIDE_MARGIN`, e29[e29.LEFT_MARGIN = 6] = `LEFT_MARGIN`, e29[e29.RIGHT_MARGIN = 7] = `RIGHT_MARGIN`, e29; })({}); var Or = (function(e29) { return e29[e29.PAGE = 0] = `PAGE`, e29[e29.PARAGRAPH = 1] = `PARAGRAPH`, e29[e29.LINE = 2] = `LINE`, e29[e29.MARGIN = 3] = `MARGIN`, e29[e29.TOP_MARGIN = 4] = `TOP_MARGIN`, e29[e29.BOTTOM_MARGIN = 5] = `BOTTOM_MARGIN`, e29[e29.INSIDE_MARGIN = 6] = `INSIDE_MARGIN`, e29[e29.OUTSIDE_MARGIN = 7] = `OUTSIDE_MARGIN`, e29; })({}); var kr = (function(e29) { return e29[e29.POINT = 0] = `POINT`, e29[e29.LINE = 1] = `LINE`, e29[e29.CHARACTER = 2] = `CHARACTER`, e29[e29.PIXEL = 3] = `PIXEL`, e29[e29.PERCENT = 4] = `PERCENT`, e29; })({}); var Ar = (function(e29) { return e29[e29.CENTER = 0] = `CENTER`, e29[e29.INSIDE = 1] = `INSIDE`, e29[e29.LEFT = 2] = `LEFT`, e29[e29.OUTSIDE = 3] = `OUTSIDE`, e29[e29.RIGHT = 4] = `RIGHT`, e29[e29.BOTH = 5] = `BOTH`, e29[e29.DISTRIBUTE = 6] = `DISTRIBUTE`, e29; })({}); var jr = (function(e29) { return e29[e29.BOTTOM = 0] = `BOTTOM`, e29[e29.CENTER = 1] = `CENTER`, e29[e29.INSIDE = 2] = `INSIDE`, e29[e29.OUTSIDE = 3] = `OUTSIDE`, e29[e29.TOP = 4] = `TOP`, e29; })({}); var Mr = (function(e29) { return e29[e29.compressPunctuation = 0] = `compressPunctuation`, e29[e29.compressPunctuationAndJapaneseKana = 1] = `compressPunctuationAndJapaneseKana`, e29[e29.doNotCompress = 2] = `doNotCompress`, e29; })({}); var Nr = (function(e29) { return e29[e29.PORTRAIT = 0] = `PORTRAIT`, e29[e29.LANDSCAPE = 1] = `LANDSCAPE`, e29; })({}); var P2 = (function(e29) { return e29.Letter = `Letter`, e29.Tabloid = `Tabloid`, e29.Legal = `Legal`, e29.Statement = `Statement`, e29.Executive = `Executive`, e29.Folio = `Folio`, e29.A3 = `A3`, e29.A4 = `A4`, e29.A5 = `A5`, e29.B4 = `B4`, e29.B5 = `B5`, e29; })({}); var Pr = [P2.A3, P2.A4, P2.A5, P2.B4, P2.B5, P2.Letter, P2.Tabloid, P2.Legal, P2.Statement, P2.Executive, P2.Folio]; var Fr = (function(e29) { return e29[e29.forward = 0] = `forward`, e29[e29.backward = 1] = `backward`, e29[e29.front = 2] = `front`, e29[e29.back = 3] = `back`, e29; })({}); var Ir = (function(e29) { return e29[e29.UNRECOGNIZED = -1] = `UNRECOGNIZED`, e29[e29.DRAWING_IMAGE = 0] = `DRAWING_IMAGE`, e29[e29.DRAWING_SHAPE = 1] = `DRAWING_SHAPE`, e29[e29.DRAWING_CHART = 2] = `DRAWING_CHART`, e29[e29.DRAWING_TABLE = 3] = `DRAWING_TABLE`, e29[e29.DRAWING_SMART_ART = 4] = `DRAWING_SMART_ART`, e29[e29.DRAWING_VIDEO = 5] = `DRAWING_VIDEO`, e29[e29.DRAWING_GROUP = 6] = `DRAWING_GROUP`, e29[e29.DRAWING_UNIT = 7] = `DRAWING_UNIT`, e29[e29.DRAWING_DOM = 8] = `DRAWING_DOM`, e29; })({}); var Lr = (function(e29) { return e29[e29.SLIDE = 0] = `SLIDE`, e29[e29.MASTER = 1] = `MASTER`, e29[e29.LAYOUT = 2] = `LAYOUT`, e29[e29.HANDOUT_MASTER = 3] = `HANDOUT_MASTER`, e29[e29.NOTES_MASTER = 4] = `NOTES_MASTER`, e29; })({}); var Rr = (function(e29) { return e29[e29.SHAPE = 0] = `SHAPE`, e29[e29.IMAGE = 1] = `IMAGE`, e29[e29.TEXT = 2] = `TEXT`, e29[e29.SPREADSHEET = 3] = `SPREADSHEET`, e29[e29.DOCUMENT = 4] = `DOCUMENT`, e29[e29.SLIDE = 5] = `SLIDE`, e29; })({}); var zr = (function(e29) { return e29[e29.RELATIVE_SLIDE_LINK_UNSPECIFIED = 0] = `RELATIVE_SLIDE_LINK_UNSPECIFIED`, e29[e29.NEXT_SLIDE = 1] = `NEXT_SLIDE`, e29[e29.PREVIOUS_SLIDE = 2] = `PREVIOUS_SLIDE`, e29[e29.FIRST_SLIDE = 3] = `FIRST_SLIDE`, e29[e29.LAST_SLIDE = 4] = `LAST_SLIDE`, e29; })({}); function Br() { return (e29) => e29; } var Vr = Br()([`s`, `c`, `cl`, `t`]); var Hr = Br()([`rgb`, `th`]); var Ur = Br()([`s`, `cl`]); var Wr = Br()([`t`, `r`, `b`, `l`, `tl_br`, `tl_bc`, `tl_mr`, `bl_tr`, `ml_tr`, `bc_tr`]); var Gr = Br()([`a`, `v`]); var Kr = Br()([`t`, `r`, `b`, `l`]); var qr = Br()([`ff`, `fs`, `it`, `bl`, `ul`, `bbl`, `st`, `ol`, `bg`, `bd`, `cl`, `va`, `n`, `tr`, `td`, `ht`, `vt`, `tb`, `pd`]); function Jr(e29 = O2(6), t = Rn.EN_US, n = ``) { return { id: e29, locale: t, title: n, tableSource: {}, drawings: {}, drawingsOrder: [], headers: {}, footers: {}, body: { dataStream: `\r `, textRuns: [], customBlocks: [], tables: [], paragraphs: [{ startIndex: 0, paragraphStyle: { spaceAbove: { v: 5 }, lineSpacing: 1, spaceBelow: { v: 0 } } }], sectionBreaks: [{ startIndex: 1 }] }, documentStyle: { pageSize: { width: 595 / 0.75, height: 842 / 0.75 }, documentFlavor: lr.TRADITIONAL, marginTop: 50, marginBottom: 50, marginRight: 50, marginLeft: 50, renderConfig: { zeroWidthParagraphBreak: A.FALSE, vertexAngle: 0, centerAngle: 0, background: { rgb: `#ccc` } }, autoHyphenation: A.TRUE, doNotHyphenateCaps: A.FALSE, consecutiveHyphenLimit: 2, defaultHeaderId: ``, defaultFooterId: ``, evenPageHeaderId: ``, evenPageFooterId: ``, firstPageHeaderId: ``, firstPageFooterId: ``, evenAndOddHeaders: A.FALSE, useFirstPageHeaderFooter: A.FALSE, marginHeader: 30, marginFooter: 30 }, settings: {} }; } var F = (function(e29) { return e29[e29.COVER = 0] = `COVER`, e29[e29.REPLACE = 1] = `REPLACE`, e29; })({}); var I = (function(e29) { return e29.RETAIN = `r`, e29.INSERT = `i`, e29.DELETE = `d`, e29; })({}); var Yr = createIdentifier(`univer.config-service`); var Zr = createIdentifier(`univer.context-service`); var $r = (function(e29) { return e29[e29.SILENT = 0] = `SILENT`, e29[e29.ERROR = 1] = `ERROR`, e29[e29.WARN = 2] = `WARN`, e29[e29.INFO = 3] = `INFO`, e29[e29.VERBOSE = 4] = `VERBOSE`, e29; })({}); var L = createIdentifier(`univer.log`); function R2(e29, t) { return function(n, r) { t(n, r, e29); }; } function z(e29, t, n, r) { var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o; if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e29, t, n, r); else for (var s = e29.length - 1; s >= 0; s--) (o = e29[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a); return i > 3 && a && Object.defineProperty(t, n, a), a; } var ri = (function(e29) { return e29[e29.COMMAND = 0] = `COMMAND`, e29[e29.OPERATION = 1] = `OPERATION`, e29[e29.MUTATION = 2] = `MUTATION`, e29; })({}); var ii = createIdentifier(`univer.core.command-service`); var ai = class { constructor() { C(this, `_commands`, /* @__PURE__ */ new Map()), C(this, `_commandTypes`, /* @__PURE__ */ new Map()); } registerCommand(e29) { if (this._commands.has(e29.id)) throw Error(`[CommandRegistry]: command "${e29.id}" has been registered before.`); return this._commands.set(e29.id, e29), this._commandTypes.set(e29.id, e29.type), T2(() => { this.unregisterCommand(e29.id); }); } unregisterCommand(e29) { this._commands.delete(e29), this._commandTypes.delete(e29); } hasCommand(e29) { return this._commands.has(e29); } getCommand(e29) { return this._commands.has(e29) ? [this._commands.get(e29)] : null; } getCommandType(e29) { return this._commandTypes.get(e29); } }; var oi = { id: `nil`, type: ri.COMMAND, handler: () => true }; var si = class extends E { constructor(e29, t, n) { super(), this._injector = e29, this._logService = t, this._configService = n, C(this, `_commandRegistry`, void 0), C(this, `_beforeCommandExecutionListeners`, []), C(this, `_commandExecutedListeners`, []), C(this, `_collabMutationListeners`, []), C(this, `_multiCommandDisposables`, /* @__PURE__ */ new Map()), C(this, `_commandExecutingLevel`, 0), C(this, `_commandExecutionStack`, []), this._commandRegistry = new ai(), this.registerCommand(oi); } dispose() { super.dispose(), this._commandExecutedListeners.length = 0, this._beforeCommandExecutionListeners.length = 0, this._collabMutationListeners.length = 0; } disposed() { return this._disposed; } hasCommand(e29) { return this._commandRegistry.hasCommand(e29); } registerCommand(e29) { return this._commandRegistry.registerCommand(e29); } unregisterCommand(e29) { var t; this._commandRegistry.unregisterCommand(e29), (t = this._multiCommandDisposables.get(e29)) == null || t.dispose(); } registerMultipleCommand(e29) { return this._registerMultiCommand(e29); } beforeCommandExecuted(e29) { if (this._beforeCommandExecutionListeners.indexOf(e29) === -1) return this._beforeCommandExecutionListeners.push(e29), T2(() => { let t = this._beforeCommandExecutionListeners.indexOf(e29); this._beforeCommandExecutionListeners.splice(t, 1); }); throw Error(`[CommandService]: could not add a listener twice.`); } onCommandExecuted(e29) { if (this._commandExecutedListeners.indexOf(e29) === -1) return this._commandExecutedListeners.push(e29), T2(() => { let t = this._commandExecutedListeners.indexOf(e29); this._commandExecutedListeners.splice(t, 1); }); throw Error(`[CommandService]: could not add a listener twice.`); } onMutationExecutedForCollab(e29) { if (this._collabMutationListeners.indexOf(e29) === -1) return this._collabMutationListeners.push(e29), T2(() => { let t = this._collabMutationListeners.indexOf(e29); this._collabMutationListeners.splice(t, 1); }); throw Error(`[CommandService]: could not add a collab mutation listener twice.`); } async executeCommand(e29, t, n) { try { let r = this._commandRegistry.getCommand(e29); if (r) { let [e30] = r, i = { id: e30.id, type: e30.type, params: t }, a = this._pushCommandExecutionStack(i), o = n == null ? {} : n; this._beforeCommandExecutionListeners.forEach((e31) => e31(i, o)); let s = await this._execute(e30, t, o); return o.syncOnly || this._commandExecutedListeners.forEach((e31) => e31(i, o)), e30.type === ri.MUTATION && this._collabMutationListeners.forEach((e31) => e31(i, o)), a.dispose(), s; } throw Error(`[CommandService]: command "${e29}" is not registered.`); } catch (e30) { if (e30 instanceof wt) return false; throw e30; } } syncExecuteCommand(e29, t, n) { try { let i = this._commandRegistry.getCommand(e29); if (i) { let [e30] = i, a = { id: e30.id, type: e30.type, params: t }; if (e30.type === ri.MUTATION) { let e31 = it(this._commandExecutionStack, (e32) => e32.type === ri.COMMAND); if (e31) { var r; a.params = (r = a.params) == null ? {} : r, a.params.trigger = e31.id; } } let o = this._pushCommandExecutionStack(a), s = n == null ? {} : n; this._beforeCommandExecutionListeners.forEach((e31) => e31(a, s)); let c = this._syncExecute(e30, t, s); return s.syncOnly || this._commandExecutedListeners.forEach((e31) => e31(a, s)), e30.type === ri.MUTATION && this._collabMutationListeners.forEach((e31) => e31(a, s)), o.dispose(), c; } throw Error(`[CommandService]: command "${e29}" is not registered.`); } catch (e30) { if (e30 instanceof wt) return false; throw e30; } } _pushCommandExecutionStack(e29) { return this._commandExecutionStack.push(e29), T2(() => tt(this._commandExecutionStack, e29)); } _registerMultiCommand(e29) { let t = this._commandRegistry.getCommand(e29.id), n; if (!t) { n = new ci(e29.id); let t2 = new un(); t2.add(this._commandRegistry.registerCommand(n)), t2.add(T2(() => { this._multiCommandDisposables.delete(e29.id); })), this._multiCommandDisposables.set(e29.id, t2); } else if (t[0].multi !== true) throw Error(`Command has registered as a single command.`); else n = t[0]; let r = n.registerImplementation(e29); return T2(() => { if (r.dispose(), !n.hasImplementations()) { var t2; (t2 = this._multiCommandDisposables.get(e29.id)) == null || t2.dispose(); } }); } async _execute(e29, t, n) { if (n != null && n.syncOnly) return true; this._configService.getConfig(`command.logExecution`) !== false && this._logService.debug(`[CommandService]`, `${`|-`.repeat(Math.max(this._commandExecutingLevel, 0))}executing command "${e29.id}"`), this._commandExecutingLevel++; let r; try { r = await this._injector.invoke(e29.handler, t, n), this._commandExecutingLevel--; } catch (e30) { throw r = false, this._commandExecutingLevel = 0, e30; } return r; } _syncExecute(e29, t, n) { if (n != null && n.syncOnly) return true; this._configService.getConfig(`command.logExecution`) !== false && this._logService.debug(`[CommandService]`, `${`|-`.repeat(Math.max(0, this._commandExecutingLevel))}executing command "${e29.id}".`), this._commandExecutingLevel++; let r; try { if (r = this._injector.invoke(e29.handler, t, n), r instanceof Promise) throw TypeError(`[CommandService]: Command handler should not return a promise.`); this._commandExecutingLevel--; } catch (e30) { throw r = false, this._commandExecutingLevel = 0, e30; } return r; } }; si = z([R2(0, Inject(Injector)), R2(1, L), R2(2, Yr)], si); var ci = class { constructor(e29) { this.id = e29, C(this, `name`, void 0), C(this, `multi`, true), C(this, `type`, ri.COMMAND), C(this, `priority`, 0), C(this, `_implementations`, []), C(this, `handler`, async (e30, t) => { if (!this._implementations.length) return false; let n = e30.get(L), r = e30.get(Zr), a = e30.get(Injector); for (let e31 of this._implementations) { let i = e31.command.preconditions; if ((!i || i && i(r)) && (n.debug(`[MultiCommand]`, `executing implementation "${e31.command.name}".`), await a.invoke(e31.command.handler, t))) return true; } return false; }), this.name = e29; } registerImplementation(e29) { let t = { command: e29 }; return this._implementations.push(t), this._implementations.sort((e30, t2) => t2.command.priority - e30.command.priority), T2(() => { let e30 = this._implementations.indexOf(t); this._implementations.splice(e30, 1); }); } hasImplementations() { return this._implementations.length > 0; } }; function li(e29, t, n) { return sn(e29.map((e30) => () => t.syncExecuteCommand(e30.id, e30.params, n))); } function ui(e29, t, n) { return on(e29.map((e30) => () => t.executeCommand(e30.id, e30.params, n))); } function fi(e29) { return function(t) { return new Observable((n) => (t.subscribe({ next: (t2) => { n.next(t2), e29(t2) && n.complete(); }, complete: () => n.complete(), error: (e30) => n.error(e30) }), () => n.unsubscribe())); }; } function _i(e29, t) { let n = 0, r = e29.length - 1; if (t < e29[0]) return 0; if (t >= e29[e29.length - 1]) return e29.length - 1; for (; n <= r; ) { if (e29[n] === t) { for (; n < e29.length && e29[n] === t; ) n++; return n; } if (t > e29[n] && t < e29[n + 1]) return n + 1; if (e29[r] === t) { for (; r < e29.length && e29[r] === t; ) r++; return r; } if (t > e29[r - 1] && t < e29[r]) return r; n++, r--; } return -1; } function yi(e29, t) { let n = 0, r = e29.length; for (; n < r; ) { let i = Math.floor((n + r) / 2); e29[i] <= t ? n = i + 1 : r = i; } return n < e29.length ? n : e29.length - 1; } function bi(e29, t, n = false) { let r = e29.length - 1; if (t < 0 || t < e29[0]) return 0; if (r = e29.length < 40 || t <= e29[20] || t >= e29[r - 20] ? _i(e29, t) : yi(e29, t), n) { let t2 = e29[r]; return e29.indexOf(t2); } return r; } function Ki(e29) { return e29 && (e29.s !== void 0 || e29.p !== void 0 || e29.v !== void 0 || e29.t !== void 0 || e29.f !== void 0 || e29.si !== void 0 || e29.custom !== void 0); } var B = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.ROW = 1] = `ROW`, e29[e29.COLUMN = 2] = `COLUMN`, e29[e29.ALL = 3] = `ALL`, e29; })({}); var V = (function(e29) { return e29[e29.NONE = 0] = `NONE`, e29[e29.ROW = 1] = `ROW`, e29[e29.COLUMN = 2] = `COLUMN`, e29[e29.ALL = 3] = `ALL`, e29; })({}); function Xi(e29) { return [e29.startRow, e29.startColumn, e29.endRow, e29.endColumn]; } var Zi = (function(e29) { return e29.NONE = `none`, e29.BACKWARD = `backward`, e29.FORWARD = `forward`, e29; })({}); var Qi = (function(e29) { return e29.RECT = `RECT`, e29.TEXT = `TEXT`, e29; })({}); var ea = (function(e29) { return e29.Raw = `raw`, e29.Intercepted = `intercepted`, e29.Both = `both`, e29; })({}); var ta = { [nr.OFFICE]: { [j.ACCENT1]: `#4472C4`, [j.ACCENT2]: `#ED7D31`, [j.ACCENT3]: `#A5A5A5`, [j.ACCENT4]: `#70AD47`, [j.ACCENT5]: `#5B9BD5`, [j.ACCENT6]: `#70AD47`, [j.DARK1]: `#000000`, [j.DARK2]: `#44546A`, [j.LIGHT1]: `#FFFFFF`, [j.LIGHT2]: `#E7E6E6`, [j.HYPERLINK]: `#0563C1`, [j.FOLLOWED_HYPERLINK]: `#954F72` } }; function aa(e29) { return e29 === `@@@` || e29 === `@`; } function oa(e29) { return e29 == null || e29 === `General`; } var ca = /* @__PURE__ */ new Set([`m d`]); var la = /* @__PURE__ */ new Set([`h:mm AM/PM`, `hh:mm AM/PM`]); var ua = /* @__PURE__ */ new Set([`$`, `\xA5`, `\u20BD`, `\u20AB`, `NT$`, `\u20AC`, `\u20A9`, `\uFDFC`]); var da = (e29) => { var t, n; let r = (t = (n = parseDate(e29)) == null ? parseTime(e29) : n) == null ? parseNumber(e29) : t; if (!r) return null; let { z: i } = r; if (i) { if (ca.has(i) || la.has(i) && !/\s(A|AM|P|PM)$/i.test(e29)) return null; if (i.includes(`#,##0`)) { if (/[.,]$/.test(e29)) return null; let t2 = e29.replace(RegExp(`^[${[...ua].join(``)}]+`), ``).trim(); if (t2.includes(`,`) && !/^-?\d{1,3}(,\d{3})*(\.\d+)?$/.test(t2)) return null; } } return r; }; function fa(e29, t) { let n = {}; for (let r in e29) { let i = Number(r), a = e29[i]; for (let e30 in a) { let r2 = Number(e30), o = a[r2], s = t(i, r2, o); s !== void 0 && (n[i] ? n[i][r2] = s : n[i] = { [r2]: s }); } } return n; } function pa(e29) { let t = 0, n = Object.keys(e29); for (let e30 of n) { let n2 = Number(e30); t = Math.max(t, n2); } return t + 1; } function ga(e29, t, n) { let r = Object.keys(n).reduce((e30, t2) => Math.max(e30, Number.parseInt(t2)), 0) + 1; for (let i = e29; i < r; i++) i < e29 + t ? delete n[i] : n[i] !== void 0 && (n[i - t] = n[i], delete n[i]); } function _a(e29, t) { let n = e29, r = Object.keys(n), i = r.length, a = t, o = Object.keys(a), s = o.length, c = {}, l = 0; for (let e30 = 0; e30 < i; e30++, l++) c[l] = n[r[e30]]; for (let e30 = 0; e30 < s; e30++, l++) c[l] = a[o[e30]]; return c; } function va(e29, t, n) { let r = n; if (pa(n) > 0) { let n2 = {}, i = 0; for (let a = e29; a <= t; a++) r[a] && (n2[i] = r[a], i++); return n2; } return {}; } function ya(e29, t, n, r) { let i = e29 > n; if (!i && e29 + t > n) throw Error(`Invalid move operation`); i ? ba(e29, t, n, r) : xa(e29, t, n, r); } function ba(e29, t, n, r) { let i = r, a = []; for (let n2 = e29; n2 < e29 + t; n2++) a.push(i[n2]); for (let r2 = e29 - 1; r2 >= n; r2--) { let e30 = i[r2]; i[r2 + t] = e30, e30 === void 0 && delete i[r2 + t]; } a.forEach((e30, t2) => { i[n + t2] = e30, e30 === void 0 && delete i[n + t2]; }); } function xa(e29, t, n, r) { let i = r, a = []; for (let n2 = e29; n2 < e29 + t; n2++) a.push(i[n2]); for (let r2 = e29 + t; r2 < n; r2++) { let e30 = i[r2]; i[r2 - t] = e30, e30 === void 0 && delete i[r2 - t]; } a.forEach((e30, r2) => { i[n + r2 - t] = e30, e30 === void 0 && delete i[n + r2 - t]; }); } var Sa = class e4 { constructor(e29 = {}) { C(this, `_matrix`, void 0), this._setOriginValue(e29); } static MakeObjectMatrixSize(t) { return new e4({ [t - 1]: {} }); } getMatrix() { return this._matrix; } forEach(e29) { let t = this._matrix, n = Object.keys(t); for (let r of n) { let n2 = Number(r), i = t[n2]; if (e29(n2, i) === false) return this; } return this; } forRow(e29) { let t = this._matrix, n = Object.keys(t); for (let r of n) { let n2 = Number(r), i = t[n2]; if (e29(n2, Object.keys(i).map((e30) => Number(e30))) === false) return this; } return this; } forValue(e29) { let t = this._matrix; for (let n in t) { let r = Number(n), i = t[r]; if (i) for (let t2 in i) { let n2 = Number(t2), a = i[n2]; if (e29(r, n2, a) === false) return this; } } return this; } swapRow(e29, t) { let n = this._matrix[e29], r = this._matrix[t]; this._matrix[e29] = r, this._matrix[t] = n; } getRow(e29) { return this._matrix[e29]; } getRowOrCreate(e29) { let t = this.getRow(e29); return t == null && (t = {}, this._matrix[e29] = t), t; } reset() { this._setOriginValue({}); } hasValue() { let e29 = this._matrix, t = Object.keys(e29); if (t.length === 0) return false; for (let n of t) { let t2 = e29[Number(n)]; if (Object.keys(t2).length > 0) return true; } return false; } getValue(e29, t) { var n; return (n = this._matrix) == null || (n = n[e29]) == null ? void 0 : n[t]; } setValue(e29, t, n) { let r = this.getRowOrCreate(e29); r[t] = n; } deleteValue(e29, t) { var n; (n = this._matrix) == null || (n = n[e29]) == null || delete n[t]; } realDeleteValue(e29, t) { var n; if ((n = this._matrix) == null || (n = n[e29]) == null || delete n[t], this.getRow(e29)) { let t2 = this.getRow(e29); if (t2 == null) return; if (Object.keys(t2).length === 0) { var r; (r = this._matrix) == null || delete r[e29]; } } } setRow(e29, t) { this._matrix[e29] = t; } moveRows(e29, t, n) { ya(e29, t, n, this._matrix); } moveColumns(e29, t, n) { this.forEach((r, i) => { ya(e29, t, n, i); }); } insertRows(e29, t) { let n = Object.keys(this._matrix); for (let r = n.length - 1; r >= 0; r--) { let i = Number(n[r]); if (i >= e29) { let e30 = this._matrix[i]; delete this._matrix[i], this._matrix[i + t] = e30; } } } insertColumns(e29, t) { let n = Object.keys(this._matrix); for (let r = 0; r < n.length; r++) { let i = Number(n[r]), a = this._matrix[i], o = Object.keys(a); for (let n2 = o.length - 1; n2 >= 0; n2--) { let r2 = Number(o[n2]); if (r2 >= e29) { let e30 = a[r2]; delete a[r2], a[r2 + t] = e30; } } } } removeRows(e29, t) { ga(e29, t, this._matrix); } removeColumns(e29, t) { this.forEach((n, r) => { r && ga(e29, t, r); }); } getFragment(t, n, r, i) { let a = new e4(), o = 0; for (let e29 = t; e29 <= n; e29++) { let t2 = {}, n2 = 0; for (let a2 = r; a2 <= i; a2++) t2[n2] = this.getValue(e29, a2), n2++; a.setRow(o, t2), o++; } return a; } getSlice(t, n, r, i) { let a = new e4(); for (let e29 = t; e29 <= n; e29++) for (let t2 = r; t2 <= i; t2++) { let n2 = this.getValue(e29, t2); n2 && a.setValue(e29, t2, D.deepClone(n2)); } return a; } getSliceDataAndCellCountByRows(t, n) { let r = new e4(), i = 0; for (let e29 = t; e29 <= n; e29++) { let t2 = this.getRow(e29); t2 && (r.setRow(e29, t2), i += Object.keys(t2).length); } return { sliceData: r, cellCount: i }; } getSizeOf() { return Object.keys(this._matrix).length; } getLength() { return pa(this._matrix); } getRange() { let e29 = this.getLength() - 1, t = 0, n = this.getLength(); for (let e30 = 0; e30 < n; e30++) { let n2 = this.getRow(e30); if (n2) { let e31 = pa(n2) - 1; t = e31 > t ? e31 : t; } } return { startRow: 0, startColumn: 0, endRow: e29, endColumn: t }; } getRealRange() { let e29 = Object.keys(this._matrix), t = e29.length, n = t > 0 ? Number(e29[0]) : 0, r = t > 0 ? Number(e29[t - 1]) : 0, i = -1 / 0, a = 0; for (let t2 of e29) { let e30 = this.getRow(Number(t2)); if (e30) { let t3 = Object.keys(e30); if (t3.length > 0) { let e31 = Number(t3[0]), n2 = Number(t3[t3.length - 1]); (i === -1 / 0 || e31 < i) && (i = e31), n2 > a && (a = n2); } } } return i === -1 / 0 && (i = 0), { startRow: n, endRow: r, startColumn: i, endColumn: a }; } getRealRowRange() { let e29 = Object.keys(this._matrix), t = e29.length; return { startRow: t > 0 ? Number(e29[0]) : 0, endRow: t > 0 ? Number(e29[t - 1]) : 0 }; } toNativeArray() { let e29 = []; return this.forValue((t, n, r) => { e29.push(r); }), e29; } toArray() { let e29 = []; return this.forRow((t, n) => { e29[t] == null && (e29[t] = []), n.forEach((n2) => { e29[t][n2] = this.getValue(t, n2); }); }), e29; } toFullArray() { let { endColumn: e29, endRow: t } = this.getRange(), n = []; for (let r = 0; r <= t; r++) { let t2 = Array(e29 + 1).fill(void 0); n.push(t2); } return this.forValue((e30, t2, r) => { n[e30][t2] = r; }), n; } toJSON() { return this._matrix; } clone() { let e29 = JSON.stringify(this._matrix); return JSON.parse(e29); } getData() { let e29 = JSON.stringify(this._matrix); return JSON.parse(e29); } getArrayData() { let t = 0, n = 0, r = false, i = false, a = new e4(); return this.forEach((e29, o) => { r || (r = true, t = e29), Object.keys(o).forEach((r2) => { let o2 = Number(r2); i ? o2 < n && (n = o2) : (i = true, n = o2); let s = this.getValue(e29, o2); a.setValue(e29 - t, o2 - n, s); }); }), a.getData(); } getStartEndScope() { let e29 = 1 / 0, t = -1 / 0, n = 1 / 0, r = -1 / 0, i = Object.keys(this._matrix); i.length > 0 && (e29 = +i[0], t = +i[i.length - 1]); for (let e30 of i) { let t2 = Object.keys(this._matrix[e30]); t2.length > 0 && (n = Math.min(n, +t2[0]), r = Math.max(r, +t2[t2.length - 1])); } return { startRow: e29, endRow: t, startColumn: n, endColumn: r }; } getDataRange() { let e29 = 0, t = 0, n = 0, r = -1, i = false, a = false; return this.forEach((o, s) => { if (i || (i = true, e29 = o), s == null) return; let c = pa(s) - 1; c > n && (n = c), Object.keys(s).forEach((e30) => { let n2 = Number(e30); a ? n2 < t && (t = n2) : (a = true, t = n2); }), o > r && (r = o); }), { startRow: e29, startColumn: t, endRow: r, endColumn: n }; } getDiscreteRanges() { let e29 = []; return this.forEach((t, n) => { Object.keys(n).forEach((n2) => { let r = Number(n2), i = false; for (let n3 of e29) if (t >= n3.startRow && t <= n3.endRow + 1 && r >= n3.startColumn && r <= n3.endColumn + 1) { n3.endRow = Math.max(t, n3.endRow), n3.endColumn = Math.max(r, n3.endColumn), i = true; break; } i || e29.push({ startRow: t, endRow: t, startColumn: r, endColumn: r }); }); }), e29; } merge(e29) { this.forValue((t, n) => { let r = e29.getValue(t, n); r != null && this.setValue(t, n, r); }); } concatRows(e29) { let t = e29.getMatrix(); for (let e30 in t) { let n = Number(e30); this.setRow(n, t[n]); } } _setOriginValue(e29 = {}) { this._matrix = e29; } }; function Ea(e29) { var t; return !e29 || ((e29 == null || (t = e29.v) == null ? void 0 : t.toString()) || ``).length === 0 && !e29.p; } function Da(e29) { return Ea(e29) && (e29 == null ? void 0 : e29.coverable) !== false; } function ka(e29) { return D.isString(e29) && e29.substring(0, 1) === `=` && e29.length > 1; } function Aa(e29) { return D.isString(e29) && e29.length > 0; } function Fa(e29, t) { let { startRow: n, endRow: r, startColumn: i, endColumn: a, rangeType: o } = e29; if (n < 0 || i < 0 || r < 0 || a < 0 || !(Number.isNaN(n) && Number.isNaN(r)) && o === B.COLUMN || !(Number.isNaN(i) && Number.isNaN(a)) && o === B.ROW || o !== B.ROW && o !== B.COLUMN && (Number.isNaN(i) || Number.isNaN(n) || Number.isNaN(a) || Number.isNaN(r))) return false; if (t) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (r >= e30 || a >= n2) return false; } return true; } function Ia(e29, t) { return { startRow: e29, endRow: e29, startColumn: t, endColumn: t }; } function za(e29, t) { return Object.prototype.toString.call(e29) === Object.prototype.toString.call(t) ? Object.prototype.toString.call(e29) === `[object Object]` || Object.prototype.toString.call(e29) === `[object Array]` ? Object.keys(e29).length === Object.keys(t).length ? Object.keys(e29).every((n) => za(e29[n], t[n])) : false : e29 === t : false; } function Ba(e29, t) { let n = e29.ts || {}, r = t.ts || {}; return e29.sId === t.sId ? za(n, r) : false; } import_dayjs.default.extend(import_customParseFormat.default), import_dayjs.default.extend(import_advancedFormat.default), import_dayjs.default.extend(import_weekday.default), import_dayjs.default.extend(import_localeData.default), import_dayjs.default.extend(import_weekOfYear.default), import_dayjs.default.extend(import_weekYear.default), import_dayjs.default.extend(import_utc.default), import_dayjs.default.extend(import_localizedFormat.default); function Ha(e29, t, n, r) { if (e29 > t) throw Error(`a1 should be less than a2`); if (n > r) throw Error(`b1 should be less than b2`); if (t < n || r < e29) return [e29, t]; if (n <= e29 && r >= t) return []; let i = r - n + 1; return e29 < n && t > r ? [e29, t - i] : n <= e29 && r < t ? [r + 1 - i, t - i] : n > e29 && r >= t ? [e29, n - 1] : [e29, t]; } function Ka(e29, t, n) { return e29.slice(0, t) + n + e29.slice(t); } function qa(e29, t, n) { return t > n ? e29 : e29.slice(0, t) + e29.slice(n); } function Ja(e29) { if (e29 == null || typeof e29 == `boolean`) return false; if (typeof e29 == `number`) return !isNaN(e29); if (typeof e29 == `string`) { let t = e29.trim(); return t === `` ? false : !isNaN(Number(t)); } return false; } function Ya(e29) { let t = 0; for (let n = 0; n < e29.length; n++) t = e29.charCodeAt(n) + (t << 6) + (t << 16) - t; return t >>> 0; } function Za(e29) { if (e29.length === 0) return []; let t = e29.slice().sort((e30, t2) => e30[0] - t2[0]), n = [], [r, i] = t[0]; for (let e30 = 1; e30 < t.length; e30++) { let [a, o] = t[e30]; a <= i + 1 ? i = Math.max(i, o) : (n.push([r, i]), r = a, i = o); } return n.push([r, i]), n; } var $a; var eo; var to; var no; var H = /* @__PURE__ */ Symbol(`newer`); var U = /* @__PURE__ */ Symbol(`older`); $a = Symbol.iterator; var ro = class { constructor(e29) { C(this, `entry`, void 0), this.entry = e29; } [$a]() { return this; } next() { let e29 = this.entry; return e29 ? (this.entry = e29[H], { done: false, value: e29.key }) : { done: true, value: void 0 }; } }; eo = Symbol.iterator; var io = class { constructor(e29) { C(this, `entry`, void 0), this.entry = e29; } [eo]() { return this; } next() { let e29 = this.entry; return e29 ? (this.entry = e29[H], { done: false, value: e29.value }) : { done: true, value: void 0 }; } }; to = Symbol.iterator; var ao = class { constructor(e29) { C(this, `entry`, void 0), this.entry = e29; } [to]() { return this; } next() { let e29 = this.entry; return e29 ? (this.entry = e29[H], { done: false, value: [e29.key, e29.value] }) : { done: true, value: void 0 }; } }; var oo = class { constructor(e29, t) { C(this, `key`, void 0), C(this, `value`, void 0), C(this, H, void 0), C(this, U, void 0), this.key = e29, this.value = t, this[H] = void 0, this[U] = void 0; } toJSON() { return { key: this.key, value: this.value }; } }; no = Symbol.iterator; var so = class { onShift(e29) { if (this._onShiftListeners.indexOf(e29) === -1) return this._onShiftListeners.push(e29), T2(() => tt(this._onShiftListeners, e29)); throw Error(`[LRUMap]: the listener has been registered!`); } constructor(...e29) { if (C(this, `_keymap`, void 0), C(this, `size`, 0), C(this, `limit`, void 0), C(this, `oldest`, void 0), C(this, `newest`, void 0), C(this, `_onShiftListeners`, []), co.hasLength(e29, 1)) { if (co.isNumber(e29[0])) { let t = e29[0]; this._initialize(t, void 0); return; } if (co.isIterable(e29[0])) { let t = e29[0]; this._initialize(0, t); return; } return; } if (co.hasLength(e29, 2)) { let t = e29[0], n = e29[1]; this._initialize(t, n); } } _initialize(e29, t) { this.oldest = void 0, this.newest = void 0, this.size = 0, this.limit = e29, this._keymap = /* @__PURE__ */ new Map(), t && (this.assign(t), e29 < 1 && (this.limit = this.size)); } _markEntryAsUsed(e29) { e29 !== this.newest && (e29[H] && (e29 === this.oldest && (this.oldest = e29[H]), e29[H][U] = e29[U]), e29[U] && (e29[U][H] = e29[H]), e29[H] = void 0, e29[U] = this.newest, this.newest && (this.newest[H] = e29), this.newest = e29); } assign(e29) { let t, n = this.limit || Number.MAX_VALUE; this._keymap.clear(); let r = e29[Symbol.iterator](); for (let e30 = r.next(); !e30.done; e30 = r.next()) { let r2 = new oo(e30.value[0], e30.value[1]); if (this._keymap.set(r2.key, r2), t ? (t[H] = r2, r2[U] = t) : this.oldest = r2, t = r2, n-- === 0) throw Error(`overflow`); } this.newest = t, this.size = this._keymap.size; } set(e29, t) { let n = this._keymap.get(e29); return n ? (n.value = t, this._markEntryAsUsed(n), this) : (this._keymap.set(e29, n = new oo(e29, t)), this.newest ? (this.newest[H] = n, n[U] = this.newest) : this.oldest = n, this.newest = n, ++this.size, this.size > this.limit && this.shift(), this); } shift() { let e29 = this.oldest; if (e29) return this.oldest && this.oldest[H] ? (this.oldest = this.oldest[H], this.oldest[U] = void 0) : (this.oldest = void 0, this.newest = void 0), e29[H] = e29[U] = void 0, this._keymap.delete(e29.key), --this.size, this._onShiftListeners.forEach((t) => t(e29)), [e29.key, e29.value]; } get(e29) { let t = this._keymap.get(e29); if (t) return this._markEntryAsUsed(t), t.value; } has(e29) { return this._keymap.has(e29); } find(e29) { let t = this._keymap.get(e29); return t ? t.value : void 0; } delete(e29) { let t = this._keymap.get(e29); if (t) return this._keymap.delete(t.key), t[H] && t[U] ? (t[U][H] = t[H], t[H][U] = t[U]) : t[H] ? (t[H][U] = void 0, this.oldest = t[H]) : t[U] ? (t[U][H] = void 0, this.newest = t[U]) : this.oldest = this.newest = void 0, this.size--, t.value; } clear() { this.oldest = void 0, this.newest = void 0, this.size = 0, this._keymap.clear(); } keys() { return new ro(this.oldest); } values() { return new io(this.oldest); } entries() { return this[Symbol.iterator](); } [no]() { return new ao(this.oldest); } forEach(e29, t) { typeof t != `object` && (t = this); let n = this.oldest; for (; n; ) e29.call(t, n.value, n.key, this), n = n[H]; } toJSON() { let e29 = Array(this.size), t = 0, n = this.oldest; for (; n; ) e29[t++] = { key: n.key, value: n.value }, n = n[H]; return e29; } toString() { let e29 = ``, t = this.oldest; for (; t; ) e29 += `${String(t.key)}:${t.value}`, t = t[H], t && (e29 += ` < `); return e29; } }; var co = class { static hasLength(e29, t) { return e29.length === t; } static getValueType(e29) { return Object.prototype.toString.apply(e29); } static isObject(e29) { return this.getValueType(e29) === `[object Object]`; } static isIterable(e29) { return e29[Symbol.iterator] != null; } static isNumber(e29) { return this.getValueType(e29) === `[object Number]`; } }; function lo(e29) { let t = 0; for (let n = 0; n < e29.length; n++) { let r = e29.charCodeAt(n); if (r < 65 || r > 90) return -1; t = t * 26 + (r - 64); } return t; } var uo = 1048576; var fo = 16384; var W = { ff: `Arial`, fs: 11, it: A.FALSE, bl: A.FALSE, ul: { s: A.FALSE }, st: { s: A.FALSE }, ol: { s: A.FALSE }, tr: { a: 0, v: A.FALSE }, td: qn.UNSPECIFIED, cl: { rgb: `#000000` }, bg: { rgb: `#fff` }, ht: Yn.UNSPECIFIED, vt: Xn.UNSPECIFIED, tb: Zn.UNSPECIFIED, pd: { t: 0, r: 0, b: 0, l: 0 }, n: null, bd: { b: null, l: null, r: null, t: null } }; var _o = { id: `default_slide`, title: `defaultSlide`, pageSize: { width: 300, height: 300 } }; var yo = { [N.HEADING_1]: { fs: 20, bl: 1 }, [N.HEADING_2]: { fs: 18, bl: 1 }, [N.HEADING_3]: { fs: 16, bl: 1 }, [N.HEADING_4]: { fs: 14, bl: 1 }, [N.HEADING_5]: { fs: 12, bl: 1 }, [N.NORMAL_TEXT]: null, [N.TITLE]: { fs: 26, bl: 1 }, [N.SUBTITLE]: { fs: 15, cl: { rgb: `#999999` } }, [N.NAMED_STYLE_TYPE_UNSPECIFIED]: null }; var bo = { [N.HEADING_1]: { spaceAbove: { v: 20 }, spaceBelow: { v: 10 } }, [N.HEADING_2]: { spaceAbove: { v: 18 }, spaceBelow: { v: 10 } }, [N.HEADING_3]: { spaceAbove: { v: 16 }, spaceBelow: { v: 10 } }, [N.HEADING_4]: { spaceAbove: { v: 14 }, spaceBelow: { v: 8 } }, [N.HEADING_5]: { spaceAbove: { v: 12 }, spaceBelow: { v: 8 } }, [N.NORMAL_TEXT]: { spaceAbove: { v: 0 }, spaceBelow: { v: 0 } }, [N.TITLE]: { spaceAbove: { v: 0 }, spaceBelow: { v: 7 } }, [N.SUBTITLE]: { spaceAbove: { v: 0 }, spaceBelow: { v: 16 } }, [N.NAMED_STYLE_TYPE_UNSPECIFIED]: null }; var Co = (function(e29) { return e29.ARRAY_CONVERTOR = `ARRAY_CONVERTOR`, e29.MATRIX_CONVERTOR = `MATRIX_CONVERTOR`, e29; })({}); var wo = { [P2.A3]: { width: 1123, height: 1587 }, [P2.A4]: { width: 794, height: 1124 }, [P2.A5]: { width: 559, height: 794 }, [P2.B4]: { width: 944, height: 1344 }, [P2.B5]: { width: 665, height: 944 }, [P2.Executive]: { width: 696, height: 1008 }, [P2.Folio]: { width: 816, height: 1248 }, [P2.Legal]: { width: 816, height: 1344 }, [P2.Letter]: { width: 816, height: 1056 }, [P2.Statement]: { width: 528, height: 816 }, [P2.Tabloid]: { width: 1056, height: 1632 } }; function To(e29, t) { let { textRuns: n = [] } = t, r = 0; for (let t2 of n) { let { ts: n2 = {}, st: i, ed: a } = t2; if (n2[e29] == null) return A.FALSE; switch (e29) { case `bl`: case `it`: if (n2[e29] === A.FALSE) return A.FALSE; break; case `ul`: case `st`: if (n2[e29].s === A.FALSE) return A.FALSE; break; default: throw Error(`unknown style key: ${e29} in IStyleBase`); } r += a - i; } return t.dataStream.indexOf(`\r `) === r ? A.TRUE : A.FALSE; } var Eo = class e5 { constructor(e29, t, n) { this._deps = n, C(this, `_range`, void 0), C(this, `_worksheet`, void 0), this._range = t, this._worksheet = e29; } static foreach(e29, t) { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e29; for (let e30 = n; e30 <= i; e30++) for (let n2 = r; n2 <= a; n2++) t(e30, n2); } getRangeData() { return this._range; } getValue() { return this.getValues()[0][0]; } getValues() { let { startRow: e29, endRow: t, startColumn: n, endColumn: r } = this._range, i = []; for (let a = e29; a <= t; a++) { let e30 = []; for (let t2 = n; t2 <= r; t2++) e30.push(this.getMatrix().getValue(a, t2) || null); i.push(e30); } return i; } getMatrix() { let { startRow: e29, endRow: t, startColumn: n, endColumn: r } = this._range, i = this._worksheet.getCellMatrix(), a = new Sa(); for (let o = e29; o <= t; o++) for (let e30 = n; e30 <= r; e30++) a.setValue(o, e30, i.getValue(o, e30) || null); return a; } getMatrixObject() { let { startRow: e29, endRow: t, startColumn: n, endColumn: r } = this._range, i = this._worksheet.getCellMatrix(), a = new Sa(); for (let o = e29; o <= t; o++) for (let t2 = n; t2 <= r; t2++) a.setValue(o - e29, t2 - n, i.getValue(o, t2) || {}); return a; } getA1Notation() { let { startRow: e29, endRow: t, startColumn: n, endColumn: r } = this._range, i, a; return n < r ? (i = D.numToWord(n + 1) + (e29 + 1), a = D.numToWord(r + 1) + (t + 1)) : (i = D.numToWord(r + 1) + (t + 1), a = D.numToWord(n + 1) + (e29 + 1)), i === a ? `${i}` : `${i}:${a}`; } getBackground() { return this.getBackgrounds()[0][0]; } getBackgrounds() { let e29 = this._deps.getStyles(); return this.getValues().map((t) => t.map((t2) => { var n; let r = e29.getStyleByCell(t2); return (r == null || (n = r.bg) == null ? void 0 : n.rgb) || W.bg.rgb; })); } getCell(t, n) { let { startRow: r, startColumn: i } = this._range, a = { startRow: r + t, endRow: r + t, startColumn: i + n, endColumn: i + n }; return new e5(this._worksheet, a, this._deps); } getColumn() { return this._range.startColumn; } getObjectValue(e29 = {}) { return this.getObjectValues(e29)[0][0]; } getObjectValues(e29 = {}) { let { startRow: t, endRow: n, startColumn: r, endColumn: i } = this._range, a = this._worksheet.getCellMatrix().getFragment(t, n, r, i).getData(); if (e29.isIncludeStyle) { let e30 = this._deps.getStyles(); for (let s = 0; s <= n - t; s++) for (let t2 = 0; t2 <= i - r; t2++) { var o; if (a == null || (a == null || (o = a[s]) == null ? void 0 : o[t2]) == null) continue; let n2 = a[s][t2].s; n2 && (a[s][t2].s = e30.get(n2)); } } return a; } getFontColor() { return this.getFontColors()[0][0]; } getFontColors() { let e29 = this._deps.getStyles(); return this.getValues().map((t) => t.map((t2) => { var n; let r = e29.getStyleByCell(t2); return (r == null || (n = r.cl) == null ? void 0 : n.rgb) || W.cl.rgb; })); } getFontFamilies() { return this._getStyles(`ff`); } getFontFamily() { return this.getFontFamilies()[0][0]; } getUnderlines() { return this._getStyles(`ul`); } getUnderline() { var e29, t; let { p: n } = (e29 = this.getValue()) == null ? {} : e29; return n && Array.isArray((t = n.body) == null ? void 0 : t.textRuns) && n.body.textRuns.length > 0 ? To(`ul`, n.body) === A.TRUE ? { s: A.TRUE } : { s: A.FALSE } : this.getUnderlines()[0][0]; } getOverlines() { return this._getStyles(`ol`); } getOverline() { return this.getOverlines()[0][0]; } getStrikeThrough() { var e29, t; let { p: n } = (e29 = this.getValue()) == null ? {} : e29; return n && Array.isArray((t = n.body) == null ? void 0 : t.textRuns) && n.body.textRuns.length > 0 ? To(`st`, n.body) === A.TRUE ? { s: A.TRUE } : { s: A.FALSE } : this.getStrikeThroughs()[0][0]; } getStrikeThroughs() { return this._getStyles(`st`); } getFontSize() { var e29, t; let n = ((e29 = this.getValue()) == null ? void 0 : e29.p) || {}; return n && Array.isArray((t = n.body) == null ? void 0 : t.textRuns) && n.body.textRuns.length > 0 && n.body.textRuns.some((e30) => { var t2; return (e30 == null || (t2 = e30.ts) == null ? void 0 : t2.fs) != null; }) ? Math.max(...n.body.textRuns.map((e30) => { var t2; return (e30 == null || (t2 = e30.ts) == null ? void 0 : t2.fs) || 0; })) : this.getFontSizes()[0][0]; } getFontSizes() { return this._getStyles(`fs`); } getBorder() { return this.getBorders()[0][0]; } getBorders() { return this._getStyles(`bd`); } getFontStyle() { var e29, t; let { p: n } = (e29 = this.getValue()) == null ? {} : e29; return n && Array.isArray((t = n.body) == null ? void 0 : t.textRuns) && n.body.textRuns.length > 0 ? To(`it`, n.body) === A.TRUE ? Qn.ITALIC : Qn.NORMAL : this._getFontStyles()[0][0]; } _getFontStyles() { return this._getStyles(`it`); } getFontWeight() { var e29, t; let { p: n } = (e29 = this.getValue()) == null ? {} : e29; return n && Array.isArray((t = n.body) == null ? void 0 : t.textRuns) && n.body.textRuns.length > 0 ? To(`bl`, n.body) === A.TRUE ? $n.BOLD : $n.NORMAL : this._getFontWeights()[0][0]; } _getFontWeights() { return this._getStyles(`bl`); } getGridId() { return this._worksheet.getSheetId(); } getHeight() { let { _range: e29, _worksheet: t } = this, { startRow: n, endRow: r } = e29, i = 0; for (let e30 = 0; e30 <= r - n; e30++) { let n2 = t.getRowHeight(e30); i += n2; } return i; } getHorizontalAlignment() { return this.getHorizontalAlignments()[0][0]; } getHorizontalAlignments() { return this._getStyles(`ht`); } getLastColumn() { return this._range.endColumn; } getLastRow() { return this._range.endRow; } getNumColumns() { let { startColumn: e29, endColumn: t } = this._range; return t - e29 + 1; } getNumRows() { let { startRow: e29, endRow: t } = this._range; return t - e29 + 1; } getRichTextValue() { return this.getRichTextValues()[0][0]; } getRichTextValues() { return this.getValues().map((e29) => e29.map((e30) => (e30 == null ? void 0 : e30.p) || ``)); } getRowIndex() { return this._range.startRow; } getSheet() { return this._worksheet; } getTextDirection() { return this.getTextDirections()[0][0]; } getTextDirections() { return this._getStyles(`td`); } getTextRotation() { return this.getTextRotations()[0][0]; } getTextRotations() { return this._getStyles(`tr`); } getTextStyle() { return this.getTextStyles()[0][0]; } getTextStyles() { let e29 = this._deps.getStyles(); return this.getValues().map((t) => t.map((t2) => e29.getStyleByCell(t2))); } getVerticalAlignment() { return this.getVerticalAlignments()[0][0]; } getVerticalAlignments() { return this._getStyles(`vt`); } getWidth() { let { _range: e29, _worksheet: t } = this, { startColumn: n, endColumn: r } = e29, i = 0; for (let e30 = 0; e30 <= r - n; e30++) i += t.getColumnWidth(e30); return i; } getWrap() { return this.getWrapStrategy() === Zn.WRAP ? A.TRUE : A.FALSE; } getWrapStrategies() { return this._getStyles(`tb`); } getWrapStrategy() { return this.getWrapStrategies()[0][0]; } forEach(t) { e5.foreach(this._range, t); } _getStyles(e29) { let t = this._deps.getStyles(); return this.getValues().map((n) => n.map((n2) => { let r = t && t.getStyleByCell(n2); return r && r[e29] || W[e29]; })); } }; C(Eo, `transformRange`, (e29, t) => { let n = t.getMaxColumns() - 1, r = t.getMaxRows() - 1; return e29.rangeType === B.ALL ? { startColumn: 0, startRow: 0, endColumn: n, endRow: r } : e29.rangeType === B.COLUMN ? { startRow: 0, endRow: r, startColumn: e29.startColumn, endColumn: e29.endColumn } : e29.rangeType === B.ROW ? { startColumn: 0, endColumn: n, startRow: e29.startRow, endRow: e29.endRow } : { startColumn: e29.startColumn, endColumn: Math.min(e29.endColumn, n), startRow: e29.startRow, endRow: Math.min(e29.endRow, r) }; }); function Do(e29, t, n, r = false) { if (t === 0 && n === 0) return e29; let i = { ...e29 }, a = i.startAbsoluteRefType || V.NONE, o = i.endAbsoluteRefType || V.NONE, s = i.rangeType || B.NORMAL; if (!r && a === V.ALL && o === V.ALL) return i; let c = Oo(i.startRow, n, i.startColumn, t, s), l = Oo(i.endRow, n, i.endColumn, t, s); return r || a === V.NONE && o === V.NONE ? i = { ...i, startRow: c.row, startColumn: c.column, endRow: l.row, endColumn: l.column } : (a === V.NONE ? i = { ...i, startRow: c.row, startColumn: c.column } : a === V.COLUMN ? i = { ...i, startRow: c.row } : a === V.ROW && (i = { ...i, startColumn: c.column }), o === V.NONE ? i = { ...i, endRow: l.row, endColumn: l.column } : o === V.COLUMN ? i = { ...i, endRow: l.row } : o === V.ROW && (i = { ...i, endColumn: l.column }), i); } function Oo(e29, t, n, r, i) { return i === B.NORMAL ? { row: e29 + t, column: n + r } : i === B.ROW ? { row: e29 + t, column: n } : i === B.COLUMN ? { row: e29, column: n + r } : { row: e29, column: n }; } function ko(e29) { let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(); for (let r2 of e29) t.add(r2.startColumn), t.add(r2.endColumn + 1), n.add(r2.startRow), n.add(r2.endRow + 1); let r = Array.from(t).sort((e30, t2) => e30 - t2), i = Array.from(n).sort((e30, t2) => e30 - t2); e29.sort((e30, t2) => e30.startRow - t2.startRow || e30.startColumn - t2.startColumn); let a = []; for (let t2 = 0; t2 < i.length - 1; t2++) for (let n2 = 0; n2 < r.length - 1; n2++) { let o = r[n2], s = r[n2 + 1] - 1, c = i[t2], l = i[t2 + 1] - 1; for (let t3 of e29) { if (t3.startRow > l) break; if (t3.startRow <= c && t3.endRow >= l && t3.startColumn <= o && t3.endColumn >= s) { a.push({ startColumn: o, endColumn: s, startRow: c, endRow: l }); break; } } } return a; } function Ao(e29) { e29.sort((e30, t2) => e30.startRow - t2.startRow || e30.startColumn - t2.startColumn); let t = {}; for (let n2 of e29) t[n2.startRow] || (t[n2.startRow] = []), t[n2.startRow].push(n2); let n = []; for (let e30 in t) { let r = t[+e30]; r.sort((e31, t2) => e31.startColumn - t2.startColumn); let i = r[0]; for (let e31 = 1; e31 < r.length; e31++) { let t2 = r[e31]; t2.startColumn <= i.endColumn + 1 && t2.startRow === i.startRow && t2.endRow === i.endRow ? i.endColumn = Math.max(i.endColumn, t2.endColumn) : (n.push(i), i = t2); } n.push(i); } return n; } function jo(e29) { e29.sort((e30, t2) => e30.startColumn - t2.startColumn || e30.startRow - t2.startRow); let t = {}; for (let n2 of e29) t[n2.startColumn] || (t[n2.startColumn] = []), t[n2.startColumn].push(n2); let n = []; for (let e30 in t) { let r = t[+e30]; r.sort((e31, t2) => e31.startRow - t2.startRow); let i = r[0]; for (let e31 = 1; e31 < r.length; e31++) { let t2 = r[e31]; t2.startRow <= i.endRow + 1 && t2.startColumn === i.startColumn && t2.endColumn === i.endColumn ? i.endRow = Math.max(i.endRow, t2.endRow) : (n.push(i), i = t2); } n.push(i); } return n; } function Mo(e29) { return jo(Ao(ko(e29))); } function No(e29, t) { let n = []; return e29.forEach((e30) => { n.push(...G.subtract(e30, t)); }), G.mergeRanges(n); } function Po(e29, t) { let n = Fo(e29.startRow, e29.endRow, t.startRow, t.endRow), r = Fo(e29.startColumn, e29.endColumn, t.startColumn, t.endColumn); if (!n || !r) return null; let [i, a] = n, [o, s] = r; return { startRow: i, endRow: a, startColumn: o, endColumn: s, rangeType: Io(e29.rangeType, t.rangeType, i, a, o, s) }; } function Fo(e29, t, n, r) { let i = isNaN(e29) ? -1 / 0 : e29, a = isNaN(t) ? 1 / 0 : t, o = isNaN(n) ? -1 / 0 : n, s = isNaN(r) ? 1 / 0 : r, c = Math.max(i, o), l = Math.min(a, s); return c <= l ? [c === -1 / 0 ? NaN : c, l === 1 / 0 ? NaN : l] : null; } function Io(e29, t, n, r, i, a) { let o = e29 === void 0 ? Lo(n, r, i, a) : e29, s = t === void 0 ? Lo(n, r, i, a) : t; return o === B.ALL || s === B.ALL ? o === s ? o : o === B.ALL ? s : o : o === s ? o : (o === B.NORMAL || B.NORMAL, B.NORMAL); } function Lo(e29, t, n, r) { let i = !isNaN(e29) && !isNaN(t), a = !isNaN(n) && !isNaN(r); return i && a ? B.NORMAL : i ? B.ROW : a ? B.COLUMN : B.ALL; } var G = class e6 { static clone(e29) { return e29.rangeType === void 0 ? { startRow: e29.startRow, startColumn: e29.startColumn, endRow: e29.endRow, endColumn: e29.endColumn } : { startRow: e29.startRow, startColumn: e29.startColumn, endRow: e29.endRow, endColumn: e29.endColumn, rangeType: e29.rangeType }; } static equals(e29, t) { return e29 == null || t == null ? false : e29.endRow === t.endRow && e29.endColumn === t.endColumn && e29.startRow === t.startRow && e29.startColumn === t.startColumn && (e29.rangeType === t.rangeType || e29.rangeType === void 0 && t.rangeType === B.NORMAL || t.rangeType === void 0 && e29.rangeType === B.NORMAL); } static simpleRangesIntersect(e29, t) { let { startRow: n, endRow: r, startColumn: i, endColumn: a } = e29, { startRow: o, endRow: s, startColumn: c, endColumn: l } = t; return n <= s && r >= o && i <= l && a >= c; } static intersects(e29, t) { if (e29.rangeType === B.ROW && t.rangeType === B.COLUMN || e29.rangeType === B.COLUMN && t.rangeType === B.ROW) return true; if (e29.rangeType === B.ROW && t.rangeType === B.ROW) return e29.startRow <= t.endRow && e29.endRow >= t.startRow; if (e29.rangeType === B.COLUMN && t.rangeType === B.COLUMN) return e29.startColumn <= t.endColumn && e29.endColumn >= t.startColumn; let n = Number.isNaN(e29.startRow) ? 0 : e29.startRow, r = Number.isNaN(e29.endRow) ? uo - 1 : e29.endRow, i = Number.isNaN(e29.startColumn) ? 0 : e29.startColumn, a = Number.isNaN(e29.endColumn) ? fo - 1 : e29.endColumn, o = Number.isNaN(t.startRow) ? 0 : t.startRow, s = Number.isNaN(t.endRow) ? uo - 1 : t.endRow, c = Number.isNaN(t.startColumn) ? 0 : t.startColumn, l = Number.isNaN(t.endColumn) ? fo - 1 : t.endColumn, u = Math.abs(i + a - c - l), d = Math.abs(i - a) + Math.abs(c - l), f = Math.abs(n + r - o - s), p = Math.abs(n - r) + Math.abs(o - s); return u <= d && f <= p; } static doAnyRangesIntersect(e29, t) { let n = new RBush(); return n.load(e29.map((e30) => ({ minX: e30.startColumn, minY: e30.startRow, maxX: e30.endColumn, maxY: e30.endRow }))), t.some((e30) => n.search({ minX: e30.startColumn, minY: e30.startRow, maxX: e30.endColumn, maxY: e30.endRow }).length > 0); } static getIntersects(e29, t) { let n = e29.startRow, r = e29.endRow, i = e29.startColumn, a = e29.endColumn, o = t.startRow, s = t.endRow, c = t.startColumn, l = t.endColumn, u, d, f, p; if (o <= r) d = o >= n ? o : n; else return null; if (s >= n) p = s >= r ? r : s; else return null; if (c <= a) u = c > i ? c : i; else return null; if (l >= i) f = l >= a ? a : l; else return null; return { startRow: d, endRow: p, startColumn: u, endColumn: f, rangeType: B.NORMAL }; } static contains(e29, t) { return e29.startRow <= t.startRow && e29.endRow >= t.endRow && e29.startColumn <= t.startColumn && e29.endColumn >= t.endColumn; } static realContain(t, n) { return e6.contains(t, n) && (t.startRow < n.startRow || t.endRow > n.endRow || t.startColumn < n.startColumn || t.endColumn > n.endColumn); } static union(...e29) { return e29.reduce((e30, t) => ({ startRow: Math.min(e30.startRow, t.startRow), startColumn: Math.min(e30.startColumn, t.startColumn), endRow: Math.max(e30.endRow, t.endRow), endColumn: Math.max(e30.endColumn, t.endColumn), rangeType: B.NORMAL }), e29[0]); } static realUnion(...t) { let n = t.some((e29) => e29.rangeType === B.COLUMN), r = t.some((e29) => e29.rangeType === B.ROW), i = e6.union(...t); return { startColumn: r ? NaN : i.startColumn, endColumn: r ? NaN : i.endColumn, startRow: n ? NaN : i.startRow, endRow: n ? NaN : i.endRow, rangeType: r ? B.ROW : n ? B.COLUMN : B.NORMAL }; } static subtract(e29, t) { if (t.startRow > e29.endRow || t.endRow < e29.startRow || t.startColumn > e29.endColumn || t.endColumn < e29.startColumn) return [e29]; let n = []; t.startRow >= e29.startRow && n.push({ startRow: e29.startRow, startColumn: e29.startColumn, endRow: t.startRow - 1, endColumn: e29.endColumn }), t.endRow <= e29.endRow && n.push({ startRow: t.endRow + 1, startColumn: e29.startColumn, endRow: e29.endRow, endColumn: e29.endColumn }); let r = Math.max(e29.startRow, t.startRow), i = Math.min(e29.endRow, t.endRow); return t.startColumn >= e29.startColumn && n.push({ startRow: r, startColumn: e29.startColumn, endRow: i, endColumn: t.startColumn - 1 }), t.endColumn <= e29.endColumn && n.push({ startRow: r, startColumn: t.endColumn + 1, endRow: i, endColumn: e29.endColumn }), n.filter((e30) => e30.startRow <= e30.endRow && e30.startColumn <= e30.endColumn); } static mergeRanges(e29) { return Mo(e29); } static splitIntoGrid(e29) { return ko(e29); } static subtractMulti(e29, t) { if (!t.length) return e29; let n = e29; return t.forEach((e30) => { n = No(n, e30); }), n; } static hasIntersectionBetweenTwoRect(e29, t) { return !(e29.left > t.right || e29.right < t.left || e29.top > t.bottom || e29.bottom < t.top); } static getIntersectionBetweenTwoRect(e29, t) { let n = Math.max(e29.left, t.left), r = Math.min(e29.right, t.right), i = Math.max(e29.top, t.top), a = Math.min(e29.bottom, t.bottom); return r <= n || a <= i ? null : { left: n, right: r, top: i, bottom: a, width: r - n, height: a - i }; } static sort(e29) { return e29.sort((e30, t) => e30.startRow - t.startRow || e30.startColumn - t.startColumn); } }; C(G, `getRelativeRange`, (e29, t) => ({ startRow: e29.startRow - t.startRow, endRow: e29.endRow - e29.startRow, startColumn: e29.startColumn - t.startColumn, endColumn: e29.endColumn - e29.startColumn })), C(G, `getPositionRange`, (e29, t, n) => ({ ...n || {}, startRow: n && [V.ROW, V.ALL].includes(n.startAbsoluteRefType || 0) ? n.startRow : e29.startRow + t.startRow, endRow: n && [V.ROW, V.ALL].includes(n.endAbsoluteRefType || 0) ? n.endRow : e29.endRow + e29.startRow + t.startRow, startColumn: n && [V.COLUMN, V.ALL].includes(n.startAbsoluteRefType || 0) ? n.startColumn : e29.startColumn + t.startColumn, endColumn: n && [V.COLUMN, V.ALL].includes(n.endAbsoluteRefType || 0) ? n.endColumn : e29.endColumn + e29.startColumn + t.startColumn })), C(G, `moveHorizontal`, (e29, t = 0, n = 0) => ({ ...e29, startColumn: e29.startColumn + t, endColumn: e29.endColumn + t + n })), C(G, `moveVertical`, (e29, t = 0, n = 0) => ({ ...e29, startRow: e29.startRow + t, endRow: e29.endRow + t + n })), C(G, `moveOffset`, (e29, t, n) => { let r = { ...e29 }; switch (e29.startAbsoluteRefType) { case V.ROW: r.startColumn += t; break; case V.COLUMN: r.startRow += n; break; case V.ALL: break; case V.NONE: default: r.startRow += n, r.startColumn += t; break; } switch (e29.endAbsoluteRefType) { case V.ROW: r.endColumn += t; break; case V.COLUMN: r.endRow += n; break; case V.ALL: break; case V.NONE: default: r.endRow += n, r.endColumn += t; break; } return r; }); function Ro(e29, t) { if (e29.length === 0 || e29[0].length === 0) return null; let n = Array(e29[0].length).fill(0), r = 0, i = null; for (let a = 0; a < e29.length; a++) { for (let r2 = 0; r2 < e29[0].length; r2++) n[r2] = t(e29[a][r2]) ? n[r2] + 1 : 0; let o = zo(n); o.area > r && (r = o.area, i = { startColumn: o.start, startRow: a - o.height + 1, endColumn: o.end, endRow: a }); } return i; } function zo(e29) { let t = [], n = 0, r = { area: 0, height: 0, start: 0, end: 0 }, i = 0; for (; i < e29.length; ) if (t.length === 0 || e29[i] >= e29[t[t.length - 1]]) t.push(i++); else { let a = e29[t.pop()], o = t.length === 0 ? i : i - t[t.length - 1] - 1; a * o > n && (n = a * o, r = { area: n, height: a, start: t.length === 0 ? 0 : t[t.length - 1] + 1, end: i - 1 }); } for (; t.length > 0; ) { let a = e29[t.pop()], o = t.length === 0 ? i : i - t[t.length - 1] - 1; a * o > n && (n = a * o, r = { area: n, height: a, start: t.length === 0 ? 0 : t[t.length - 1] + 1, end: i - 1 }); } return r; } function Bo(e29, t) { Eo.foreach(t, (t2, n) => { e29[t2][n] = void 0; }); } function Vo(e29, t) { let n = e29.toFullArray(), r = []; for (; ; ) { let e30 = Ro(n, t); if (!e30) break; r.push(e30), Bo(n, e30); } return r; } function Uo(e29, t, n, r) { return { forEach(i) { for (let a = e29; a <= t; a++) for (let e30 = n; e30 <= r; e30++) i(a, e30); } }; } function Jo(e29, t) { return e29.zIndex > t.zIndex ? 1 : e29.zIndex === t.zIndex ? 0 : -1; } function Xo(e29 = `index`, t = 1) { return (n, r) => n[e29] > r[e29] ? t : n[e29] === r[e29] ? 0 : -t; } function Zo(e29, t = false) { let n = []; for (let r of e29) { let { st: e30, ed: i, ts: a } = r; if (r.sId === void 0 && delete r.sId, e30 === i || !t && D.isEmptyObject(a) && r.sId == null) continue; if (n.length === 0) { n.push(r); continue; } let o = n.pop(); Ba(r, o) && D.hasIntersectionBetweenTwoRanges(o.st, o.ed, r.st, r.ed) ? n.push({ ...r, st: o.st, ed: i }) : n.push(o, r); } return n; } function Qo(e29, t, n, r) { var i; let { textRuns: a } = e29; if (a == null) return; let o = [], s = a.length, c = false, l = (i = t.textRuns) == null ? [] : i; if (l.length) for (let e30 of l) e30.st += r, e30.ed += r; for (let e30 = 0; e30 < s; e30++) { let t2 = a[e30], { st: i2, ed: s2 } = t2; if (s2 <= r) o.push(t2); else if (r > i2 && r < s2) { c = true; let e31 = { ...t2, ed: r }; o.push(e31), l.length && o.push(...l); let i3 = { ...t2, st: r + n, ed: s2 + n }; o.push(i3); } else t2.st += n, t2.ed += n, c || (c = true, o.push(...l)), o.push(t2); } c || (c = true, o.push(...l)), e29.textRuns = Zo(o); } function $o(e29, t, n, r) { let { paragraphs: i } = e29; if (i == null) return; let { paragraphs: a } = t, o = [], s = -1; for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2 } = t3; a2 >= r && (t3.startIndex += n), s === -1 && a2 >= r && (s = e30), o.push(t3.startIndex); } let c = -1; if (a) { for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; t3.startIndex += r; let n2 = t3.startIndex; c = o.indexOf(n2); } c !== -1 && i.splice(c, 1), i.push(...a), i.sort(Xo(`startIndex`)); } } function es(e29, t, n, r) { let { sectionBreaks: i } = e29; if (i == null) return; for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2 } = t3; a2 >= r && (t3.startIndex += n); } let a = t.sectionBreaks; if (a) { for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; t3.startIndex += r; } i.push(...a), i.sort(Xo(`startIndex`)); } } function ts(e29, t, n, r) { let { customBlocks: i = [] } = e29; for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2 } = t3; a2 >= r && (t3.startIndex += n); } let a = t.customBlocks; if (a) { for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; t3.startIndex += r; } i.push(...a), i.sort(Xo(`startIndex`)); } i.length && !e29.customBlocks && (e29.customBlocks = i); } function ns(e29, t, n, r) { let { tables: i } = e29; if (i == null) return; for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2, endIndex: o } = t3; a2 > r ? (t3.startIndex += n, t3.endIndex += n) : o > r && (t3.endIndex += n); } let a = t.tables; if (a) { for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; t3.startIndex += r, t3.endIndex += r; } i.push(...a), i.sort(Xo(`startIndex`)); } } var rs = (e29) => e29.split(`$`)[0]; function is(e29) { if (e29.length <= 1) return e29; e29.sort((e30, t2) => e30.startIndex - t2.startIndex); let t = [], n = { ...e29[0] }; n.rangeId = rs(n.rangeId); for (let r2 = 1; r2 < e29.length; r2++) { let i = e29[r2]; i.rangeId = rs(i.rangeId), i.rangeId === n.rangeId && Ct(n.properties, i.properties) && n.endIndex + 1 >= i.startIndex ? n.endIndex = i.endIndex : (t.push(n), n = { ...i }); } t.push(n); let r = /* @__PURE__ */ Object.create(null); for (let e30 = 0, n2 = t.length; e30 < n2; e30++) { let n3 = t[e30], i = n3.rangeId; r[i] ? (n3.rangeId = `${i}$${r[i]}`, r[i] = r[i] + 1) : r[i] = 1; } return t; } function as(e29, t) { let n = e29.findIndex((e30) => e30.startIndex < t && e30.endIndex >= t), r = e29[n]; r && e29.splice(n, 1, { rangeId: r.rangeId, rangeType: r.rangeType, startIndex: r.startIndex, endIndex: t - 1, properties: { ...r.properties } }, { rangeId: r.rangeId, rangeType: r.rangeType, startIndex: t, endIndex: r.endIndex, properties: { ...r.properties } }); } function os(e29) { if (e29.length <= 1) return e29; e29.sort((e30, t2) => e30.startIndex - t2.startIndex); let t = [], n = { ...e29[0] }; for (let r = 1; r < e29.length; r++) { let i = e29[r]; i.id === n.id && n.endIndex + 1 >= i.startIndex ? n.endIndex = i.endIndex : (t.push(n), n = { ...i }); } return t.push(n), t; } function ss(e29, t) { e29.filter((e30) => e30.startIndex < t && e30.endIndex >= t).forEach((n) => { let r = e29.indexOf(n); e29.splice(r, 1, { id: n.id, type: n.type, startIndex: n.startIndex, endIndex: t - 1 }, { id: n.id, type: n.type, startIndex: t, endIndex: n.endIndex }); }); } function cs(e29, t, n, r) { e29.customRanges || (e29.customRanges = []); let { customRanges: i } = e29; as(i, r); for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2 } = t3; a2 >= r && (t3.startIndex += n, t3.endIndex += n); } let a = []; if (t.customRanges) { for (let e30 = 0, n2 = t.customRanges.length; e30 < n2; e30++) { let n3 = t.customRanges[e30]; n3.startIndex += r, n3.endIndex += r, a.push(n3); } i.push(...a); } e29.customRanges = is(i); } function ls(e29, t, n, r) { e29.customDecorations || (e29.customDecorations = []); let { customDecorations: i } = e29; ss(i, r); for (let e30 = 0, t2 = i.length; e30 < t2; e30++) { let t3 = i[e30], { startIndex: a2 } = t3; a2 >= r && (t3.startIndex += n, t3.endIndex += n); } let a = []; if (t.customDecorations) { for (let e30 = 0, n2 = t.customDecorations.length; e30 < n2; e30++) { let n3 = t.customDecorations[e30]; n3.startIndex += r, n3.endIndex += r, a.push(n3); } i.push(...a); } e29.customDecorations = os(i); } function us(e29, t, n) { let { textRuns: r } = e29, i = n, a = n + t, o = []; if (r) { let n2 = []; for (let e30 = 0, s = r.length; e30 < s; e30++) { let s2 = r[e30], { st: c, ed: l } = s2; if (i <= c && a >= l) { o.push({ ...s2, st: c - i, ed: l - i }); continue; } else c <= i && l >= a ? (o.push({ ...s2, st: i - i, ed: a - i }), s2.ed -= t) : i >= c && i < l ? (o.push({ ...s2, st: i - i, ed: l - i }), s2.ed = i) : a > c && a <= l ? (o.push({ ...s2, st: c - i, ed: a - i }), s2.st = a - t, s2.ed -= t) : c >= a && (s2.st -= t, s2.ed -= t); n2.push(s2); } e29.textRuns = n2; } return o.length === 0 && o.push({ st: 0, ed: t, ts: {} }), o; } function ds(e29, t, n) { let { paragraphs: r } = e29, i = n, a = n + t, o = [], s = null, c = false; if (r) { let l = []; for (let e30 = 0, u = r.length; e30 < u; e30++) { let u2 = r[e30], { startIndex: d } = u2; if (d >= i && d < a) { o.push({ ...u2, startIndex: d - n }), c = true; continue; } else d >= a && (u2.startIndex -= t); l.push(u2), s == null && c && (s = u2); } e29.paragraphs = l; } return o; } function fs(e29, t, n) { let { sectionBreaks: r } = e29, i = n, a = n + t - 1, o = []; if (r) { let s = []; for (let e30 = 0, c = r.length; e30 < c; e30++) { let c2 = r[e30], { startIndex: l } = c2; if (l >= i && l <= a) { o.push({ ...c2, startIndex: l - n }); continue; } else l > a && (c2.startIndex -= t); s.push(c2); } e29.sectionBreaks = s; } return o; } function ps(e29, t, n) { let { customBlocks: r = [] } = e29, i = n, a = n + t - 1, o = []; if (r) { let s = []; for (let e30 = 0, c = r.length; e30 < c; e30++) { let c2 = r[e30], { startIndex: l } = c2; if (l >= i && l <= a) { o.push({ ...c2, startIndex: l - n }); continue; } else l > a && (c2.startIndex -= t); s.push(c2); } e29.customBlocks = s; } return r.length && !e29.customBlocks && (e29.customBlocks = r), o; } function ms(e29, t, n) { let { tables: r } = e29, i = n, a = n + t - 1, o = []; if (r) { let s = []; for (let e30 = 0, c = r.length; e30 < c; e30++) { let c2 = r[e30], { startIndex: l, endIndex: u } = c2; if (i <= l && a >= u) { o.push({ ...c2, startIndex: l - n, endIndex: u - n }); continue; } else if (l <= i && u >= a) { let e31 = Ha(l, u, i, a); if (e31.length === 0 || (c2.startIndex = e31[0], c2.endIndex = e31[1], c2.startIndex === c2.endIndex)) continue; } else a < l && (c2.startIndex -= t, c2.endIndex -= t); s.push(c2); } e29.tables = s; } return o; } function hs(e29, t, n) { let { customRanges: r } = e29, i = n, a = n + t - 1, o = []; if (r) { let n2 = []; for (let e30 = 0, s = r.length; e30 < s; e30++) { let s2 = r[e30], { startIndex: c, endIndex: l } = s2; if (c >= i && l <= a) { o.push(s2); continue; } else if (Math.max(i, c) <= Math.min(a, l)) { let e31 = Ha(c, l, i, a); if (e31.length === 0) continue; s2.startIndex = e31[0], s2.endIndex = e31[1]; } else a < c && (s2.startIndex -= t, s2.endIndex -= t); n2.push(s2); } e29.customRanges = is(n2); } return o; } function gs(e29, t, n, r = true) { let { customDecorations: i } = e29, a = n, o = n + t - 1, s = []; if (i) { let n2 = []; for (let e30 = 0, c = i.length; e30 < c; e30++) { let c2 = i[e30], { startIndex: l, endIndex: u } = c2; if (l >= a && u <= o) { s.push(c2); continue; } else if (Math.max(a, l) <= Math.min(o, u)) { let e31 = Ha(l, u, a, o); if (e31.length === 0) continue; c2.startIndex = e31[0], c2.endIndex = e31[1]; } else o < l && r && (c2.startIndex -= t, c2.endIndex -= t); n2.push(c2); } e29.customDecorations = n2; } return s; } var K = (function(e29) { return e29.ORDER_LIST_QUICK_1 = `1.`, e29.ORDER_LIST_QUICK_2 = `a)`, e29.ORDER_LIST_QUICK_3 = `a.`, e29.ORDER_LIST_QUICK_4 = `i.`, e29.ORDER_LIST_QUICK_5 = `A.`, e29.ORDER_LIST_QUICK_6 = `I.`, e29.ORDER_LIST_QUICK_7 = `01.`, e29.BULLET_LIST = `*`, e29; })({}); var q = (function(e29) { return e29.BULLET_LIST = `BULLET_LIST`, e29.BULLET_LIST_1 = `BULLET_LIST_1`, e29.BULLET_LIST_2 = `BULLET_LIST_2`, e29.BULLET_LIST_3 = `BULLET_LIST_3`, e29.BULLET_LIST_4 = `BULLET_LIST_4`, e29.BULLET_LIST_5 = `BULLET_LIST_5`, e29.ORDER_LIST = `ORDER_LIST`, e29.ORDER_LIST_1 = `ORDER_LIST_1`, e29.ORDER_LIST_2 = `ORDER_LIST_2`, e29.ORDER_LIST_3 = `ORDER_LIST_3`, e29.ORDER_LIST_4 = `ORDER_LIST_4`, e29.ORDER_LIST_5 = `ORDER_LIST_5`, e29.ORDER_LIST_QUICK_2 = `ORDER_LIST_QUICK_2`, e29.ORDER_LIST_QUICK_3 = `ORDER_LIST_QUICK_3`, e29.ORDER_LIST_QUICK_4 = `ORDER_LIST_QUICK_4`, e29.ORDER_LIST_QUICK_5 = `ORDER_LIST_QUICK_5`, e29.ORDER_LIST_QUICK_6 = `ORDER_LIST_QUICK_6`, e29.CHECK_LIST = `CHECK_LIST`, e29.CHECK_LIST_CHECKED = `CHECK_LIST_CHECKED`, e29; })({}); var _s = { "a)": { glyphFormat: `%1)`, glyphType: M.DECIMAL }, "1.": { glyphFormat: `%1.`, glyphType: M.DECIMAL }, "a.": { glyphFormat: `%1.`, glyphType: M.LOWER_LETTER }, "A.": { glyphFormat: `%1.`, glyphType: M.UPPER_LETTER }, "i.": { glyphFormat: `%1.`, glyphType: M.LOWER_ROMAN }, "I.": { glyphFormat: `%1.`, glyphType: M.UPPER_LETTER } }; var vs = (e29) => [...e29, ...e29, ...e29].map((e30, t) => ({ glyphFormat: ` %${t + 1}`, glyphSymbol: e30, bulletAlignment: ar.START, textStyle: { fs: 12 }, startNumber: 0, paragraphProperties: { hanging: { v: 21 }, indentStart: { v: 21 * t } } })); var ys = (e29) => e29.map((e30, t) => ({ ...e30, bulletAlignment: ar.START, textStyle: { fs: 12 }, startNumber: 0, paragraphProperties: { hanging: { v: 21 }, indentStart: { v: 21 * t } } })); var bs = (e29, t) => Array(9).fill(0).map((n, r) => ({ glyphFormat: ` %${r + 1}`, glyphSymbol: e29, bulletAlignment: ar.START, textStyle: { fs: 16 }, startNumber: 0, paragraphProperties: { hanging: { v: 21 }, indentStart: { v: 21 * r }, textStyle: t } })); var xs = { [q.BULLET_LIST]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u25CF`, `\u25CB`, `\u25A0`]) }, [q.BULLET_LIST_1]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u2756`, `\u27A2`, `\u25A0`]) }, [q.BULLET_LIST_2]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u2714`, `\u25CF`, `\u25C6`]) }, [q.BULLET_LIST_3]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u25A0`, `\u25C6`, `\u25CB`]) }, [q.BULLET_LIST_4]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u2727`, `\u25CB`, `\u25A0`]) }, [q.BULLET_LIST_5]: { listType: q.BULLET_LIST, nestingLevel: vs([`\u27A2`, `\u25CB`, `\u25C6`]) }, [q.ORDER_LIST]: { listType: q.ORDER_LIST, nestingLevel: ys([{ glyphFormat: `%1.`, glyphType: M.DECIMAL }, { glyphFormat: `%2.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%3.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%4.`, glyphType: M.DECIMAL }, { glyphFormat: `%5.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%6.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%7.`, glyphType: M.DECIMAL }, { glyphFormat: `%8.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%9.`, glyphType: M.LOWER_ROMAN }]) }, [q.ORDER_LIST_1]: { listType: q.ORDER_LIST, nestingLevel: ys([{ glyphFormat: `%1)`, glyphType: M.DECIMAL }, { glyphFormat: `%2)`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%3)`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%4)`, glyphType: M.DECIMAL }, { glyphFormat: `%5)`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%6)`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%7)`, glyphType: M.DECIMAL }, { glyphFormat: `%8)`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%9)`, glyphType: M.LOWER_ROMAN }]) }, [q.ORDER_LIST_2]: { listType: q.ORDER_LIST, nestingLevel: ys([`%1.`, `%1.%2.`, `%1.%2.%3.`, `%1.%2.%3.%4.`, `%1.%2.%3.%4.%5.`, `%1.%2.%3.%4.%5.%6.`, `%1.%2.%3.%4.%5.%6.%7.`].map((e29) => ({ glyphFormat: e29, glyphType: M.DECIMAL }))) }, [q.ORDER_LIST_3]: { listType: q.ORDER_LIST, nestingLevel: ys([{ glyphFormat: `%1.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%2.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%3.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%4.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%5.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%6.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%7.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%8.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%9.`, glyphType: M.LOWER_ROMAN }]) }, [q.ORDER_LIST_4]: { listType: q.ORDER_LIST, nestingLevel: ys([{ glyphFormat: `%1.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%2.`, glyphType: M.DECIMAL }, { glyphFormat: `%3.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%4.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%5.`, glyphType: M.DECIMAL }, { glyphFormat: `%6.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%7.`, glyphType: M.UPPER_LETTER }, { glyphFormat: `%8.`, glyphType: M.DECIMAL }, { glyphFormat: `%9.`, glyphType: M.LOWER_ROMAN }]) }, [q.ORDER_LIST_5]: { listType: q.ORDER_LIST, nestingLevel: ys([{ glyphFormat: `%1.`, glyphType: M.DECIMAL_ZERO }, { glyphFormat: `%2.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%3.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%4.`, glyphType: M.DECIMAL_ZERO }, { glyphFormat: `%5.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%6.`, glyphType: M.LOWER_ROMAN }, { glyphFormat: `%7.`, glyphType: M.DECIMAL_ZERO }, { glyphFormat: `%8.`, glyphType: M.LOWER_LETTER }, { glyphFormat: `%9.`, glyphType: M.LOWER_ROMAN }]) }, [q.CHECK_LIST]: { listType: q.CHECK_LIST, nestingLevel: bs(`\u2610`) }, [q.CHECK_LIST_CHECKED]: { listType: q.CHECK_LIST_CHECKED, nestingLevel: bs(`\u2611`, { st: { s: A.TRUE } }) } }; var Ss = (e29) => { let { glyphFormat: t, glyphType: n } = e29, r = D.deepClone(xs[q.ORDER_LIST]); return r.nestingLevel[0].glyphFormat = t, r.nestingLevel[0].glyphType = n, r; }; var Cs = { [q.ORDER_LIST_QUICK_2]: Ss(_s[K.ORDER_LIST_QUICK_2]), [q.ORDER_LIST_QUICK_3]: Ss(_s[K.ORDER_LIST_QUICK_3]), [q.ORDER_LIST_QUICK_4]: Ss(_s[K.ORDER_LIST_QUICK_4]), [q.ORDER_LIST_QUICK_6]: Ss(_s[K.ORDER_LIST_QUICK_6]) }; Object.assign(xs, Cs); var ws = { [K.ORDER_LIST_QUICK_1]: q.ORDER_LIST, [K.ORDER_LIST_QUICK_2]: q.ORDER_LIST_QUICK_2, [K.ORDER_LIST_QUICK_3]: q.ORDER_LIST_QUICK_3, [K.ORDER_LIST_QUICK_4]: q.ORDER_LIST_QUICK_4, [K.ORDER_LIST_QUICK_5]: q.ORDER_LIST_3, [K.ORDER_LIST_QUICK_6]: q.ORDER_LIST_QUICK_6, [K.ORDER_LIST_QUICK_7]: q.ORDER_LIST_5, [K.BULLET_LIST]: q.BULLET_LIST }; function Ts(e29, t, n, r, i) { return { dataStream: ``, textRuns: Es(e29, t, n, r, i), paragraphs: Os(e29, t, n, r, i), sectionBreaks: ks(e29, t, n, r, i), customBlocks: As(e29, t, n, r, i), tables: js(e29, t, n, r, i), customRanges: Ms(e29, t, n, r, i), customDecorations: Ns(e29, t, n, r, i) }; } function Es(e29, t, n, r, i) { let { textRuns: a } = e29, { textRuns: o } = t; if (a == null || o == null) return; let s = us(e29, n, r); return i !== F.REPLACE && (t.textRuns = Ds(o, s, i)), Qo(e29, t, n, r), s; } function Ds(e29, t, n) { if (t.length === 0) return e29; e29 = D.deepClone(e29), t = D.deepClone(t); let r = [], i = e29.length, a = t.length, o = 0, s = 0, c = null; function l() { return c ? (r.push(c), c = null, true) : false; } for (; o < i && s < a; ) { let { st: i2, ed: a2, ts: u2 } = e29[o], { st: d2, ed: f2, ts: p, sId: m } = t[s], h; if (h = n === F.COVER ? { ...p, ...u2 } : { ...u2 }, a2 < d2) l() || r.push(e29[o]), o++; else if (f2 < i2) l() || r.push(t[s]), s++; else { let n2 = { st: Math.min(i2, d2), ed: Math.max(i2, d2), ts: i2 < d2 ? { ...u2 } : { ...p }, sId: i2 < d2 ? void 0 : m }; n2.ed > n2.st && r.push(n2), r.push({ st: Math.max(i2, d2), ed: Math.min(a2, f2), ts: h, sId: m }), a2 < f2 ? (o++, t[s].st = a2, t[s].st === t[s].ed && s++) : (s++, e29[o].st = f2, e29[o].st === e29[o].ed && o++); let l2 = { st: Math.min(a2, f2), ed: Math.max(a2, f2), ts: a2 < f2 ? { ...p } : { ...u2 }, sId: a2 < f2 ? m : void 0 }; c = l2.ed > l2.st ? l2 : null; } } l(); let u = r[r.length - 1], d = e29[i - 1], f = t[a - 1]; return u && u.ed !== Math.max(d.ed, f.ed) && (d.ed > f.ed ? r.push(d) : r.push(f)), Zo(r); } function Os(e29, t, n, r, i) { let { paragraphs: a } = e29, { paragraphs: o } = t; if (a == null || o == null) return; let s = ds(e29, n, r); if (i !== F.REPLACE) { let e30 = []; for (let t2 of o) { let { startIndex: n2, paragraphStyle: r2, bullet: a2 } = t2, o2 = []; for (let e31 of s) { let { startIndex: t3, paragraphStyle: s2, bullet: c } = e31, l, u; if (i === F.COVER ? (l = { ...s2, ...r2 }, u = { listId: ``, listType: q.BULLET_LIST, nestingLevel: 0, textStyle: {}, ...c, ...a2 }) : (l = { ...r2, ...s2 }, u = { listId: ``, listType: q.BULLET_LIST, nestingLevel: 0, textStyle: {}, ...a2, ...c }), n2 === t3) { o2.push({ startIndex: n2, paragraphStyle: l, bullet: u }); break; } } e30.push(...o2), o2 = []; } t.paragraphs = e30; } return $o(e29, t, n, r), s; } function ks(e29, t, n, r, i) { let { sectionBreaks: a } = e29, { sectionBreaks: o } = t; if (a == null || o == null) return; let s = fs(e29, n, r); if (i !== F.REPLACE) { let e30 = []; for (let t2 of o) { let { startIndex: n2 } = t2, r2 = []; for (let e31 of s) { let { startIndex: a2 } = e31; if (n2 === a2) { i === F.COVER ? r2.push({ ...e31, ...t2 }) : r2.push({ ...t2, ...e31 }); break; } } e30.push(...r2), r2 = []; } t.sectionBreaks = e30; } return es(e29, t, n, r), s; } function As(e29, t, n, r, i) { let { customBlocks: a = [] } = e29, { customBlocks: o } = t; if (a == null || o == null) return; let s = ps(e29, n, r); if (i !== F.REPLACE) { let e30 = []; for (let t2 of o) { let { startIndex: n2 } = t2, r2 = []; for (let e31 of s) { let { startIndex: a2 } = e31; if (n2 === a2) { i === F.COVER ? r2.push({ ...e31, ...t2 }) : r2.push({ ...t2, ...e31 }); break; } } e30.push(...r2), r2 = []; } t.customBlocks = e30; } return ts(e29, t, n, r), a.length && !e29.customBlocks && (e29.customBlocks = a), s; } function js(e29, t, n, r, i) { let { tables: a } = e29, { tables: o } = t; if (a == null || o == null) return; let s = ms(e29, n, r); if (i !== F.REPLACE) { let e30 = []; for (let t2 of o) { let { startIndex: n2, endIndex: r2 } = t2, a2 = []; for (let e31 of s) { let { startIndex: o2, endIndex: s2 } = e31; if (o2 >= n2 && s2 <= r2) { i === F.COVER ? a2.push({ ...e31, ...t2 }) : a2.push({ ...t2, ...e31 }); break; } } e30.push(...a2), a2 = []; } t.tables = e30; } return ns(e29, t, n, r), s; } function Ms(e29, t, n, r, i) { e29.customRanges || (e29.customRanges = []), as(e29.customRanges, r), as(e29.customRanges, r + n); let a = r, o = r + n - 1, { customRanges: s } = t, c = [], l = /* @__PURE__ */ new Map(); return e29.customRanges.forEach((e30) => { let { startIndex: t2, endIndex: n2 } = e30; t2 >= a && n2 <= o ? l.set(e30.rangeId, e30) : c.push(e30); }), s ? (s.forEach((e30) => { let { startIndex: t2, endIndex: n2 } = e30; c.push({ ...e30, startIndex: t2 + r, endIndex: n2 + r }); }), e29.customRanges = is(c), []) : []; } function Ns(e29, t, n, r, i) { e29.customDecorations || (e29.customDecorations = []), ss(e29.customDecorations, r), ss(e29.customDecorations, r + n); let a = [], { customDecorations: o } = e29, { customDecorations: s = [] } = t; if (i === F.REPLACE) { for (let e30 = 0; e30 < o.length; e30++) { let t2 = o[e30], { startIndex: i2, endIndex: s2 } = t2; i2 >= r && s2 <= r + n - 1 && a.push(t2); } s.forEach((e30) => { let { startIndex: t2, endIndex: n2 } = e30; o.push({ ...e30, startIndex: t2 + r, endIndex: n2 + r }); }); } else for (let e30 of s) { let { id: t2 } = e30; if (e30.type === sr.DELETED) { let e31 = o.filter((e32) => e32.id === t2); e31.length && a.push(...e31); } else o.push({ ...e30, startIndex: e30.startIndex + r, endIndex: e30.endIndex + r }); } for (let e30 of a) { let { id: t2 } = e30, n2 = o.findIndex((e31) => e31.id === t2); n2 !== -1 && o.splice(n2, 1); } return e29.customDecorations = os(o), a; } var Ps = (function(e29) { return e29[e29.copy = 0] = `copy`, e29[e29.cut = 1] = `cut`, e29; })({}); function Fs(e29, t, n, r = true) { let { textRuns: i } = e29; if (i) { let e30 = []; for (let r2 of i) { let i2 = D.deepClone(r2), { st: a, ed: o } = i2; D.hasIntersectionBetweenTwoRanges(a, o, t, n) && (t >= a && t <= o ? e30.push({ ...i2, st: t, ed: Math.min(n, o) }) : n >= a && n <= o ? e30.push({ ...i2, st: Math.max(t, a), ed: n }) : e30.push(i2)); } return Zo(e30.map((e31) => { let { st: n2, ed: r2 } = e31; return { ...e31, st: n2 - t, ed: r2 - t }; })); } else if (r) return [{ st: 0, ed: n - t, ts: {} }]; } function Is(e29, t, n) { let { tables: r = [] } = e29, i = []; for (let e30 of r) { let r2 = D.deepClone(e30), { startIndex: a, endIndex: o } = r2; a >= t && o <= n && i.push({ ...r2, startIndex: a - t, endIndex: o - t }); } return i; } function Ls(e29, t, n) { let { paragraphs: r = [] } = e29, i = []; for (let e30 of r) { let { startIndex: r2 } = e30; if (r2 >= t && r2 < n) { let t2 = D.deepClone(e30); i.push(t2); } } if (i.length) return i.map((e30) => ({ ...e30, startIndex: e30.startIndex - t })); } function zs(e29, t, n) { let { customBlocks: r = [] } = e29, i = []; for (let e30 of r) { let { startIndex: r2 } = e30; r2 >= t && r2 < n && i.push(D.deepClone(e30)); } if (i.length) return i.map((e30) => ({ ...e30, startIndex: e30.startIndex - t })); } function Bs(e29, t, n, r = true, i = Ps.cut) { let { dataStream: a } = e29, o = { dataStream: a.slice(t, n) }; o.textRuns = Fs(e29, t, n, r); let s = Is(e29, t, n); if (s.length && (o.tables = s), o.paragraphs = Ls(e29, t, n), i === Ps.cut) { let i2 = Us(e29, t, n); i2 ? o.customDecorations = i2 : r && (o.customDecorations = []); } let { customRanges: c } = Hs(e29, t, n); return c ? o.customRanges = c : r && (o.customRanges = []), o.customBlocks = zs(e29, t, n), o; } function Hs(e29, t, n) { if (e29.customRanges == null) return {}; let { customRanges: r } = e29; return { customRanges: r.filter((e30) => Math.max(e30.startIndex, t) <= Math.min(e30.endIndex, n - 1)).map((e30) => ({ ...e30, startIndex: Math.max(e30.startIndex, t), endIndex: Math.min(e30.endIndex, n - 1) })).map((e30) => ({ ...e30, startIndex: e30.startIndex - t, endIndex: e30.endIndex - t })), leftOffset: 0, rightOffset: 0 }; } function Us(e29, t, n) { if (e29.customDecorations == null) return; let { customDecorations: r = [] } = e29, i = []; return r.forEach((e30) => { if (Math.max(e30.startIndex, t) <= Math.min(e30.endIndex, n - 1)) { let r2 = D.deepClone(e30); i.push({ ...r2, startIndex: Math.max(r2.startIndex - t, 0), endIndex: Math.min(r2.endIndex, n - 1) - t }); } }), i; } function Ws(e29, t, n) { return e29 == null || t == null ? e29 == null ? t : e29 : Ds(e29, t, n); } function Gs(e29, t, n) { if (e29 == null || t == null) return e29 == null ? t : e29; if (t.length === 0 || e29.length === 0) return e29; if (t.length > 1 || e29.length > 1) throw Error(`Cannot cover multiple customRanges`); return n === F.REPLACE ? [{ ...e29[0] }] : [{ ...t[0], ...e29[0] }]; } function Ks(e29, t, n) { return t.length === 0 || e29.length === 0 || n === F.REPLACE ? e29 : [...e29, ...t.filter((t2) => !e29.some((e30) => t2.id === e30.id))]; } function qs(e29, t, n = F.COVER) { if (t.dataStream !== ``) throw Error(`Cannot compose other body with non-empty dataStream`); let r = { dataStream: e29.dataStream }, { textRuns: i, paragraphs: a = [], customRanges: o, customDecorations: s = [] } = e29, { textRuns: c, paragraphs: l = [], customRanges: u, customDecorations: d = [] } = t; r.textRuns = Ws(c, i, n), r.customRanges = Gs(u, o, n); let f = Ks(d, s, n); f.length && (r.customDecorations = f); let p = [], m = 0, h = 0; for (; m < a.length && h < l.length; ) { let e30 = a[m], t2 = l[h], { startIndex: n2 } = e30, { startIndex: r2 } = t2; n2 === r2 ? (p.push(D.deepMerge(e30, t2)), m++, h++) : n2 < r2 ? (p.push(D.deepClone(e30)), m++) : (p.push(D.deepClone(t2)), h++); } return m < a.length && p.push(...a.slice(m)), h < l.length && p.push(...l.slice(h)), p.length && (r.paragraphs = p), r; } function Js(e29) { let { body: t } = e29; if (t == null) return true; let { textRuns: n, paragraphs: r, customRanges: i, customBlocks: a, customDecorations: o, tables: s } = t; return n == null && r == null && i == null && a == null && o == null && s == null; } var Ys = class { constructor(e29) { this._actions = e29, C(this, `_index`, 0), C(this, `_offset`, 0); } hasNext() { return this.peekLength() < 1 / 0; } next(e29) { e29 || (e29 = 1 / 0); let t = this._actions[this._index]; if (t) { let n = this._offset, r = t.len; return e29 >= r - n ? (e29 = r - n, this._index += 1, this._offset = 0) : this._offset += e29, t.t === I.DELETE || t.t === I.RETAIN && t.body == null ? D.deepClone({ ...t, len: e29 }) : D.deepClone({ ...t, len: e29, body: Bs(t.body, n, n + e29, false) }); } else return { t: I.RETAIN, len: 1 / 0 }; } peek() { return this._actions[this._index]; } peekLength() { return this._actions[this._index] ? this._actions[this._index].len - this._offset : 1 / 0; } peekType() { let e29 = this._actions[this._index]; return e29 ? e29.t : I.RETAIN; } rest() { if (!this.hasNext()) return []; if (this._offset === 0) return this._actions.slice(this._index); { let e29 = this._offset, t = this._index, n = this.next(), r = this._actions.slice(this._index); return this._offset = e29, this._index = t, [n].concat(r); } } }; function Xs(e29, t, n) { let { dataStream: r } = e29, i = n, a = n + t, o = us(e29, t, n), s = ds(e29, t, n), c = fs(e29, t, n), l = ps(e29, t, n), u = ms(e29, t, n), d = hs(e29, t, n), f = gs(e29, t, n), p = ``; return r && (e29.dataStream = qa(r, i, a), p = r.slice(i, a)), { dataStream: p, textRuns: o, paragraphs: s, sectionBreaks: c, customBlocks: l, tables: u, customRanges: d, customDecorations: f }; } function Zs(e29, t, n, r) { e29.dataStream = Ka(e29.dataStream, r, t.dataStream), Qo(e29, t, n, r), $o(e29, t, n, r), es(e29, t, n, r), ts(e29, t, n, r), ns(e29, t, n, r), cs(e29, t, n, r), ls(e29, t, n, r); } function Qs(e29, t, n, r, i = F.COVER) { return Ts(e29, t, n, r, i); } function $s(e29, t, n) { return t <= 0 ? { dataStream: `` } : Xs(e29, t, n); } function ec(e29, t, n, r) { n !== 0 && Zs(e29, t, n, r); } function tc(e29, t) { let n = new Zt(); return n.reset(), t.forEach((t2) => { let r = D.deepClone(t2); switch (r.t) { case I.RETAIN: { let { coverType: t3, body: i, len: a } = r; i != null && Qs(e29, i, a, n.cursor, t3), n.moveCursor(a); break; } case I.INSERT: { let { body: t3, len: i } = r; ec(e29, t3, i, n.cursor), n.moveCursor(i); break; } case I.DELETE: { let { len: t3 } = r; $s(e29, t3, n.cursor); break; } default: throw Error(`Unknown action type for action: ${r}.`); } }), e29; } var J = (function(e29) { return e29[e29.COVER = 0] = `COVER`, e29[e29.COVER_ONLY_NOT_EXISTED = 1] = `COVER_ONLY_NOT_EXISTED`, e29; })(J || {}); function nc(e29, t, n, r, i) { if (e29 == null || t == null) return t; if (e29.length === 0 || t.length === 0) return []; t = D.deepClone(t), e29 = D.deepClone(e29); let a = [], o = t.length, s = e29.length, c = 0, l = 0, u = null; function d() { return u ? (a.push(u), u = null, true) : false; } for (; c < o && l < s; ) { let { st: o2, ed: s2, ts: f2 } = t[c], { st: p2, ed: m2, ts: h, sId: g2 } = e29[l], _2 = {}; if (i === J.COVER) _2 = { ...f2 }, n === F.COVER && r === F.REPLACE && h && (_2 = Object.assign({}, h, _2)); else if (_2 = { ...f2 }, n === F.REPLACE) { if (r === F.REPLACE) _2 = { ...h }; else if (f2 && h) { let e30 = Object.keys(f2); for (let t2 of e30) h[t2] && delete _2[t2]; } } else if (r === F.REPLACE) { if (h) { let e30 = Object.keys(h); for (let t2 of e30) h[t2] !== void 0 && (_2[t2] = h[t2]); } } else if (h) { let e30 = Object.keys(h); for (let t2 of e30) _2[t2] !== void 0 && delete _2[t2]; } if (s2 < p2) d() || a.push(t[c]), c++; else if (m2 < o2) d() || a.push(e29[l]), l++; else { let n2 = { st: Math.min(o2, p2), ed: Math.max(o2, p2), ts: o2 < p2 ? { ...f2 } : { ...h }, sId: o2 < p2 ? void 0 : g2 }; n2.ed > n2.st && a.push(), a.push({ st: Math.max(o2, p2), ed: Math.min(s2, m2), ts: _2, sId: g2 }), s2 < m2 ? (c++, e29[l].st = s2, e29[l].st === e29[l].ed && l++) : (l++, t[c].st = m2, t[c].st === t[c].ed && c++); let r2 = { st: Math.min(s2, m2), ed: Math.max(s2, m2), ts: s2 < m2 ? { ...h } : { ...f2 }, sId: s2 < m2 ? g2 : void 0 }; u = r2.ed > r2.st ? r2 : null; } } d(); let f = a[a.length - 1], p = t[o - 1], m = e29[s - 1]; return f.ed !== Math.max(p.ed, m.ed) && (p.ed > m.ed ? a.push(p) : a.push(m)), Zo(a, true); } function rc(e29, t, n, r, i) { if (e29 == null || t == null) return t; if (e29.length === 0 || t.length === 0) return []; if (e29.length > 1 || t.length > 1) throw Error(`CustomRanges is only supported transform for length one now.`); let a = e29[0], o = t[0]; if (n === F.REPLACE) return i === J.COVER_ONLY_NOT_EXISTED ? [D.deepClone(a)] : [D.deepClone(o)]; if (r === F.REPLACE) { let e30 = D.deepClone(o); return i === J.COVER_ONLY_NOT_EXISTED && Object.assign(e30, D.deepClone(a)), [e30]; } else { let e30 = D.deepClone(o); return i === J.COVER_ONLY_NOT_EXISTED && Object.assign(e30, D.deepClone(a)), [e30]; } } function ic(e29, t, n, r, i) { let a = { startIndex: t.startIndex }; if (t.paragraphStyle && (a.paragraphStyle = D.deepClone(t.paragraphStyle), e29.paragraphStyle)) { if (n === F.REPLACE) if (r === F.REPLACE) i === J.COVER_ONLY_NOT_EXISTED && (a.paragraphStyle = { ...e29.paragraphStyle }); else if (i === J.COVER_ONLY_NOT_EXISTED) { let t2 = Object.keys(e29.paragraphStyle); for (let n2 of t2) e29.paragraphStyle[n2] !== void 0 && (a.paragraphStyle[n2] = e29.paragraphStyle[n2]); } else { let t2 = Object.keys(e29.paragraphStyle); for (let n2 of t2) a.paragraphStyle[n2] === void 0 && (a.paragraphStyle[n2] = e29.paragraphStyle[n2]); } else if (r === F.REPLACE) if (i === J.COVER_ONLY_NOT_EXISTED) { let t2 = Object.keys(e29.paragraphStyle); for (let n2 of t2) e29.paragraphStyle[n2] !== void 0 && (a.paragraphStyle[n2] = e29.paragraphStyle[n2]); } else { let t2 = Object.keys(e29.paragraphStyle); for (let n2 of t2) a.paragraphStyle[n2] === void 0 && (a.paragraphStyle[n2] = e29.paragraphStyle[n2]); } else if (i === J.COVER_ONLY_NOT_EXISTED) { let t2 = Object.keys(e29.paragraphStyle); for (let e30 of t2) a.paragraphStyle[e30] && delete a.paragraphStyle[e30]; } } return n === F.REPLACE && r === F.REPLACE ? a.bullet = i === J.COVER_ONLY_NOT_EXISTED ? D.deepClone(e29.bullet) : D.deepClone(t.bullet) : e29.bullet === void 0 ? a.bullet = D.deepClone(t.bullet) : n === F.REPLACE || r === F.REPLACE ? a.bullet = i === J.COVER && t.bullet ? D.deepClone(t.bullet) : D.deepClone(e29.bullet) : i === J.COVER && t.bullet !== void 0 && (a.bullet = D.deepClone(t.bullet)), a; } function ac(e29, t) { if (e29 == null || t == null) return t; if (e29.length === 0 || t.length === 0) return D.deepClone(t); let n = []; for (let r of t) { let { id: t2, type: i } = r, a = false; for (let o of e29) if (o.id === t2) { (o.type === sr.DELETED || i === sr.DELETED) && (a = true, n.push({ ...r, type: sr.DELETED })); break; } a || n.push(r); } return n; } function oc(e29, t, n = false) { let { body: r, coverType: i = F.COVER } = e29, { body: a, coverType: o = F.COVER } = t; if (r == null || r.dataStream !== `` || a == null || a.dataStream !== ``) throw Error(`Data stream is not supported in retain transform.`); let s = { dataStream: `` }, c = o, { textRuns: l, paragraphs: u = [], customRanges: d, customDecorations: f } = r, { textRuns: p, paragraphs: m = [], customRanges: h, customDecorations: g2 } = a, _2 = nc(l, p, i, o, n ? J.COVER_ONLY_NOT_EXISTED : J.COVER); _2 && (s.textRuns = _2); let ee = rc(d, h, i, o, n ? J.COVER_ONLY_NOT_EXISTED : J.COVER); ee && (s.customRanges = ee); let te = ac(f, g2); te && (s.customDecorations = te); let ne = [], re = 0, ie = 0; for (; re < u.length && ie < m.length; ) { let e30 = u[re], t2 = m[ie], { startIndex: r2 } = e30, { startIndex: a2 } = t2; if (r2 === a2) { let a3 = { startIndex: r2 }; a3 = n ? ic(e30, t2, i, o, J.COVER_ONLY_NOT_EXISTED) : ic(e30, t2, i, o, J.COVER), ne.push(a3), re++, ie++; } else r2 < a2 ? re++ : (ne.push(D.deepClone(t2)), ie++); } return ie < m.length && ne.push(...m.slice(ie)), ne.length && (s.paragraphs = ne), { coverType: c, body: s }; } function sc(e29) { return Object.keys(e29).length === 1; } var Y = class e7 { constructor() { C(this, `_actions`, []); } static apply(e29, t) { return tc(e29, t); } static compose(t, n) { let r = new Ys(t), i = new Ys(n), a = new e7(); for (; r.hasNext() || i.hasNext(); ) if (i.peekType() === I.INSERT) a.push(i.next()); else if (r.peekType() === I.DELETE) a.push(r.next()); else { let e29 = Math.min(r.peekLength(), i.peekLength()), t2 = r.next(e29), n2 = i.next(e29); if (t2.t === I.INSERT && n2.t === I.RETAIN) n2.body == null ? a.push(t2) : a.push({ ...t2, body: qs(t2.body, n2.body, n2.coverType) }); else if (t2.t === I.RETAIN && n2.t === I.RETAIN) if (t2.body == null && n2.body == null) a.push(t2.len === 1 / 0 ? n2 : t2); else if (t2.body && n2.body) { let e30 = t2.coverType === F.REPLACE || n2.coverType === F.REPLACE ? F.REPLACE : F.COVER; a.push({ ...t2, t: I.RETAIN, coverType: e30, body: qs(t2.body, n2.body, n2.coverType) }); } else a.push(t2.body ? t2 : n2); else t2.t === I.RETAIN && n2.t === I.DELETE ? a.push(n2) : t2.t === I.INSERT && (n2.t, I.DELETE); } return a.trimEndUselessRetainAction(), a.serialize(); } static transform(e29, t, n = `right`) { return this._transform(t, e29, n === `left` ? `right` : `left`); } static _transform(t, n, r = `right`) { let i = new Ys(t), a = new Ys(n), o = new e7(); for (; i.hasNext() || a.hasNext(); ) if (i.peekType() === I.INSERT && (r === `left` || a.peekType() !== I.INSERT)) { let e29 = i.next(); o.retain(e29.len); } else if (a.peekType() === I.INSERT) o.push(a.next()); else { let e29 = Math.min(i.peekLength(), a.peekLength()), t2 = i.next(e29), n2 = a.next(e29); if (t2.t === I.DELETE) continue; if (n2.t === I.DELETE) { o.push(n2); continue; } if (t2.body == null || n2.body == null) o.push(n2); else { let { coverType: e30, body: i2 } = oc(t2, n2, r === `left`); o.push({ ...n2, t: I.RETAIN, coverType: e30, body: i2 }); } } return o.trimEndUselessRetainAction(), o.serialize(); } static transformPosition(e29, t, n = false) { let r = new Ys(e29), i = 0; for (; r.hasNext() && i <= t; ) { let e30 = r.peekLength(), a = r.peekType(); if (r.next(), a === I.DELETE) { t -= Math.min(e30, t - i); continue; } else a === I.INSERT && (i < t || !n) && (t += e30); i += e30; } return t; } static isNoop(e29) { return e29.length === 0; } static invert(e29) { let t = []; for (let n of e29) if (n.t === I.INSERT) t.push({ t: I.DELETE, len: n.len, body: n.body }); else if (n.t === I.DELETE) { if (n.body == null) throw Error(`Can not invert DELETE action without body property, makeInvertible must be called first.`); t.push({ t: I.INSERT, body: n.body, len: n.len }); } else if (n.body != null) { if (n.oldBody == null) throw Error(`Can not invert RETAIN action without oldBody property, makeInvertible must be called first.`); t.push({ t: I.RETAIN, body: n.oldBody, oldBody: n.body, len: n.len, coverType: F.REPLACE }); } else t.push(n); return t; } static makeInvertible(e29, t) { let n = [], r = 0; for (let i of e29) { if (i.t === I.DELETE && (i.body == null || i.body && i.body.dataStream.length !== i.len)) { let e30 = Bs(t, r, r + i.len, false); i.len = e30.dataStream.length, i.body = e30; } if (i.t === I.RETAIN && i.body != null) { let e30 = Bs(t, r, r + i.len, true); i.oldBody = { ...e30, dataStream: `` }, i.len = e30.dataStream.length; } n.push(i), i.t !== I.INSERT && (r += i.len); } return n; } insert(e29, t) { let n = { t: I.INSERT, body: t, len: e29 }; return this.push(n), this; } retain(e29, t, n) { let r = { t: I.RETAIN, len: e29 }; return t != null && (r.body = t), n != null && (r.coverType = n), this.push(r), this; } delete(e29) { let t = { t: I.DELETE, len: e29 }; return this.push(t), this; } empty() { return this._actions = [], this; } serialize() { return this._actions; } push(...e29) { if (e29.length > 1) { for (let t2 of e29) this.push(t2); return this; } let t = this._actions.length, n = this._actions[t - 1], r = D.deepClone(e29[0]); if (r.t === I.RETAIN && r.len === 0 && r.body == null) return this; if (typeof n == `object`) { if (n.t === I.DELETE && r.t === I.DELETE) return n.len += r.len, this; if (n.t === I.DELETE && r.t === I.INSERT && (--t, n = this._actions[t - 1], n == null)) return this._actions.unshift(r), this; if (n.t === I.RETAIN && r.t === I.RETAIN && n.body == null && r.body == null) return n.len += r.len, this; if (n.t === I.INSERT && sc(n.body) && r.t === I.INSERT && sc(r.body)) return n.len += r.len, n.body.dataStream += r.body.dataStream, this; } return t === this._actions.length ? this._actions.push(r) : this._actions.splice(t, 0, r), this; } trimEndUselessRetainAction() { let e29 = this._actions[this._actions.length - 1]; for (; e29 && e29.t === I.RETAIN && Js(e29); ) this._actions.pop(), e29 = this._actions[this._actions.length - 1]; return this; } }; C(Y, `id`, `text-x`), C(Y, `uri`, `https://github.com/dream-num/univer#text-x`), Object.defineProperty(Y, `name`, { value: `text-x` }); var cc = class e8 { static registerSubtype(e29) { var t; e29 == null || this._subTypes.has(e29.name) && ((t = this._subTypes.get(e29.name)) == null ? void 0 : t.id) !== Y.id || (this._subTypes.set(e29.name, e29), S2.type.registerSubtype(e29)); } static apply(e29, t) { if (!S2.type.isNoop(t)) return S2.type.apply(e29, t); } static compose(e29, t) { return S2.type.compose(e29, t); } static transform(e29, t, n) { return S2.type.transform(e29, t, n); } static transformPosition(e29, t, n = `right`) { return e29 && e29.length === 2 && e29[0] === `body` && e29[1].et === Y.name ? Y.transformPosition(e29[1].e, t, n === `left`) : t; } static invertWithDoc(e29, t) { return S2.type.invertWithDoc(e29, t); } static isNoop(e29) { return S2.type.isNoop(e29); } static getInstance() { return this._instance == null && (this._instance = new e8()), this._instance; } removeOp(e29, t) { return S2.removeOp(e29, t); } moveOp(e29, t) { return S2.moveOp(e29, t); } insertOp(e29, t) { return S2.insertOp(e29, t); } replaceOp(e29, t, n) { return S2.replaceOp(e29, t, n); } editOp(e29, t = [`body`]) { return S2.editOp(t, Y.name, e29); } }; C(cc, `uri`, `https://github.com/dream-num/univer#json-x`), C(cc, `_subTypes`, /* @__PURE__ */ new Map()), C(cc, `_instance`, null), cc.registerSubtype(Y); var lc = (function(e29) { return e29.PARAGRAPH = `PARAGRAPH`, e29.SECTION_BREAK = `SECTION_BREAK`, e29.TABLE = `TABLE`, e29.TABLE_ROW = `TABLE_ROW`, e29.TABLE_CELL = `TABLE_CELL`, e29.CUSTOM_BLOCK = `CUSTOM_BLOCK`, e29; })({}); var X = (function(e29) { return e29.PARAGRAPH = `\r`, e29.SECTION_BREAK = ` `, e29.TABLE_START = ``, e29.TABLE_ROW_START = `\x1B`, e29.TABLE_CELL_START = ``, e29.TABLE_CELL_END = ``, e29.TABLE_ROW_END = ``, e29.TABLE_END = ``, e29.CUSTOM_RANGE_START = ``, e29.CUSTOM_RANGE_END = ``, e29.COLUMN_BREAK = `\v`, e29.PAGE_BREAK = `\f`, e29.DOCS_END = `\0`, e29.TAB = ` `, e29.CUSTOM_BLOCK = `\b`, e29.LETTER = ``, e29.SPACE = ` `, e29; })({}); var dc = [X.TABLE_START, X.TABLE_ROW_START, X.TABLE_CELL_START, X.TABLE_CELL_END, X.TABLE_ROW_END, X.TABLE_END]; var fc = (e29) => { let t = e29.endsWith(`\r `) ? e29.slice(0, -2) : e29; return dc.reduce((e30, t2) => e30.replaceAll(t2, ``), t); }; var pc = (e29) => e29 ? fc(e29).replaceAll(`\r`, ``) === `` : true; var mc = (e29) => { let t = e29.replace(/\n/g, `\r`), n = [], r = [], i = 0, a = ``, o = (o2, s2 = true) => { let c = t.slice(i, o2); if (D.isLegalUrl(c)) { let t2 = O2(), l = `${c}`, u = { startIndex: i, endIndex: i + l.length - 1, rangeId: t2, rangeType: or.HYPERLINK, properties: { url: e29 } }; r.push(u), a += l, i = o2 + 1, s2 && (a += `\r`, n.push({ startIndex: o2 })); } else a += t.slice(i, o2 + 1), i = o2 + 1, s2 && n.push({ startIndex: o2 }); }, s = 0; for (let e30 = 0; e30 < t.length; e30++) t[e30] === `\r` && (o(e30), s = e30); return (s !== t.length - 1 || t.length === 1) && o(t.length, false), { dataStream: a, paragraphs: n, customRanges: r }; }; var hc = { id: `default_doc`, documentStyle: {} }; var gc = class extends pn { getUnitId() { throw Error(`Method not implemented.`); } constructor(e29) { var t; super(), C(this, `type`, O.UNIVER_DOC), C(this, `_name$`, new BehaviorSubject(``)), C(this, `name$`, this._name$.asObservable()), C(this, `snapshot`, void 0), this.snapshot = { ...hc, ...e29 }, this._name$.next((t = this.snapshot.title) == null ? `No Title` : t); } getRev() { var e29; return (e29 = this.snapshot.rev) == null ? 1 : e29; } incrementRev() { this.snapshot.rev = this.getRev() + 1; } setRev(e29) { this.snapshot.rev = e29; } setName(e29) { this.snapshot.title = e29, this._name$.next(e29); } get drawings() { return this.snapshot.drawings; } get documentStyle() { return this.snapshot.documentStyle; } get lists() { return this.snapshot.lists; } get zoomRatio() { var e29; return ((e29 = this.snapshot.settings) == null ? void 0 : e29.zoomRatio) || 1; } resetDrawing(e29, t) { this.snapshot.drawings = e29, this.snapshot.drawingsOrder = t; } getBody() { return this.snapshot.body; } getSnapshot() { return this.snapshot; } getBulletPresetList() { var e29; let t = (e29 = this.snapshot.lists) == null ? {} : e29; return { ...xs, ...t }; } updateDocumentId(e29) { this.snapshot.id = e29; } updateDocumentRenderConfig(e29) { let { documentStyle: t } = this.snapshot; t.renderConfig == null ? t.renderConfig = e29 : t.renderConfig = { ...t.renderConfig, ...e29 }; } getDocumentStyle() { return this.snapshot.documentStyle; } updateDocumentStyle(e29) { this.snapshot.documentStyle == null ? this.snapshot.documentStyle = e29 : this.snapshot.documentStyle = { ...this.snapshot.documentStyle, ...e29 }; } updateDocumentDataMargin(e29) { let { t, l: n, b: r, r: i } = e29, { documentStyle: a } = this.snapshot; t != null && (a.marginTop = t), n != null && (a.marginLeft = n), r != null && (a.marginBottom = r), i != null && (a.marginRight = i); } updateDocumentDataPageSize(e29, t) { let { documentStyle: n } = this.snapshot; if (!n.pageSize) { n.pageSize = { width: e29 == null ? 1 / 0 : e29, height: t == null ? 1 / 0 : t }; return; } e29 !== void 0 && (n.pageSize.width = e29), t !== void 0 && (n.pageSize.height = t); } updateDrawing(e29, t) { let { drawings: n } = this, { width: r, height: i, left: a, top: o } = t, s = n == null ? void 0 : n[e29]; if (!s) return; let c = s.docTransform; c.size.width = r, c.size.height = i, c.positionH.posOffset = a, c.positionV.posOffset = o; } setZoomRatio(e29 = 1) { this.snapshot.settings ? this.snapshot.settings.zoomRatio = e29 : this.snapshot.settings = { zoomRatio: e29 }; } setDisabled(e29) { this.snapshot.disabled = e29; } getDisabled() { return this.snapshot.disabled; } getTitle() { return this.snapshot.title; } }; var _c = class e9 extends gc { constructor(e29) { var t, n; super(D.isEmptyObject(e29) ? Jr() : e29), C(this, `_unitId`, void 0), C(this, `headerModelMap`, /* @__PURE__ */ new Map()), C(this, `footerModelMap`, /* @__PURE__ */ new Map()), C(this, `change$`, new BehaviorSubject(0)), this._unitId = (t = this.snapshot.id) == null ? O2(6) : t, this._initializeHeaderFooterModel(), this._name$.next((n = this.snapshot.title) == null ? `` : n); } dispose() { super.dispose(), this.headerModelMap.forEach((e29) => { e29.dispose(); }), this.footerModelMap.forEach((e29) => { e29.dispose(); }), this._name$.complete(); } getDrawings() { return this.snapshot.drawings; } getDrawingsOrder() { return this.snapshot.drawingsOrder; } getCustomRanges() { var e29; return (e29 = this.snapshot.body) == null ? void 0 : e29.customRanges; } getCustomDecorations() { var e29; return (e29 = this.snapshot.body) == null ? void 0 : e29.customDecorations; } getSettings() { return this.snapshot.settings; } reset(e29) { if (e29.id && e29.id !== this._unitId) throw Error(`Cannot reset a document model with a different unit id!`); this.snapshot = { ...hc, ...e29 }, this._initializeHeaderFooterModel(), this.change$.next(this.change$.value + 1); } getSelfOrHeaderFooterModel(e29) { if (e29 != null) { if (this.headerModelMap.has(e29)) return this.headerModelMap.get(e29); if (this.footerModelMap.has(e29)) return this.footerModelMap.get(e29); } return this; } getUnitId() { return this._unitId; } apply(e29) { if (!cc.isNoop(e29)) return this.snapshot = cc.apply(this.snapshot, e29), e29 != null && e29.some((e30) => Array.isArray(e30) && ((e30 == null ? void 0 : e30[0]) === `headers` || (e30 == null ? void 0 : e30[0]) === `footers`)) && (this.headerModelMap.clear(), this.footerModelMap.clear(), this._initializeHeaderFooterModel()), this.change$.next(this.change$.value + 1), this.snapshot; } sliceBody(e29, t, n = Ps.copy) { let r = this.getBody(); if (r != null) return Bs(r, e29, t, false, n); } _initializeHeaderFooterModel() { let { headers: t, footers: n } = this.getSnapshot(); if (t) for (let n2 in t) { let r = t[n2]; this.headerModelMap.set(n2, new e9(r)), this.headerModelMap.get(n2).updateDocumentId(this.getUnitId()); } if (n) for (let t2 in n) { let r = n[t2]; this.footerModelMap.set(t2, new e9(r)), this.footerModelMap.get(t2).updateDocumentId(this.getUnitId()); } } updateDocumentId(e29) { super.updateDocumentId(e29), this._unitId = e29; } getPlainText() { var e29, t; return fc((e29 = (t = this.getBody()) == null ? void 0 : t.dataStream) == null ? `` : e29); } }; function vc(e29) { let { ranges: t, id: n, type: r } = e29, i = new Y(), a = 0; for (let e30 = 0; e30 < t.length; e30++) { let { startOffset: o, endOffset: s } = t[e30]; o > 0 && i.push({ t: I.RETAIN, len: o - a }), i.push({ t: I.RETAIN, body: { dataStream: ``, customDecorations: [{ id: n, type: r, startIndex: 0, endIndex: s - o - 1 }] }, len: s - o }), a = s; } return i; } function yc(e29) { var t; let { id: n, segmentId: r, documentDataModel: i } = e29, a = i == null ? void 0 : i.getBody(); if (!i || !a) return false; let o = (t = i.getSelfOrHeaderFooterModel(r)) == null || (t = t.getBody()) == null || (t = t.customDecorations) == null ? void 0 : t.find((e30) => e30.id === n); if (!o) return false; let s = new Y(), { startIndex: c, endIndex: l } = o, u = l - c + 1; return s.push({ t: I.RETAIN, len: c }), s.push({ t: I.RETAIN, len: u, body: { dataStream: ``, customDecorations: [{ startIndex: 0, endIndex: u - 1, id: n, type: sr.DELETED }] } }), s; } function bc(e29, t, n, r) { return e29 <= n && t >= n || e29 >= n && e29 <= r; } function xc(e29, t) { let n = []; for (let r = 0, i = t.length; r < i; r++) { let i2 = t[r]; e29.collapsed ? i2.startIndex < e29.startOffset && e29.startOffset <= i2.endIndex && n.push(i2) : bc(e29.startOffset, e29.endOffset - 1, i2.startIndex, i2.endIndex) && n.push(i2); } return n; } function Sc(e29) { return { ...D.deepClone(e29), rangeId: O2() }; } function Cc(e29, t) { let n = [], r = e29[0]; for (let i of t) i < e29[0] || i > e29[1] || (r < i && n.push([r, i - 1]), r = i + 1); return r <= e29[1] && n.push([r, e29[1]]), n; } function wc(e29, t, n, r) { let i = []; for (let a = 0, o = n.length; a < o; a++) { let o2 = n[a]; if ((r === void 0 || o2.rangeType === r) && Math.max(o2.startIndex, e29) <= Math.min(o2.endIndex, t) && i.push({ ...o2 }), o2.startIndex > t) break; } return i; } function Tc(e29, t) { var n, r, i, a, o; let s = wc(e29.startOffset, e29.collapsed ? e29.startOffset : e29.endOffset - 1, (n = t.customRanges) == null ? [] : n), c = Math.min(e29.startOffset, (r = (i = s[0]) == null ? void 0 : i.startIndex) == null ? 1 / 0 : r), l = Math.max(e29.endOffset, ((a = (o = s[s.length - 1]) == null ? void 0 : o.endIndex) == null ? -1 / 0 : a) + 1); return { startOffset: c, endOffset: l, collapsed: c === l }; } function Ec(e29) { var t, n; let { rangeId: r, segmentId: i, documentDataModel: a, insert: o } = e29, s = (t = a.getSelfOrHeaderFooterModel(i).getBody()) == null || (t = t.customRanges) == null ? void 0 : t.find((e30) => e30.rangeId === r); if (!s) return false; let { startIndex: c, endIndex: l } = s, u = new Y(), d = l - c + 1; u.push({ t: I.RETAIN, len: c }), u.push({ t: I.RETAIN, len: d, body: { dataStream: ``, customRanges: [] } }), o && u.push({ t: I.INSERT, body: o, len: o.dataStream.length }); let f = l + 1 + ((n = o == null ? void 0 : o.dataStream.length) == null ? 0 : n); return u.selections = [{ startOffset: f, endOffset: f, collapsed: true }], u; } function Dc(e29) { let { ranges: t, rangeId: n, rangeType: r, wholeEntity: i, properties: a, body: o } = e29, s = 0, c = new Y(), l = false; return t.forEach((e30) => { var t2, u, d; let f = Tc(e30, o); if (!f || !o) return false; let { startOffset: p, endOffset: m } = f, h = (t2 = o.customRanges) == null ? [] : t2, g2 = (e31, t3, o2) => { var l2, u2, d2, f2; let p2 = wc(e31, t3, h, r), m2 = Math.min((l2 = (u2 = p2[0]) == null ? void 0 : u2.startIndex) == null ? 1 / 0 : l2, e31), g3 = Math.max((d2 = (f2 = p2[p2.length - 1]) == null ? void 0 : f2.endIndex) == null ? -1 / 0 : d2, t3), _3 = { rangeId: o2 ? `${n}$${o2}` : n, rangeType: r, startIndex: 0, endIndex: g3 - m2, wholeEntity: i, properties: { ...a } }; c.push({ t: I.RETAIN, len: m2 - s }), c.push({ t: I.RETAIN, len: g3 - m2 + 1, body: { dataStream: ``, customRanges: [_3] }, coverType: F.COVER }), s = g3 + 1; }, _2 = ((u = o.paragraphs) == null ? [] : u).filter((e31) => e31.startIndex < m && e31.startIndex > p), ee = ((d = o.customBlocks) == null ? [] : d).filter((e31) => e31.startIndex < m && e31.startIndex > p); Cc([p, m - 1], [..._2.map((e31) => e31.startIndex), ...ee.map((e31) => e31.startIndex)]).forEach(([e31, t3], n2) => g2(e31, t3, n2)), l = true, c.selections = [{ startOffset: f.endOffset, endOffset: f.endOffset, collapsed: true }]; }), l ? c : false; } function Oc(e29, t, n = 0, r = null, i = true) { e29.sort((e30, t2) => e30.startOffset - t2.startOffset); let a = [], { paragraphs: o = [] } = t, s = o == null ? void 0 : o.find((t2) => t2.startIndex >= e29[0].startOffset && t2.startIndex < e29[0].endOffset), c = n; if (e29.forEach((e30) => { let { startOffset: t2, endOffset: n2 } = e30; t2 > c && (a.push({ t: I.RETAIN, len: t2 - c }), c = t2), c < n2 && (a.push({ t: I.DELETE, len: n2 - c }), c = n2); }), r && a.push({ t: I.INSERT, body: r, len: r.dataStream.length }), s && i) { let t2 = o.find((t3) => t3.startIndex - n >= e29[e29.length - 1].endOffset - 1); t2 && (t2.startIndex > c && (a.push({ t: I.RETAIN, len: t2.startIndex - c }), c = t2.startIndex), a.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [{ ...t2, startIndex: 0, bullet: s == null ? void 0 : s.bullet }] }, coverType: F.REPLACE })); } return a; } function kc(e29, t, n = 0) { let r = [], i = n; return e29.forEach((e30) => { let { startOffset: n2, endOffset: a } = e30; n2 > i && (r.push({ t: I.RETAIN, len: n2 - i }), i = n2), a > i && (r.push({ t: I.RETAIN, len: a - i, body: { ...D.deepClone(t), dataStream: `` } }), i = a); }), r; } var Ac = (e29) => { var t; let { selection: n, body: r, doc: i } = e29, a = n.segmentId, o = (t = i.getSelfOrHeaderFooterModel(a)) == null ? void 0 : t.getBody(); if (!o) return false; let s = n.collapsed ? null : Bs(o, n.startOffset, n.endOffset), c = (0, import_fast_diff.default)(s ? s.dataStream : ``, r.dataStream), l = 0, u = c.map(([e30, t2]) => { switch (e30) { case 0: { let e31 = { t: I.RETAIN, body: { ...Bs(r, l, l + t2.length, false), dataStream: `` }, len: t2.length }; return l += t2.length, e31; } case 1: { let e31 = { t: I.INSERT, body: Bs(r, l, l + t2.length), len: t2.length }; return l += t2.length, e31; } default: return { t: I.DELETE, len: t2.length }; } }), d = new Y(); return d.push({ t: I.RETAIN, len: n.startOffset }), d.push(...u), d; }; function jc(e29, t) { return !!((e29 == null ? void 0 : e29.length) === (t == null ? void 0 : t.length) && e29 != null && e29.every((e30, n) => JSON.stringify(e30) === JSON.stringify(t == null ? void 0 : t[n]))); } var Mc = (e29) => { var t; let { selection: n, body: r, doc: i, themeService: a } = e29, o = n.segmentId, s = (t = i.getSelfOrHeaderFooterModel(o)) == null ? void 0 : t.getBody(); if (!s) return false; let c = n.collapsed ? null : Bs(s, n.startOffset, n.endOffset), l = (0, import_fast_diff.default)(c ? c.dataStream : ``, r.dataStream), u = 0, d = l.map(([e30, t2]) => { switch (e30) { case 0: { let e31 = Fs(r, u, u + t2.length, false), n2 = Fs(c, u, u + t2.length, false), i2 = { t: I.RETAIN, body: jc(e31, n2) ? void 0 : { textRuns: e31 == null ? void 0 : e31.map((e32) => { var t3, n3, r2, i3; return { ...e32, ts: { ...e32.ts, cl: !((t3 = e32.ts) == null || (t3 = t3.cl) == null || (t3 = t3.rgb) == null) && t3.includes(`.`) ? { rgb: a.getColorFromTheme((n3 = (r2 = e32.ts) == null || (r2 = r2.cl) == null ? void 0 : r2.rgb) == null ? `` : n3) } : (i3 = e32.ts) == null ? void 0 : i3.cl } }; }), dataStream: `` }, len: t2.length }; return u += t2.length, i2; } case 1: { let e31 = { t: I.INSERT, body: Bs(r, u, u + t2.length), len: t2.length }; return u += t2.length, e31; } default: return { t: I.DELETE, len: t2.length }; } }); if (d.every((e30) => e30.t === I.RETAIN && !e30.body)) return false; let f = new Y(); return f.push({ t: I.RETAIN, len: n.startOffset }), f.push(...d), f; }; function Nc(e29, t) { let n = [], { customBlocks: r = [] } = e29; for (let e30 of t) { let { startOffset: t2, endOffset: i } = e30; if (!(t2 == null || i == null)) for (let e31 of r) { let { startIndex: r2 } = e31; r2 >= t2 && r2 < i && n.push(e31.blockId); } } return n; } function Pc(e29, t = ``) { if (!t) return [`body`]; let { headers: n, footers: r } = e29.getSnapshot(); if (n == null && r == null) throw Error(`Document data model must have headers or footers when update by segment id`); if ((n == null ? void 0 : n[t]) != null) return [`headers`, t, `body`]; if ((r == null ? void 0 : r[t]) != null) return [`footers`, t, `body`]; throw Error(`Segment id not found in headers or footers`); } var Fc = (e29) => { var t, n; let { selection: r, documentDataModel: i, drawings: a } = e29, { collapsed: o, startOffset: s, segmentId: c } = r, l = new Y(), u = cc.getInstance(), d = [], f = i.getSelfOrHeaderFooterModel(c).getBody(); if (!f) return false; let p = (t = (n = i.getSnapshot().drawingsOrder) == null ? void 0 : n.length) == null ? 0 : t, m = 0; if (o) s > 0 && l.push({ t: I.RETAIN, len: s }); else { var h, g2; let e30 = Oc([r], f, 0, null, false); l.push(...e30); let t2 = Nc(f, [r]), n2 = (h = i.getDrawings()) == null ? {} : h, a2 = (g2 = i.getDrawingsOrder()) == null ? [] : g2, o2 = t2.sort((e31, t3) => a2.indexOf(e31) > a2.indexOf(t3) ? -1 : a2.indexOf(e31) < a2.indexOf(t3) ? 1 : 0); if (o2.length > 0) for (let e31 of o2) { let t3 = n2[e31], r2 = a2.indexOf(e31); if (t3 == null || r2 < 0) continue; let i2 = u.removeOp([`drawings`, e31], t3), o3 = u.removeOp([`drawingsOrder`, r2], e31); d.push(i2), d.push(o3), m++; } } l.push({ t: I.INSERT, body: { dataStream: `\b`.repeat(a.length), customBlocks: a.map((e30, t2) => ({ startIndex: t2, blockId: e30.drawingId })) }, len: a.length }); let _2 = Pc(i, c), ee = u.editOp(l.serialize(), _2); d.push(ee); for (let e30 of a) { let { drawingId: t2 } = e30, n2 = u.insertOp([`drawings`, t2], e30), r2 = u.insertOp([`drawingsOrder`, p - m], t2); d.push(n2), d.push(r2); } return d.reduce((e30, t2) => cc.compose(e30, t2), null); }; function Ic(e29, t) { if (t === void 0) return { startOffset: e29, endOffset: e29, collapsed: true }; if (t < e29) throw Error(`Cannot make a doc selection when endOffset ${t} is less than startOffset ${e29}.`); return { startOffset: e29, endOffset: t, collapsed: e29 === t }; } function Lc(e29) { let { startOffset: t, endOffset: n, collapsed: r } = e29; return { startOffset: Math.min(t, n), endOffset: Math.max(t, n), collapsed: r }; } function Rc(e29, t, n, r) { return Math.max(e29, n) <= Math.min(t, r); } function zc(e29, t, n, r) { let { startOffset: i, endOffset: a } = e29, o = r == null ? Hc(t, n) : r, s = [], c = -1; for (let e30 = 0; e30 < o.length; e30++) { let t2 = o[e30], { startIndex: n2 } = t2; (i > c && i <= n2 || a > c && a <= n2 || n2 >= i && n2 <= a) && s.push(t2), c = n2; } return s; } function Bc(e29, t, n) { let r = [], i = Hc(t, n); for (let a of e29) { let e30 = zc(a, t, n, i); r.push(...e30); } return r; } var Vc = [X.PARAGRAPH, X.TABLE_START, X.TABLE_END, X.TABLE_ROW_START, X.TABLE_CELL_START, X.TABLE_CELL_END]; function Hc(e29, t) { let n = []; for (let r = 0; r < e29.length; r++) { let i = e29[r], { startIndex: a } = i, o = a - 1; for (; !Vc.includes(t[o]) && o >= 0; ) o--; n.push({ ...i, paragraphStart: o + 1, paragraphEnd: i.startIndex }); } return n; } var Uc = (e29) => { var t, n; let { paragraphs: r, segmentId: i, document: a } = e29, o = e29.listType, s = (t = (n = a.getSelfOrHeaderFooterModel(i).getBody()) == null ? void 0 : n.paragraphs) == null ? [] : t, c = r.every((e30) => { var t2; return ((t2 = e30.bullet) == null ? void 0 : t2.listType.indexOf(o)) === 0; }), l = O2(6); if (r.length === 1) { let e30 = s.indexOf(r[0]), t2 = s[e30 - 1], n2 = s[e30 + 1]; t2 && t2.bullet && t2.bullet.listType.indexOf(o) === 0 ? (l = t2.bullet.listId, o !== q.CHECK_LIST && (o = t2.bullet.listType)) : n2 && n2.bullet && n2.bullet.listType.indexOf(o) === 0 && (l = n2.bullet.listId, o !== q.CHECK_LIST && (o = n2.bullet.listType)); } let u = new Zt(); u.reset(); let d = new Y(); for (let e30 of r) { var f; let { startIndex: t2, paragraphStyle: n2 = {}, bullet: r2 } = e30; d.push({ t: I.RETAIN, len: t2 - u.cursor }), d.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [c ? { paragraphStyle: n2, startIndex: 0 } : { startIndex: 0, paragraphStyle: { ...n2 }, bullet: { nestingLevel: (f = r2 == null ? void 0 : r2.nestingLevel) == null ? 0 : f, textStyle: { fs: 20 }, listType: o, listId: l } }] }, coverType: F.REPLACE }), u.moveCursorTo(t2 + 1); } return d; }; var Wc = (e29) => { var t; let { paragraphIndex: n, segmentId: r, document: i } = e29, a = (t = i.getSelfOrHeaderFooterModel(r).getBody()) == null ? void 0 : t.paragraphs; if (a == null) return false; let o = a.find((e30) => e30.startIndex === n); if (!(o != null && o.bullet) || o.bullet.listType.indexOf(q.CHECK_LIST) === -1) return false; let s = new Zt(); s.reset(); let c = new Y(), { startIndex: l, paragraphStyle: u = {} } = o, d = o.bullet.listType === q.CHECK_LIST ? q.CHECK_LIST_CHECKED : q.CHECK_LIST; return c.push({ t: I.RETAIN, len: l - s.cursor }), c.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [{ ...o, paragraphStyle: u, startIndex: 0, bullet: { ...o.bullet, listType: d } }] }, coverType: F.REPLACE }), s.moveCursorTo(l + 1), c; }; var Gc = (e29) => { var t; let { paragraphs: n, listType: r, segmentId: i, document: a } = e29; if (((t = a.getSelfOrHeaderFooterModel(i).getBody()) == null ? void 0 : t.paragraphs) == null) return false; let o = O2(6), s = new Zt(); s.reset(); let c = new Y(); for (let e30 of n) { var l; let { startIndex: t2, paragraphStyle: n2 = {}, bullet: i2 } = e30; c.push({ t: I.RETAIN, len: t2 - s.cursor }), c.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [{ startIndex: 0, paragraphStyle: n2, bullet: { nestingLevel: (l = i2 == null ? void 0 : i2.nestingLevel) == null ? 0 : l, textStyle: (i2 == null ? void 0 : i2.listType) === r ? i2.textStyle : { fs: 20 }, listType: r, listId: o } }] }, coverType: F.REPLACE }), s.moveCursorTo(t2 + 1); } return c; }; function Kc(e29, t) { return t.some((t2) => e29.startIndex > t2.startIndex && e29.startIndex < t2.endIndex); } var qc = (e29) => { var t, n, r; let { paragraphs: i, document: a, type: o } = e29, s = new Zt(); s.reset(); let c = new Y(), l = (t = a.getSnapshot().lists) == null ? {} : t, u = (n = (r = a.getBody()) == null ? void 0 : r.tables) == null ? [] : n, d = { ...xs, ...l }; for (let e30 of i) { let { startIndex: t2, paragraphStyle: n2 = {}, bullet: r2 } = e30, i2 = Kc(e30, u); if (c.push({ t: I.RETAIN, len: t2 - s.cursor }), r2) { let e31 = d[r2.listType].nestingLevel.length - 1; i2 && (e31 = Math.min(e31, 2)), c.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [{ startIndex: 0, paragraphStyle: { ...n2 }, bullet: { ...r2, nestingLevel: Math.max(Math.min(r2.nestingLevel + o, e31), 0) } }] }, coverType: F.REPLACE }); } else c.push({ t: I.RETAIN, len: 1 }); s.moveCursorTo(t2 + 1); } return c; }; var Jc = (e29) => { var t, n, r, i; let { textRanges: a, segmentId: o, document: s, style: c, paragraphTextRun: l, cursor: u, deleteLen: d, textX: f } = e29, p = s.getSelfOrHeaderFooterModel(o), m = Bc(a, (t = (n = p.getBody()) == null ? void 0 : n.paragraphs) == null ? [] : t, (r = (i = p.getBody()) == null ? void 0 : i.dataStream) == null ? `` : r), h = new Zt(); u && h.moveCursorTo(u); let g2 = f == null ? new Y() : f; m.sort((e30, t2) => e30.startIndex - t2.startIndex); let _2 = Math.max(0, m[0].paragraphStart - 1); _2 > h.cursor && (g2.push({ t: I.RETAIN, len: _2 - h.cursor }), h.moveCursorTo(_2)), d && g2.push({ t: I.DELETE, len: d }); for (let e30 of m) { let { startIndex: t2, paragraphStyle: n2 = {} } = e30, r2 = t2 - h.cursor; g2.push({ t: I.RETAIN, len: r2, ...l ? { body: { dataStream: ``, textRuns: [{ ts: l, st: 0, ed: r2 }] }, coverType: F.REPLACE } : null }), g2.push({ t: I.RETAIN, len: 1, body: { dataStream: ``, paragraphs: [{ startIndex: 0, paragraphStyle: { ...n2, ...c } }] }, coverType: F.REPLACE }), h.moveCursorTo(t2 + 1); } return g2; }; var Z = class { }; C(Z, `customRange`, { add: Dc, delete: Ec, copyCustomRange: Sc, getCustomRangesInterestsWithSelection: xc, isIntersecting: bc }), C(Z, `customDecoration`, { add: vc, delete: yc }), C(Z, `selection`, { replace: Ac, makeSelection: Ic, normalizeSelection: Lc, delete: Oc, replaceTextRuns: Mc, retain: kc }), C(Z, `range`, { isIntersects: Rc, getParagraphsInRange: zc, getParagraphsInRanges: Bc }), C(Z, `transform`, { getPlainText: fc, fromPlainText: mc, isEmptyDocument: pc }), C(Z, `paragraph`, { bullet: { set: Gc, switch: Uc, toggleChecklist: Wc, changeNestLevel: qc }, style: { set: Jc }, util: { transform: Hc, getParagraphsInRange: zc, getParagraphsInRanges: Bc } }), C(Z, `drawing`, { add: Fc }); function Xc(e29) { if (e29.customRanges || (e29.customRanges = []), !e29.paragraphs) { e29.paragraphs = []; for (let t = 0; t < e29.dataStream.length; t++) e29.dataStream[t] === `\r` && e29.paragraphs.push({ startIndex: t }); } return e29.customBlocks || (e29.customBlocks = []), e29.textRuns || (e29.textRuns = []), e29.customDecorations || (e29.customDecorations = []), e29.sectionBreaks || (e29.sectionBreaks = []), e29.tables || (e29.tables = []), e29; } function Zc(e29) { var t; return e29.body = Xc((t = e29.body) == null ? { dataStream: `` } : t), e29.drawingsOrder || (e29.drawingsOrder = []), e29.drawings || (e29.drawings = {}), e29.documentStyle || (e29.documentStyle = {}), e29; } var Qc = class e10 { static create(t = {}) { return new e10(t); } constructor(e29 = {}) { C(this, `_style`, void 0), this._style = e29; } get fontFamily() { return this._style.ff; } get fontSize() { return this._style.fs; } get italic() { return this._style.it === A.TRUE; } get bold() { return this._style.bl === A.TRUE; } get underline() { return this._style.ul && el.create(this._style.ul); } get bottomBorderLine() { return this._style.bbl && el.create(this._style.bbl); } get strikethrough() { return this._style.st && el.create(this._style.st); } get overline() { return this._style.ol && el.create(this._style.ol); } get background() { return this._style.bg; } get border() { return this._style.bd; } get color() { return this._style.cl; } get verticalAlign() { return this._style.va; } get numberFormat() { return this._style.n; } copy() { return $c.create(D.deepClone(this._style)); } getValue() { return { ...this._style }; } }; var $c = class e11 extends Qc { static create(t = {}) { return new e11(t); } constructor(e29 = {}) { super(e29); } setFontFamily(e29) { return this._style.ff = e29, this; } setFontSize(e29) { return this._style.fs = e29, this; } setItalic(e29) { return this._style.it = e29 ? 1 : 0, this; } setBold(e29) { return this._style.bl = e29 ? 1 : 0, this; } setUnderline(e29) { return this._style.ul = e29.build(), this; } setBottomBorderLine(e29) { return this._style.bbl = e29.build(), this; } setStrikethrough(e29) { return this._style.st = e29.build(), this; } setOverline(e29) { return this._style.ol = e29.build(), this; } setBackground(e29) { return this._style.bg = e29, this; } setBorder(e29) { return this._style.bd = e29, this; } setColor(e29) { return this._style.cl = e29, this; } setVerticalAlign(e29) { return this._style.va = e29, this; } copy() { return e11.create(D.deepClone(this._style)); } build() { return this.getValue(); } }; var el = class e12 { static create(t = { s: 1 }) { return new e12(t); } constructor(e29 = { s: 1 }) { C(this, `_decoration`, void 0), this._decoration = e29; } get show() { return this._decoration.s === A.TRUE; } get followFontColor() { return this._decoration.c === A.TRUE; } get color() { return this._decoration.cl; } get type() { return this._decoration.t; } setShow(e29) { return this._decoration.s = e29 ? 1 : 0, this; } setFollowFontColor(e29) { return this._decoration.c = e29 ? 1 : 0, this; } setColor(e29) { return this._decoration.cl = e29, this; } setLineType(e29) { return this._decoration.t = e29, this; } copy() { return e12.create(D.deepClone(this._decoration)); } build() { return { ...this._decoration }; } }; var tl = class e13 { static create(t = {}) { return new e13(t); } constructor(e29 = {}) { C(this, `_style`, void 0), this._style = e29; } get indentFirstLine() { return this._style.indentFirstLine; } get hanging() { return this._style.hanging; } get indentStart() { return this._style.indentStart; } get tabStops() { return this._style.tabStops; } get indentEnd() { return this._style.indentEnd; } get textStyle() { return this._style.textStyle; } get headingId() { return this._style.headingId; } get namedStyleType() { return this._style.namedStyleType; } get horizontalAlign() { return this._style.horizontalAlign; } get lineSpacing() { return this._style.lineSpacing; } get direction() { return this._style.direction; } get spacingRule() { return this._style.spacingRule; } get snapToGrid() { return this._style.snapToGrid; } get spaceAbove() { return this._style.spaceAbove; } get spaceBelow() { return this._style.spaceBelow; } get borderBetween() { return this._style.borderBetween; } get borderTop() { return this._style.borderTop; } get borderBottom() { return this._style.borderBottom; } get borderLeft() { return this._style.borderLeft; } get borderRight() { return this._style.borderRight; } get keepLines() { return this._style.keepLines === A.TRUE; } get keepNext() { return this._style.keepNext === A.TRUE; } get wordWrap() { return this._style.wordWrap === A.TRUE; } get widowControl() { return this._style.widowControl === A.TRUE; } get shading() { return this._style.shading; } get suppressHyphenation() { return this._style.suppressHyphenation === A.TRUE; } copy() { return nl.create(D.deepClone(this._style)); } getValue() { return this._style; } }; var nl = class e14 extends tl { static create(t = {}) { return new e14(t); } constructor(e29 = {}) { super(e29); } setIndentFirstLine(e29) { return this._style.indentFirstLine = e29, this; } setHanging(e29) { return this._style.hanging = e29, this; } setIndentStart(e29) { return this._style.indentStart = e29, this; } setTabStops(e29) { return this._style.tabStops = e29, this; } setIndentEnd(e29) { return this._style.indentEnd = e29, this; } setTextStyle(e29) { return this._style.textStyle = e29, this; } setHeadingId(e29) { return this._style.headingId = e29, this; } setNamedStyleType(e29) { return this._style.namedStyleType = e29, this; } setHorizontalAlign(e29) { return this._style.horizontalAlign = e29, this; } setLineSpacing(e29) { return this._style.lineSpacing = e29, this; } setDirection(e29) { return this._style.direction = e29, this; } setSpacingRule(e29) { return this._style.spacingRule = e29, this; } setSnapToGrid(e29) { return this._style.snapToGrid = e29 ? 1 : 0, this; } setSpaceAbove(e29) { return this._style.spaceAbove = e29, this; } setSpaceBelow(e29) { return this._style.spaceBelow = e29, this; } setBorderBetween(e29) { return this._style.borderBetween = e29, this; } setBorderTop(e29) { return this._style.borderTop = e29, this; } setBorderBottom(e29) { return this._style.borderBottom = e29, this; } setBorderLeft(e29) { return this._style.borderLeft = e29, this; } setBorderRight(e29) { return this._style.borderRight = e29, this; } setKeepLines(e29) { return this._style.keepLines = e29 ? 1 : 0, this; } setKeepNext(e29) { return this._style.keepNext = e29 ? 1 : 0, this; } setWordWrap(e29) { return this._style.wordWrap = e29 ? 1 : 0, this; } setWidowControl(e29) { return this._style.widowControl = e29 ? 1 : 0, this; } setShading(e29) { return this._style.shading = e29, this; } setSuppressHyphenation(e29) { return this._style.suppressHyphenation = e29 ? 1 : 0, this; } copy() { return e14.create(D.deepClone(this._style)); } build() { return this.getValue(); } }; var rl = class e15 { static create(t) { return new e15(t); } static createByBody(t) { return new e15({ body: t, id: `d`, documentStyle: {} }); } constructor(e29) { if (C(this, `_data`, void 0), !e29.body) throw Error(`Invalid document data, body is required`); this._data = Zc(e29); } copy() { return il.create(D.deepClone(this._data)); } slice(e29, t) { let { body: n, ...r } = this._data; return il.create({ ...D.deepClone(r), body: Bs(n, e29, t) }); } toPlainText() { var e29, t; return Z.transform.getPlainText((e29 = (t = this._data.body) == null ? void 0 : t.dataStream) == null ? `` : e29).replaceAll(`\r`, ` `); } getParagraphStyle() { var e29; return tl.create((e29 = this._data.body) == null || (e29 = e29.paragraphs) == null ? void 0 : e29[0].paragraphStyle); } getParagraphBullet() { var e29; return (e29 = this._data.body) == null || (e29 = e29.paragraphs) == null ? void 0 : e29[0].bullet; } getParagraphs() { var e29, t; let n = (e29 = (t = this._data.body) == null ? void 0 : t.paragraphs) == null ? [] : e29, r = 0; return n.map((e30) => { let t2 = this.slice(r, e30.startIndex); return r = e30.startIndex, t2; }); } getTextRuns() { var e29, t; return ((e29 = (t = this._data.body) == null ? void 0 : t.textRuns) == null ? [] : e29).map((e30) => ({ ...e30, ts: e30.ts ? Qc.create(e30.ts) : null })); } getLinks() { var e29, t; return (e29 = (t = this._data.body) == null || (t = t.customRanges) == null ? void 0 : t.filter((e30) => e30.rangeType === or.HYPERLINK)) == null ? [] : e29; } getData() { return this._data; } }; var il = class e16 extends rl { static newEmptyData() { return Zc({ id: `d`, documentStyle: {}, drawings: {}, drawingsOrder: [], body: { dataStream: `\r `, customBlocks: [], customRanges: [], paragraphs: [{ startIndex: 0 }], textRuns: [], tables: [], sectionBreaks: [] } }); } static create(t) { return new e16(t == null ? e16.newEmptyData() : t); } constructor(e29) { super(e29), C(this, `_doc`, void 0), this._doc = new _c(e29); } insertText(e29, t, n) { var r, i; let a = ((r = (i = this._data.body) == null ? void 0 : i.dataStream.length) == null ? 2 : r) - 2, o, s; if (typeof e29 == `string` ? o = e29 : (a = Math.min(e29, a), o = t), s = typeof t == `object` ? t instanceof $c ? t.build() : t : n instanceof $c ? n.build() : n, !o) return this; let c = { dataStream: o, textRuns: s ? [{ ts: s, st: a, ed: a + o.length }] : [] }, l = Z.selection.replace({ doc: this._doc, selection: { startOffset: a, endOffset: a, collapsed: true }, body: c }); if (!l) throw Error(`Insert text failed, please check.`); return Y.apply(this._doc.getBody(), l.serialize()), this; } insertRichText(e29, t) { var n, r; let i = ((n = (r = this._data.body) == null ? void 0 : r.dataStream.length) == null ? 2 : n) - 2, a; typeof e29 == `object` ? a = e29 instanceof rl ? e29.getData() : e29 : (i = Math.min(e29, i), a = t instanceof rl ? t.getData() : t); let o = Z.selection.replace({ doc: this._doc, selection: { startOffset: i, endOffset: i, collapsed: true }, body: a.body }); if (!o) throw Error(`Insert text failed, please check.`); return Y.apply(this._doc.getBody(), o.serialize()), this; } delete(e29, t) { if (t !== void 0) { if (!t) return this; let n = Z.selection.delete([{ startOffset: e29, endOffset: e29 + t, collapsed: true }], this._data.body); Y.apply(this._doc.getBody(), n); } return this; } setStyle(e29, t, n) { let r = { dataStream: ``, textRuns: [{ ts: n instanceof $c ? n.build() : n, st: 0, ed: t - e29 }] }, i = Z.selection.retain([{ startOffset: e29, endOffset: t, collapsed: true }], r); return Y.apply(this._doc.getBody(), i), this; } setLink(e29, t, n) { let r = Z.customRange.add({ rangeType: or.HYPERLINK, rangeId: O2(), properties: { url: n }, ranges: [{ startOffset: e29, endOffset: t, collapsed: false }], body: this._data.body }); if (!r) throw Error(`Insert text failed, please check.`); return Y.apply(this._doc.getBody(), r.serialize()), this; } cancelLink(e29, t) { if (typeof e29 == `string`) { let t2 = Z.customRange.delete({ rangeId: e29, documentDataModel: this._doc }); if (!t2) throw Error(`Insert text failed, please check.`); Y.apply(this._doc.getBody(), t2.serialize()); } else this.slice(e29, t).getLinks().forEach((e30) => { let t2 = Z.customRange.delete({ rangeId: e30.rangeId, documentDataModel: this._doc }); if (!t2) throw Error(`Insert text failed, please check.`); Y.apply(this._doc.getBody(), t2.serialize()); }); return this; } updateLink(e29, t) { var n; let r = (n = this._data.body) == null || (n = n.customRanges) == null ? void 0 : n.find((t2) => t2.rangeId === e29); if (!r) throw Error(`Link not found`); return r.properties.url = t, this; } insertParagraph(e29, t) { let n, r; if (typeof e29 == `object`) { var i, a; n = { dataStream: `\r`, paragraphs: [{ startIndex: 0, paragraphStyle: e29.build() }] }, r = ((i = (a = this._data.body) == null ? void 0 : a.dataStream.length) == null ? 2 : i) - 2; } else r = e29, n = { dataStream: `\r`, paragraphs: [{ startIndex: 0, paragraphStyle: t == null ? void 0 : t.build() }] }; return this.insertRichText(r, rl.create({ body: n, id: `d`, documentStyle: {} })), this; } insertLink(t, n, r) { let i = ``, a = ``; typeof t == `string` ? (i = t, a = n) : (i = n, a = r); let o = e16.createByBody({ dataStream: i, customRanges: [{ rangeType: or.HYPERLINK, rangeId: O2(), properties: { url: a }, startIndex: 0, endIndex: i.length - 1 }] }); return typeof t == `number` ? this.insertRichText(t, o) : this.insertRichText(o); } }; var ll = createIdentifier(`core.resource-manager.service`); var ul = { [T.Editor]: `Editor`, [T.Owner]: `Owner`, [T.Reader]: `Reader`, [T.UNRECOGNIZED]: `UNRECOGNIZED` }; var dl = (e29) => e29 ? { userID: `${ul[e29]}_${O2(8)}`, name: ul[e29], avatar: `` } : { userID: ``, name: ``, avatar: ``, anonymous: true, canBindAnonymous: false }; var fl = (e29, t) => e29.startsWith(ul[t]); var pl = class extends E { constructor(...e29) { super(...e29), C(this, `_model`, /* @__PURE__ */ new Map()), C(this, `_userChange$`, new Subject()), C(this, `userChange$`, this._userChange$.asObservable()), C(this, `_currentUser$`, new BehaviorSubject(dl())), C(this, `currentUser$`, this._currentUser$.asObservable()); } dispose() { super.dispose(), this._model.clear(), this._userChange$.complete(), this._currentUser$.complete(); } getCurrentUser() { return this._currentUser$.getValue(); } setCurrentUser(e29) { this.addUser(e29), this._currentUser$.next(e29); } addUser(e29) { this._model.set(e29.userID, e29), this._userChange$.next({ type: `add`, user: e29 }); } getUser(e29, t) { let n = this._model.get(e29); if (n) return n; t && t(); } delete(e29) { let t = this.getUser(e29); this._model.delete(e29), t && this._userChange$.next({ type: `delete`, user: t }); } clear() { this._model.clear(), this._userChange$.next({ type: `clear` }); } list() { return Array.from(this._model.values()); } }; var ml = class { constructor(e29, t) { this._resourceManagerService = e29, this._userManagerService = t, C(this, `_permissionMap`, /* @__PURE__ */ new Map([])), C(this, `_permissionOverrides`, /* @__PURE__ */ new Map()), this._initSnapshot(), this._initDefaultUser(); } _initDefaultUser() { let e29 = this._userManagerService.getCurrentUser(); e29 && e29.userID || this._userManagerService.setCurrentUser(dl(T.Owner)); } _getRole(e29) { let t = this._userManagerService.getCurrentUser(); return t ? fl(t.userID, e29) : false; } _initSnapshot() { this._resourceManagerService.registerPluginResource({ toJson: (e29) => { let t = [...this._permissionMap.keys()].reduce((e30, t2) => (e30[t2] = this._permissionMap.get(t2), e30), {}); return JSON.stringify(t); }, parseJson: (e29) => JSON.parse(e29), pluginName: `SHEET_AuthzIoMockService_PLUGIN`, businesses: [O.UNIVER_SHEET, O.UNIVER_DOC, O.UNIVER_SLIDE], onLoad: (e29, t) => { for (let e30 in t) this._permissionMap.set(e30, t[e30]); }, onUnLoad: () => { this._permissionMap.clear(); } }); } async create(e29) { let t = O2(8), { objectType: n, selectRangeObject: r, worksheetObject: i } = e29, a = r || i, o = { objectType: n, unitID: (a == null ? void 0 : a.unitID) || ``, name: (a == null ? void 0 : a.name) || ``, strategies: [{ action: 6, role: T.Owner }, { action: 16, role: T.Owner }, { action: 17, role: T.Owner }, { action: 18, role: T.Owner }, { action: 19, role: T.Owner }, { action: 33, role: T.Owner }, { action: 34, role: T.Owner }, { action: 35, role: T.Owner }, { action: 36, role: T.Owner }, { action: 37, role: T.Owner }, { action: 38, role: T.Owner }, { action: 39, role: T.Owner }, { action: 40, role: T.Owner }], selectRangeObject: r }; return this._permissionMap.set(t, o), t; } async allowed(e29) { let { objectID: t, actions: n } = e29, r = this._permissionMap.get(t); return r ? n.map((e30) => { let n2 = `${t}:${e30}`; if (this._permissionOverrides.has(n2)) return { action: e30, allowed: this._permissionOverrides.get(n2) }; let i = r.strategies.find((t2) => t2.action === e30); return i ? { action: e30, allowed: this._getRole(i.role) } : { action: e30, allowed: this._getRole(T.Owner) || this._getRole(T.Editor) }; }) : n.map((e30) => ({ action: e30, allowed: this._getRole(T.Owner) || this._getRole(T.Editor) })); } async batchAllowed(e29) { let t = await Promise.all(e29.map((e30) => this.allowed(e30))); return e29.map((e30, n) => ({ unitID: e30.unitID, objectID: e30.objectID, actions: t[n] })); } async list(e29) { let t = [], n = [{ action: 6, role: T.Owner }, { action: 16, role: T.Owner }, { action: 17, role: T.Owner }, { action: 18, role: T.Owner }, { action: 19, role: T.Owner }, { action: 33, role: T.Owner }, { action: 34, role: T.Owner }, { action: 35, role: T.Owner }, { action: 36, role: T.Owner }, { action: 37, role: T.Owner }, { action: 38, role: T.Owner }, { action: 39, role: T.Owner }, { action: 40, role: T.Owner }]; return e29.objectIDs.forEach((r) => { let i = this._permissionMap.get(r), a = (i == null ? void 0 : i.strategies) || n, o = { objectID: r, unitID: e29.unitID, objectType: (i == null ? void 0 : i.objectType) || 3, name: (i == null ? void 0 : i.name) || ``, shareOn: false, shareRole: T.Owner, shareScope: -1, scope: { read: P.AllCollaborator, edit: P.AllCollaborator }, creator: dl(T.Owner), strategies: a.map((e30) => ({ action: e30.action, role: e30.role })), actions: e29.actions.map((e30) => { let t2 = `${r}:${e30}`; if (this._permissionOverrides.has(t2)) return { action: e30, allowed: this._permissionOverrides.get(t2) }; let n2 = a.find((t3) => t3.action === e30); return n2 ? { action: e30, allowed: this._getRole(n2.role) } : { action: e30, allowed: this._getRole(T.Owner) || this._getRole(T.Editor) }; }) }; t.push(o); }), t; } async listCollaborators() { return []; } async listRoles() { return { roles: [], actions: [] }; } async deleteCollaborator() { } async update(e29) { let { objectID: t, strategies: n } = e29, r = this._permissionMap.get(t); r && n && (r.strategies = n.map((e30) => ({ action: e30.action, role: e30.role })), this._permissionMap.set(t, r), n.forEach((e30) => { e30.role === T.Reader ? this.setPermissionOverride(t, e30.action, false) : (e30.role === T.Owner || e30.role === T.Editor) && this.clearPermissionOverride(t, e30.action); })); } setPermissionOverride(e29, t, n) { let r = `${e29}:${t}`; this._permissionOverrides.set(r, n); } clearPermissionOverride(e29, t) { let n = `${e29}:${t}`; this._permissionOverrides.delete(n); } clearAllOverrides(e29) { let t = []; this._permissionOverrides.forEach((n, r) => { r.startsWith(`${e29}:`) && t.push(r); }), t.forEach((e30) => this._permissionOverrides.delete(e30)); } async updateCollaborator() { } async createCollaborator() { } async putCollaborators(e29) { } }; ml = z([R2(0, ll), R2(1, Inject(pl))], ml); var hl = createIdentifier(`IAuthzIoIoService`); var gl = createIdentifier(`univer.confirm-service`); var vl = `FOCUSING_UNIT`; var yl = `FOCUSING_SHEET`; var bl = `FOCUSING_DOC`; var xl = `FOCUSING_SLIDE`; var Cl = `EDITOR_ACTIVATED`; var Tl = `FOCUSING_FX_BAR_EDITOR`; var Pl = class extends E { constructor(...e29) { super(...e29), C(this, `_error$`, new Subject()), C(this, `error$`, this._error$.asObservable()); } dispose() { this._error$.complete(); } emit(e29) { this._error$.next({ errorKey: e29 }); } }; var Fl = (function(e29) { return e29.URL = `URL`, e29.UUID = `UUID`, e29.BASE64 = `BASE64`, e29; })({}); var Il = (function(e29) { return e29.SUCCUSS = `0`, e29.ERROR_EXCEED_SIZE = `1`, e29.ERROR_IMAGE_TYPE = `2`, e29.ERROR_UPLOAD_COUNT_LIMIT = `3`, e29.ERROR_IMAGE = `4`, e29; })({}); var Ll = createIdentifier(`core.image-io.service`); var Rl = createIdentifier(`core.url-image.service`); var zl = `@univerjs/core`; var Bl = `0.19.0`; function Vl(e29 = ``, t = Rn.ZH_CN, n = ``) { return { id: e29, sheetOrder: [], name: n, appVersion: Bl, locale: t, styles: {}, sheets: {}, resources: [] }; } var Hl = class { constructor(e29 = {}) { C(this, `_styles`, void 0), C(this, `_cacheMap`, new so(1e5)), this._styles = e29, this._generateCacheMap(); } each(e29) { return Object.entries(this._styles).forEach(e29), this; } search(e29, t) { return this._cacheMap.has(t) ? this._cacheMap.get(t) : this._getExistingStyleId(e29) || `-1`; } get(e29) { return typeof e29 == `string` ? (e29 = String(e29), this._styles[e29]) : e29; } add(e29, t) { let n = O2(6); return this._styles[n] = e29, this._cacheMap.set(t, n), n; } setValue(e29) { if (e29 == null) return; let t = JSON.stringify(e29), n = this.search(e29, t); return n === `-1` ? this.add(e29, t) : n; } addCustomStyle(e29, t) { t != null && (this._styles[e29] = t, this._cacheMap.set(JSON.stringify(t), e29)); } remove(e29) { let t = this._styles[e29]; t && (delete this._styles[e29], this._cacheMap.delete(JSON.stringify(t))); } toJSON() { return this._styles; } getStyleByCell(e29) { let t; t = e29 && D.isObject(e29.s) ? e29.s : (e29 == null ? void 0 : e29.s) && this.get(e29.s); let n = e29 == null ? void 0 : e29.interceptorStyle; return n ? { ...t, ...n } : t; } _generateCacheMap() { let { _styles: e29, _cacheMap: t } = this; for (let n in e29) { let r = JSON.stringify(e29[n]); t.set(r, n); } } _getExistingStyleId(e29) { let { _styles: t } = this; for (let n in t) if (D.diffValue(t[n], e29)) return n; return null; } }; var Gl = { t: 0, b: 2, l: 2, r: 2 }; var Kl = (e29) => ({ sbr: 0.6, sbo: e29, spr: 0.6, spo: e29 }); function ql(e29, t, n = {}) { let r = e29.length, { textRotation: i, paddingData: a, horizontalAlign: o = Yn.UNSPECIFIED, verticalAlign: s = Xn.UNSPECIFIED, wrapStrategy: c = Zn.UNSPECIFIED, cellValueType: l } = n, { t: u, r: d, b: f, l: p } = a || Gl, { vertexAngle: m, centerAngle: h } = tu(i); return new _c({ id: `d`, body: { dataStream: `${e29}\r `, textRuns: [{ ts: t, st: 0, ed: r }], paragraphs: [{ startIndex: r, paragraphStyle: { horizontalAlign: o } }], sectionBreaks: [{ startIndex: r + 1 }] }, documentStyle: { pageSize: { width: 1 / 0, height: 1 / 0 }, marginTop: u, marginBottom: f, marginRight: d, marginLeft: p, renderConfig: { horizontalAlign: o, verticalAlign: s, centerAngle: h, vertexAngle: m, wrapStrategy: c, cellValueType: l } }, drawings: {}, drawingsOrder: [] }); } function Jl(e29) { if (!e29) return {}; let { tr: t, td: n, ht: r, vt: i, tb: a, pd: o } = e29; return { textRotation: t, textDirection: n, horizontalAlign: r, verticalAlign: i, wrapStrategy: a, paddingData: o }; } function Yl(e29) { if (!e29) return {}; let { ff: t, fs: n, it: r, bl: i, ul: a, st: o, ol: s, cl: c } = e29, l = {}; return t && (l.ff = t), n && (l.fs = n), r && (l.it = r), i && (l.bl = i), a && (l.ul = a), o && (l.st = o), s && (l.ol = s), c && (l.cl = c), l; } function Xl(e29, t, n) { var r; let i = e29.getBody(); if ((r = i.customRanges) != null && r.some((e30) => e30.rangeType === or.HYPERLINK)) return; let a = Z.customRange.add({ ranges: [{ startOffset: 0, endOffset: i.dataStream.length - 1, collapsed: false }], rangeId: n, rangeType: or.HYPERLINK, body: i, properties: { url: t, refId: n } }); a && Y.apply(i, a.serialize()); } function Zl(e29) { return e29 != null; } function $l(e29) { let t = W.ff, n = W.fs; if (!e29) { let e30 = `${n}pt ${t}`; return { fontCache: e30, fontString: e30, fontSize: n, originFontSize: n, fontFamily: t }; } let r = Er.ITALIC; (e29.it === 0 || e29.it === void 0) && (r = Er.NORMAL); let i = Er.BOLD; (e29.bl === 0 || e29.bl === void 0) && (i = Er.NORMAL); let a = n; e29.fs && (a = Math.ceil(e29.fs)); let o = t; if (e29.ff) { let n2 = e29.ff; n2 = n2.replace(/"/g, ``).replace(/'/g, ``), n2.indexOf(` `) > -1 && (n2 = `"${n2}"`), n2 == null && (n2 = t), o = n2; } let { va: s } = e29, c = a; if (s === er.SUBSCRIPT || s === er.SUPERSCRIPT) { let { sbr: e30, spr: t2 } = eu(o, c); c *= s === er.SUBSCRIPT ? e30 : t2; } let l = `${r} ${i} ${c}pt ${o}`; return { fontCache: l, fontString: `${l}, "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif `, fontSize: c, originFontSize: a, fontFamily: o }; } function eu(e29, t) { return Kl(t); } function tu(e29) { let { a: t = 0, v: n = A.FALSE } = e29 || { a: 0, v: A.FALSE }, r = 0, i = t; return n === A.TRUE && (r = 90, i = 90), { centerAngle: r, vertexAngle: i }; } function Q(e29) { if (typeof e29 != `object` || !e29) return e29; if (Array.isArray(e29)) { let t2 = e29.length, n2 = Array(t2); for (let r = 0; r < t2; r++) n2[r] = Q(e29[r]); return n2; } let t = {}, n = Object.keys(e29); for (let r = 0, i = n.length; r < i; r++) { let i2 = n[r]; t[i2] = Q(e29[i2]); } return t; } function nu(e29) { if (e29 == null) return e29; let t = {}; return e29.p !== void 0 && (t.p = e29.p === null ? null : Q(e29.p)), e29.s !== void 0 && (e29.s === null || typeof e29.s == `string` ? t.s = e29.s : t.s = Q(e29.s)), e29.v !== void 0 && (t.v = e29.v), e29.t !== void 0 && (t.t = e29.t), e29.f !== void 0 && (t.f = e29.f), e29.ref !== void 0 && (t.ref = e29.ref), e29.xf !== void 0 && (t.xf = e29.xf), e29.si !== void 0 && (t.si = e29.si), e29.custom !== void 0 && (t.custom = e29.custom === null ? null : Q(e29.custom)), t; } function iu(e29) { let t = {}, n = Object.keys(e29); for (let r = 0, i = n.length; r < i; r++) { let i2 = n[r], a = Number(i2), o = e29[a]; if (o === void 0) continue; let s = {}, c = Object.keys(o); for (let e30 = 0, t2 = c.length; e30 < t2; e30++) { let t3 = c[e30], n2 = Number(t3), r2 = o[n2]; r2 != null && (s[n2] = nu(r2)); } t[a] = s; } return t; } function au(e29) { let t = {}, n = Object.keys(e29); for (let r = 0, i = n.length; r < i; r++) { let i2 = n[r], a = Number(i2), o = e29[a]; if (o === void 0) continue; let s = {}; `h` in o && o.h !== void 0 && (s.h = o.h), `ia` in o && o.ia !== void 0 && (s.ia = o.ia), `ah` in o && o.ah !== void 0 && (s.ah = o.ah), `hd` in o && o.hd !== void 0 && (s.hd = o.hd), `w` in o && o.w !== void 0 && (s.w = o.w), `s` in o && o.s !== void 0 && (o.s === null || typeof o.s == `string` ? s.s = o.s : s.s = Q(o.s)), `custom` in o && o.custom !== void 0 && (s.custom = o.custom === null ? null : Q(o.custom)), t[a] = s; } return t; } function ou(e29) { let t = e29.length, n = Array(t); for (let r = 0; r < t; r++) { let t2 = e29[r]; n[r] = { startRow: t2.startRow, startColumn: t2.startColumn, endRow: t2.endRow, endColumn: t2.endColumn, rangeType: t2.rangeType, startAbsoluteRefType: t2.startAbsoluteRefType, endAbsoluteRefType: t2.endAbsoluteRefType }; } return n; } function su(e29) { let t = { id: e29.id, name: e29.name, tabColor: e29.tabColor, hidden: e29.hidden, rowCount: e29.rowCount, columnCount: e29.columnCount, zoomRatio: e29.zoomRatio, scrollTop: e29.scrollTop, scrollLeft: e29.scrollLeft, defaultColumnWidth: e29.defaultColumnWidth, defaultRowHeight: e29.defaultRowHeight, showGridlines: e29.showGridlines, rightToLeft: e29.rightToLeft, freeze: { xSplit: e29.freeze.xSplit, ySplit: e29.freeze.ySplit, startRow: e29.freeze.startRow, startColumn: e29.freeze.startColumn }, rowHeader: { width: e29.rowHeader.width, hidden: e29.rowHeader.hidden }, columnHeader: { height: e29.columnHeader.height, hidden: e29.columnHeader.hidden }, mergeData: ou(e29.mergeData), cellData: iu(e29.cellData), rowData: au(e29.rowData), columnData: au(e29.columnData) }; return e29.gridlinesColor !== void 0 && (t.gridlinesColor = e29.gridlinesColor), e29.defaultStyle !== void 0 && (e29.defaultStyle === null || typeof e29.defaultStyle == `string` ? t.defaultStyle = e29.defaultStyle : t.defaultStyle = Q(e29.defaultStyle)), e29.custom !== void 0 && (t.custom = e29.custom === null ? null : Q(e29.custom)), t; } var cu = class { constructor(e29, t) { this._config = e29, C(this, `_columnData`, {}), this._columnData = t; } getColumnData() { return this._columnData; } getColVisible(e29) { let { _columnData: t } = this, n = t[e29]; return n ? n.hd !== A.TRUE : true; } getColumnStyle(e29) { var t; return (t = this._columnData[e29]) == null ? void 0 : t.s; } setColumnStyle(e29, t) { let n = this.getColumnOrCreate(e29); n.s = t; } getHiddenCols(e29 = 0, t = this.getSize() - 1) { let n = [], r = false, i = -1; for (let a = e29; a <= t; a++) { let e30 = this.getColVisible(a); r && e30 ? (r = false, n.push({ rangeType: B.COLUMN, startColumn: i, endColumn: a - 1, startRow: 0, endRow: 0 })) : !r && !e30 && (r = true, i = a); } return r && n.push({ startRow: 0, endRow: 0, startColumn: i, endColumn: t, rangeType: B.COLUMN }), n; } getVisibleCols(e29 = 0, t = this.getSize() - 1) { let n = [], r = false, i = -1; for (let a = e29; a <= t; a++) { let e30 = this.getColVisible(a); r && !e30 ? (r = false, n.push({ rangeType: B.COLUMN, startColumn: i, endColumn: a - 1, startRow: 0, endRow: 0 })) : !r && e30 && (r = true, i = a); } return r && n.push({ startRow: 0, endRow: 0, startColumn: i, endColumn: t, rangeType: B.COLUMN }), n; } getColumnDatas(e29, t) { let n = {}, r = 0; for (let i = e29; i < e29 + t; i++) { let e30 = this.getColumn(i); n[r] = e30 == null ? { w: this._config.defaultColumnWidth, hd: A.FALSE } : e30, r++; } return n; } getSize() { return pa(this._columnData); } getColumnWidth(e29) { var t, n; return (t = (n = this._columnData[e29]) == null ? void 0 : n.w) == null ? this._config.defaultColumnWidth : t; } setColumnWidth(e29, t) { let n = this._columnData[e29]; t === this._config.defaultColumnWidth ? n && (delete n.w, Object.keys(n).length === 0 && delete this._columnData[e29]) : this._columnData[e29] = n ? { ...n, w: t } : { w: t }; } getColumn(e29) { return this._columnData[e29]; } insertColumnsWithData(e29, t, n) { let r = t - e29 + 1, i = Object.keys(this._columnData); for (let t2 = i.length - 1; t2 >= 0; t2--) { let n2 = Number(i[t2]); n2 >= e29 && (this._columnData[n2 + r] = this._columnData[n2], delete this._columnData[n2]); } for (let r2 = e29; r2 <= t; r2++) { let t2 = n == null ? void 0 : n[r2 - e29]; t2 != null && Object.keys(t2).length > 0 && (this._columnData[r2] = { ...t2 }); } } removeColumn(e29) { delete this._columnData[e29]; } getColumnOrCreate(e29) { let { _columnData: t } = this, n = t[e29]; if (n) return n; let r = {}; return this._columnData[e29] = r, r; } setCustomMetadata(e29, t) { let n = this.getColumn(e29); n && (n.custom = t); } getCustomMetadata(e29) { var t; return (t = this.getColumn(e29)) == null ? void 0 : t.custom; } }; var lu = class { constructor(e29, t, n) { this._config = e29, this._viewModel = t, C(this, `_rowData`, void 0), this._rowData = n; } getRowData() { return this._rowData; } getRowStyle(e29) { var t; return (t = this._rowData[e29]) == null ? void 0 : t.s; } setRowStyle(e29, t) { let n = this.getRowOrCreate(e29); n.s = t; } getRowDatas(e29, t) { let n = {}, r = 0; for (let i = e29; i < e29 + t; i++) { let e30 = this.getRow(i); n[r] = e30 == null ? { h: this._config.defaultRowHeight, hd: A.FALSE } : e30, r++; } return n; } getRowHeight(e29, t = 1) { let { _rowData: n } = this, r = this._config, i = 0; for (let a = 0; a < t; a++) { let { ia: t2, ah: o, h: s = r.defaultRowHeight } = n[a + e29] || { hd: A.FALSE, h: r.defaultRowHeight }; i += (t2 == null || t2 === A.TRUE) && typeof o == `number` ? o : s; } return i; } setRowHeight(e29, t) { let n = this._rowData[e29]; if (t === this._config.defaultRowHeight) n && (delete n.h, Object.keys(n).length === 0 && delete this._rowData[e29]); else { let r = Math.min(t, 2e3); this._rowData[e29] = n ? { ...n, h: r } : { h: r }; } } getRow(e29) { return this._rowData[e29]; } insertRowsWithData(e29, t, n) { let r = t - e29 + 1, i = Object.keys(this._rowData); for (let t2 = i.length - 1; t2 >= 0; t2--) { let n2 = Number(i[t2]); n2 >= e29 && (this._rowData[n2 + r] = this._rowData[n2], delete this._rowData[n2]); } for (let r2 = e29; r2 <= t; r2++) { let t2 = n == null ? void 0 : n[r2 - e29]; t2 != null && Object.keys(t2).length > 0 && (this._rowData[r2] = { ...t2 }); } } removeRow(e29) { delete this._rowData[e29]; } getRowOrCreate(e29) { let { _rowData: t } = this, n = t[e29]; if (n) return n; let r = {}; return t[e29] = r, r; } getHiddenRows(e29 = 0, t = this.getSize() - 1) { let n = [], r = false, i = -1; for (let a = e29; a <= t; a++) { let e30 = this.getRowRawVisible(a); r && e30 ? (r = false, n.push({ startRow: i, endRow: a - 1, startColumn: 0, endColumn: 0, rangeType: B.ROW })) : !r && !e30 && (r = true, i = a); } return r && n.push({ startRow: i, endRow: t, startColumn: 0, endColumn: 0, rangeType: B.ROW }), n; } getVisibleRows(e29 = 0, t = this.getSize() - 1) { let n = [], r = false, i = -1; for (let a = e29; a <= t; a++) { let e30 = this.getRowRawVisible(a); r && !e30 ? (r = false, n.push({ startRow: i, endRow: a - 1, startColumn: 0, endColumn: 0, rangeType: B.ROW })) : !r && e30 && (r = true, i = a); } return r && n.push({ startRow: i, endRow: t, startColumn: 0, endColumn: 0, rangeType: B.ROW }), n; } getRowRawVisible(e29) { let t = this.getRow(e29); return t ? t.hd !== A.TRUE : true; } getSize() { return pa(this._rowData); } setCustomMetadata(e29, t) { let n = this.getRow(e29); n && (n.custom = t); } getCustomMetadata(e29) { var t; return (t = this.getRow(e29)) == null ? void 0 : t.custom; } }; var du = 1e3; function Su(e29) { let t = { name: `Sheet1`, id: `sheet-01`, tabColor: ``, hidden: A.FALSE, rowCount: du, columnCount: 20, zoomRatio: 1, freeze: { xSplit: 0, ySplit: 0, startRow: -1, startColumn: -1 }, scrollTop: 0, scrollLeft: 0, defaultColumnWidth: 88, defaultRowHeight: 24, mergeData: [], cellData: {}, rowData: {}, columnData: {}, showGridlines: A.TRUE, rowHeader: { width: 46, hidden: A.FALSE }, columnHeader: { height: 20, hidden: A.FALSE }, rightToLeft: A.FALSE }; return Object.keys(t).forEach((n) => { let r = n; e29[r] === void 0 && (e29[r] = t[r]); }), e29; } var Cu = class extends E { constructor(e29) { super(), C(this, `_cellCache`, /* @__PURE__ */ new Map()), C(this, `_rowCache`, /* @__PURE__ */ new Map()), C(this, `_columnCache`, /* @__PURE__ */ new Map()), C(this, `_hasRow`, false), C(this, `_hasColumn`, false), C(this, `_hasAll`, false), C(this, `_allIndex`, -1), C(this, `_mergeData`, void 0), C(this, `_rangeMap`, new so(5e4)), this._init(e29.concat()); } _init(e29) { this._mergeData = e29, this._createCache(e29); } _clearCache() { this._cellCache.clear(), this._rowCache.clear(), this._columnCache.clear(), this._hasAll = false, this._allIndex = -1, this._rangeMap.clear(), this._hasColumn = false, this._hasRow = false; } _createCache(e29) { let t = 0; for (let n of e29) { let { rangeType: e30 } = n; e30 === B.ROW ? this._createRowCache(n, t) : e30 === B.COLUMN ? this._createColumnCache(n, t) : e30 === B.ALL ? this._createCellAllCache(t) : this._createCellCache(n, t), t++; } } rebuild(e29) { this._clearCache(), this._init(e29.concat()); } _createRowCache(e29, t) { let { startRow: n, endRow: r } = e29; for (let e30 = n; e30 <= r; e30++) this._rowCache.set(e30, t), this._hasRow = true; } _createColumnCache(e29, t) { let { startColumn: n, endColumn: r } = e29; for (let e30 = n; e30 <= r; e30++) this._columnCache.set(e30, t), this._hasColumn = true; } _createCellAllCache(e29) { this._hasAll = true, this._allIndex = e29; } _createCellCache(e29, t) { for (let n = e29.startRow; n <= e29.endRow; n++) { let r = this._cellCache.get(n); r == null && (r = /* @__PURE__ */ new Map(), this._cellCache.set(n, r)); for (let n2 = e29.startColumn; n2 <= e29.endColumn; n2++) r.set(n2, t); } } add(e29) { this._mergeData.push(e29), this._clearCache(), this._createCache(this._mergeData); } remove(e29, t) { let n = this._getMergeDataIndex(e29, t); n !== -1 && (this._mergeData.splice(n, 1), this._clearCache(), this._createCache(this._mergeData)); } getMergedCell(e29, t) { let n = this._getMergeDataIndex(e29, t); return n === -1 ? null : this._mergeData[n]; } getMergeDataIndex(e29, t) { return this._getMergeDataIndex(e29, t); } isRowContainsMergedCell(e29) { return this._hasAll || !D.isEmptyObject(this._columnCache) ? true : this._mergeData.some((t) => t.startRow <= e29 && e29 <= t.endRow); } isColumnContainsMergedCell(e29) { return this._hasAll || !D.isEmptyObject(this._rowCache) ? true : this._mergeData.some((t) => t.startColumn <= e29 && e29 <= t.endColumn); } getMergedCellRange(e29, t, n, r) { let i = [], a = `${e29}-${t}-${n}-${r}`; if (this._rangeMap.has(a)) return this._getRangeFromCache(a); let o = 0, s = []; for (let a2 of this._mergeData || []) G.intersects(a2, { startRow: e29, endRow: n, startColumn: t, endColumn: r }) && (i.push({ ...a2 }), s.push(o)), o++; return this._rangeMap.set(a, s), i; } _getRangeFromCache(e29) { let t = this._rangeMap.get(e29) || [], n = []; for (let e30 of t) n.push({ ...this._mergeData[e30] }); return n; } _getMergeDataIndex(e29, t) { var n; if (this._hasAll) return this._allIndex; if (this._hasRow) { let t2 = this._rowCache.get(e29); if (t2 !== void 0) return t2; } if (this._hasColumn) { let e30 = this._columnCache.get(t); if (e30 !== void 0) return e30; } let r = (n = this._cellCache.get(e29)) == null ? void 0 : n.get(t); return r === void 0 ? -1 : r; } getMergeDataSnapshot() { return this._mergeData; } dispose() { this._clearCache(), this._mergeData = []; } }; var wu = class extends E { constructor(e29) { super(), this.getRawCell = e29, C(this, `_cellContentInterceptor`, null), C(this, `_rowFilteredInterceptor`, null); } dispose() { super.dispose(), this._cellContentInterceptor = null, this._rowFilteredInterceptor = null; } getCell(e29, t, n, r) { return this._cellContentInterceptor ? this._cellContentInterceptor.getCell(e29, t, At.Value | At.Style, n, r) : this.getRawCell(e29, t); } getCellValueOnly(e29, t) { return this._cellContentInterceptor ? this._cellContentInterceptor.getCell(e29, t, At.Value) : this.getRawCell(e29, t); } getCellStyleOnly(e29, t) { return this._cellContentInterceptor ? this._cellContentInterceptor.getCell(e29, t, At.Style) : this.getRawCell(e29, t); } getRowFiltered(e29) { var t, n; return (t = (n = this._rowFilteredInterceptor) == null ? void 0 : n.getRowFiltered(e29)) == null ? false : t; } registerCellContentInterceptor(e29) { if (this._cellContentInterceptor) throw Error(`[SheetViewModel]: Interceptor already registered.`); return this._cellContentInterceptor = e29, T2(() => this._cellContentInterceptor = null); } registerRowFilteredInterceptor(e29) { if (this._rowFilteredInterceptor) throw Error(`[SheetViewModel]: Interceptor already registered.`); return this._rowFilteredInterceptor = e29, T2(() => this._rowFilteredInterceptor = null); } }; var Tu = { isDeepClone: false, displayRawFormula: false, ignoreTextRotation: false }; var Eu = class e17 { constructor(e29, t, n) { var r; this.unitId = e29, this._styles = n, C(this, `_sheetId`, void 0), C(this, `_snapshot`, void 0), C(this, `_cellData`, void 0), C(this, `_rowManager`, void 0), C(this, `_columnManager`, void 0), C(this, `_viewModel`, void 0), C(this, `_spanModel`, void 0), C(this, `_isRowStylePrecedeColumnStyle`, true), C(this, `_getCellHeight`, void 0), this._snapshot = Su(t); let { columnData: i, rowData: a, cellData: o } = this._snapshot; this._sheetId = (r = this._snapshot.id) == null ? O2(6) : r, this._cellData = new Sa(o), this._viewModel = new wu((e30, t2) => this.getCellRaw(e30, t2)), this._rowManager = new lu(this._snapshot, this._viewModel, a), this._columnManager = new cu(this._snapshot, i), this._spanModel = new Cu(this._snapshot.mergeData); } __interceptViewModel(e29) { e29(this._viewModel); } __registerGetCellHeight(e29) { return this._getCellHeight = e29, T2(() => { this._getCellHeight = null; }); } getSnapshot() { return this._snapshot; } getCellHeight(e29, t) { return this._getCellHeight ? this._getCellHeight(e29, t) : this._snapshot.defaultRowHeight; } setMergeData(e29) { this._snapshot.mergeData = e29, this.getSpanModel().rebuild(e29); } getSpanModel() { return this._spanModel; } setIsRowStylePrecedeColumnStyle(e29) { this._isRowStylePrecedeColumnStyle = e29; } getStyleDataByHash(e29) { return { ...this._styles.get(e29) }; } setStyleData(e29) { return this._styles.setValue(e29); } getColumnStyle(e29, t = false) { return t ? this._columnManager.getColumnStyle(e29) : this._styles.get(this._columnManager.getColumnStyle(e29)); } setColumnStyle(e29, t) { this._columnManager.setColumnStyle(e29, t); } getRowStyle(e29, t = false) { return t ? this._rowManager.getRowStyle(e29) : this._styles.get(this._rowManager.getRowStyle(e29)); } setRowStyle(e29, t) { this._rowManager.setRowStyle(e29, t); } getDefaultCellStyle() { return this._snapshot.defaultStyle; } getDefaultCellStyleInternal() { let e29 = this._snapshot.defaultStyle; return this._styles.get(e29); } setDefaultCellStyle(e29) { this._snapshot.defaultStyle = e29; } getCellStyle(e29, t) { let n = this.getCell(e29, t); if (n) { let e30 = n.s; return typeof e30 == `string` ? this._styles.get(e30) : e30; } return null; } getComposedCellStyle(e29, t, n) { let r = this.getDefaultCellStyleInternal(), i = this.getRowStyle(e29), a = this.getColumnStyle(t), o = this.getCell(e29, t), s = this._styles.getStyleByCell(o); return (n == null ? this._isRowStylePrecedeColumnStyle : n) ? wn(r, a, i, o == null ? void 0 : o.themeStyle, s) : wn(r, i, a, o == null ? void 0 : o.themeStyle, s); } getComposedCellStyleByCellData(e29, t, n, r) { let i = this.getDefaultCellStyleInternal(), a = this.getRowStyle(e29), o = this.getColumnStyle(t), s = this._styles.getStyleByCell(n); return (r == null ? this._isRowStylePrecedeColumnStyle : r) ? wn(i, o, a, n == null ? void 0 : n.themeStyle, s) : wn(i, a, o, n == null ? void 0 : n.themeStyle, s); } getComposedCellStyleWithoutSelf(e29, t, n, r) { let i = n === void 0 ? this.getComposedCellStyle(e29, t, r) : this.getComposedCellStyleByCellData(e29, t, n, r), a = this.getCellRaw(e29, t); if (!a || !a.s) return i; let o = typeof a.s == `string` ? this._styles.get(a.s) : a.s; if (!o) return i; for (let e30 in o) e30 in i && delete i[e30]; return i; } getCellMatrix() { return this._cellData; } getCellMatrixPrintRange() { let e29 = this.getCellMatrix(), t = this.getMergeData(), n = -1, r = -1, i = -1, a = -1, o = false, s = false; return e29.forEach((t2, c) => { Object.keys(c).forEach((c2) => { let l = +c2, u = e29.getValue(t2, l), d = u != null && u.s ? this._styles.get(u.s) : null, f = (d == null ? void 0 : d.bd) && (d.bd.b || d.bd.l || d.bd.r || d.bd.t || d.bd.bc_tr || d.bd.bl_tr || d.bd.ml_tr || d.bd.tl_bc || d.bd.tl_br || d.bd.tl_mr); (u && (u.v !== null && u.v !== void 0 && u.v !== `` || u.p) || d != null && d.bg || f) && (o ? n = Math.min(n, t2) : (n = t2, o = true), r = Math.max(r, t2), s ? i = Math.min(i, l) : (s = true, i = l), a = Math.max(a, l)); }); }), t.forEach((e30) => { o ? n = Math.min(n, e30.startRow) : (n = e30.startRow, o = true), r = Math.max(r, e30.endRow), s ? i = Math.min(i, e30.startColumn) : (i = e30.startColumn, o = true), a = Math.max(a, e30.endColumn); }), !o || !s ? null : { startColumn: i, startRow: n, endColumn: a, endRow: r }; } getRowManager() { return this._rowManager; } getUnitId() { return this.unitId; } getSheetId() { return this._sheetId; } getColumnManager() { return this._columnManager; } getName() { return this._snapshot.name; } clone() { let { _snapshot: t } = this, n = su(t); return new e17(this.unitId, n, this._styles); } getMergeData() { return this._spanModel.getMergeDataSnapshot(); } getMergedCell(e29, t) { return this._spanModel.getMergedCell(e29, t); } getMergedCellRange(e29, t, n, r) { return this._spanModel.getMergedCellRange(e29, t, n, r); } isRowContainsMergedCell(e29) { return this._spanModel.isRowContainsMergedCell(e29); } isColumnContainsMergedCell(e29) { return this._spanModel.isColumnContainsMergedCell(e29); } getCellInfoInMergeData(e29, t) { let n = this.getMergedCell(e29, t), r = false, i = false, a = e29, o = t, s = e29, c = t; if (n) { let { startRow: l, endRow: u, startColumn: d, endColumn: f } = n; e29 === l && t === d ? (a = u, o = f, s = l, c = d, i = true) : e29 >= l && e29 <= u && t >= d && t <= f && (a = u, o = f, s = l, c = d, r = true); } return { actualRow: e29, actualColumn: t, isMergedMainCell: i, isMerged: r, endRow: a, endColumn: o, startRow: s, startColumn: c }; } getCell(e29, t) { return e29 < 0 || t < 0 ? null : this._viewModel.getCell(e29, t); } getCellValueOnly(e29, t) { return e29 < 0 || t < 0 ? null : this._viewModel.getCellValueOnly(e29, t); } getCellStyleOnly(e29, t) { return e29 < 0 || t < 0 ? null : this._viewModel.getCellStyleOnly(e29, t); } getCellRaw(e29, t) { return this.getCellMatrix().getValue(e29, t); } getCellWithFilteredInterceptors(e29, t, n, r) { return this._viewModel.getCell(e29, t, n, r); } getRowFiltered(e29) { return this._viewModel.getRowFiltered(e29); } getRangeFilterRows(e29) { let t = []; for (let n = e29.startRow; n <= e29.endRow; n++) this.getRowFiltered(n) && t.push(n); return t; } getMatrixWithMergedCells(e29, t, n, r, i = ea.Raw) { let a = this.getCellMatrix(), o = this._spanModel.getMergedCellRange(e29, t, n, r), s = new Sa(); return Uo(e29, n, t, r).forEach((e30, t2) => { let n2; if (i === ea.Raw) n2 = this.getCellRaw(e30, t2); else if (i === ea.Intercepted) n2 = this.getCell(e30, t2); else if (i === ea.Both) { let i2 = this.getCellRaw(e30, t2); if (i2) { var r2; n2 = { ...i2 }; let a2 = (r2 = this.getCell(e30, t2)) == null ? void 0 : r2.v; Zl(a2) && n2 && (n2.displayV = String(a2)); } } n2 && s.setValue(e30, t2, n2); }), o.forEach((e30) => { let { startColumn: t2, startRow: n2, endColumn: r2, endRow: i2 } = e30; Uo(n2, i2, t2, r2).forEach((e31, o2) => { e31 === n2 && o2 === t2 && s.setValue(e31, o2, { ...a.getValue(e31, o2), rowSpan: i2 - n2 + 1, colSpan: r2 - t2 + 1 }), (e31 !== n2 || o2 !== t2) && s.realDeleteValue(e31, o2); }); }), s; } getRange(e29, t, n, r) { return typeof e29 == `object` ? new Eo(this, e29, { getStyles: () => this._styles }) : new Eo(this, { startRow: e29, startColumn: t, endColumn: r || t, endRow: n || e29 }, { getStyles: () => this._styles }); } getScrollLeftTopFromSnapshot() { return { scrollLeft: this._snapshot.scrollLeft, scrollTop: this._snapshot.scrollTop }; } getZoomRatio() { return this._snapshot.zoomRatio || 1; } getConfig() { return this._snapshot; } getFreeze() { return this._snapshot.freeze; } getMaxColumns() { let { _snapshot: e29 } = this, { columnCount: t } = e29; return t; } getMaxRows() { let { _snapshot: e29 } = this, { rowCount: t } = e29; return t; } getRowCount() { return this._snapshot.rowCount; } setRowCount(e29) { this._snapshot.rowCount = e29; } getColumnCount() { return this._snapshot.columnCount; } setColumnCount(e29) { this._snapshot.columnCount = e29; } isSheetHidden() { return this._snapshot.hidden; } hasHiddenGridlines() { let { _snapshot: e29 } = this, { showGridlines: t } = e29; return t === 0; } getGridlinesColor() { return this.getConfig().gridlinesColor; } getTabColor() { let { _snapshot: e29 } = this, { tabColor: t } = e29; return t; } getColumnWidth(e29) { return this.getColumnManager().getColumnWidth(e29); } getRowHeight(e29) { return this._viewModel.getRowFiltered(e29) ? 0 : this.getRowManager().getRowHeight(e29); } isRowFiltered(e29) { return this._viewModel.getRowFiltered(e29); } getRowVisible(e29) { return !this.isRowFiltered(e29) && this.getRowRawVisible(e29); } getRowRawVisible(e29) { return this.getRowManager().getRowRawVisible(e29); } getHiddenRows(e29, t) { let n = this.getMaxColumns() - 1, r = this._rowManager.getHiddenRows(e29, t); return r.forEach((e30) => e30.endColumn = n), r; } getColVisible(e29) { return this._columnManager.getColVisible(e29); } getHiddenCols(e29, t) { let n = this.getMaxRows() - 1, r = this._columnManager.getHiddenCols(e29, t); return r.forEach((e30) => e30.endRow = n), r; } getVisibleRows() { let e29 = this.getRowCount(); return this._rowManager.getVisibleRows(0, e29 - 1); } getVisibleCols() { let e29 = this.getColumnCount(); return this._columnManager.getVisibleCols(0, e29 - 1); } isRightToLeft() { let { _snapshot: e29 } = this, { rightToLeft: t } = e29; return t; } getLastRowWithContent() { return this._cellData.getRealRowRange().endRow; } getLastColumnWithContent() { return this.getDataRealRange().endColumn; } getDataRealRange() { return this._cellData.getRealRange(); } getDataRangeScope() { return this._cellData.getStartEndScope(); } cellHasValue(e29) { return e29 && (e29.v !== void 0 || e29.f !== void 0 || e29.p !== void 0); } iterateByRow(e29, t = true) { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e29, o = this; return { [Symbol.iterator]: () => { let e30 = n, s = r; return { next() { for (; ; ) { if (s > a && (e30 += 1, s = r), e30 > i) return { done: true, value: void 0 }; let n2 = o.getCell(e30, s), c = !n2, l = o.getMergedCell(e30, s); if (l) { if (e30 !== l.startRow || s !== l.startColumn) { s = l.endColumn + 1; continue; } if (c && t) { s = l.endColumn + 1; continue; } let r2 = { row: e30, col: s, value: n2 }; return r2.colSpan = l.endColumn - l.startColumn + 1, r2.rowSpan = l.endRow - l.startRow + 1, s = l.endColumn + 1, { done: false, value: r2 }; } if (c && t) s += 1; else { let t2 = { row: e30, col: s, value: n2 }; return s += 1, { done: false, value: t2 }; } } } }; } }; } iterateByColumn(e29, t = true, n = true) { let { startRow: r, startColumn: i, endRow: a, endColumn: o } = e29, s = this; return { [Symbol.iterator]: () => { let e30 = r, c = i; return { next() { for (; ; ) { if (e30 > a && (c += 1, e30 = r), c > o) return { done: true, value: void 0 }; let i2 = s.getMergedCell(e30, c); if (i2) { let r2 = e30 !== i2.startRow, a2 = r2 || c !== i2.startColumn; if (n && a2 || !n && r2) { e30 = i2.endRow + 1; continue; } let o2 = s.getCell(i2.startRow, i2.startColumn); if (!o2 && t) { e30 = i2.endRow + 1; continue; } let l2 = { row: e30, col: i2.startColumn, value: o2 }; return l2.colSpan = i2.endColumn - i2.startColumn + 1, l2.rowSpan = i2.endRow - i2.startRow + 1, e30 = i2.endRow + 1, { done: false, value: l2 }; } let l = s.getCell(e30, c); if (!l && t) e30 += 1; else { let t2 = { row: e30, col: c, value: l }; return e30 += 1, { done: false, value: t2 }; } } } }; } }; } getCellDocumentModel(e29, t, n = Tu) { var r; if (!e29) return; let { isDeepClone: i, displayRawFormula: a, ignoreTextRotation: o } = { ...Tu, ...n }, s, c = `document`, l = Jl(t), u = o ? W.tr : l.textRotation || W.tr, d = l.horizontalAlign || W.ht, f = l.verticalAlign || W.vt, p = l.wrapStrategy || W.tb, m = l.paddingData || Gl; if (e29.f && a) s = ql(e29.f.toString(), {}, { verticalAlign: f }), d = W.ht; else if (e29.p) { let { centerAngle: t2, vertexAngle: n2 } = tu(u); s = this._updateConfigAndGetDocumentModel(i ? D.deepClone(e29.p) : e29.p, d, m, { horizontalAlign: d, verticalAlign: f, centerAngle: t2, vertexAngle: n2, wrapStrategy: p, zeroWidthParagraphBreak: 1 }); } else if (e29.v != null) { let n2 = Yl(t); c = $l(n2).fontCache; let r2 = Du(e29); e29.t === tr.FORCE_STRING && a && (r2 = `'${r2}`), s = ql(r2, n2, { ...l, textRotation: u, cellValueType: e29.t }); } return s && e29.linkUrl && e29.linkId && Xl(s, e29.linkUrl, e29.linkId), { documentModel: s, fontString: c, textRotation: u, wrapStrategy: p, verticalAlign: f, horizontalAlign: d, paddingData: m, fill: t == null || (r = t.bg) == null ? void 0 : r.rgb }; } _updateConfigAndGetDocumentModel(e29, t, n, r) { var i, a, o, s, c; if (!r || !((i = e29.body) != null && i.dataStream)) return; e29.documentStyle || (e29.documentStyle = {}), e29.documentStyle.marginTop = (a = n.t) == null ? 0 : a, e29.documentStyle.marginBottom = (o = n.b) == null ? 2 : o, e29.documentStyle.marginLeft = (s = n.l) == null ? 2 : s, e29.documentStyle.marginRight = (c = n.r) == null ? 2 : c, e29.documentStyle.pageSize = { width: 1 / 0, height: 1 / 0 }, e29.documentStyle.renderConfig = { ...e29.documentStyle.renderConfig, ...r }; let l = e29.body.paragraphs || []; for (let e30 of l) e30.paragraphStyle || (e30.paragraphStyle = {}), e30.paragraphStyle.horizontalAlign = t; return new _c(e29); } getBlankCellDocumentModel(e29, t, n) { let r = this.getComposedCellStyleByCellData(t, n, e29), i = Yl(r), a = this.getCellDocumentModel(e29, r, { ignoreTextRotation: true }); if (a != null) return a.documentModel == null && (a.documentModel = ql(``, i)), a; let o = `document`, s = W.tr, c = W.ht, l = W.vt, u = W.tb, d = Gl; return o = $l({}).fontCache, { documentModel: ql(``, i), fontString: o, textRotation: s, wrapStrategy: u, verticalAlign: l, horizontalAlign: c, paddingData: d }; } getCellDocumentModelWithFormula(e29, t, n) { let r = this.getComposedCellStyleByCellData(t, n, e29); return this.getCellDocumentModel(e29, r, { isDeepClone: true, displayRawFormula: true, ignoreTextRotation: true }); } getCustomMetadata() { return this._snapshot.custom; } setCustomMetadata(e29) { this._snapshot.custom = e29; } }; function Du(e29) { var t; if (!e29) return ``; let n = (t = e29.p) == null || (t = t.body) == null ? void 0 : t.dataStream; if (n) return Z.transform.getPlainText(n); let r = e29.v; return typeof r == `string` ? e29.t === tr.BOOLEAN ? r.toUpperCase() : r.replace(/[\r\n]/g, ``) : typeof r == `number` ? e29.t === tr.BOOLEAN ? r ? `TRUE` : `FALSE` : r.toString() : typeof r == `boolean` ? r ? `TRUE` : `FALSE` : ``; } var Au = class extends pn { get _activeSheet() { return this._activeSheet$.getValue(); } get name() { return this._name$.getValue(); } static isIRangeType(e29) { return typeof e29 == `string` || `startRow` in e29 || `row` in e29; } constructor(e29 = {}, t) { super(), this._logService = t, C(this, `type`, O.UNIVER_SHEET), C(this, `_sheetCreated$`, new Subject()), C(this, `sheetCreated$`, this._sheetCreated$.asObservable()), C(this, `_sheetDisposed$`, new Subject()), C(this, `sheetDisposed$`, this._sheetDisposed$.asObservable()), C(this, `_activeSheet$`, new BehaviorSubject(null)), C(this, `activeSheet$`, this._activeSheet$.asObservable()), C(this, `_worksheets`, void 0), C(this, `_styles`, void 0), C(this, `_snapshot`, void 0), C(this, `_unitId`, void 0), C(this, `_count`, void 0), C(this, `_name$`, void 0), C(this, `name$`, void 0); let n = Vl(); D.isEmptyObject(e29) ? this._snapshot = n : this._snapshot = D.commonExtend(n, e29); let { styles: r } = this._snapshot; (this._snapshot.id == null || this._snapshot.id.length === 0) && (this._snapshot.id = O2(6)), this._unitId = this._snapshot.id, this._styles = new Hl(r), this._count = 1, this._worksheets = /* @__PURE__ */ new Map(), this._name$ = new BehaviorSubject(e29.name || ``), this.name$ = this._name$.asObservable(), this._parseWorksheetSnapshots(); } dispose() { super.dispose(), this._sheetCreated$.complete(), this._sheetDisposed$.complete(), this._activeSheet$.complete(), this._name$.complete(), Array.from(this._worksheets.keys()).forEach((e29) => { this._removeSheet(e29); }); } save() { return D.deepClone(this._snapshot); } getSnapshot() { return this._snapshot; } getName() { return this._snapshot.name; } setName(e29) { this._name$.next(e29), this._snapshot.name = e29; } getUnitId() { return this._unitId; } getRev() { var e29; return (e29 = this._snapshot.rev) == null ? 1 : e29; } incrementRev() { this._snapshot.rev = this.getRev() + 1; } setRev(e29) { this._snapshot.rev = e29; } addWorksheet(e29, t, n) { let { sheets: r, sheetOrder: i } = this._snapshot; if (r[e29]) return false; r[e29] = n, i.splice(t, 0, e29), this.ensureSheetOrderUnique(); let a = new Eu(this._unitId, n, this._styles); return this._worksheets.set(e29, a), this._sheetCreated$.next(a), true; } getSheetOrders() { return this._snapshot.sheetOrder; } ensureSheetOrderUnique() { let e29 = /* @__PURE__ */ new Set(), t = []; for (let n of this._snapshot.sheetOrder) e29.has(n) || (e29.add(n), t.push(n)); this._snapshot.sheetOrder = t, e29.clear(); } getWorksheets() { return this._worksheets; } getActiveSpreadsheet() { return this; } getStyles() { return this._styles; } addStyles(e29) { Object.entries(e29).forEach(([e30, t]) => { this._styles.addCustomStyle(e30, t); }); } removeStyles(e29) { e29.forEach((e30) => { this._styles.remove(e30); }); } getConfig() { return this._snapshot; } getIndexBySheetId(e29) { let { sheetOrder: t } = this._snapshot; return t.findIndex((t2) => t2 === e29); } getActiveSheet(e29) { if (!this._activeSheet && e29 === void 0) throw Error(`[Workbook]: no active Worksheet on Workbook ${this._unitId}!`); return this._activeSheet; } ensureActiveSheet() { let e29 = this._activeSheet; if (e29) return e29; let t = this._snapshot.sheetOrder; for (let e30 = 0, n2 = t.length; e30 < n2; e30++) { let n3 = this._worksheets.get(t[e30]); if (n3 && n3.isSheetHidden() !== A.TRUE) return this.setActiveSheet(n3), n3; } let n = this._worksheets.get(t[0]); return this.setActiveSheet(n), n; } setActiveSheet(e29) { this._activeSheet$.next(e29); } _removeSheet(e29) { let t = this._worksheets.get(e29); return t ? (this._worksheets.delete(e29), this._snapshot.sheetOrder.splice(this._snapshot.sheetOrder.indexOf(e29), 1), this.ensureSheetOrderUnique(), this._sheetDisposed$.next(t), true) : false; } removeSheet(e29) { let t = this._removeSheet(e29); return t && delete this._snapshot.sheets[e29], t; } getActiveSheetIndex() { let { sheetOrder: e29 } = this._snapshot; return e29.findIndex((e30) => this._worksheets.get(e30) === this._activeSheet); } getSheetSize() { return this._snapshot.sheetOrder.length; } getSheets() { let { sheetOrder: e29 } = this._snapshot; return e29.map((e30) => this._worksheets.get(e30)); } getSheetsName() { let { sheetOrder: e29 } = this._snapshot, t = []; return e29.forEach((e30) => { let n = this._worksheets.get(e30); n && t.push(n.getName()); }), t; } getSheetIndex(e29) { let { sheetOrder: t } = this._snapshot; return t.findIndex((t2) => e29.getSheetId() === t2); } getSheetBySheetName(e29) { let { sheetOrder: t } = this._snapshot, n = t.find((t2) => this._worksheets.get(t2).getName() === e29); return this._worksheets.get(n); } getSheetBySheetId(e29) { return this._worksheets.get(e29); } getSheetByIndex(e29) { let { sheetOrder: t } = this._snapshot; return this._worksheets.get(t[e29]); } getHiddenWorksheets() { return this.getSheets().filter((e29) => e29.getConfig().hidden === A.TRUE).map((e29) => e29.getConfig().id); } getUnhiddenWorksheets() { return this.getSheets().filter((e29) => e29.getConfig().hidden !== A.TRUE).map((e29) => e29.getConfig().id); } load(e29) { this._snapshot = e29; } checkSheetName(e29) { return this.getSheetsName().some((t) => t.toLowerCase() === e29.toLowerCase()); } uniqueSheetName(e29 = `Sheet1`) { let t = e29; for (; this.checkSheetName(t); ) t = e29 + this._count, this._count++; return t; } generateNewSheetName(e29) { let t = e29 + this._count; for (; this.checkSheetName(t); ) t = e29 + this._count, this._count++; return t; } _parseWorksheetSnapshots() { let { _snapshot: e29, _worksheets: t } = this, { sheets: n, sheetOrder: r } = e29; if (D.isEmptyObject(n)) { let e30 = O2(); n[e30] = { id: e30 }; } for (let e30 in n) { let i = n[e30], { name: a } = i; i.name = this.uniqueSheetName(a), i.name !== a && this._logService.debug(`[Workbook]`, `The worksheet name ${a} is duplicated, we changed it to ${i.name}. Please fix the problem in your snapshot.`); let o = new Eu(this._unitId, i, this._styles); t.set(e30, o), r.includes(e30) || r.push(e30); } this.ensureSheetOrderUnique(), this.ensureActiveSheet(); } getCustomMetadata() { return this._snapshot.custom; } setCustomMetadata(e29) { this._snapshot.custom = e29; } }; Au = z([R2(1, L)], Au); var ju = class extends pn { get _activePage() { let e29 = this._activePage$.getValue(); if (!e29) { var t, n; let e30 = (t = this.getPageOrder()) == null ? void 0 : t[0]; return e30 ? (n = this.getPages()) == null ? void 0 : n[e30] : null; } return e29; } constructor(e29) { var t; super(), C(this, `type`, O.UNIVER_SLIDE), C(this, `_activePage$`, new BehaviorSubject(null)), C(this, `activePage$`, this._activePage$.asObservable()), C(this, `_name$`, void 0), C(this, `name$`, void 0), C(this, `_snapshot`, void 0), C(this, `_unitId`, void 0), this._snapshot = { ..._o, ...e29 }, this._unitId = (t = this._snapshot.id) == null ? O2(6) : t, this._name$ = new BehaviorSubject(this._snapshot.title), this.name$ = this._name$.asObservable(); } setName(e29) { var t; this._snapshot.title = e29, this._name$.next(e29), this._unitId = (t = this._snapshot.id) == null ? O2(6) : t; } getRev() { return 0; } incrementRev() { } setRev(e29) { } getSnapshot() { return this._snapshot; } getUnitId() { return this._unitId; } getPages() { var e29; return (e29 = this._snapshot.body) == null ? void 0 : e29.pages; } getPageOrder() { var e29; return (e29 = this._snapshot.body) == null ? void 0 : e29.pageOrder; } getPage(e29) { let t = this.getPages(); return t == null ? void 0 : t[e29]; } getElementsByPage(e29) { var t; return (t = this.getPage(e29)) == null ? void 0 : t.pageElements; } getElement(e29, t) { var n; return (n = this.getElementsByPage(e29)) == null ? void 0 : n[t]; } getPageSize() { return this._snapshot.pageSize; } getBlankPage() { let e29 = O2(6); return { id: e29, pageType: Lr.SLIDE, zIndex: 10, title: e29, description: ``, pageBackgroundFill: { rgb: `rgb(255,255,255)` }, pageElements: {} }; } setActivePage(e29) { this._activePage$.next(e29); } getActivePage() { return this._activePage; } updatePage(e29, t) { this._snapshot.body && (this._snapshot.body.pages[e29] = t); } appendPage(e29) { var t; if (!this._snapshot.body) return; this._snapshot.body.pages[e29.id] = e29; let n = this._activePage, r = this._snapshot.body.pageOrder.indexOf((t = n == null ? void 0 : n.id) == null ? `` : t); this._snapshot.body.pageOrder.splice(r + 1, 0, e29.id); } }; var Mu = createIdentifier(`univer.current`); var Nu = class extends E { constructor(e29, t, n) { super(), this._injector = e29, this._contextService = t, this._logService = n, C(this, `_unitsByType`, /* @__PURE__ */ new Map()), C(this, `_createHandler`, void 0), C(this, `_ctorByType`, /* @__PURE__ */ new Map()), C(this, `_currentUnits`, /* @__PURE__ */ new Map()), C(this, `_currentUnits$`, new BehaviorSubject(this._currentUnits)), C(this, `currentUnits$`, this._currentUnits$.asObservable()), C(this, `_unitAdded$`, new Subject()), C(this, `unitAdded$`, this._unitAdded$.asObservable()), C(this, `_unitDisposed$`, new Subject()), C(this, `unitDisposed$`, this._unitDisposed$.asObservable()), C(this, `_focused$`, new BehaviorSubject(null)), C(this, `focused$`, this._focused$.asObservable()); } dispose() { super.dispose(), this._focused$.complete(), this._currentUnits$.complete(), this._unitAdded$.complete(), this._currentUnits.forEach((e29) => e29 == null ? void 0 : e29.dispose()), this._currentUnits.clear(), this._unitsByType.clear(); } __setCreateHandler(e29) { this._createHandler = e29; } createUnit(e29, t, n) { return this._createHandler(e29, t, this._ctorByType.get(e29), n); } registerCtorForType(e29, t) { return this._ctorByType.set(e29, t), { dispose: () => { this._ctorByType.delete(e29); } }; } getCurrentTypeOfUnit$(e29) { return this.currentUnits$.pipe(map((t) => { var n; return (n = t.get(e29)) == null ? null : n; }), distinctUntilChanged()); } getCurrentUnitForType(e29) { return this._currentUnits.get(e29); } getCurrentUnitOfType(e29) { return this.getCurrentUnitForType(e29); } setCurrentUnitForType(e29) { let t = this._getUnitById(e29); if (!t) throw Error(`[UniverInstanceService]: no document with unitId ${e29}!`); this._currentUnits.set(t[1], t[0]), this._currentUnits$.next(this._currentUnits); } getTypeOfUnitAdded$(e29) { return this._unitAdded$.pipe(filter((t) => t.type === e29)); } __addUnit(e29, t) { var n; this._logService.debug(`[UniverInstanceService]: Adding unit with id ${e29.getUnitId()}`); let r = e29.type; this._unitsByType.has(r) || this._unitsByType.set(r, []); let i = this._unitsByType.get(r), a = e29.getUnitId(); if (i.findIndex((e30) => e30.getUnitId() === a) !== -1) throw Error(`[UniverInstanceService]: cannot create a unit with the same unit id: ${a}.`); i.push(e29), this._unitAdded$.next(e29), ((n = t == null ? void 0 : t.makeCurrent) == null || n) && this.setCurrentUnitForType(e29.getUnitId()); } getTypeOfUnitDisposed$(e29) { return this.unitDisposed$.pipe(filter((t) => t.type === e29)); } getUnit(e29, t) { var n; let r = (n = this._getUnitById(e29)) == null ? void 0 : n[0]; return t && (r == null ? void 0 : r.type) !== t ? null : r; } getCurrentUniverDocInstance() { return this.getCurrentUnitForType(O.UNIVER_DOC); } getUniverDocInstance(e29) { return this.getUnit(e29, O.UNIVER_DOC); } getUniverSheetInstance(e29) { return this.getUnit(e29, O.UNIVER_SHEET); } getAllUnitsForType(e29) { var t; return (t = this._unitsByType.get(e29)) == null ? [] : t; } changeDoc(e29, t) { let n = this.getAllUnitsForType(O.UNIVER_DOC), r = n.find((t2) => t2.getUnitId() === e29); if (r != null) { let e30 = n.indexOf(r); n.splice(e30, 1); } this.__addUnit(t); } get focused() { var e29; let t = this._focused$.getValue(); return t ? (e29 = this._getUnitById(t)) == null ? void 0 : e29[0] : null; } focusUnit(e29) { this._focused$.next(e29), this.focused instanceof Au ? (this._contextService.setContextValue(vl, true), this._contextService.setContextValue(bl, false), this._contextService.setContextValue(yl, true), this._contextService.setContextValue(xl, false), this.setCurrentUnitForType(e29)) : this.focused instanceof _c ? (this._contextService.setContextValue(vl, true), this._contextService.setContextValue(bl, true), this._contextService.setContextValue(yl, false), this._contextService.setContextValue(xl, false), this.setCurrentUnitForType(e29)) : this.focused instanceof ju ? (this._contextService.setContextValue(vl, true), this._contextService.setContextValue(bl, false), this._contextService.setContextValue(yl, false), this._contextService.setContextValue(xl, true), this.setCurrentUnitForType(e29)) : (this._contextService.setContextValue(vl, false), this._contextService.setContextValue(bl, false), this._contextService.setContextValue(yl, false), this._contextService.setContextValue(xl, false)); } getFocusedUnit() { return this.focused; } getUnitType(e29) { let t = this._getUnitById(e29); return t ? t[1] : O.UNRECOGNIZED; } disposeUnit(e29) { this._logService.debug(`[UniverInstanceService]: Disposing unit with id ${e29}`); let t = this._getUnitById(e29); if (!t) return this._logService.debug(`[UniverInstanceService]: No unit found with id ${e29}`), false; let [n, r] = t, i = this._unitsByType.get(r), a = i.indexOf(n); return i.splice(a, 1), this._tryResetCurrentOnRemoval(e29, r), this._tryResetFocusOnRemoval(e29), this._unitDisposed$.next(n), n.dispose(), true; } _tryResetCurrentOnRemoval(e29, t) { let n = this.getCurrentUnitForType(t); (n == null ? void 0 : n.getUnitId()) === e29 && (this._currentUnits.set(t, null), this._currentUnits$.next(this._currentUnits)); } _tryResetFocusOnRemoval(e29) { var t; ((t = this.focused) == null ? void 0 : t.getUnitId()) === e29 && this._focused$.next(null); } _getUnitById(e29) { for (let [t, n] of this._unitsByType) { let r = n.find((t2) => t2.getUnitId() === e29); if (r) return [r, t]; } } }; Nu = z([R2(0, Inject(Injector)), R2(1, Zr), R2(2, Inject(L))], Nu); var $ = (function(e29) { return e29[e29.Starting = 0] = `Starting`, e29[e29.Ready = 1] = `Ready`, e29[e29.Rendered = 2] = `Rendered`, e29[e29.Steady = 3] = `Steady`, e29; })({}); var Pu = { [$.Starting]: `Starting`, [$.Ready]: `Ready`, [$.Rendered]: `Rendered`, [$.Steady]: `Steady` }; var Fu = class extends Error { constructor(e29) { super(`[LifecycleService]: lifecycle stage "${Pu[e29]}" will never be reached!`), this.name = `LifecycleUnreachableError`; } }; var Iu = class extends E { constructor(e29) { super(), this._logService = e29, C(this, `_lifecycle$`, new BehaviorSubject($.Starting)), C(this, `lifecycle$`, this._lifecycle$.asObservable()), C(this, `_lock`, false), this._reportProgress($.Starting); } get stage() { return this._lifecycle$.getValue(); } set stage(e29) { if (this._lock) throw Error(`[LifecycleService]: cannot set new stage when related logic is all handled!`); if (e29 < this.stage) throw Error(`[LifecycleService]: lifecycle stage cannot go backward!`); e29 !== this.stage && (this._lock = true, this._reportProgress(e29), this._lifecycle$.next(e29), this._lock = false); } dispose() { this._lifecycle$.complete(), super.dispose(); } onStage(e29) { return firstValueFrom(this.lifecycle$.pipe(filter((t) => t >= e29), fi((t) => t === e29), map(() => void 0))).catch((t) => t.name === `EmptyError` ? Promise.reject(new Fu(e29)) : Promise.reject(t)); } subscribeWithPrevious() { return merge2(Lu(this.stage), this._lifecycle$.pipe(skip(1))).pipe(fi((e29) => e29 === $.Steady)); } _reportProgress(e29) { this._logService.debug(`[LifecycleService]`, `lifecycle progressed to "${Pu[e29]}".`); } }; Iu = z([R2(0, L)], Iu); function Lu(e29) { switch (e29) { case $.Starting: return of($.Starting); case $.Ready: return of($.Starting, $.Ready); case $.Rendered: return of($.Starting, $.Ready, $.Rendered); default: return of($.Starting, $.Ready, $.Rendered, $.Steady); } } var Ru = createIdentifier(`ILocalStorageService`); var zu = class extends E { get _currentLocale() { return this._currentLocale$.value; } constructor() { super(), C(this, `_currentLocale$`, new BehaviorSubject(Rn.ZH_CN)), C(this, `currentLocale$`, this._currentLocale$.asObservable()), C(this, `_locales`, null), C(this, `localeChanged$`, new Subject()), C(this, `t`, (e29, ...t) => { if (!this._locales) throw Error(`[LocaleService]: Locale not initialized`); let n = e29.split(`.`), r = this.resolveKeyPath(this._locales[this._currentLocale], n); if (typeof r == `string`) { let e30 = r; return t.forEach((t2, n2) => { e30 = e30.replace(`{${n2}}`, t2); }), e30; } else return e29; }), this.disposeWithMe(T2(() => { this._locales = null, this._currentLocale$.complete(), this.localeChanged$.complete(); })); } load(e29) { var t; this._locales = merge_default((t = this._locales) == null ? {} : t, e29); } setLocale(e29) { this._currentLocale$.next(e29), this.localeChanged$.next(); } getLocales() { var e29; return (e29 = this._locales) == null ? void 0 : e29[this._currentLocale]; } getCurrentLocale() { return this._currentLocale; } resolveKeyPath(e29, t) { let n = t.shift(); if (n && e29 && n in e29) { let r = e29[n]; return t.length > 0 && (typeof r == `object` || Array.isArray(r)) ? this.resolveKeyPath(r, t) : r; } return null; } }; var Bu = class { constructor(e29) { this._userManagerService = e29; } async list(e29) { return { list: [{ type: zn.PERSON, mentions: [{ objectType: zn.PERSON, objectId: this._userManagerService.getCurrentUser().userID, label: this._userManagerService.getCurrentUser().name, metadata: { icon: this._userManagerService.getCurrentUser().avatar } }], metadata: {}, title: `PEOPLE` }], page: e29.page, size: e29.size, total: 1 }; } }; Bu = z([R2(0, Inject(pl))], Bu); var Vu = createIdentifier(`univer.service.mention-io`); var Hu = (function(e29) { return e29.INIT = `init`, e29.FETCHING = `fetching`, e29.DONE = `done`, e29; })({}); var Uu = createIdentifier(`univer.permission-service`); function Gu(e29, t) { if (!t) return e29; let n = []; for (let r of e29) { let e30 = t.find(([e31]) => e31 === r[0]); if (e30) { if (e30[1] === null) continue; n.push([r[0], e30[1]]); } else n.push(r); } return n; } var Ku = /* @__PURE__ */ Symbol(`DependentOn`); var qu = class extends E { onStarting() { } onReady() { } onRendered() { } onSteady() { } getUnitType() { return this.constructor.type; } getPluginName() { return this.constructor.pluginName; } }; C(qu, `pluginName`, void 0), C(qu, `packageName`, zl), C(qu, `version`, Bl), C(qu, `type`, O.UNIVER_UNKNOWN); var Ju = class { constructor() { C(this, `_plugins`, []); } addPlugin(e29) { this._plugins.push(e29); } removePlugins() { let e29 = this._plugins.slice(); return this._plugins.length = 0, e29; } forEachPlugin(e29) { this._plugins.forEach(e29); } }; function Yu(...e29) { return function(t) { t[Ku] = e29; }; } var Xu = class { constructor(e29, t, n) { this._injector = e29, this._lifecycleService = t, this._logService = n, C(this, `_pluginRegistry`, /* @__PURE__ */ new Map()), C(this, `_pluginStore`, new Ju()), C(this, `_seenPlugins`, /* @__PURE__ */ new Set()), C(this, `_loadedPlugins`, /* @__PURE__ */ new Set()), C(this, `_loadedPluginTypes`, /* @__PURE__ */ new Set([O.UNIVER_UNKNOWN])), C(this, `_flushTimerByType`, /* @__PURE__ */ new Map()); } dispose() { this._pluginStore.removePlugins().forEach((e29) => e29.dispose()), this._flushTimerByType.forEach((e29) => clearTimeout(e29)); } registerPlugin(e29, t) { this._assertPluginValid(e29); let n = { plugin: e29, options: t }; this._pluginRegistry.set(e29.pluginName, n), this._logService.debug(`[PluginService]`, `Plugin "${e29.pluginName}" registered.`); let { type: r } = e29; this._loadedPluginTypes.has(r) && (r === O.UNIVER_UNKNOWN ? this._loadFromPlugins([n]) : this._flushType(r)); } startPluginsForType(e29) { this._loadedPluginTypes.has(e29) || this._loadPluginsForType(e29); } _loadPluginsForType(e29) { let t = Array.from(this._pluginRegistry.keys()), n = []; t.forEach((t2) => { let r = this._pluginRegistry.get(t2); r.plugin.type === e29 && n.push(r); }), this._loadFromPlugins(n), this._loadedPluginTypes.add(e29); } _assertPluginValid(e29) { let { type: t, pluginName: n, packageName: r, version: i } = e29; if (t === O.UNRECOGNIZED) throw Error(`[PluginService]: invalid plugin type for ${e29.name}. Please assign a "type" to your plugin.`); if (!n) throw Error(`[PluginService]: no plugin name for ${e29.name}. Please assign a "pluginName" to your plugin.`); if (i && i !== qu.version) throw Error(`[PluginService]: package "${r == null ? `UNKNOWN` : r}" version mismatch. Plugin version is "${i}" but @univerjs/core version is "${qu.version}". Please make sure all @univerjs packages use the same version.`); if (this._seenPlugins.has(n)) throw Error(`[PluginService]: duplicated plugin name for "${n}". Maybe a plugin that dependents on "${n} has already registered it. In that case please register "${n}" before the that plugin.`); this._seenPlugins.add(e29.pluginName); } _flushType(e29) { this._flushTimerByType.get(e29) === void 0 && this._flushTimerByType.set(e29, setTimeout(() => { this._loadPluginsForType(e29), this._flushTimerByType.delete(e29); }, 4)); } _loadFromPlugins(e29) { let t = [], n = /* @__PURE__ */ new Set(), r = (e30) => { let { plugin: i2 } = e30, { pluginName: a } = i2; if (this._loadedPlugins.has(a) || n.has(a)) return; n.add(a), this._pluginRegistry.delete(a); let o = i2[Ku]; o && o.forEach((e31) => { let t2 = this._pluginRegistry.get(e31.pluginName); if (t2) r(t2); else if (!this._seenPlugins.has(e31.pluginName) && !n.has(e31.pluginName)) { if (i2.type === O.UNIVER_UNKNOWN && e31.type !== O.UNIVER_UNKNOWN) throw Error(`[PluginService]: cannot register a plugin with Univer type that depends on a plugin with other type. The dependent is ${i2.pluginName} and the dependency is ${e31.pluginName}.`); i2.type !== e31.type && e31.type !== O.UNIVER_UNKNOWN && this._logService.debug(`[PluginService]`, `Plugin "${a}" depends on "${e31.pluginName}" which has different type.`), this._logService.debug(`[PluginService]`, `Plugin "${a}" depends on "${e31.pluginName}" which is not registered. Univer will automatically register it with default configuration.`), this._assertPluginValid(e31), r({ plugin: e31, options: void 0 }); } }), t.push(e30); }; e29.forEach((e30) => r(e30)); let i = t.map((e30) => this._initPlugin(e30.plugin, e30.options)); this._pluginsRunLifecycle(i); } _pluginsRunLifecycle(e29) { let t = this._lifecycleService.stage; if (Lu(t).subscribe((t2) => this._runStage(e29, t2)), t !== $.Steady) { let t2 = this._lifecycleService.lifecycle$.pipe(skip(1)).subscribe((n) => { this._runStage(e29, n), n === $.Steady && t2.unsubscribe(); }); } } _runStage(e29, t) { e29.forEach((e30) => { switch (t) { case $.Starting: e30.onStarting(); break; case $.Ready: e30.onReady(); break; case $.Rendered: e30.onRendered(); break; case $.Steady: e30.onSteady(); break; } }); } _initPlugin(e29, t) { let n = this._injector.createInstance(e29, t); return this._pluginStore.addPlugin(n), this._loadedPlugins.add(e29.pluginName), this._logService.debug(`[PluginService]`, `Plugin "${n.getPluginName()}" loaded.`), n; } }; Xu = z([R2(0, Inject(Injector)), R2(1, Inject(Iu)), R2(2, L)], Xu); var Zu = createIdentifier(`resource-loader-service`); var Qu = class extends E { constructor(e29) { super(), this._logService = e29, C(this, `_resourceMap`, /* @__PURE__ */ new Map()), C(this, `_register$`, new Subject()), C(this, `register$`, this._register$.asObservable()); } getAllResourceHooks() { return [...this._resourceMap.values()]; } getResources(e29, t) { return t ? this.getResourcesByType(e29, t) : this.getAllResourceHooks().map((t2) => { let n = t2.toJson(e29); return { name: t2.pluginName, data: n }; }); } getResourcesByType(e29, t) { return this.getAllResourceHooks().filter((e30) => e30.businesses.includes(t)).map((t2) => { let n = t2.toJson(e29); return { name: t2.pluginName, data: n }; }); } registerPluginResource(e29) { let t = e29.pluginName; if (this._resourceMap.has(t)) throw Error(`the pluginName is registered {${t}}`); return this._resourceMap.set(t, e29), this._register$.next(e29), T2(() => this._resourceMap.delete(t)); } disposePluginResource(e29) { this._resourceMap.delete(e29); } loadResources(e29, t) { this.getAllResourceHooks().forEach((n) => { var r; let i = t == null || (r = t.find((e30) => e30.name === n.pluginName)) == null ? void 0 : r.data; if (i) try { let t2 = n.parseJson(i); n.onLoad(e29, t2); } catch (e30) { this._logService.error(`[ResourceManagerService]`, `loadResources error`, e30); } }); } unloadResources(e29, t) { this.getAllResourceHooks().filter((e30) => e30.businesses.includes(t)).forEach((t2) => { t2.onUnLoad(e29); }); } dispose() { this._register$.complete(), this._resourceMap.clear(); } }; Qu = z([R2(0, L)], Qu); var ed = (function(e29) { return e29[e29.WAITING = 0] = `WAITING`, e29[e29.CREATED = 1] = `CREATED`, e29; })(ed || {}); var td = createIdentifier(`univer.undo-redo.service`); var nd = class { dispose() { } async dispatchToHandlers() { return false; } }; var rd = `univer.command.redo`; var id = `univer.command.undo`; var ad = new class extends nd { constructor(...e29) { super(...e29), C(this, `type`, ri.COMMAND), C(this, `id`, id); } handler(e29) { let t = e29.get(td), n = t.pitchTopUndoElement(); if (!n) return false; let r = e29.get(ii); return li(n.undoMutations, r) ? (t.popUndoToRedo(), true) : false; } }(); var od = new class extends nd { constructor(...e29) { super(...e29), C(this, `type`, ri.COMMAND), C(this, `id`, rd); } handler(e29) { let t = e29.get(td), n = t.pitchTopRedoElement(); if (!n) return false; let r = e29.get(ii); return li(n.redoMutations, r) ? (t.popRedoToUndo(), true) : false; } }(); var sd = class extends E { constructor(e29, t, n) { super(), this._univerInstanceService = e29, this._commandService = t, this._contextService = n, C(this, `undoRedoStatus$`, void 0), C(this, `_undoRedoStatus$`, new BehaviorSubject({ undos: 0, redos: 0 })), C(this, `_undoStacks`, /* @__PURE__ */ new Map()), C(this, `_redoStacks`, /* @__PURE__ */ new Map()), C(this, `_batchingStatus`, /* @__PURE__ */ new Map()), this.undoRedoStatus$ = this._undoRedoStatus$.asObservable(), this.disposeWithMe(this._commandService.registerCommand(ad)), this.disposeWithMe(this._commandService.registerCommand(od)), this.disposeWithMe(T2(() => this._undoRedoStatus$.complete())), this.disposeWithMe(T2(this._univerInstanceService.focused$.subscribe(() => this._updateStatus()))); } pushUndoRedo(e29) { let { unitID: t } = e29, n = this._getRedoStack(t, true), r = this._getUndoStack(t, true); if (n.length = 0, this._batchingStatus.has(e29.unitID)) { let t2 = this._batchingStatus.get(e29.unitID), n2 = this._pitchUndoElement(e29.unitID); t2 === ed.WAITING || !n2 ? (i(e29), this._batchingStatus.set(e29.unitID, ed.CREATED)) : this._tryBatchingElements(n2, e29); } else i(e29); function i(e30) { r.push(e30), r.length > 20 && r.splice(0, 1); } this._updateStatus(); } clearUndoRedo(e29) { let t = this._getRedoStack(e29); t && (t.length = 0); let n = this._getUndoStack(e29); n && (n.length = 0), this._updateStatus(); } pitchTopUndoElement() { let e29 = this._getFocusedUnitId(); return this._pitchUndoElement(e29); } pitchTopRedoElement() { let e29 = this._getFocusedUnitId(); return this._pitchRedoElement(e29); } _pitchUndoElement(e29) { let t = this._getUndoStack(e29); return t != null && t.length ? t[t.length - 1] : null; } _pitchRedoElement(e29) { let t = this._getRedoStack(e29); return t != null && t.length ? t[t.length - 1] : null; } popUndoToRedo() { let e29 = this._getUndoStackForFocused().pop(); e29 && (e29.redoMutations.length > 0 && this._getRedoStackForFocused().push(e29), this._updateStatus()); } popRedoToUndo() { let e29 = this._getRedoStackForFocused().pop(); e29 && (this._getUndoStackForFocused().push(e29), this._updateStatus()); } rollback(e29, t) { let n = t || this._getFocusedUnitId(), r = this._getUndoStack(n), i = r == null ? void 0 : r[(r == null ? void 0 : r.length) - 1]; i && i.id === e29 && (r.pop(), li(i.undoMutations, this._commandService)); } __tempBatchingUndoRedo(e29) { if (this._batchingStatus.has(e29)) throw Error(`[LocalUndoRedoService]: cannot batching undo redo twice at the same time!`); return this._batchingStatus.set(e29, ed.WAITING), T2(() => this._batchingStatus.delete(e29)); } _updateStatus() { var e29, t; let n = this._getFocusedUnitId(), r = n && ((e29 = this._undoStacks.get(n)) == null ? void 0 : e29.length) || 0, i = n && ((t = this._redoStacks.get(n)) == null ? void 0 : t.length) || 0; this._undoRedoStatus$.next({ undos: r, redos: i }); } _getUndoStack(e29, t = false) { let n = this._undoStacks.get(e29); return !n && t && (n = [], this._undoStacks.set(e29, n)), n || null; } _getRedoStack(e29, t = false) { let n = this._redoStacks.get(e29); return !n && t && (n = [], this._redoStacks.set(e29, n)), n || null; } _getUndoStackForFocused() { let e29 = this._getFocusedUnitId(); if (!e29) throw Error(`No focused univer instance!`); return this._getUndoStack(e29, true); } _getRedoStackForFocused() { let e29 = this._getFocusedUnitId(); if (!e29) throw Error(`No focused univer instance!`); return this._getRedoStack(e29, true); } _tryBatchingElements(e29, t) { e29.redoMutations.push(...t.redoMutations), e29.undoMutations.push(...t.undoMutations); } _getFocusedUnitId() { let e29 = ``, t = this._contextService.getContextValue(yl), n = this._contextService.getContextValue(Tl), r = this._contextService.getContextValue(Cl); if (t) if (n) e29 = ft; else if (r) e29 = dt; else { var i, a; e29 = (i = (a = this._univerInstanceService.getFocusedUnit()) == null ? void 0 : a.getUnitId()) == null ? `` : i; } else { var o, s; e29 = (o = (s = this._univerInstanceService.getFocusedUnit()) == null ? void 0 : s.getUnitId()) == null ? `` : o; } return e29; } }; sd = z([R2(0, Mu), R2(1, ii), R2(2, Zr)], sd); var cd = class { constructor(e29, t = 1e3) { this._injector = e29, C(this, `_imageCacheMap`, void 0), this._imageCacheMap = new so(t); } _getImageCacheKey(e29, t) { return `${e29}-${t}`; } getImage(e29, t, n, r) { let i = this._getImageCacheKey(e29, t); return this._imageCacheMap.get(i) || ((async () => { let a = new Image(), o = this._injector.has(Ll) ? this._injector.get(Ll) : null, s = this._injector.has(Rl) ? this._injector.get(Rl) : null; if (e29 === Fl.UUID) try { a.src = await (o == null ? void 0 : o.getImage(t)) || ``; } catch (e30) { console.error(e30); } else if (e29 === Fl.URL) try { a.src = await (s == null ? void 0 : s.getImage(t)) || t; } catch { a.src = t; } else a.src = t; a.onload = () => { a.removeAttribute(`data-error`), n == null || n(); }, a.onerror = () => { a.setAttribute(`data-error`, `true`), r == null || r(); }, this._imageCacheMap.set(i, a); })(), null); } }; var dd = class { constructor(e29 = false) { this._enableOneCellCache = e29, C(this, `_tree`, /* @__PURE__ */ new Map()), C(this, `_oneCellCache`, /* @__PURE__ */ new Map()), C(this, `_kdTree`, /* @__PURE__ */ new Map()); } dispose() { this.clear(); } getTree(e29, t) { return this._tree.has(e29) || this._tree.set(e29, /* @__PURE__ */ new Map()), this._tree.get(e29).has(t) || this._tree.get(e29).set(t, new RBush()), this._tree.get(e29).get(t); } _getOneCellCache(e29, t, n, r) { return this._oneCellCache.has(e29) || this._oneCellCache.set(e29, /* @__PURE__ */ new Map()), this._oneCellCache.get(e29).has(t) || this._oneCellCache.get(e29).set(t, /* @__PURE__ */ new Map()), this._oneCellCache.get(e29).get(t).has(n) || this._oneCellCache.get(e29).get(t).set(n, /* @__PURE__ */ new Map()), this._oneCellCache.get(e29).get(t).get(n).has(r) || this._oneCellCache.get(e29).get(t).get(n).set(r, /* @__PURE__ */ new Set()), this._oneCellCache.get(e29).get(t).get(n).get(r); } _removeOneCellCache(e29, t, n, r, i) { let a = this._oneCellCache.get(e29); if (!a) return; let o = a.get(t); if (!o) return; let s = o.get(n); if (!s) return; let c = s.get(r); c && c.delete(i); } _removeCellCacheByRange(e29) { let { unitId: t, sheetId: n, range: r, id: i } = e29, a = this._oneCellCache.get(t); if (!a) return; let o = a.get(n); if (!o) return; let { startRow: s, startColumn: c, endRow: l, endColumn: u } = r; for (let e30 = s; e30 <= l; e30++) { let t2 = o.get(e30); if (t2) for (let e31 = c; e31 <= u; e31++) { let n2 = t2.get(e31); n2 && n2.delete(i); } } } _insertOneCellCache(e29, t, n, r, i) { this._getOneCellCache(e29, t, n, r).add(i); } _getRdTreeItems(e29) { let t = []; for (let [n, r] of e29) for (let [e30, i] of r) t.push({ x: e30, y: n, ids: i }); return t; } _searchByOneCellCache(e29) { var t; let { unitId: n, sheetId: r, range: i } = e29, { startRow: a, startColumn: o, endRow: s, endColumn: c } = i, l = (t = this._kdTree.get(n)) == null ? void 0 : t.get(r); if (!l) return []; let { tree: u, items: d } = l, f = u.range(o, a, c, s), p = []; for (let e30 of f) { let t2 = d[e30]; p.push(...Array.from(t2.ids)); } return p; } openKdTree() { for (let [t, n] of this._oneCellCache) { this._kdTree.has(t) || this._kdTree.set(t, /* @__PURE__ */ new Map()); for (let [r, i] of n) { var e29; let n2 = this._getRdTreeItems(i), a = new KDBush(n2.length); (e29 = this._kdTree.get(t)) == null || e29.set(r, { tree: a, items: n2 }); for (let e30 of n2) a.add(e30.x, e30.y); a.finish(); } } } closeKdTree() { for (let [t, n] of this._oneCellCache) for (let [r, i] of n) { var e29; (e29 = this._kdTree.get(t)) == null || e29.set(r, void 0); } } insert(e29) { let { unitId: t, sheetId: n, range: r, id: i } = e29; if (!t || t.length === 0) return; let { startRow: a, endRow: o, startColumn: s, endColumn: c } = r; if (this._enableOneCellCache && a === o && s === c) { this._insertOneCellCache(t, n, a, s, i); return; } let l = this.getTree(t, n); Number.isNaN(a) && (a = 0), Number.isNaN(s) && (s = 0), Number.isNaN(o) && (o = 1 / 0), Number.isNaN(c) && (c = 1 / 0), l.insert({ minX: s, minY: a, maxX: c, maxY: o, id: i }); } bulkInsert(e29) { for (let t of e29) this.insert(t); } *searchGenerator(e29) { var t; let { unitId: n, sheetId: r, range: i } = e29; if (this._enableOneCellCache) { let t2 = this._searchByOneCellCache(e29); for (let e30 of t2) yield e30; } let a = (t = this._tree.get(n)) == null ? void 0 : t.get(r); if (!a) return; let o = a.search({ minX: i.startColumn, minY: i.startRow, maxX: i.endColumn, maxY: i.endRow }); for (let e30 of o) yield e30.id; } bulkSearch(e29, t) { let n = /* @__PURE__ */ new Set(); for (let r of e29) for (let e30 of this.searchGenerator(r)) (t == null ? void 0 : t.has(e30)) !== true && n.add(e30); return n; } removeById(e29, t) { if (t) { var n, r; (n = this._tree.get(e29)) == null || n.delete(t), (r = this._oneCellCache.get(e29)) == null || r.delete(t); } else this._tree.delete(e29), this._oneCellCache.delete(e29); } _removeRTreeItem(e29) { let { unitId: t, sheetId: n, range: r, id: i } = e29, a = this.getTree(t, n), o = a.search({ minX: r.startColumn, minY: r.startRow, maxX: r.endColumn, maxY: r.endRow }); for (let e30 = 0; e30 < o.length; e30++) o[e30].id === i && a.remove(o[e30]); } remove(e29) { let { unitId: t, sheetId: n, range: r, id: i } = e29, { startRow: a, startColumn: o, endRow: s, endColumn: c } = r; this._enableOneCellCache ? a === s && o === c ? this._removeOneCellCache(t, n, r.startRow, r.startColumn, i) : (this._removeCellCacheByRange(e29), this._removeRTreeItem(e29)) : this._removeRTreeItem(e29); } bulkRemove(e29) { for (let t of e29) this.remove(t); } clear() { this._tree.clear(), this._oneCellCache.clear(); } toJSON() { let e29 = {}; return this._tree.forEach((t, n) => { e29[n] = {}, t.forEach((t2, r) => { e29[n][r] = t2.toJSON(); }); }), e29; } fromJSON(e29) { this._tree.clear(); for (let t in e29) { this._tree.set(t, /* @__PURE__ */ new Map()); for (let n in e29[t]) { let r = new RBush(); r.fromJSON(e29[t][n]), this._tree.get(t).set(n, r); } } } }; var md = class extends E { constructor(e29) { super(), this._localeService = e29, C(this, `_fontLocale`, void 0), C(this, `_dirty`, true), this._localeInitial(); } get dirty() { return this._dirty; } getFontLocale() { return this._fontLocale; } makeDirty(e29) { this._dirty = e29; } dispose() { super.dispose(), this._fontLocale = null; } _localeInitial() { } }; md = z([R2(0, Inject(zu))], md); var hd = class extends md { constructor(e29, t, n, r, i, a) { super(n), this.worksheet = e29, this._styles = t, this._contextService = r, this._configService = i, this._injector = a, C(this, `_worksheetData`, void 0), C(this, `_renderRawFormula`, false), C(this, `_cellData`, void 0), C(this, `_imageCacheMap`, void 0), C(this, `_skipAutoHeightForMergedCells`, true), C(this, `_rowTotalHeight`, 0), C(this, `_columnTotalWidth`, 0), C(this, `_rowHeaderWidth`, 0), C(this, `_columnHeaderHeight`, 0), C(this, `_rowHeightAccumulation`, []), C(this, `_columnWidthAccumulation`, []), C(this, `_marginTop`, 0), C(this, `_marginLeft`, 0), C(this, `_scaleX`, void 0), C(this, `_scaleY`, void 0), C(this, `_scrollX`, void 0), C(this, `_scrollY`, void 0), this._worksheetData = this.worksheet.getConfig(), this._cellData = this.worksheet.getCellMatrix(), this._imageCacheMap = new cd(this._injector), this.initConfig(); } initConfig() { var e29, t; this._skipAutoHeightForMergedCells = !((e29 = this._configService.getConfig(_t)) != null && e29), this.worksheet.setIsRowStylePrecedeColumnStyle((t = this._configService.getConfig(`isRowStylePrecedeColumnStyle`)) == null ? false : t); } resetCache() { } getWorksheetConfig() { return this._worksheetData; } getLocation() { return [this.worksheet.getUnitId(), this.worksheet.getSheetId()]; } set columnHeaderHeight(e29) { this._columnHeaderHeight = e29, this._worksheetData.columnHeader.height = e29; } set rowHeaderWidth(e29) { this._rowHeaderWidth = e29, this._worksheetData.rowHeader.width = e29; } get rowHeightAccumulation() { return this._rowHeightAccumulation; } get rowTotalHeight() { return this._rowTotalHeight; } get columnWidthAccumulation() { return this._columnWidthAccumulation; } get columnTotalWidth() { return this._columnTotalWidth; } get rowHeaderWidth() { return this._rowHeaderWidth; } get columnHeaderHeight() { return this._columnHeaderHeight; } setMarginLeft(e29) { this._marginLeft = e29; } setMarginTop(e29) { this._marginTop = e29; } setScale(e29, t) { this._updateLayout(), this._scaleX = e29, this._scaleY = t || e29, this._updateLayout(); } setScroll(e29, t) { D.isDefine(e29) && (this._scrollX = e29), D.isDefine(t) && (this._scrollY = t); } get scrollX() { return this._scrollX; } get scrollY() { return this._scrollY; } get scaleX() { return this._scaleX; } get scaleY() { return this._scaleY; } get rowHeaderWidthAndMarginLeft() { return this.rowHeaderWidth + this._marginLeft; } get columnHeaderHeightAndMarginTop() { return this.columnHeaderHeight + this._marginTop; } get imageCacheMap() { return this._imageCacheMap; } _generateRowMatrixCache(e29, t, n) { let r = 0, i = [], a = t; for (let t2 = 0; t2 < e29; t2++) { let e30 = n; if (this.worksheet.getRowFiltered(t2)) e30 = 0; else if (a[t2] != null) { let r2 = a[t2]; if (!r2) continue; let { h: i2 = n, ah: o, ia: s } = r2; e30 = (s == null || s === A.TRUE) && typeof o == `number` && o > 0 ? o : i2, r2.hd === A.TRUE && (e30 = 0); } r += e30, i.push(r); } return { rowTotalHeight: r, rowHeightAccumulation: i }; } _generateColumnMatrixCache(e29, t, n) { let r = 0, i = [], a = t; for (let t2 = 0; t2 < e29; t2++) { let e30 = n; if (a[t2] != null) { let n2 = a[t2]; if (!n2) continue; n2.w != null && (e30 = n2.w), n2.hd === A.TRUE && (e30 = 0); } r += e30, i.push(r); } return { columnTotalWidth: r, columnWidthAccumulation: i }; } intersectMergeRange(e29, t) { return !!this.worksheet.getMergedCell(e29, t); } _getOverflowBound(e29, t, n, r, i = Yn.LEFT) { let a = 0; if (t > n) { let o = this._columnWidthAccumulation.length - 1; for (let s = t; s >= n; s--) { let n2 = s; if (!Da(this.worksheet.getCell(e29, n2)) && n2 !== t || this.intersectMergeRange(e29, n2)) return n2 === t ? n2 : n2 + 1 > o ? o : n2 + 1; let { startX: c, endX: l } = vd(e29, n2, this.rowHeightAccumulation, this.columnWidthAccumulation); if (i === Yn.CENTER && n2 === t ? a += (l - c) / 2 : a += l - c, r < a) return n2; } return t; } for (let o = t; o <= n; o++) { let n2 = o; if (!Da(this.worksheet.getCell(e29, n2)) && n2 !== t || this.intersectMergeRange(e29, n2)) return n2 === t ? n2 : n2 - 1 < 0 ? 0 : n2 - 1; let { startX: s, endX: c } = vd(e29, n2, this.rowHeightAccumulation, this.columnWidthAccumulation); if (i === Yn.CENTER && n2 === t ? a += (c - s) / 2 : a += c - s, r < a) return n2; } return n; } _updateLayout() { if (!this.dirty) return; let { rowData: e29, columnData: t, defaultRowHeight: n, defaultColumnWidth: r, rowCount: i, columnCount: a, rowHeader: o, columnHeader: s } = this._worksheetData, { rowTotalHeight: c, rowHeightAccumulation: l } = this._generateRowMatrixCache(i, e29, n), { columnTotalWidth: u, columnWidthAccumulation: d } = this._generateColumnMatrixCache(a, t, r); this._rowHeaderWidth = o.hidden === A.TRUE ? 0 : this._dynamicallyUpdateRowHeaderWidth(o), this._columnHeaderHeight = s.hidden === A.TRUE ? 0 : s.height, this._rowTotalHeight = c, this._rowHeightAccumulation = l, this._columnTotalWidth = u, this._columnWidthAccumulation = d, this.makeDirty(false); } calculate() { return this.resetCache(), this._updateLayout(), this; } resetRangeCache(e29) { } _dynamicallyUpdateRowHeaderWidth(e29) { let t = `${this.worksheet.getRowCount()}`.length * 8; return Math.max(e29.width, t); } _hasUnMergedCellInRow(e29, t, n) { if (!this.worksheet.getMergeData()) return false; for (let r = t; r <= n; r++) { let { isMerged: t2, isMergedMainCell: n2 } = this.worksheet.getCellInfoInMergeData(e29, r); if (!t2 && !n2) return true; } return false; } expandRangeByMerge(e29, t) { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e29, o = this._worksheetData.mergeData; if (!o) return { startRow: n, startColumn: r, endRow: i, endColumn: a }; let s = true, c = new Sa(), l = 0, u = null; for (; s; ) { s = false; for (let e30 = 0; e30 < o.length; e30++) { let { startRow: t2, startColumn: d, endRow: f, endColumn: p } = o[e30]; if (c.getValue(t2, d)) continue; let m = { startColumn: r, startRow: n, endColumn: a, endRow: i }, h = { startColumn: d, startRow: t2, endColumn: p, endRow: f }; Po(m, h) && (n = Math.min(n, t2), r = Math.min(r, d), i = Math.max(i, f), a = Math.max(a, p), c.setValue(t2, d, true), s = true, l++, u = h); } } return t && l === 1 && G.contains(u, e29) ? { startRow: u.startRow, startColumn: u.startColumn, endRow: u.startRow, endColumn: u.startColumn } : { startRow: n, startColumn: r, endRow: i, endColumn: a }; } getColumnCount() { return this._columnWidthAccumulation.length; } getRowCount() { return this._rowHeightAccumulation.length; } _getCellMergeInfo(e29, t) { return this.worksheet.getCellInfoInMergeData(e29, t); } getNoMergeCellPositionByIndex(e29, t, n = true) { return this.getNoMergeCellWithCoordByIndex(e29, t, n); } getNoMergeCellWithCoordByIndex(e29, t, n = true) { let { rowHeightAccumulation: r, columnWidthAccumulation: i, rowHeaderWidthAndMarginLeft: a, columnHeaderHeightAndMarginTop: o } = this, { startY: s, endY: c, startX: l, endX: u } = vd(e29, t, r, i); return n && (s += o, c += o, l += a, u += a), { startY: s, endY: c, startX: l, endX: u }; } getNoMergeCellPositionByIndexWithNoHeader(e29, t) { let { rowHeightAccumulation: n, columnWidthAccumulation: r } = this, { startY: i, endY: a, startX: o, endX: s } = vd(e29, t, n, r); return { startY: i, endY: a, startX: o, endX: s }; } getRowIndexByOffsetY(e29, t, n, r) { let { rowHeightAccumulation: i } = this; e29 = bd(e29, t, n, this.columnHeaderHeightAndMarginTop); let a = bi(i, e29, r == null ? void 0 : r.firstMatch); if (r != null && r.closeFirst) { var o; Math.abs(i[a] - e29) < Math.abs(e29 - ((o = i[a - 1]) == null ? 0 : o)) && (a += 1); } return a; } getColumnIndexByOffsetX(e29, t, n, r) { let i = yd(e29, t, n, this.rowHeaderWidthAndMarginLeft), { columnWidthAccumulation: a } = this, o = bi(a, i, r == null ? void 0 : r.firstMatch); if (r != null && r.closeFirst) { var s; Math.abs(a[o] - i) < Math.abs(i - ((s = a[o - 1]) == null ? 0 : s)) && (o += 1); } return o; } getCellIndexByOffset(e29, t, n, r, i, a) { return { row: this.getRowIndexByOffsetY(t, r, i, a), column: this.getColumnIndexByOffsetX(e29, n, i, a) }; } getCellByOffset(e29, t, n, r, i) { var a; let o = (a = this) == null ? void 0 : a.getCellIndexByOffset(e29, t, n, r, i, { firstMatch: true }); return o ? this.worksheet.getCellInfoInMergeData(o.row, o.column) : null; } getCellWithCoordByIndex(e29, t, n = true) { var r; let { rowHeightAccumulation: i, columnWidthAccumulation: a, rowHeaderWidthAndMarginLeft: o, columnHeaderHeightAndMarginTop: s } = this, c = vd(e29, t, i, a, (r = this.worksheet) == null ? void 0 : r.getCellInfoInMergeData(e29, t)), { isMerged: l, isMergedMainCell: u } = c, { startY: d, endY: f, startX: p, endX: m, mergeInfo: h } = c, g2 = o, _2 = s; return n === false && (g2 = 0, _2 = 0), d += _2, f += _2, p += g2, m += g2, h.startY += _2, h.endY += _2, h.startX += g2, h.endX += g2, { actualRow: e29, actualColumn: t, startX: p, startY: d, endX: m, endY: f, isMerged: l, isMergedMainCell: u, mergeInfo: h }; } getCellWithCoordByOffset(e29, t, n, r, i, a) { let { row: o, column: s } = this.getCellIndexByOffset(e29, t, n, r, i, a); return this.getCellWithCoordByIndex(o, s); } getOffsetByColumn(e29) { let { columnWidthAccumulation: t, rowHeaderWidthAndMarginLeft: n } = this, r = t.length - 1, i = t[e29]; return i == null ? e29 < 0 ? n : t[r] + n : i + n; } getOffsetByRow(e29) { let { rowHeightAccumulation: t, columnHeaderHeightAndMarginTop: n } = this, r = t.length - 1, i = t[e29]; return i == null ? e29 < 0 ? n : t[r] + n : i + n; } getOffsetRelativeToRowCol(e29, t) { let n = bi(this.columnWidthAccumulation, e29), r = 0; r = n === 0 ? e29 : e29 - this._columnWidthAccumulation[n - 1]; let i = bi(this.rowHeightAccumulation, t), a = 0; return a = i === 0 ? t : t - this._rowHeightAccumulation[i - 1], { row: i, column: n, columnOffset: r, rowOffset: a }; } _updateConfigAndGetDocumentModel(e29, t, n, r) { var i, a, o, s, c; if (!r || !((i = e29.body) != null && i.dataStream)) return; e29.documentStyle || (e29.documentStyle = {}), e29.documentStyle.marginTop = (a = n.t) == null ? 0 : a, e29.documentStyle.marginBottom = (o = n.b) == null ? 2 : o, e29.documentStyle.marginLeft = (s = n.l) == null ? 2 : s, e29.documentStyle.marginRight = (c = n.r) == null ? 2 : c, e29.documentStyle.pageSize = { width: 1 / 0, height: 1 / 0 }, e29.documentStyle.renderConfig = { ...e29.documentStyle.renderConfig, ...r }; let l = e29.body.paragraphs || []; for (let e30 of l) e30.paragraphStyle || (e30.paragraphStyle = {}), e30.paragraphStyle.horizontalAlign = t; return new _c(e29); } dispose() { super.dispose(), this._rowHeightAccumulation = [], this._columnWidthAccumulation = [], this._rowTotalHeight = 0, this._columnTotalWidth = 0, this._rowHeaderWidth = 0, this._columnHeaderHeight = 0, this._worksheetData = null, this._cellData = null, this._styles = null, this.worksheet = null; } }; hd = z([R2(2, Inject(zu)), R2(3, Zr), R2(4, Yr), R2(5, Inject(Injector))], hd); function gd(e29, t, n, r) { let i = e29 - 1, a = t - 1, o = n[i] || 0, s = n[e29]; s == null && (s = n[n.length - 1]); let c = r[a] || 0, l = r[t]; return l == null && (l = r[r.length - 1]), { startY: o, endY: s, startX: c, endX: l }; } function vd(e29, t, n, r, i) { e29 = D.clamp(e29, 0, n.length - 1), t = D.clamp(t, 0, r.length - 1); let { startY: a, endY: o, startX: s, endX: c } = gd(e29, t, n, r); if (!i) return { startY: a, endY: o, startX: s, endX: c, isMerged: false, isMergedMainCell: false, actualRow: e29, actualColumn: t, mergeInfo: { startY: a, endY: o, startX: s, endX: c, startRow: e29, startColumn: t, endRow: e29, endColumn: t } }; let { isMerged: l, isMergedMainCell: u, startRow: d, startColumn: f, endRow: p, endColumn: m } = i, h = { startRow: d, startColumn: f, endRow: p, endColumn: m, startY: a, endY: o, startX: s, endX: c }, g2 = n.length - 1, _2 = r.length - 1; if (l && d !== -1 && f !== -1) { let e30 = n[d - 1] || 0, t2 = n[p] || n[g2], i2 = r[f - 1] || 0, a2 = r[m] || r[_2]; h = { ...h, startY: e30, endY: t2, startX: i2, endX: a2 }; } else if (!l && p !== -1 && m !== -1) { let e30 = n[p] || n[g2], t2 = r[m] || r[_2]; h = { ...h, startY: a, endY: e30, startX: s, endX: t2 }; } return { isMerged: l, isMergedMainCell: u, actualRow: e29, actualColumn: t, startY: a, endY: o, startX: s, endX: c, mergeInfo: h }; } function yd(e29, t, n, r) { let { x: i } = n; return e29 / t + i - r; } function bd(e29, t, n, r) { let { y: i } = n; return e29 = e29 / t + i - r, e29; } var Sd = (function(e29) { return e29[e29.INFO = 0] = `INFO`, e29[e29.STOP = 1] = `STOP`, e29[e29.WARNING = 2] = `WARNING`, e29; })({}); var Cd = (function(e29) { return e29[e29.DISABLED = 0] = `DISABLED`, e29[e29.FULL_ALPHA = 1] = `FULL_ALPHA`, e29[e29.FULL_HANGUL = 2] = `FULL_HANGUL`, e29[e29.FULL_KATAKANA = 3] = `FULL_KATAKANA`, e29[e29.HALF_ALPHA = 4] = `HALF_ALPHA`, e29[e29.HALF_HANGUL = 5] = `HALF_HANGUL`, e29[e29.HALF_KATAKANA = 6] = `HALF_KATAKANA`, e29[e29.HIRAGANA = 7] = `HIRAGANA`, e29[e29.NO_CONTROL = 8] = `NO_CONTROL`, e29[e29.OFF = 9] = `OFF`, e29[e29.ON = 10] = `ON`, e29; })({}); var wd = (function(e29) { return e29.BETWEEN = `between`, e29.EQUAL = `equal`, e29.GREATER_THAN = `greaterThan`, e29.GREATER_THAN_OR_EQUAL = `greaterThanOrEqual`, e29.LESS_THAN = `lessThan`, e29.LESS_THAN_OR_EQUAL = `lessThanOrEqual`, e29.NOT_BETWEEN = `notBetween`, e29.NOT_EQUAL = `notEqual`, e29; })({}); var Td = (function(e29) { return e29[e29.TEXT = 0] = `TEXT`, e29[e29.ARROW = 1] = `ARROW`, e29[e29.CUSTOM = 2] = `CUSTOM`, e29; })({}); var Ed = (function(e29) { return e29.VALID = `valid`, e29.INVALID = `invalid`, e29.VALIDATING = `validating`, e29; })({}); var Dd = (function(e29) { return e29.CUSTOM = `custom`, e29.LIST = `list`, e29.LIST_MULTIPLE = `listMultiple`, e29.NONE = `none`, e29.TEXT_LENGTH = `textLength`, e29.DATE = `date`, e29.TIME = `time`, e29.WHOLE = `whole`, e29.DECIMAL = `decimal`, e29.CHECKBOX = `checkbox`, e29.ANY = `any`, e29; })({}); var Od = class extends E { constructor(e29, t) { super(), this._resourceManagerService = e29, this._univerInstanceService = t, this._init(); } _init() { let e29 = (e30) => { e30.businesses.forEach((t) => { switch (t) { case O.UNRECOGNIZED: case O.UNIVER_UNKNOWN: case O.UNIVER_SLIDE: case O.UNIVER_DOC: this._univerInstanceService.getAllUnitsForType(O.UNIVER_DOC).forEach((t2) => { let n = (t2.getSnapshot().resources || []).find((t3) => t3.name === e30.pluginName); if (n) try { let r = e30.parseJson(n.data); e30.onLoad(t2.getUnitId(), r); } catch { console.error(`Load Document{${t2.getUnitId()}} Resources{${e30.pluginName}} Data Error.`); } }); break; case O.UNIVER_SHEET: this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).forEach((t2) => { let n = (t2.getSnapshot().resources || []).find((t3) => t3.name === e30.pluginName); if (n) try { let r = e30.parseJson(n.data); e30.onLoad(t2.getUnitId(), r); } catch { console.error(`Load Workbook{${t2.getUnitId()}} Resources{${e30.pluginName}} Data Error.`); } }); } }); }; this._resourceManagerService.getAllResourceHooks().forEach((t) => e29(t)), this.disposeWithMe(this._resourceManagerService.register$.subscribe((t) => e29(t))), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).subscribe((e30) => { this._resourceManagerService.loadResources(e30.getUnitId(), e30.getSnapshot().resources); })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_DOC).subscribe((e30) => { yt(e30.getUnitId()) || this._resourceManagerService.loadResources(e30.getUnitId(), e30.getSnapshot().resources); })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).subscribe((e30) => { this._resourceManagerService.unloadResources(e30.getUnitId(), O.UNIVER_SHEET); })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_DOC).subscribe((e30) => { this._resourceManagerService.unloadResources(e30.getUnitId(), O.UNIVER_DOC); })); } saveUnit(e29) { let t = this._univerInstanceService.getUnit(e29); if (!t) return null; let n = this._resourceManagerService.getResources(e29, t.type), r = D.deepClone(t.getSnapshot()); return r.resources = n, r; } }; Od = z([R2(0, Inject(ll)), R2(1, Inject(Mu))], Od); et(); // node_modules/@flatten-js/interval-tree/dist/main.mjs var Interval = class Interval2 { /** * Accept two comparable values and creates new instance of interval * Predicate Interval.comparable_less(low, high) supposed to return true on these values * @param low * @param high */ constructor(low, high) { this.low = low; this.high = high; } /** * Clone interval * @returns {Interval} */ clone() { return new Interval2(this.low, this.high); } /** * Propery max returns clone of this interval * @returns {Interval} */ get max() { return this.clone(); } /** * Predicate returns true is this interval less than other interval * @param other_interval * @returns {boolean} */ less_than(other_interval) { return this.low < other_interval.low || this.low === other_interval.low && this.high < other_interval.high; } /** * Predicate returns true is this interval equals to other interval * @param other_interval * @returns {boolean} */ equal_to(other_interval) { return this.low === other_interval.low && this.high === other_interval.high; } /** * Predicate returns true if this interval intersects other interval * @param other_interval * @returns {boolean} */ intersect(other_interval) { return !this.not_intersect(other_interval); } /** * Predicate returns true if this interval does not intersect other interval * @param other_interval * @returns {boolean} */ not_intersect(other_interval) { return this.high < other_interval.low || other_interval.high < this.low; } /** * Returns new interval merged with other interval * @param {Interval} other_interval - Other interval to merge with * @returns {Interval} */ merge(other_interval) { return new Interval2( this.low === void 0 ? other_interval.low : this.low < other_interval.low ? this.low : other_interval.low, this.high === void 0 ? other_interval.high : this.high > other_interval.high ? this.high : other_interval.high ); } /** * Returns how key should return */ output() { return [this.low, this.high]; } /** * Function returns maximum between two comparable values * @param interval1 * @param interval2 * @returns {Interval} */ static comparable_max(interval1, interval2) { return interval1.merge(interval2); } /** * Predicate returns true if first value less than second value * @param val1 * @param val2 * @returns {boolean} */ static comparable_less_than(val1, val2) { return val1 < val2; } }; var RB_TREE_COLOR_RED = 0; var RB_TREE_COLOR_BLACK = 1; var Node = class { constructor(key = void 0, value = void 0, left = null, right = null, parent = null, color = RB_TREE_COLOR_BLACK) { this.left = left; this.right = right; this.parent = parent; this.color = color; this.item = { key, value }; if (key && key instanceof Array && key.length === 2) { if (!Number.isNaN(key[0]) && !Number.isNaN(key[1])) { let [low, high] = key; if (low > high) [low, high] = [high, low]; this.item.key = new Interval(low, high); } } this.max = this.item.key ? this.item.key.max : void 0; } isNil() { return this.item.key === void 0 && this.item.value === void 0 && this.left === null && this.right === null && this.color === RB_TREE_COLOR_BLACK; } _value_less_than(other_node) { return this.item.value && other_node.item.value && this.item.value.less_than ? this.item.value.less_than(other_node.item.value) : this.item.value < other_node.item.value; } less_than(other_node) { if (this.item.value === this.item.key && other_node.item.value === other_node.item.key) { return this.item.key.less_than(other_node.item.key); } else { return this.item.key.less_than(other_node.item.key) || this.item.key.equal_to(other_node.item.key) && this._value_less_than(other_node); } } _value_equal(other_node) { return this.item.value && other_node.item.value && this.item.value.equal_to ? this.item.value.equal_to(other_node.item.value) : this.item.value === other_node.item.value; } equal_to(other_node) { if (this.item.value === this.item.key && other_node.item.value === other_node.item.key) { return this.item.key.equal_to(other_node.item.key); } else { return this.item.key.equal_to(other_node.item.key) && this._value_equal(other_node); } } intersect(other_node) { return this.item.key.intersect(other_node.item.key); } copy_data(other_node) { this.item.key = other_node.item.key; this.item.value = other_node.item.value; } update_max() { this.max = this.item.key ? this.item.key.max : void 0; if (this.right && this.right.max) { const comparable_max = this.item.key.constructor.comparable_max; this.max = comparable_max(this.max, this.right.max); } if (this.left && this.left.max) { const comparable_max = this.item.key.constructor.comparable_max; this.max = comparable_max(this.max, this.left.max); } } // Other_node does not intersect any node of left subtree, if this.left.max < other_node.item.key.low not_intersect_left_subtree(search_node) { const comparable_less_than = this.item.key.constructor.comparable_less_than; let high = this.left.max.high !== void 0 ? this.left.max.high : this.left.max; return comparable_less_than(high, search_node.item.key.low); } // Other_node does not intersect right subtree if other_node.item.key.high < this.right.key.low not_intersect_right_subtree(search_node) { const comparable_less_than = this.item.key.constructor.comparable_less_than; let low = this.right.max.low !== void 0 ? this.right.max.low : this.right.item.key.low; return comparable_less_than(search_node.item.key.high, low); } }; var IntervalTree = class _IntervalTree { /** * Construct new empty instance of IntervalTree */ constructor() { this.root = null; this.nil_node = new Node(); } /** * Returns number of items stored in the interval tree * @returns {number} */ get size() { let count = 0; this.tree_walk(this.root, () => count++); return count; } /** * Returns array of sorted keys in the ascending order * @returns {Array} */ get keys() { let res = []; this.tree_walk(this.root, (node) => res.push( node.item.key.output ? node.item.key.output() : node.item.key )); return res; } /** * Return array of values in the ascending keys order * @returns {Array} */ get values() { let res = []; this.tree_walk(this.root, (node) => res.push(node.item.value)); return res; } /** * Returns array of items ( pairs) in the ascended keys order * @returns {Array} */ get items() { let res = []; this.tree_walk(this.root, (node) => res.push({ key: node.item.key.output ? node.item.key.output() : node.item.key, value: node.item.value })); return res; } /** * Returns true if tree is empty * @returns {boolean} */ isEmpty() { return this.root == null || this.root === this.nil_node; } /** * Clear tree */ clear() { this.root = null; } /** * Insert new item into interval tree * @param {Interval} key - interval object or array of two numbers [low, high] * @param {any} value - value representing any object (optional) * @returns {Node} returns reference to inserted node as an object {key:interval, value: value} */ insert(key, value = key) { if (key === void 0) return; let insert_node = new Node(key, value, this.nil_node, this.nil_node, null, RB_TREE_COLOR_RED); this.tree_insert(insert_node); this.recalc_max(insert_node); return insert_node; } /** * Returns true if item {key,value} exist in the tree * @param {Interval} key - interval correspondent to keys stored in the tree * @param {any} value - value object to be checked * @returns {boolean} true if item {key, value} exist in the tree, false otherwise */ exist(key, value = key) { let search_node = new Node(key, value); return !!this.tree_search(this.root, search_node); } /** * Remove entry {key, value} from the tree * @param {Interval} key - interval correspondent to keys stored in the tree * @param {any} value - value object * @returns {boolean} true if item {key, value} deleted, false if not found */ remove(key, value = key) { let search_node = new Node(key, value); let delete_node = this.tree_search(this.root, search_node); if (delete_node) { this.tree_delete(delete_node); } return delete_node; } /** * Returns array of entry values which keys intersect with given interval
* If no values stored in the tree, returns array of keys which intersect given interval * @param {Interval} interval - search interval, or tuple [low, high] * @param outputMapperFn(value,key) - optional function that maps (value, key) to custom output * @returns {Array} */ search(interval, outputMapperFn = (value, key) => value === key ? key.output() : value) { let search_node = new Node(interval); let resp_nodes = []; this.tree_search_interval(this.root, search_node, resp_nodes); return resp_nodes.map((node) => outputMapperFn(node.item.value, node.item.key)); } /** * Returns true if intersection between given and any interval stored in the tree found * @param {Interval} interval - search interval or tuple [low, high] * @returns {boolean} */ intersect_any(interval) { let search_node = new Node(interval); return this.tree_find_any_interval(this.root, search_node); } /** * Tree visitor. For each node implement a callback function.
* Method calls a callback function with two parameters (key, value) * @param visitor(key,value) - function to be called for each tree item */ forEach(visitor) { this.tree_walk(this.root, (node) => visitor(node.item.key, node.item.value)); } /** * Value Mapper. Walk through every node and map node value to another value * @param callback(value,key) - function to be called for each tree item */ map(callback) { const tree = new _IntervalTree(); this.tree_walk(this.root, (node) => tree.insert(node.item.key, callback(node.item.value, node.item.key))); return tree; } /** * @param {Interval} interval - optional if the iterator is intended to start from the beginning * @param outputMapperFn(value,key) - optional function that maps (value, key) to custom output * @returns {Iterator} */ *iterate(interval, outputMapperFn = (value, key) => value === key ? key.output() : value) { let node; if (interval) { node = this.tree_search_nearest_forward(this.root, new Node(interval)); } else if (this.root) { node = this.local_minimum(this.root); } while (node) { yield outputMapperFn(node.item.value, node.item.key); node = this.tree_successor(node); } } recalc_max(node) { let node_current = node; while (node_current.parent != null) { node_current.parent.update_max(); node_current = node_current.parent; } } tree_insert(insert_node) { let current_node = this.root; let parent_node = null; if (this.root == null || this.root === this.nil_node) { this.root = insert_node; } else { while (current_node !== this.nil_node) { parent_node = current_node; if (insert_node.less_than(current_node)) { current_node = current_node.left; } else { current_node = current_node.right; } } insert_node.parent = parent_node; if (insert_node.less_than(parent_node)) { parent_node.left = insert_node; } else { parent_node.right = insert_node; } } this.insert_fixup(insert_node); } // After insertion insert_node may have red-colored parent, and this is a single possible violation // Go upwords to the root and re-color until violation will be resolved insert_fixup(insert_node) { let current_node; let uncle_node; current_node = insert_node; while (current_node !== this.root && current_node.parent.color === RB_TREE_COLOR_RED) { if (current_node.parent === current_node.parent.parent.left) { uncle_node = current_node.parent.parent.right; if (uncle_node.color === RB_TREE_COLOR_RED) { current_node.parent.color = RB_TREE_COLOR_BLACK; uncle_node.color = RB_TREE_COLOR_BLACK; current_node.parent.parent.color = RB_TREE_COLOR_RED; current_node = current_node.parent.parent; } else { if (current_node === current_node.parent.right) { current_node = current_node.parent; this.rotate_left(current_node); } current_node.parent.color = RB_TREE_COLOR_BLACK; current_node.parent.parent.color = RB_TREE_COLOR_RED; this.rotate_right(current_node.parent.parent); } } else { uncle_node = current_node.parent.parent.left; if (uncle_node.color === RB_TREE_COLOR_RED) { current_node.parent.color = RB_TREE_COLOR_BLACK; uncle_node.color = RB_TREE_COLOR_BLACK; current_node.parent.parent.color = RB_TREE_COLOR_RED; current_node = current_node.parent.parent; } else { if (current_node === current_node.parent.left) { current_node = current_node.parent; this.rotate_right(current_node); } current_node.parent.color = RB_TREE_COLOR_BLACK; current_node.parent.parent.color = RB_TREE_COLOR_RED; this.rotate_left(current_node.parent.parent); } } } this.root.color = RB_TREE_COLOR_BLACK; } tree_delete(delete_node) { let cut_node; let fix_node; if (delete_node.left === this.nil_node || delete_node.right === this.nil_node) { cut_node = delete_node; } else { cut_node = this.tree_successor(delete_node); } if (cut_node.left !== this.nil_node) { fix_node = cut_node.left; } else { fix_node = cut_node.right; } fix_node.parent = cut_node.parent; if (cut_node === this.root) { this.root = fix_node; } else { if (cut_node === cut_node.parent.left) { cut_node.parent.left = fix_node; } else { cut_node.parent.right = fix_node; } cut_node.parent.update_max(); } this.recalc_max(fix_node); if (cut_node !== delete_node) { delete_node.copy_data(cut_node); delete_node.update_max(); this.recalc_max(delete_node); } if ( /*fix_node != this.nil_node && */ cut_node.color === RB_TREE_COLOR_BLACK ) { this.delete_fixup(fix_node); } } delete_fixup(fix_node) { let current_node = fix_node; let brother_node; while (current_node !== this.root && current_node.parent != null && current_node.color === RB_TREE_COLOR_BLACK) { if (current_node === current_node.parent.left) { brother_node = current_node.parent.right; if (brother_node.color === RB_TREE_COLOR_RED) { brother_node.color = RB_TREE_COLOR_BLACK; current_node.parent.color = RB_TREE_COLOR_RED; this.rotate_left(current_node.parent); brother_node = current_node.parent.right; } if (brother_node.left.color === RB_TREE_COLOR_BLACK && brother_node.right.color === RB_TREE_COLOR_BLACK) { brother_node.color = RB_TREE_COLOR_RED; current_node = current_node.parent; } else { if (brother_node.right.color === RB_TREE_COLOR_BLACK) { brother_node.color = RB_TREE_COLOR_RED; brother_node.left.color = RB_TREE_COLOR_BLACK; this.rotate_right(brother_node); brother_node = current_node.parent.right; } brother_node.color = current_node.parent.color; current_node.parent.color = RB_TREE_COLOR_BLACK; brother_node.right.color = RB_TREE_COLOR_BLACK; this.rotate_left(current_node.parent); current_node = this.root; } } else { brother_node = current_node.parent.left; if (brother_node.color === RB_TREE_COLOR_RED) { brother_node.color = RB_TREE_COLOR_BLACK; current_node.parent.color = RB_TREE_COLOR_RED; this.rotate_right(current_node.parent); brother_node = current_node.parent.left; } if (brother_node.left.color === RB_TREE_COLOR_BLACK && brother_node.right.color === RB_TREE_COLOR_BLACK) { brother_node.color = RB_TREE_COLOR_RED; current_node = current_node.parent; } else { if (brother_node.left.color === RB_TREE_COLOR_BLACK) { brother_node.color = RB_TREE_COLOR_RED; brother_node.right.color = RB_TREE_COLOR_BLACK; this.rotate_left(brother_node); brother_node = current_node.parent.left; } brother_node.color = current_node.parent.color; current_node.parent.color = RB_TREE_COLOR_BLACK; brother_node.left.color = RB_TREE_COLOR_BLACK; this.rotate_right(current_node.parent); current_node = this.root; } } } current_node.color = RB_TREE_COLOR_BLACK; } tree_search(node, search_node) { if (node == null || node === this.nil_node) return void 0; if (search_node.equal_to(node)) { return node; } if (search_node.less_than(node)) { return this.tree_search(node.left, search_node); } else { return this.tree_search(node.right, search_node); } } tree_search_nearest_forward(node, search_node) { let best; let curr = node; while (curr && curr !== this.nil_node) { if (curr.less_than(search_node)) { if (curr.intersect(search_node)) { best = curr; curr = curr.left; } else { curr = curr.right; } } else { if (!best || curr.less_than(best)) best = curr; curr = curr.left; } } return best || null; } // Original search_interval method; container res support push() insertion // Search all intervals intersecting given one tree_search_interval(node, search_node, res) { if (node != null && node !== this.nil_node) { if (node.left !== this.nil_node && !node.not_intersect_left_subtree(search_node)) { this.tree_search_interval(node.left, search_node, res); } if (node.intersect(search_node)) { res.push(node); } if (node.right !== this.nil_node && !node.not_intersect_right_subtree(search_node)) { this.tree_search_interval(node.right, search_node, res); } } } tree_find_any_interval(node, search_node) { let found = false; if (node != null && node !== this.nil_node) { if (node.left !== this.nil_node && !node.not_intersect_left_subtree(search_node)) { found = this.tree_find_any_interval(node.left, search_node); } if (!found) { found = node.intersect(search_node); } if (!found && node.right !== this.nil_node && !node.not_intersect_right_subtree(search_node)) { found = this.tree_find_any_interval(node.right, search_node); } } return found; } local_minimum(node) { let node_min = node; while (node_min.left != null && node_min.left !== this.nil_node) { node_min = node_min.left; } return node_min; } // not in use local_maximum(node) { let node_max = node; while (node_max.right != null && node_max.right !== this.nil_node) { node_max = node_max.right; } return node_max; } tree_successor(node) { let node_successor; let current_node; let parent_node; if (node.right !== this.nil_node) { node_successor = this.local_minimum(node.right); } else { current_node = node; parent_node = node.parent; while (parent_node != null && parent_node.right === current_node) { current_node = parent_node; parent_node = parent_node.parent; } node_successor = parent_node; } return node_successor; } // | right-rotate(T,y) | // y ---------------. x // / \ / \ // x c left-rotate(T,x) a y // / \ <--------------- / \ // a b b c rotate_left(x2) { let y = x2.right; x2.right = y.left; if (y.left !== this.nil_node) { y.left.parent = x2; } y.parent = x2.parent; if (x2 === this.root) { this.root = y; } else { if (x2 === x2.parent.left) { x2.parent.left = y; } else { x2.parent.right = y; } } y.left = x2; x2.parent = y; if (x2 != null && x2 !== this.nil_node) { x2.update_max(); } y = x2.parent; if (y != null && y !== this.nil_node) { y.update_max(); } } rotate_right(y) { let x2 = y.left; y.left = x2.right; if (x2.right !== this.nil_node) { x2.right.parent = y; } x2.parent = y.parent; if (y === this.root) { this.root = x2; } else { if (y === y.parent.left) { y.parent.left = x2; } else { y.parent.right = x2; } } x2.right = y; y.parent = x2; if (y !== null && y !== this.nil_node) { y.update_max(); } x2 = y.parent; if (x2 != null && x2 !== this.nil_node) { x2.update_max(); } } tree_walk(node, action) { if (node != null && node !== this.nil_node) { this.tree_walk(node.left, action); action(node); this.tree_walk(node.right, action); } } /* Return true if all red nodes have exactly two black child nodes */ testRedBlackProperty() { let res = true; this.tree_walk(this.root, function(node) { if (node.color === RB_TREE_COLOR_RED) { if (!(node.left.color === RB_TREE_COLOR_BLACK && node.right.color === RB_TREE_COLOR_BLACK)) { res = false; } } }); return res; } /* Throw error if not every path from root to bottom has same black height */ testBlackHeightProperty(node) { let height = 0; let heightLeft = 0; let heightRight = 0; if (node.color === RB_TREE_COLOR_BLACK) { height++; } if (node.left !== this.nil_node) { heightLeft = this.testBlackHeightProperty(node.left); } else { heightLeft = 1; } if (node.right !== this.nil_node) { heightRight = this.testBlackHeightProperty(node.right); } else { heightRight = 1; } if (heightLeft !== heightRight) { throw new Error("Red-black height property violated"); } height += heightLeft; return height; } }; // node_modules/decimal.js/decimal.mjs var EXP_LIMIT = 9e15; var MAX_DIGITS = 1e9; var NUMERALS = "0123456789abcdef"; var LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058"; var PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789"; var DEFAULTS = { // These values must be integers within the stated ranges (inclusive). // Most of these values can be changed at run-time using the `Decimal.config` method. // The maximum number of significant digits of the result of a calculation or base conversion. // E.g. `Decimal.config({ precision: 20 });` precision: 20, // 1 to MAX_DIGITS // The rounding mode used when rounding to `precision`. // // ROUND_UP 0 Away from zero. // ROUND_DOWN 1 Towards zero. // ROUND_CEIL 2 Towards +Infinity. // ROUND_FLOOR 3 Towards -Infinity. // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up. // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down. // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour. // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity. // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity. // // E.g. // `Decimal.rounding = 4;` // `Decimal.rounding = Decimal.ROUND_HALF_UP;` rounding: 4, // 0 to 8 // The modulo mode used when calculating the modulus: a mod n. // The quotient (q = a / n) is calculated according to the corresponding rounding mode. // The remainder (r) is calculated as: r = a - n * q. // // UP 0 The remainder is positive if the dividend is negative, else is negative. // DOWN 1 The remainder has the same sign as the dividend (JavaScript %). // FLOOR 3 The remainder has the same sign as the divisor (Python %). // HALF_EVEN 6 The IEEE 754 remainder function. // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive. // // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian // division (9) are commonly used for the modulus operation. The other rounding modes can also // be used, but they may not give useful results. modulo: 1, // 0 to 9 // The exponent value at and beneath which `toString` returns exponential notation. // JavaScript numbers: -7 toExpNeg: -7, // 0 to -EXP_LIMIT // The exponent value at and above which `toString` returns exponential notation. // JavaScript numbers: 21 toExpPos: 21, // 0 to EXP_LIMIT // The minimum exponent value, beneath which underflow to zero occurs. // JavaScript numbers: -324 (5e-324) minE: -EXP_LIMIT, // -1 to -EXP_LIMIT // The maximum exponent value, above which overflow to Infinity occurs. // JavaScript numbers: 308 (1.7976931348623157e+308) maxE: EXP_LIMIT, // 1 to EXP_LIMIT // Whether to use cryptographically-secure random number generation, if available. crypto: false // true/false }; var inexact; var quadrant; var external = true; var decimalError = "[DecimalError] "; var invalidArgument = decimalError + "Invalid argument: "; var precisionLimitExceeded = decimalError + "Precision limit exceeded"; var cryptoUnavailable = decimalError + "crypto unavailable"; var tag = "[object Decimal]"; var mathfloor = Math.floor; var mathpow = Math.pow; var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i; var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i; var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i; var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; var BASE = 1e7; var LOG_BASE = 7; var MAX_SAFE_INTEGER3 = 9007199254740991; var LN10_PRECISION = LN10.length - 1; var PI_PRECISION = PI.length - 1; var P3 = { toStringTag: tag }; P3.absoluteValue = P3.abs = function() { var x2 = new this.constructor(this); if (x2.s < 0) x2.s = 1; return finalise(x2); }; P3.ceil = function() { return finalise(new this.constructor(this), this.e + 1, 2); }; P3.clampedTo = P3.clamp = function(min2, max2) { var k4, x2 = this, Ctor = x2.constructor; min2 = new Ctor(min2); max2 = new Ctor(max2); if (!min2.s || !max2.s) return new Ctor(NaN); if (min2.gt(max2)) throw Error(invalidArgument + max2); k4 = x2.cmp(min2); return k4 < 0 ? min2 : x2.cmp(max2) > 0 ? max2 : new Ctor(x2); }; P3.comparedTo = P3.cmp = function(y) { var i, j4, xdL, ydL, x2 = this, xd3 = x2.d, yd4 = (y = new x2.constructor(y)).d, xs4 = x2.s, ys4 = y.s; if (!xd3 || !yd4) { return !xs4 || !ys4 ? NaN : xs4 !== ys4 ? xs4 : xd3 === yd4 ? 0 : !xd3 ^ xs4 < 0 ? 1 : -1; } if (!xd3[0] || !yd4[0]) return xd3[0] ? xs4 : yd4[0] ? -ys4 : 0; if (xs4 !== ys4) return xs4; if (x2.e !== y.e) return x2.e > y.e ^ xs4 < 0 ? 1 : -1; xdL = xd3.length; ydL = yd4.length; for (i = 0, j4 = xdL < ydL ? xdL : ydL; i < j4; ++i) { if (xd3[i] !== yd4[i]) return xd3[i] > yd4[i] ^ xs4 < 0 ? 1 : -1; } return xdL === ydL ? 0 : xdL > ydL ^ xs4 < 0 ? 1 : -1; }; P3.cosine = P3.cos = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (!x2.d) return new Ctor(NaN); if (!x2.d[0]) return new Ctor(1); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + Math.max(x2.e, x2.sd()) + LOG_BASE; Ctor.rounding = 1; x2 = cosine(Ctor, toLessThanHalfPi(Ctor, x2)); Ctor.precision = pr5; Ctor.rounding = rm2; return finalise(quadrant == 2 || quadrant == 3 ? x2.neg() : x2, pr5, rm2, true); }; P3.cubeRoot = P3.cbrt = function() { var e29, m, n, r, rep, s, sd4, t, t3, t3plusx, x2 = this, Ctor = x2.constructor; if (!x2.isFinite() || x2.isZero()) return new Ctor(x2); external = false; s = x2.s * mathpow(x2.s * x2, 1 / 3); if (!s || Math.abs(s) == 1 / 0) { n = digitsToString(x2.d); e29 = x2.e; if (s = (e29 - n.length + 1) % 3) n += s == 1 || s == -2 ? "0" : "00"; s = mathpow(n, 1 / 3); e29 = mathfloor((e29 + 1) / 3) - (e29 % 3 == (e29 < 0 ? -1 : 2)); if (s == 1 / 0) { n = "5e" + e29; } else { n = s.toExponential(); n = n.slice(0, n.indexOf("e") + 1) + e29; } r = new Ctor(n); r.s = x2.s; } else { r = new Ctor(s.toString()); } sd4 = (e29 = Ctor.precision) + 3; for (; ; ) { t = r; t3 = t.times(t).times(t); t3plusx = t3.plus(x2); r = divide(t3plusx.plus(x2).times(t), t3plusx.plus(t3), sd4 + 2, 1); if (digitsToString(t.d).slice(0, sd4) === (n = digitsToString(r.d)).slice(0, sd4)) { n = n.slice(sd4 - 3, sd4 + 1); if (n == "9999" || !rep && n == "4999") { if (!rep) { finalise(t, e29 + 1, 0); if (t.times(t).times(t).eq(x2)) { r = t; break; } } sd4 += 4; rep = 1; } else { if (!+n || !+n.slice(1) && n.charAt(0) == "5") { finalise(r, e29 + 1, 1); m = !r.times(r).times(r).eq(x2); } break; } } } external = true; return finalise(r, e29, Ctor.rounding, m); }; P3.decimalPlaces = P3.dp = function() { var w2, d = this.d, n = NaN; if (d) { w2 = d.length - 1; n = (w2 - mathfloor(this.e / LOG_BASE)) * LOG_BASE; w2 = d[w2]; if (w2) for (; w2 % 10 == 0; w2 /= 10) n--; if (n < 0) n = 0; } return n; }; P3.dividedBy = P3.div = function(y) { return divide(this, new this.constructor(y)); }; P3.dividedToIntegerBy = P3.divToInt = function(y) { var x2 = this, Ctor = x2.constructor; return finalise(divide(x2, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding); }; P3.equals = P3.eq = function(y) { return this.cmp(y) === 0; }; P3.floor = function() { return finalise(new this.constructor(this), this.e + 1, 3); }; P3.greaterThan = P3.gt = function(y) { return this.cmp(y) > 0; }; P3.greaterThanOrEqualTo = P3.gte = function(y) { var k4 = this.cmp(y); return k4 == 1 || k4 === 0; }; P3.hyperbolicCosine = P3.cosh = function() { var k4, n, pr5, rm2, len, x2 = this, Ctor = x2.constructor, one = new Ctor(1); if (!x2.isFinite()) return new Ctor(x2.s ? 1 / 0 : NaN); if (x2.isZero()) return one; pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + Math.max(x2.e, x2.sd()) + 4; Ctor.rounding = 1; len = x2.d.length; if (len < 32) { k4 = Math.ceil(len / 3); n = (1 / tinyPow(4, k4)).toString(); } else { k4 = 16; n = "2.3283064365386962890625e-10"; } x2 = taylorSeries(Ctor, 1, x2.times(n), new Ctor(1), true); var cosh2_x, i = k4, d8 = new Ctor(8); for (; i--; ) { cosh2_x = x2.times(x2); x2 = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8)))); } return finalise(x2, Ctor.precision = pr5, Ctor.rounding = rm2, true); }; P3.hyperbolicSine = P3.sinh = function() { var k4, pr5, rm2, len, x2 = this, Ctor = x2.constructor; if (!x2.isFinite() || x2.isZero()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + Math.max(x2.e, x2.sd()) + 4; Ctor.rounding = 1; len = x2.d.length; if (len < 3) { x2 = taylorSeries(Ctor, 2, x2, x2, true); } else { k4 = 1.4 * Math.sqrt(len); k4 = k4 > 16 ? 16 : k4 | 0; x2 = x2.times(1 / tinyPow(5, k4)); x2 = taylorSeries(Ctor, 2, x2, x2, true); var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); for (; k4--; ) { sinh2_x = x2.times(x2); x2 = x2.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20)))); } } Ctor.precision = pr5; Ctor.rounding = rm2; return finalise(x2, pr5, rm2, true); }; P3.hyperbolicTangent = P3.tanh = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (!x2.isFinite()) return new Ctor(x2.s); if (x2.isZero()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + 7; Ctor.rounding = 1; return divide(x2.sinh(), x2.cosh(), Ctor.precision = pr5, Ctor.rounding = rm2); }; P3.inverseCosine = P3.acos = function() { var x2 = this, Ctor = x2.constructor, k4 = x2.abs().cmp(1), pr5 = Ctor.precision, rm2 = Ctor.rounding; if (k4 !== -1) { return k4 === 0 ? x2.isNeg() ? getPi(Ctor, pr5, rm2) : new Ctor(0) : new Ctor(NaN); } if (x2.isZero()) return getPi(Ctor, pr5 + 4, rm2).times(0.5); Ctor.precision = pr5 + 6; Ctor.rounding = 1; x2 = new Ctor(1).minus(x2).div(x2.plus(1)).sqrt().atan(); Ctor.precision = pr5; Ctor.rounding = rm2; return x2.times(2); }; P3.inverseHyperbolicCosine = P3.acosh = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (x2.lte(1)) return new Ctor(x2.eq(1) ? 0 : NaN); if (!x2.isFinite()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + Math.max(Math.abs(x2.e), x2.sd()) + 4; Ctor.rounding = 1; external = false; x2 = x2.times(x2).minus(1).sqrt().plus(x2); external = true; Ctor.precision = pr5; Ctor.rounding = rm2; return x2.ln(); }; P3.inverseHyperbolicSine = P3.asinh = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (!x2.isFinite() || x2.isZero()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + 2 * Math.max(Math.abs(x2.e), x2.sd()) + 6; Ctor.rounding = 1; external = false; x2 = x2.times(x2).plus(1).sqrt().plus(x2); external = true; Ctor.precision = pr5; Ctor.rounding = rm2; return x2.ln(); }; P3.inverseHyperbolicTangent = P3.atanh = function() { var pr5, rm2, wpr, xsd, x2 = this, Ctor = x2.constructor; if (!x2.isFinite()) return new Ctor(NaN); if (x2.e >= 0) return new Ctor(x2.abs().eq(1) ? x2.s / 0 : x2.isZero() ? x2 : NaN); pr5 = Ctor.precision; rm2 = Ctor.rounding; xsd = x2.sd(); if (Math.max(xsd, pr5) < 2 * -x2.e - 1) return finalise(new Ctor(x2), pr5, rm2, true); Ctor.precision = wpr = xsd - x2.e; x2 = divide(x2.plus(1), new Ctor(1).minus(x2), wpr + pr5, 1); Ctor.precision = pr5 + 4; Ctor.rounding = 1; x2 = x2.ln(); Ctor.precision = pr5; Ctor.rounding = rm2; return x2.times(0.5); }; P3.inverseSine = P3.asin = function() { var halfPi, k4, pr5, rm2, x2 = this, Ctor = x2.constructor; if (x2.isZero()) return new Ctor(x2); k4 = x2.abs().cmp(1); pr5 = Ctor.precision; rm2 = Ctor.rounding; if (k4 !== -1) { if (k4 === 0) { halfPi = getPi(Ctor, pr5 + 4, rm2).times(0.5); halfPi.s = x2.s; return halfPi; } return new Ctor(NaN); } Ctor.precision = pr5 + 6; Ctor.rounding = 1; x2 = x2.div(new Ctor(1).minus(x2.times(x2)).sqrt().plus(1)).atan(); Ctor.precision = pr5; Ctor.rounding = rm2; return x2.times(2); }; P3.inverseTangent = P3.atan = function() { var i, j4, k4, n, px, t, r, wpr, x2, x3 = this, Ctor = x3.constructor, pr5 = Ctor.precision, rm2 = Ctor.rounding; if (!x3.isFinite()) { if (!x3.s) return new Ctor(NaN); if (pr5 + 4 <= PI_PRECISION) { r = getPi(Ctor, pr5 + 4, rm2).times(0.5); r.s = x3.s; return r; } } else if (x3.isZero()) { return new Ctor(x3); } else if (x3.abs().eq(1) && pr5 + 4 <= PI_PRECISION) { r = getPi(Ctor, pr5 + 4, rm2).times(0.25); r.s = x3.s; return r; } Ctor.precision = wpr = pr5 + 10; Ctor.rounding = 1; k4 = Math.min(28, wpr / LOG_BASE + 2 | 0); for (i = k4; i; --i) x3 = x3.div(x3.times(x3).plus(1).sqrt().plus(1)); external = false; j4 = Math.ceil(wpr / LOG_BASE); n = 1; x2 = x3.times(x3); r = new Ctor(x3); px = x3; for (; i !== -1; ) { px = px.times(x2); t = r.minus(px.div(n += 2)); px = px.times(x2); r = t.plus(px.div(n += 2)); if (r.d[j4] !== void 0) for (i = j4; r.d[i] === t.d[i] && i--; ) ; } if (k4) r = r.times(2 << k4 - 1); external = true; return finalise(r, Ctor.precision = pr5, Ctor.rounding = rm2, true); }; P3.isFinite = function() { return !!this.d; }; P3.isInteger = P3.isInt = function() { return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2; }; P3.isNaN = function() { return !this.s; }; P3.isNegative = P3.isNeg = function() { return this.s < 0; }; P3.isPositive = P3.isPos = function() { return this.s > 0; }; P3.isZero = function() { return !!this.d && this.d[0] === 0; }; P3.lessThan = P3.lt = function(y) { return this.cmp(y) < 0; }; P3.lessThanOrEqualTo = P3.lte = function(y) { return this.cmp(y) < 1; }; P3.logarithm = P3.log = function(base) { var isBase10, d, denominator, k4, inf, num, sd4, r, arg = this, Ctor = arg.constructor, pr5 = Ctor.precision, rm2 = Ctor.rounding, guard = 5; if (base == null) { base = new Ctor(10); isBase10 = true; } else { base = new Ctor(base); d = base.d; if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN); isBase10 = base.eq(10); } d = arg.d; if (arg.s < 0 || !d || !d[0] || arg.eq(1)) { return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0); } if (isBase10) { if (d.length > 1) { inf = true; } else { for (k4 = d[0]; k4 % 10 === 0; ) k4 /= 10; inf = k4 !== 1; } } external = false; sd4 = pr5 + guard; num = naturalLogarithm(arg, sd4); denominator = isBase10 ? getLn10(Ctor, sd4 + 10) : naturalLogarithm(base, sd4); r = divide(num, denominator, sd4, 1); if (checkRoundingDigits(r.d, k4 = pr5, rm2)) { do { sd4 += 10; num = naturalLogarithm(arg, sd4); denominator = isBase10 ? getLn10(Ctor, sd4 + 10) : naturalLogarithm(base, sd4); r = divide(num, denominator, sd4, 1); if (!inf) { if (+digitsToString(r.d).slice(k4 + 1, k4 + 15) + 1 == 1e14) { r = finalise(r, pr5 + 1, 0); } break; } } while (checkRoundingDigits(r.d, k4 += 10, rm2)); } external = true; return finalise(r, pr5, rm2); }; P3.minus = P3.sub = function(y) { var d, e29, i, j4, k4, len, pr5, rm2, xd3, xe, xLTy, yd4, x2 = this, Ctor = x2.constructor; y = new Ctor(y); if (!x2.d || !y.d) { if (!x2.s || !y.s) y = new Ctor(NaN); else if (x2.d) y.s = -y.s; else y = new Ctor(y.d || x2.s !== y.s ? x2 : NaN); return y; } if (x2.s != y.s) { y.s = -y.s; return x2.plus(y); } xd3 = x2.d; yd4 = y.d; pr5 = Ctor.precision; rm2 = Ctor.rounding; if (!xd3[0] || !yd4[0]) { if (yd4[0]) y.s = -y.s; else if (xd3[0]) y = new Ctor(x2); else return new Ctor(rm2 === 3 ? -0 : 0); return external ? finalise(y, pr5, rm2) : y; } e29 = mathfloor(y.e / LOG_BASE); xe = mathfloor(x2.e / LOG_BASE); xd3 = xd3.slice(); k4 = xe - e29; if (k4) { xLTy = k4 < 0; if (xLTy) { d = xd3; k4 = -k4; len = yd4.length; } else { d = yd4; e29 = xe; len = xd3.length; } i = Math.max(Math.ceil(pr5 / LOG_BASE), len) + 2; if (k4 > i) { k4 = i; d.length = 1; } d.reverse(); for (i = k4; i--; ) d.push(0); d.reverse(); } else { i = xd3.length; len = yd4.length; xLTy = i < len; if (xLTy) len = i; for (i = 0; i < len; i++) { if (xd3[i] != yd4[i]) { xLTy = xd3[i] < yd4[i]; break; } } k4 = 0; } if (xLTy) { d = xd3; xd3 = yd4; yd4 = d; y.s = -y.s; } len = xd3.length; for (i = yd4.length - len; i > 0; --i) xd3[len++] = 0; for (i = yd4.length; i > k4; ) { if (xd3[--i] < yd4[i]) { for (j4 = i; j4 && xd3[--j4] === 0; ) xd3[j4] = BASE - 1; --xd3[j4]; xd3[i] += BASE; } xd3[i] -= yd4[i]; } for (; xd3[--len] === 0; ) xd3.pop(); for (; xd3[0] === 0; xd3.shift()) --e29; if (!xd3[0]) return new Ctor(rm2 === 3 ? -0 : 0); y.d = xd3; y.e = getBase10Exponent(xd3, e29); return external ? finalise(y, pr5, rm2) : y; }; P3.modulo = P3.mod = function(y) { var q5, x2 = this, Ctor = x2.constructor; y = new Ctor(y); if (!x2.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN); if (!y.d || x2.d && !x2.d[0]) { return finalise(new Ctor(x2), Ctor.precision, Ctor.rounding); } external = false; if (Ctor.modulo == 9) { q5 = divide(x2, y.abs(), 0, 3, 1); q5.s *= y.s; } else { q5 = divide(x2, y, 0, Ctor.modulo, 1); } q5 = q5.times(y); external = true; return x2.minus(q5); }; P3.naturalExponential = P3.exp = function() { return naturalExponential(this); }; P3.naturalLogarithm = P3.ln = function() { return naturalLogarithm(this); }; P3.negated = P3.neg = function() { var x2 = new this.constructor(this); x2.s = -x2.s; return finalise(x2); }; P3.plus = P3.add = function(y) { var carry, d, e29, i, k4, len, pr5, rm2, xd3, yd4, x2 = this, Ctor = x2.constructor; y = new Ctor(y); if (!x2.d || !y.d) { if (!x2.s || !y.s) y = new Ctor(NaN); else if (!x2.d) y = new Ctor(y.d || x2.s === y.s ? x2 : NaN); return y; } if (x2.s != y.s) { y.s = -y.s; return x2.minus(y); } xd3 = x2.d; yd4 = y.d; pr5 = Ctor.precision; rm2 = Ctor.rounding; if (!xd3[0] || !yd4[0]) { if (!yd4[0]) y = new Ctor(x2); return external ? finalise(y, pr5, rm2) : y; } k4 = mathfloor(x2.e / LOG_BASE); e29 = mathfloor(y.e / LOG_BASE); xd3 = xd3.slice(); i = k4 - e29; if (i) { if (i < 0) { d = xd3; i = -i; len = yd4.length; } else { d = yd4; e29 = k4; len = xd3.length; } k4 = Math.ceil(pr5 / LOG_BASE); len = k4 > len ? k4 + 1 : len + 1; if (i > len) { i = len; d.length = 1; } d.reverse(); for (; i--; ) d.push(0); d.reverse(); } len = xd3.length; i = yd4.length; if (len - i < 0) { i = len; d = yd4; yd4 = xd3; xd3 = d; } for (carry = 0; i; ) { carry = (xd3[--i] = xd3[i] + yd4[i] + carry) / BASE | 0; xd3[i] %= BASE; } if (carry) { xd3.unshift(carry); ++e29; } for (len = xd3.length; xd3[--len] == 0; ) xd3.pop(); y.d = xd3; y.e = getBase10Exponent(xd3, e29); return external ? finalise(y, pr5, rm2) : y; }; P3.precision = P3.sd = function(z4) { var k4, x2 = this; if (z4 !== void 0 && z4 !== !!z4 && z4 !== 1 && z4 !== 0) throw Error(invalidArgument + z4); if (x2.d) { k4 = getPrecision(x2.d); if (z4 && x2.e + 1 > k4) k4 = x2.e + 1; } else { k4 = NaN; } return k4; }; P3.round = function() { var x2 = this, Ctor = x2.constructor; return finalise(new Ctor(x2), x2.e + 1, Ctor.rounding); }; P3.sine = P3.sin = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (!x2.isFinite()) return new Ctor(NaN); if (x2.isZero()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + Math.max(x2.e, x2.sd()) + LOG_BASE; Ctor.rounding = 1; x2 = sine(Ctor, toLessThanHalfPi(Ctor, x2)); Ctor.precision = pr5; Ctor.rounding = rm2; return finalise(quadrant > 2 ? x2.neg() : x2, pr5, rm2, true); }; P3.squareRoot = P3.sqrt = function() { var m, n, sd4, r, rep, t, x2 = this, d = x2.d, e29 = x2.e, s = x2.s, Ctor = x2.constructor; if (s !== 1 || !d || !d[0]) { return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x2 : 1 / 0); } external = false; s = Math.sqrt(+x2); if (s == 0 || s == 1 / 0) { n = digitsToString(d); if ((n.length + e29) % 2 == 0) n += "0"; s = Math.sqrt(n); e29 = mathfloor((e29 + 1) / 2) - (e29 < 0 || e29 % 2); if (s == 1 / 0) { n = "5e" + e29; } else { n = s.toExponential(); n = n.slice(0, n.indexOf("e") + 1) + e29; } r = new Ctor(n); } else { r = new Ctor(s.toString()); } sd4 = (e29 = Ctor.precision) + 3; for (; ; ) { t = r; r = t.plus(divide(x2, t, sd4 + 2, 1)).times(0.5); if (digitsToString(t.d).slice(0, sd4) === (n = digitsToString(r.d)).slice(0, sd4)) { n = n.slice(sd4 - 3, sd4 + 1); if (n == "9999" || !rep && n == "4999") { if (!rep) { finalise(t, e29 + 1, 0); if (t.times(t).eq(x2)) { r = t; break; } } sd4 += 4; rep = 1; } else { if (!+n || !+n.slice(1) && n.charAt(0) == "5") { finalise(r, e29 + 1, 1); m = !r.times(r).eq(x2); } break; } } } external = true; return finalise(r, e29, Ctor.rounding, m); }; P3.tangent = P3.tan = function() { var pr5, rm2, x2 = this, Ctor = x2.constructor; if (!x2.isFinite()) return new Ctor(NaN); if (x2.isZero()) return new Ctor(x2); pr5 = Ctor.precision; rm2 = Ctor.rounding; Ctor.precision = pr5 + 10; Ctor.rounding = 1; x2 = x2.sin(); x2.s = 1; x2 = divide(x2, new Ctor(1).minus(x2.times(x2)).sqrt(), pr5 + 10, 0); Ctor.precision = pr5; Ctor.rounding = rm2; return finalise(quadrant == 2 || quadrant == 4 ? x2.neg() : x2, pr5, rm2, true); }; P3.times = P3.mul = function(y) { var carry, e29, i, k4, r, rL, t, xdL, ydL, x2 = this, Ctor = x2.constructor, xd3 = x2.d, yd4 = (y = new Ctor(y)).d; y.s *= x2.s; if (!xd3 || !xd3[0] || !yd4 || !yd4[0]) { return new Ctor(!y.s || xd3 && !xd3[0] && !yd4 || yd4 && !yd4[0] && !xd3 ? NaN : !xd3 || !yd4 ? y.s / 0 : y.s * 0); } e29 = mathfloor(x2.e / LOG_BASE) + mathfloor(y.e / LOG_BASE); xdL = xd3.length; ydL = yd4.length; if (xdL < ydL) { r = xd3; xd3 = yd4; yd4 = r; rL = xdL; xdL = ydL; ydL = rL; } r = []; rL = xdL + ydL; for (i = rL; i--; ) r.push(0); for (i = ydL; --i >= 0; ) { carry = 0; for (k4 = xdL + i; k4 > i; ) { t = r[k4] + yd4[i] * xd3[k4 - i - 1] + carry; r[k4--] = t % BASE | 0; carry = t / BASE | 0; } r[k4] = (r[k4] + carry) % BASE | 0; } for (; !r[--rL]; ) r.pop(); if (carry) ++e29; else r.shift(); y.d = r; y.e = getBase10Exponent(r, e29); return external ? finalise(y, Ctor.precision, Ctor.rounding) : y; }; P3.toBinary = function(sd4, rm2) { return toStringBinary(this, 2, sd4, rm2); }; P3.toDecimalPlaces = P3.toDP = function(dp2, rm2) { var x2 = this, Ctor = x2.constructor; x2 = new Ctor(x2); if (dp2 === void 0) return x2; checkInt32(dp2, 0, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); return finalise(x2, dp2 + x2.e + 1, rm2); }; P3.toExponential = function(dp2, rm2) { var str, x2 = this, Ctor = x2.constructor; if (dp2 === void 0) { str = finiteToString(x2, true); } else { checkInt32(dp2, 0, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); x2 = finalise(new Ctor(x2), dp2 + 1, rm2); str = finiteToString(x2, true, dp2 + 1); } return x2.isNeg() && !x2.isZero() ? "-" + str : str; }; P3.toFixed = function(dp2, rm2) { var str, y, x2 = this, Ctor = x2.constructor; if (dp2 === void 0) { str = finiteToString(x2); } else { checkInt32(dp2, 0, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); y = finalise(new Ctor(x2), dp2 + x2.e + 1, rm2); str = finiteToString(y, false, dp2 + y.e + 1); } return x2.isNeg() && !x2.isZero() ? "-" + str : str; }; P3.toFraction = function(maxD) { var d, d0, d1, d2, e29, k4, n, n0, n1, pr5, q5, r, x2 = this, xd3 = x2.d, Ctor = x2.constructor; if (!xd3) return new Ctor(x2); n1 = d0 = new Ctor(1); d1 = n0 = new Ctor(0); d = new Ctor(d1); e29 = d.e = getPrecision(xd3) - x2.e - 1; k4 = e29 % LOG_BASE; d.d[0] = mathpow(10, k4 < 0 ? LOG_BASE + k4 : k4); if (maxD == null) { maxD = e29 > 0 ? d : n1; } else { n = new Ctor(maxD); if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n); maxD = n.gt(d) ? e29 > 0 ? d : n1 : n; } external = false; n = new Ctor(digitsToString(xd3)); pr5 = Ctor.precision; Ctor.precision = e29 = xd3.length * LOG_BASE * 2; for (; ; ) { q5 = divide(n, d, 0, 1, 1); d2 = d0.plus(q5.times(d1)); if (d2.cmp(maxD) == 1) break; d0 = d1; d1 = d2; d2 = n1; n1 = n0.plus(q5.times(d2)); n0 = d2; d2 = d; d = n.minus(q5.times(d2)); n = d2; } d2 = divide(maxD.minus(d0), d1, 0, 1, 1); n0 = n0.plus(d2.times(n1)); d0 = d0.plus(d2.times(d1)); n0.s = n1.s = x2.s; r = divide(n1, d1, e29, 1).minus(x2).abs().cmp(divide(n0, d0, e29, 1).minus(x2).abs()) < 1 ? [n1, d1] : [n0, d0]; Ctor.precision = pr5; external = true; return r; }; P3.toHexadecimal = P3.toHex = function(sd4, rm2) { return toStringBinary(this, 16, sd4, rm2); }; P3.toNearest = function(y, rm2) { var x2 = this, Ctor = x2.constructor; x2 = new Ctor(x2); if (y == null) { if (!x2.d) return x2; y = new Ctor(1); rm2 = Ctor.rounding; } else { y = new Ctor(y); if (rm2 === void 0) { rm2 = Ctor.rounding; } else { checkInt32(rm2, 0, 8); } if (!x2.d) return y.s ? x2 : y; if (!y.d) { if (y.s) y.s = x2.s; return y; } } if (y.d[0]) { external = false; x2 = divide(x2, y, 0, rm2, 1).times(y); external = true; finalise(x2); } else { y.s = x2.s; x2 = y; } return x2; }; P3.toNumber = function() { return +this; }; P3.toOctal = function(sd4, rm2) { return toStringBinary(this, 8, sd4, rm2); }; P3.toPower = P3.pow = function(y) { var e29, k4, pr5, r, rm2, s, x2 = this, Ctor = x2.constructor, yn4 = +(y = new Ctor(y)); if (!x2.d || !y.d || !x2.d[0] || !y.d[0]) return new Ctor(mathpow(+x2, yn4)); x2 = new Ctor(x2); if (x2.eq(1)) return x2; pr5 = Ctor.precision; rm2 = Ctor.rounding; if (y.eq(1)) return finalise(x2, pr5, rm2); e29 = mathfloor(y.e / LOG_BASE); if (e29 >= y.d.length - 1 && (k4 = yn4 < 0 ? -yn4 : yn4) <= MAX_SAFE_INTEGER3) { r = intPow(Ctor, x2, k4, pr5); return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr5, rm2); } s = x2.s; if (s < 0) { if (e29 < y.d.length - 1) return new Ctor(NaN); if ((y.d[e29] & 1) == 0) s = 1; if (x2.e == 0 && x2.d[0] == 1 && x2.d.length == 1) { x2.s = s; return x2; } } k4 = mathpow(+x2, yn4); e29 = k4 == 0 || !isFinite(k4) ? mathfloor(yn4 * (Math.log("0." + digitsToString(x2.d)) / Math.LN10 + x2.e + 1)) : new Ctor(k4 + "").e; if (e29 > Ctor.maxE + 1 || e29 < Ctor.minE - 1) return new Ctor(e29 > 0 ? s / 0 : 0); external = false; Ctor.rounding = x2.s = 1; k4 = Math.min(12, (e29 + "").length); r = naturalExponential(y.times(naturalLogarithm(x2, pr5 + k4)), pr5); if (r.d) { r = finalise(r, pr5 + 5, 1); if (checkRoundingDigits(r.d, pr5, rm2)) { e29 = pr5 + 10; r = finalise(naturalExponential(y.times(naturalLogarithm(x2, e29 + k4)), e29), e29 + 5, 1); if (+digitsToString(r.d).slice(pr5 + 1, pr5 + 15) + 1 == 1e14) { r = finalise(r, pr5 + 1, 0); } } } r.s = s; external = true; Ctor.rounding = rm2; return finalise(r, pr5, rm2); }; P3.toPrecision = function(sd4, rm2) { var str, x2 = this, Ctor = x2.constructor; if (sd4 === void 0) { str = finiteToString(x2, x2.e <= Ctor.toExpNeg || x2.e >= Ctor.toExpPos); } else { checkInt32(sd4, 1, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); x2 = finalise(new Ctor(x2), sd4, rm2); str = finiteToString(x2, sd4 <= x2.e || x2.e <= Ctor.toExpNeg, sd4); } return x2.isNeg() && !x2.isZero() ? "-" + str : str; }; P3.toSignificantDigits = P3.toSD = function(sd4, rm2) { var x2 = this, Ctor = x2.constructor; if (sd4 === void 0) { sd4 = Ctor.precision; rm2 = Ctor.rounding; } else { checkInt32(sd4, 1, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); } return finalise(new Ctor(x2), sd4, rm2); }; P3.toString = function() { var x2 = this, Ctor = x2.constructor, str = finiteToString(x2, x2.e <= Ctor.toExpNeg || x2.e >= Ctor.toExpPos); return x2.isNeg() && !x2.isZero() ? "-" + str : str; }; P3.truncated = P3.trunc = function() { return finalise(new this.constructor(this), this.e + 1, 1); }; P3.valueOf = P3.toJSON = function() { var x2 = this, Ctor = x2.constructor, str = finiteToString(x2, x2.e <= Ctor.toExpNeg || x2.e >= Ctor.toExpPos); return x2.isNeg() ? "-" + str : str; }; function digitsToString(d) { var i, k4, ws4, indexOfLastWord = d.length - 1, str = "", w2 = d[0]; if (indexOfLastWord > 0) { str += w2; for (i = 1; i < indexOfLastWord; i++) { ws4 = d[i] + ""; k4 = LOG_BASE - ws4.length; if (k4) str += getZeroString(k4); str += ws4; } w2 = d[i]; ws4 = w2 + ""; k4 = LOG_BASE - ws4.length; if (k4) str += getZeroString(k4); } else if (w2 === 0) { return "0"; } for (; w2 % 10 === 0; ) w2 /= 10; return str + w2; } function checkInt32(i, min2, max2) { if (i !== ~~i || i < min2 || i > max2) { throw Error(invalidArgument + i); } } function checkRoundingDigits(d, i, rm2, repeating) { var di3, k4, r, rd4; for (k4 = d[0]; k4 >= 10; k4 /= 10) --i; if (--i < 0) { i += LOG_BASE; di3 = 0; } else { di3 = Math.ceil((i + 1) / LOG_BASE); i %= LOG_BASE; } k4 = mathpow(10, LOG_BASE - i); rd4 = d[di3] % k4 | 0; if (repeating == null) { if (i < 3) { if (i == 0) rd4 = rd4 / 100 | 0; else if (i == 1) rd4 = rd4 / 10 | 0; r = rm2 < 4 && rd4 == 99999 || rm2 > 3 && rd4 == 49999 || rd4 == 5e4 || rd4 == 0; } else { r = (rm2 < 4 && rd4 + 1 == k4 || rm2 > 3 && rd4 + 1 == k4 / 2) && (d[di3 + 1] / k4 / 100 | 0) == mathpow(10, i - 2) - 1 || (rd4 == k4 / 2 || rd4 == 0) && (d[di3 + 1] / k4 / 100 | 0) == 0; } } else { if (i < 4) { if (i == 0) rd4 = rd4 / 1e3 | 0; else if (i == 1) rd4 = rd4 / 100 | 0; else if (i == 2) rd4 = rd4 / 10 | 0; r = (repeating || rm2 < 4) && rd4 == 9999 || !repeating && rm2 > 3 && rd4 == 4999; } else { r = ((repeating || rm2 < 4) && rd4 + 1 == k4 || !repeating && rm2 > 3 && rd4 + 1 == k4 / 2) && (d[di3 + 1] / k4 / 1e3 | 0) == mathpow(10, i - 3) - 1; } } return r; } function convertBase(str, baseIn, baseOut) { var j4, arr = [0], arrL, i = 0, strL = str.length; for (; i < strL; ) { for (arrL = arr.length; arrL--; ) arr[arrL] *= baseIn; arr[0] += NUMERALS.indexOf(str.charAt(i++)); for (j4 = 0; j4 < arr.length; j4++) { if (arr[j4] > baseOut - 1) { if (arr[j4 + 1] === void 0) arr[j4 + 1] = 0; arr[j4 + 1] += arr[j4] / baseOut | 0; arr[j4] %= baseOut; } } } return arr.reverse(); } function cosine(Ctor, x2) { var k4, len, y; if (x2.isZero()) return x2; len = x2.d.length; if (len < 32) { k4 = Math.ceil(len / 3); y = (1 / tinyPow(4, k4)).toString(); } else { k4 = 16; y = "2.3283064365386962890625e-10"; } Ctor.precision += k4; x2 = taylorSeries(Ctor, 1, x2.times(y), new Ctor(1)); for (var i = k4; i--; ) { var cos2x = x2.times(x2); x2 = cos2x.times(cos2x).minus(cos2x).times(8).plus(1); } Ctor.precision -= k4; return x2; } var divide = /* @__PURE__ */ (function() { function multiplyInteger(x2, k4, base) { var temp, carry = 0, i = x2.length; for (x2 = x2.slice(); i--; ) { temp = x2[i] * k4 + carry; x2[i] = temp % base | 0; carry = temp / base | 0; } if (carry) x2.unshift(carry); return x2; } function compare(a, b, aL, bL) { var i, r; if (aL != bL) { r = aL > bL ? 1 : -1; } else { for (i = r = 0; i < aL; i++) { if (a[i] != b[i]) { r = a[i] > b[i] ? 1 : -1; break; } } } return r; } function subtract(a, b, aL, base) { var i = 0; for (; aL--; ) { a[aL] -= i; i = a[aL] < b[aL] ? 1 : 0; a[aL] = i * base + a[aL] - b[aL]; } for (; !a[0] && a.length > 1; ) a.shift(); } return function(x2, y, pr5, rm2, dp2, base) { var cmp, e29, i, k4, logBase, more, prod, prodL, q5, qd3, rem, remL, rem0, sd4, t, xi4, xL, yd0, yL, yz, Ctor = x2.constructor, sign2 = x2.s == y.s ? 1 : -1, xd3 = x2.d, yd4 = y.d; if (!xd3 || !xd3[0] || !yd4 || !yd4[0]) { return new Ctor( // Return NaN if either NaN, or both Infinity or 0. !x2.s || !y.s || (xd3 ? yd4 && xd3[0] == yd4[0] : !yd4) ? NaN : ( // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0. xd3 && xd3[0] == 0 || !yd4 ? sign2 * 0 : sign2 / 0 ) ); } if (base) { logBase = 1; e29 = x2.e - y.e; } else { base = BASE; logBase = LOG_BASE; e29 = mathfloor(x2.e / logBase) - mathfloor(y.e / logBase); } yL = yd4.length; xL = xd3.length; q5 = new Ctor(sign2); qd3 = q5.d = []; for (i = 0; yd4[i] == (xd3[i] || 0); i++) ; if (yd4[i] > (xd3[i] || 0)) e29--; if (pr5 == null) { sd4 = pr5 = Ctor.precision; rm2 = Ctor.rounding; } else if (dp2) { sd4 = pr5 + (x2.e - y.e) + 1; } else { sd4 = pr5; } if (sd4 < 0) { qd3.push(1); more = true; } else { sd4 = sd4 / logBase + 2 | 0; i = 0; if (yL == 1) { k4 = 0; yd4 = yd4[0]; sd4++; for (; (i < xL || k4) && sd4--; i++) { t = k4 * base + (xd3[i] || 0); qd3[i] = t / yd4 | 0; k4 = t % yd4 | 0; } more = k4 || i < xL; } else { k4 = base / (yd4[0] + 1) | 0; if (k4 > 1) { yd4 = multiplyInteger(yd4, k4, base); xd3 = multiplyInteger(xd3, k4, base); yL = yd4.length; xL = xd3.length; } xi4 = yL; rem = xd3.slice(0, yL); remL = rem.length; for (; remL < yL; ) rem[remL++] = 0; yz = yd4.slice(); yz.unshift(0); yd0 = yd4[0]; if (yd4[1] >= base / 2) ++yd0; do { k4 = 0; cmp = compare(yd4, rem, yL, remL); if (cmp < 0) { rem0 = rem[0]; if (yL != remL) rem0 = rem0 * base + (rem[1] || 0); k4 = rem0 / yd0 | 0; if (k4 > 1) { if (k4 >= base) k4 = base - 1; prod = multiplyInteger(yd4, k4, base); prodL = prod.length; remL = rem.length; cmp = compare(prod, rem, prodL, remL); if (cmp == 1) { k4--; subtract(prod, yL < prodL ? yz : yd4, prodL, base); } } else { if (k4 == 0) cmp = k4 = 1; prod = yd4.slice(); } prodL = prod.length; if (prodL < remL) prod.unshift(0); subtract(rem, prod, remL, base); if (cmp == -1) { remL = rem.length; cmp = compare(yd4, rem, yL, remL); if (cmp < 1) { k4++; subtract(rem, yL < remL ? yz : yd4, remL, base); } } remL = rem.length; } else if (cmp === 0) { k4++; rem = [0]; } qd3[i++] = k4; if (cmp && rem[0]) { rem[remL++] = xd3[xi4] || 0; } else { rem = [xd3[xi4]]; remL = 1; } } while ((xi4++ < xL || rem[0] !== void 0) && sd4--); more = rem[0] !== void 0; } if (!qd3[0]) qd3.shift(); } if (logBase == 1) { q5.e = e29; inexact = more; } else { for (i = 1, k4 = qd3[0]; k4 >= 10; k4 /= 10) i++; q5.e = i + e29 * logBase - 1; finalise(q5, dp2 ? pr5 + q5.e + 1 : pr5, rm2, more); } return q5; }; })(); function finalise(x2, sd4, rm2, isTruncated) { var digits, i, j4, k4, rd4, roundUp, w2, xd3, xdi, Ctor = x2.constructor; out: if (sd4 != null) { xd3 = x2.d; if (!xd3) return x2; for (digits = 1, k4 = xd3[0]; k4 >= 10; k4 /= 10) digits++; i = sd4 - digits; if (i < 0) { i += LOG_BASE; j4 = sd4; w2 = xd3[xdi = 0]; rd4 = w2 / mathpow(10, digits - j4 - 1) % 10 | 0; } else { xdi = Math.ceil((i + 1) / LOG_BASE); k4 = xd3.length; if (xdi >= k4) { if (isTruncated) { for (; k4++ <= xdi; ) xd3.push(0); w2 = rd4 = 0; digits = 1; i %= LOG_BASE; j4 = i - LOG_BASE + 1; } else { break out; } } else { w2 = k4 = xd3[xdi]; for (digits = 1; k4 >= 10; k4 /= 10) digits++; i %= LOG_BASE; j4 = i - LOG_BASE + digits; rd4 = j4 < 0 ? 0 : w2 / mathpow(10, digits - j4 - 1) % 10 | 0; } } isTruncated = isTruncated || sd4 < 0 || xd3[xdi + 1] !== void 0 || (j4 < 0 ? w2 : w2 % mathpow(10, digits - j4 - 1)); roundUp = rm2 < 4 ? (rd4 || isTruncated) && (rm2 == 0 || rm2 == (x2.s < 0 ? 3 : 2)) : rd4 > 5 || rd4 == 5 && (rm2 == 4 || isTruncated || rm2 == 6 && // Check whether the digit to the left of the rounding digit is odd. (i > 0 ? j4 > 0 ? w2 / mathpow(10, digits - j4) : 0 : xd3[xdi - 1]) % 10 & 1 || rm2 == (x2.s < 0 ? 8 : 7)); if (sd4 < 1 || !xd3[0]) { xd3.length = 0; if (roundUp) { sd4 -= x2.e + 1; xd3[0] = mathpow(10, (LOG_BASE - sd4 % LOG_BASE) % LOG_BASE); x2.e = -sd4 || 0; } else { xd3[0] = x2.e = 0; } return x2; } if (i == 0) { xd3.length = xdi; k4 = 1; xdi--; } else { xd3.length = xdi + 1; k4 = mathpow(10, LOG_BASE - i); xd3[xdi] = j4 > 0 ? (w2 / mathpow(10, digits - j4) % mathpow(10, j4) | 0) * k4 : 0; } if (roundUp) { for (; ; ) { if (xdi == 0) { for (i = 1, j4 = xd3[0]; j4 >= 10; j4 /= 10) i++; j4 = xd3[0] += k4; for (k4 = 1; j4 >= 10; j4 /= 10) k4++; if (i != k4) { x2.e++; if (xd3[0] == BASE) xd3[0] = 1; } break; } else { xd3[xdi] += k4; if (xd3[xdi] != BASE) break; xd3[xdi--] = 0; k4 = 1; } } } for (i = xd3.length; xd3[--i] === 0; ) xd3.pop(); } if (external) { if (x2.e > Ctor.maxE) { x2.d = null; x2.e = NaN; } else if (x2.e < Ctor.minE) { x2.e = 0; x2.d = [0]; } } return x2; } function finiteToString(x2, isExp, sd4) { if (!x2.isFinite()) return nonFiniteToString(x2); var k4, e29 = x2.e, str = digitsToString(x2.d), len = str.length; if (isExp) { if (sd4 && (k4 = sd4 - len) > 0) { str = str.charAt(0) + "." + str.slice(1) + getZeroString(k4); } else if (len > 1) { str = str.charAt(0) + "." + str.slice(1); } str = str + (x2.e < 0 ? "e" : "e+") + x2.e; } else if (e29 < 0) { str = "0." + getZeroString(-e29 - 1) + str; if (sd4 && (k4 = sd4 - len) > 0) str += getZeroString(k4); } else if (e29 >= len) { str += getZeroString(e29 + 1 - len); if (sd4 && (k4 = sd4 - e29 - 1) > 0) str = str + "." + getZeroString(k4); } else { if ((k4 = e29 + 1) < len) str = str.slice(0, k4) + "." + str.slice(k4); if (sd4 && (k4 = sd4 - len) > 0) { if (e29 + 1 === len) str += "."; str += getZeroString(k4); } } return str; } function getBase10Exponent(digits, e29) { var w2 = digits[0]; for (e29 *= LOG_BASE; w2 >= 10; w2 /= 10) e29++; return e29; } function getLn10(Ctor, sd4, pr5) { if (sd4 > LN10_PRECISION) { external = true; if (pr5) Ctor.precision = pr5; throw Error(precisionLimitExceeded); } return finalise(new Ctor(LN10), sd4, 1, true); } function getPi(Ctor, sd4, rm2) { if (sd4 > PI_PRECISION) throw Error(precisionLimitExceeded); return finalise(new Ctor(PI), sd4, rm2, true); } function getPrecision(digits) { var w2 = digits.length - 1, len = w2 * LOG_BASE + 1; w2 = digits[w2]; if (w2) { for (; w2 % 10 == 0; w2 /= 10) len--; for (w2 = digits[0]; w2 >= 10; w2 /= 10) len++; } return len; } function getZeroString(k4) { var zs4 = ""; for (; k4--; ) zs4 += "0"; return zs4; } function intPow(Ctor, x2, n, pr5) { var isTruncated, r = new Ctor(1), k4 = Math.ceil(pr5 / LOG_BASE + 4); external = false; for (; ; ) { if (n % 2) { r = r.times(x2); if (truncate(r.d, k4)) isTruncated = true; } n = mathfloor(n / 2); if (n === 0) { n = r.d.length - 1; if (isTruncated && r.d[n] === 0) ++r.d[n]; break; } x2 = x2.times(x2); truncate(x2.d, k4); } external = true; return r; } function isOdd(n) { return n.d[n.d.length - 1] & 1; } function maxOrMin(Ctor, args, n) { var k4, y, x2 = new Ctor(args[0]), i = 0; for (; ++i < args.length; ) { y = new Ctor(args[i]); if (!y.s) { x2 = y; break; } k4 = x2.cmp(y); if (k4 === n || k4 === 0 && x2.s === n) { x2 = y; } } return x2; } function naturalExponential(x2, sd4) { var denominator, guard, j4, pow2, sum2, t, wpr, rep = 0, i = 0, k4 = 0, Ctor = x2.constructor, rm2 = Ctor.rounding, pr5 = Ctor.precision; if (!x2.d || !x2.d[0] || x2.e > 17) { return new Ctor(x2.d ? !x2.d[0] ? 1 : x2.s < 0 ? 0 : 1 / 0 : x2.s ? x2.s < 0 ? 0 : x2 : 0 / 0); } if (sd4 == null) { external = false; wpr = pr5; } else { wpr = sd4; } t = new Ctor(0.03125); while (x2.e > -2) { x2 = x2.times(t); k4 += 5; } guard = Math.log(mathpow(2, k4)) / Math.LN10 * 2 + 5 | 0; wpr += guard; denominator = pow2 = sum2 = new Ctor(1); Ctor.precision = wpr; for (; ; ) { pow2 = finalise(pow2.times(x2), wpr, 1); denominator = denominator.times(++i); t = sum2.plus(divide(pow2, denominator, wpr, 1)); if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) { j4 = k4; while (j4--) sum2 = finalise(sum2.times(sum2), wpr, 1); if (sd4 == null) { if (rep < 3 && checkRoundingDigits(sum2.d, wpr - guard, rm2, rep)) { Ctor.precision = wpr += 10; denominator = pow2 = t = new Ctor(1); i = 0; rep++; } else { return finalise(sum2, Ctor.precision = pr5, rm2, external = true); } } else { Ctor.precision = pr5; return sum2; } } sum2 = t; } } function naturalLogarithm(y, sd4) { var c, c0, denominator, e29, numerator, rep, sum2, t, wpr, x1, x2, n = 1, guard = 10, x3 = y, xd3 = x3.d, Ctor = x3.constructor, rm2 = Ctor.rounding, pr5 = Ctor.precision; if (x3.s < 0 || !xd3 || !xd3[0] || !x3.e && xd3[0] == 1 && xd3.length == 1) { return new Ctor(xd3 && !xd3[0] ? -1 / 0 : x3.s != 1 ? NaN : xd3 ? 0 : x3); } if (sd4 == null) { external = false; wpr = pr5; } else { wpr = sd4; } Ctor.precision = wpr += guard; c = digitsToString(xd3); c0 = c.charAt(0); if (Math.abs(e29 = x3.e) < 15e14) { while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) { x3 = x3.times(y); c = digitsToString(x3.d); c0 = c.charAt(0); n++; } e29 = x3.e; if (c0 > 1) { x3 = new Ctor("0." + c); e29++; } else { x3 = new Ctor(c0 + "." + c.slice(1)); } } else { t = getLn10(Ctor, wpr + 2, pr5).times(e29 + ""); x3 = naturalLogarithm(new Ctor(c0 + "." + c.slice(1)), wpr - guard).plus(t); Ctor.precision = pr5; return sd4 == null ? finalise(x3, pr5, rm2, external = true) : x3; } x1 = x3; sum2 = numerator = x3 = divide(x3.minus(1), x3.plus(1), wpr, 1); x2 = finalise(x3.times(x3), wpr, 1); denominator = 3; for (; ; ) { numerator = finalise(numerator.times(x2), wpr, 1); t = sum2.plus(divide(numerator, new Ctor(denominator), wpr, 1)); if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum2.d).slice(0, wpr)) { sum2 = sum2.times(2); if (e29 !== 0) sum2 = sum2.plus(getLn10(Ctor, wpr + 2, pr5).times(e29 + "")); sum2 = divide(sum2, new Ctor(n), wpr, 1); if (sd4 == null) { if (checkRoundingDigits(sum2.d, wpr - guard, rm2, rep)) { Ctor.precision = wpr += guard; t = numerator = x3 = divide(x1.minus(1), x1.plus(1), wpr, 1); x2 = finalise(x3.times(x3), wpr, 1); denominator = rep = 1; } else { return finalise(sum2, Ctor.precision = pr5, rm2, external = true); } } else { Ctor.precision = pr5; return sum2; } } sum2 = t; denominator += 2; } } function nonFiniteToString(x2) { return String(x2.s * x2.s / 0); } function parseDecimal(x2, str) { var e29, i, len; if ((e29 = str.indexOf(".")) > -1) str = str.replace(".", ""); if ((i = str.search(/e/i)) > 0) { if (e29 < 0) e29 = i; e29 += +str.slice(i + 1); str = str.substring(0, i); } else if (e29 < 0) { e29 = str.length; } for (i = 0; str.charCodeAt(i) === 48; i++) ; for (len = str.length; str.charCodeAt(len - 1) === 48; --len) ; str = str.slice(i, len); if (str) { len -= i; x2.e = e29 = e29 - i - 1; x2.d = []; i = (e29 + 1) % LOG_BASE; if (e29 < 0) i += LOG_BASE; if (i < len) { if (i) x2.d.push(+str.slice(0, i)); for (len -= LOG_BASE; i < len; ) x2.d.push(+str.slice(i, i += LOG_BASE)); str = str.slice(i); i = LOG_BASE - str.length; } else { i -= len; } for (; i--; ) str += "0"; x2.d.push(+str); if (external) { if (x2.e > x2.constructor.maxE) { x2.d = null; x2.e = NaN; } else if (x2.e < x2.constructor.minE) { x2.e = 0; x2.d = [0]; } } } else { x2.e = 0; x2.d = [0]; } return x2; } function parseOther(x2, str) { var base, Ctor, divisor, i, isFloat, len, p, xd3, xe; if (str.indexOf("_") > -1) { str = str.replace(/(\d)_(?=\d)/g, "$1"); if (isDecimal.test(str)) return parseDecimal(x2, str); } else if (str === "Infinity" || str === "NaN") { if (!+str) x2.s = NaN; x2.e = NaN; x2.d = null; return x2; } if (isHex.test(str)) { base = 16; str = str.toLowerCase(); } else if (isBinary.test(str)) { base = 2; } else if (isOctal.test(str)) { base = 8; } else { throw Error(invalidArgument + str); } i = str.search(/p/i); if (i > 0) { p = +str.slice(i + 1); str = str.substring(2, i); } else { str = str.slice(2); } i = str.indexOf("."); isFloat = i >= 0; Ctor = x2.constructor; if (isFloat) { str = str.replace(".", ""); len = str.length; i = len - i; divisor = intPow(Ctor, new Ctor(base), i, i * 2); } xd3 = convertBase(str, base, BASE); xe = xd3.length - 1; for (i = xe; xd3[i] === 0; --i) xd3.pop(); if (i < 0) return new Ctor(x2.s * 0); x2.e = getBase10Exponent(xd3, xe); x2.d = xd3; external = false; if (isFloat) x2 = divide(x2, divisor, len * 4); if (p) x2 = x2.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p)); external = true; return x2; } function sine(Ctor, x2) { var k4, len = x2.d.length; if (len < 3) { return x2.isZero() ? x2 : taylorSeries(Ctor, 2, x2, x2); } k4 = 1.4 * Math.sqrt(len); k4 = k4 > 16 ? 16 : k4 | 0; x2 = x2.times(1 / tinyPow(5, k4)); x2 = taylorSeries(Ctor, 2, x2, x2); var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20); for (; k4--; ) { sin2_x = x2.times(x2); x2 = x2.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20)))); } return x2; } function taylorSeries(Ctor, n, x2, y, isHyperbolic) { var j4, t, u, x22, i = 1, pr5 = Ctor.precision, k4 = Math.ceil(pr5 / LOG_BASE); external = false; x22 = x2.times(x2); u = new Ctor(y); for (; ; ) { t = divide(u.times(x22), new Ctor(n++ * n++), pr5, 1); u = isHyperbolic ? y.plus(t) : y.minus(t); y = divide(t.times(x22), new Ctor(n++ * n++), pr5, 1); t = u.plus(y); if (t.d[k4] !== void 0) { for (j4 = k4; t.d[j4] === u.d[j4] && j4--; ) ; if (j4 == -1) break; } j4 = u; u = y; y = t; t = j4; i++; } external = true; t.d.length = k4 + 1; return t; } function tinyPow(b, e29) { var n = b; while (--e29) n *= b; return n; } function toLessThanHalfPi(Ctor, x2) { var t, isNeg = x2.s < 0, pi3 = getPi(Ctor, Ctor.precision, 1), halfPi = pi3.times(0.5); x2 = x2.abs(); if (x2.lte(halfPi)) { quadrant = isNeg ? 4 : 1; return x2; } t = x2.divToInt(pi3); if (t.isZero()) { quadrant = isNeg ? 3 : 2; } else { x2 = x2.minus(t.times(pi3)); if (x2.lte(halfPi)) { quadrant = isOdd(t) ? isNeg ? 2 : 3 : isNeg ? 4 : 1; return x2; } quadrant = isOdd(t) ? isNeg ? 1 : 4 : isNeg ? 3 : 2; } return x2.minus(pi3).abs(); } function toStringBinary(x2, baseOut, sd4, rm2) { var base, e29, i, k4, len, roundUp, str, xd3, y, Ctor = x2.constructor, isExp = sd4 !== void 0; if (isExp) { checkInt32(sd4, 1, MAX_DIGITS); if (rm2 === void 0) rm2 = Ctor.rounding; else checkInt32(rm2, 0, 8); } else { sd4 = Ctor.precision; rm2 = Ctor.rounding; } if (!x2.isFinite()) { str = nonFiniteToString(x2); } else { str = finiteToString(x2); i = str.indexOf("."); if (isExp) { base = 2; if (baseOut == 16) { sd4 = sd4 * 4 - 3; } else if (baseOut == 8) { sd4 = sd4 * 3 - 2; } } else { base = baseOut; } if (i >= 0) { str = str.replace(".", ""); y = new Ctor(1); y.e = str.length - i; y.d = convertBase(finiteToString(y), 10, base); y.e = y.d.length; } xd3 = convertBase(str, 10, base); e29 = len = xd3.length; for (; xd3[--len] == 0; ) xd3.pop(); if (!xd3[0]) { str = isExp ? "0p+0" : "0"; } else { if (i < 0) { e29--; } else { x2 = new Ctor(x2); x2.d = xd3; x2.e = e29; x2 = divide(x2, y, sd4, rm2, 0, base); xd3 = x2.d; e29 = x2.e; roundUp = inexact; } i = xd3[sd4]; k4 = base / 2; roundUp = roundUp || xd3[sd4 + 1] !== void 0; roundUp = rm2 < 4 ? (i !== void 0 || roundUp) && (rm2 === 0 || rm2 === (x2.s < 0 ? 3 : 2)) : i > k4 || i === k4 && (rm2 === 4 || roundUp || rm2 === 6 && xd3[sd4 - 1] & 1 || rm2 === (x2.s < 0 ? 8 : 7)); xd3.length = sd4; if (roundUp) { for (; ++xd3[--sd4] > base - 1; ) { xd3[sd4] = 0; if (!sd4) { ++e29; xd3.unshift(1); } } } for (len = xd3.length; !xd3[len - 1]; --len) ; for (i = 0, str = ""; i < len; i++) str += NUMERALS.charAt(xd3[i]); if (isExp) { if (len > 1) { if (baseOut == 16 || baseOut == 8) { i = baseOut == 16 ? 4 : 3; for (--len; len % i; len++) str += "0"; xd3 = convertBase(str, base, baseOut); for (len = xd3.length; !xd3[len - 1]; --len) ; for (i = 1, str = "1."; i < len; i++) str += NUMERALS.charAt(xd3[i]); } else { str = str.charAt(0) + "." + str.slice(1); } } str = str + (e29 < 0 ? "p" : "p+") + e29; } else if (e29 < 0) { for (; ++e29; ) str = "0" + str; str = "0." + str; } else { if (++e29 > len) for (e29 -= len; e29--; ) str += "0"; else if (e29 < len) str = str.slice(0, e29) + "." + str.slice(e29); } } str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str; } return x2.s < 0 ? "-" + str : str; } function truncate(arr, len) { if (arr.length > len) { arr.length = len; return true; } } function abs(x2) { return new this(x2).abs(); } function acos(x2) { return new this(x2).acos(); } function acosh(x2) { return new this(x2).acosh(); } function add2(x2, y) { return new this(x2).plus(y); } function asin(x2) { return new this(x2).asin(); } function asinh(x2) { return new this(x2).asinh(); } function atan(x2) { return new this(x2).atan(); } function atanh(x2) { return new this(x2).atanh(); } function atan2(y, x2) { y = new this(y); x2 = new this(x2); var r, pr5 = this.precision, rm2 = this.rounding, wpr = pr5 + 4; if (!y.s || !x2.s) { r = new this(NaN); } else if (!y.d && !x2.d) { r = getPi(this, wpr, 1).times(x2.s > 0 ? 0.25 : 0.75); r.s = y.s; } else if (!x2.d || y.isZero()) { r = x2.s < 0 ? getPi(this, pr5, rm2) : new this(0); r.s = y.s; } else if (!y.d || x2.isZero()) { r = getPi(this, wpr, 1).times(0.5); r.s = y.s; } else if (x2.s < 0) { this.precision = wpr; this.rounding = 1; r = this.atan(divide(y, x2, wpr, 1)); x2 = getPi(this, wpr, 1); this.precision = pr5; this.rounding = rm2; r = y.s < 0 ? r.minus(x2) : r.plus(x2); } else { r = this.atan(divide(y, x2, wpr, 1)); } return r; } function cbrt(x2) { return new this(x2).cbrt(); } function ceil(x2) { return finalise(x2 = new this(x2), x2.e + 1, 2); } function clamp2(x2, min2, max2) { return new this(x2).clamp(min2, max2); } function config2(obj) { if (!obj || typeof obj !== "object") throw Error(decimalError + "Object expected"); var i, p, v, useDefaults = obj.defaults === true, ps4 = [ "precision", 1, MAX_DIGITS, "rounding", 0, 8, "toExpNeg", -EXP_LIMIT, 0, "toExpPos", 0, EXP_LIMIT, "maxE", 0, EXP_LIMIT, "minE", -EXP_LIMIT, 0, "modulo", 0, 9 ]; for (i = 0; i < ps4.length; i += 3) { if (p = ps4[i], useDefaults) this[p] = DEFAULTS[p]; if ((v = obj[p]) !== void 0) { if (mathfloor(v) === v && v >= ps4[i + 1] && v <= ps4[i + 2]) this[p] = v; else throw Error(invalidArgument + p + ": " + v); } } if (p = "crypto", useDefaults) this[p] = DEFAULTS[p]; if ((v = obj[p]) !== void 0) { if (v === true || v === false || v === 0 || v === 1) { if (v) { if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { this[p] = true; } else { throw Error(cryptoUnavailable); } } else { this[p] = false; } } else { throw Error(invalidArgument + p + ": " + v); } } return this; } function cos(x2) { return new this(x2).cos(); } function cosh(x2) { return new this(x2).cosh(); } function clone(obj) { var i, p, ps4; function Decimal2(v) { var e29, i2, t, x2 = this; if (!(x2 instanceof Decimal2)) return new Decimal2(v); x2.constructor = Decimal2; if (isDecimalInstance(v)) { x2.s = v.s; if (external) { if (!v.d || v.e > Decimal2.maxE) { x2.e = NaN; x2.d = null; } else if (v.e < Decimal2.minE) { x2.e = 0; x2.d = [0]; } else { x2.e = v.e; x2.d = v.d.slice(); } } else { x2.e = v.e; x2.d = v.d ? v.d.slice() : v.d; } return; } t = typeof v; if (t === "number") { if (v === 0) { x2.s = 1 / v < 0 ? -1 : 1; x2.e = 0; x2.d = [0]; return; } if (v < 0) { v = -v; x2.s = -1; } else { x2.s = 1; } if (v === ~~v && v < 1e7) { for (e29 = 0, i2 = v; i2 >= 10; i2 /= 10) e29++; if (external) { if (e29 > Decimal2.maxE) { x2.e = NaN; x2.d = null; } else if (e29 < Decimal2.minE) { x2.e = 0; x2.d = [0]; } else { x2.e = e29; x2.d = [v]; } } else { x2.e = e29; x2.d = [v]; } return; } if (v * 0 !== 0) { if (!v) x2.s = NaN; x2.e = NaN; x2.d = null; return; } return parseDecimal(x2, v.toString()); } if (t === "string") { if ((i2 = v.charCodeAt(0)) === 45) { v = v.slice(1); x2.s = -1; } else { if (i2 === 43) v = v.slice(1); x2.s = 1; } return isDecimal.test(v) ? parseDecimal(x2, v) : parseOther(x2, v); } if (t === "bigint") { if (v < 0) { v = -v; x2.s = -1; } else { x2.s = 1; } return parseDecimal(x2, v.toString()); } throw Error(invalidArgument + v); } Decimal2.prototype = P3; Decimal2.ROUND_UP = 0; Decimal2.ROUND_DOWN = 1; Decimal2.ROUND_CEIL = 2; Decimal2.ROUND_FLOOR = 3; Decimal2.ROUND_HALF_UP = 4; Decimal2.ROUND_HALF_DOWN = 5; Decimal2.ROUND_HALF_EVEN = 6; Decimal2.ROUND_HALF_CEIL = 7; Decimal2.ROUND_HALF_FLOOR = 8; Decimal2.EUCLID = 9; Decimal2.config = Decimal2.set = config2; Decimal2.clone = clone; Decimal2.isDecimal = isDecimalInstance; Decimal2.abs = abs; Decimal2.acos = acos; Decimal2.acosh = acosh; Decimal2.add = add2; Decimal2.asin = asin; Decimal2.asinh = asinh; Decimal2.atan = atan; Decimal2.atanh = atanh; Decimal2.atan2 = atan2; Decimal2.cbrt = cbrt; Decimal2.ceil = ceil; Decimal2.clamp = clamp2; Decimal2.cos = cos; Decimal2.cosh = cosh; Decimal2.div = div; Decimal2.exp = exp; Decimal2.floor = floor3; Decimal2.hypot = hypot; Decimal2.ln = ln2; Decimal2.log = log; Decimal2.log10 = log10; Decimal2.log2 = log2; Decimal2.max = max; Decimal2.min = min; Decimal2.mod = mod; Decimal2.mul = mul; Decimal2.pow = pow; Decimal2.random = random2; Decimal2.round = round2; Decimal2.sign = sign; Decimal2.sin = sin; Decimal2.sinh = sinh; Decimal2.sqrt = sqrt; Decimal2.sub = sub; Decimal2.sum = sum; Decimal2.tan = tan; Decimal2.tanh = tanh; Decimal2.trunc = trunc; if (obj === void 0) obj = {}; if (obj) { if (obj.defaults !== true) { ps4 = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"]; for (i = 0; i < ps4.length; ) if (!obj.hasOwnProperty(p = ps4[i++])) obj[p] = this[p]; } } Decimal2.config(obj); return Decimal2; } function div(x2, y) { return new this(x2).div(y); } function exp(x2) { return new this(x2).exp(); } function floor3(x2) { return finalise(x2 = new this(x2), x2.e + 1, 3); } function hypot() { var i, n, t = new this(0); external = false; for (i = 0; i < arguments.length; ) { n = new this(arguments[i++]); if (!n.d) { if (n.s) { external = true; return new this(1 / 0); } t = n; } else if (t.d) { t = t.plus(n.times(n)); } } external = true; return t.sqrt(); } function isDecimalInstance(obj) { return obj instanceof Decimal || obj && obj.toStringTag === tag || false; } function ln2(x2) { return new this(x2).ln(); } function log(x2, y) { return new this(x2).log(y); } function log2(x2) { return new this(x2).log(2); } function log10(x2) { return new this(x2).log(10); } function max() { return maxOrMin(this, arguments, -1); } function min() { return maxOrMin(this, arguments, 1); } function mod(x2, y) { return new this(x2).mod(y); } function mul(x2, y) { return new this(x2).mul(y); } function pow(x2, y) { return new this(x2).pow(y); } function random2(sd4) { var d, e29, k4, n, i = 0, r = new this(1), rd4 = []; if (sd4 === void 0) sd4 = this.precision; else checkInt32(sd4, 1, MAX_DIGITS); k4 = Math.ceil(sd4 / LOG_BASE); if (!this.crypto) { for (; i < k4; ) rd4[i++] = Math.random() * 1e7 | 0; } else if (crypto.getRandomValues) { d = crypto.getRandomValues(new Uint32Array(k4)); for (; i < k4; ) { n = d[i]; if (n >= 429e7) { d[i] = crypto.getRandomValues(new Uint32Array(1))[0]; } else { rd4[i++] = n % 1e7; } } } else if (crypto.randomBytes) { d = crypto.randomBytes(k4 *= 4); for (; i < k4; ) { n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 127) << 24); if (n >= 214e7) { crypto.randomBytes(4).copy(d, i); } else { rd4.push(n % 1e7); i += 4; } } i = k4 / 4; } else { throw Error(cryptoUnavailable); } k4 = rd4[--i]; sd4 %= LOG_BASE; if (k4 && sd4) { n = mathpow(10, LOG_BASE - sd4); rd4[i] = (k4 / n | 0) * n; } for (; rd4[i] === 0; i--) rd4.pop(); if (i < 0) { e29 = 0; rd4 = [0]; } else { e29 = -1; for (; rd4[0] === 0; e29 -= LOG_BASE) rd4.shift(); for (k4 = 1, n = rd4[0]; n >= 10; n /= 10) k4++; if (k4 < LOG_BASE) e29 -= LOG_BASE - k4; } r.e = e29; r.d = rd4; return r; } function round2(x2) { return finalise(x2 = new this(x2), x2.e + 1, this.rounding); } function sign(x2) { x2 = new this(x2); return x2.d ? x2.d[0] ? x2.s : 0 * x2.s : x2.s || NaN; } function sin(x2) { return new this(x2).sin(); } function sinh(x2) { return new this(x2).sinh(); } function sqrt(x2) { return new this(x2).sqrt(); } function sub(x2, y) { return new this(x2).sub(y); } function sum() { var i = 0, args = arguments, x2 = new this(args[i]); external = false; for (; x2.s && ++i < args.length; ) x2 = x2.plus(args[i]); external = true; return finalise(x2, this.precision, this.rounding); } function tan(x2) { return new this(x2).tan(); } function tanh(x2) { return new this(x2).tanh(); } function trunc(x2) { return finalise(x2 = new this(x2), x2.e + 1, 1); } P3[/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")] = P3.toString; P3[Symbol.toStringTag] = "Decimal"; var Decimal = P3.constructor = clone(DEFAULTS); LN10 = new Decimal(LN10); PI = new Decimal(PI); var decimal_default = Decimal; // node_modules/@univerjs/rpc/lib/es/index.js var x = `rpc.main-thread.config`; Symbol(x); var S3 = {}; var C2 = `rpc.worker-thread.config`; Symbol(C2); var w = {}; function T3(e29, t) { return function(n, r) { t(n, r, e29); }; } function E2(e29, t, n, r) { var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o; if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e29, t, n, r); else for (var s = e29.length - 1; s >= 0; s--) (o = e29[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a); return i > 3 && a && Object.defineProperty(t, n, a), a; } var D2 = `rpc.remote-sync.service`; var O3 = createIdentifier(D2); var k2 = class { constructor(e29) { this._commandService = e29; } async syncMutation(e29, t) { let { fromCollab: n, ...r } = t || {}; return this._commandService.syncExecuteCommand(e29.mutationInfo.id, e29.mutationInfo.params, { ...r, onlyLocal: true, fromSync: true }); } }; k2 = E2([T3(0, ii)], k2); var A2 = `univer.remote-instance-service`; var j2 = createIdentifier(A2); var M2 = class { constructor(e29, t, n) { this._univerInstanceService = e29, this._commandService = t, this._logService = n; } whenReady() { return Promise.resolve(true); } async syncMutation(e29, t) { return this._applyMutation(e29.mutationInfo, t); } async createInstance(e29) { this._logService.debug(`[WebWorkerRemoteInstanceService]: Creating instance with id ${e29.unitID}`); let { type: t, snapshot: n } = e29; try { switch (t) { case O.UNIVER_SHEET: return this._univerInstanceService.createUnit(O.UNIVER_SHEET, n), true; default: throw Error(`[WebWorkerRemoteInstanceService]: cannot create replica for document type: ${t}.`); } } catch (e30) { throw e30 instanceof Error ? e30 : TypeError(`${e30}`); } } async disposeInstance(e29) { return this._logService.debug(`[WebWorkerRemoteInstanceService]: Disposing instance with id ${e29.unitID}`), this._univerInstanceService.disposeUnit(e29.unitID); } _applyMutation(e29, t) { let { id: n, params: r } = e29, { fromCollab: i, ...a } = t || {}; return this._commandService.syncExecuteCommand(n, r, { ...a, onlyLocal: true, fromSync: true }); } }; M2 = E2([T3(0, Mu), T3(1, ii), T3(2, L)], M2); function N2(e29) { "@babel/helpers - typeof"; return N2 = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e30) { return typeof e30; } : function(e30) { return e30 && typeof Symbol == `function` && e30.constructor === Symbol && e30 !== Symbol.prototype ? `symbol` : typeof e30; }, N2(e29); } function P4(e29, t) { if (N2(e29) != `object` || !e29) return e29; var n = e29[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e29, t || `default`); if (N2(r) != `object`) return r; throw TypeError(`@@toPrimitive must return a primitive value.`); } return (t === `string` ? String : Number)(e29); } function F2(e29) { var t = P4(e29, `string`); return N2(t) == `symbol` ? t : t + ``; } function I2(e29, t, n) { return (t = F2(t)) in e29 ? Object.defineProperty(e29, t, { value: n, enumerable: true, configurable: true, writable: true }) : e29[t] = n, e29; } function L2(e29) { let t = e29; return new class { call(e30, n) { let r = t[e30]; if (typeof r == `function`) { let e31 = n ? r.apply(t, n) : r.call(t); return e31 instanceof Promise || (e31 = Promise.resolve(e31)), e31; } throw Error(`[RPC]: method not found for ${e30}!`); } subscribe(e30, n) { let r = t[e30]; if (typeof r == `function`) { let e31 = n ? r.apply(t, n) : r.call(t); return isObservable(e31) ? e31 : of(e31); } throw Error(`[RPC]: observable method not found for ${e30}!`); } }(); } function R3(e29) { return new Proxy({}, { get(t, n) { if (n !== `dispose`) return function(...t2) { return z2(n) ? e29.subscribe(n, t2) : e29.call(n, t2); }; } }); } function z2(e29) { return e29.endsWith(`$`); } var B2 = (function(e29) { return e29[e29.REQUEST_INITIALIZATION = 50] = `REQUEST_INITIALIZATION`, e29[e29.CALL = 100] = `CALL`, e29[e29.SUBSCRIBE = 101] = `SUBSCRIBE`, e29[e29.UNSUBSCRIBE = 102] = `UNSUBSCRIBE`, e29; })(B2 || {}); var V2 = (function(e29) { return e29[e29.INITIALIZE = 0] = `INITIALIZE`, e29[e29.CALL_SUCCESS = 201] = `CALL_SUCCESS`, e29[e29.CALL_FAILURE = 202] = `CALL_FAILURE`, e29[e29.SUBSCRIBE_NEXT = 300] = `SUBSCRIBE_NEXT`, e29[e29.SUBSCRIBE_ERROR = 301] = `SUBSCRIBE_ERROR`, e29[e29.SUBSCRIBE_COMPLETE = 302] = `SUBSCRIBE_COMPLETE`, e29; })(V2 || {}); var H2 = class extends dn { constructor(e29) { super(), this._protocol = e29, I2(this, `_initialized`, new BehaviorSubject(false)), I2(this, `_lastRequestCounter`, 0), I2(this, `_pendingRequests`, /* @__PURE__ */ new Map()), this._protocol.send({ type: B2.REQUEST_INITIALIZATION }), this._protocol.onMessage.pipe(takeUntil(this.dispose$)).subscribe((e30) => this._onMessage(e30)); } dispose() { this._pendingRequests.clear(); } getChannel(e29) { return { call: (t, n) => this._disposed ? Promise.reject(Error(`[ChannelClient]: client is disposed!`)) : this._remoteCall(e29, t, n), subscribe: (t, n) => { if (this._disposed) throw Error(`[ChannelClient]: client is disposed!`); return this._remoteSubscribe(e29, t, n); } }; } _whenReady() { return firstValueFrom(this._initialized.pipe(filter((e29) => e29), take(1))); } _remoteCall(e29, t, n) { return this._initialized.getValue() ? this._doRemoteCall(e29, t, n) : this._whenReady().then(() => this._doRemoteCall(e29, t, n)); } _doRemoteCall(e29, t, n) { let r = ++this._lastRequestCounter, i = { seq: r, type: B2.CALL, channelName: e29, method: t, args: n }, a = this._pendingRequests; return new Promise((e30, t2) => { this._pendingRequests.set(r, { handle(n2) { switch (n2.type) { case V2.CALL_SUCCESS: a.delete(r), e30(n2.data); break; case V2.CALL_FAILURE: a.delete(r), t2(n2.data); break; default: throw Error(`[ChannelClient]: unknown response type!`); } } }), this._sendRequest(i); }); } _remoteSubscribe(e29, t, n) { return new Observable((r) => { let i = -1, a = () => { i = ++this._lastRequestCounter; let a2 = B2.SUBSCRIBE, o = { seq: i, type: a2, channelName: e29, method: t, args: n }; this._pendingRequests.set(i, { handle(e30) { switch (e30.type) { case V2.SUBSCRIBE_NEXT: r.next(e30.data); break; case V2.SUBSCRIBE_ERROR: r.error(e30.data); break; case V2.SUBSCRIBE_COMPLETE: r.complete(); break; default: throw Error(`[ChannelClient]: unknown response type!`); } } }), this._sendRequest(o); }; return this._initialized.getValue() ? a() : this._whenReady().then(a), () => { if (i === -1) return; let n2 = { type: B2.UNSUBSCRIBE, seq: i, channelName: e29, method: t }; this._sendRequest(n2); }; }); } _sendRequest(e29) { this._protocol.send(e29); } _onMessage(e29) { let { type: t, seq: n } = e29; switch (t) { case V2.INITIALIZE: this._initialized.next(true); break; case V2.CALL_SUCCESS: case V2.CALL_FAILURE: case V2.SUBSCRIBE_NEXT: case V2.SUBSCRIBE_COMPLETE: case V2.SUBSCRIBE_ERROR: { var r; let { _pendingRequests: i } = this; (r = i.get(n)) == null || r.handle(e29), t !== V2.SUBSCRIBE_NEXT && i.delete(n); break; } } } }; var U2 = class extends dn { constructor(e29) { super(), this._protocol = e29, I2(this, `_channels`, /* @__PURE__ */ new Map()), I2(this, `_subscriptions`, /* @__PURE__ */ new Map()), this._protocol.onMessage.pipe(takeUntil(this.dispose$)).subscribe((e30) => this._onRequest(e30)), this._sendInitialize(); } dispose() { super.dispose(), this._subscriptions.clear(), this._channels.clear(); } registerChannel(e29, t) { this._channels.set(e29, t); } _onRequest(e29) { switch (e29.type) { case B2.REQUEST_INITIALIZATION: this._sendInitialize(); break; case B2.CALL: this._onMethodCall(e29); break; case B2.SUBSCRIBE: this._onSubscribe(e29); break; case B2.UNSUBSCRIBE: this._onUnsubscribe(e29); break; default: break; } } _sendInitialize() { this._sendResponse({ seq: -1, type: V2.INITIALIZE }); } _onMethodCall(e29) { let { channelName: t, method: n, args: r } = e29, i = this._channels.get(t), a; try { if (!i) throw Error(`[ChannelServer]: Channel ${t} not found!`); a = r ? i.call(n, r) : i.call(n); } catch (e30) { a = Promise.reject(e30 instanceof Error ? e30 : Error(String(e30))); } a.then((t2) => { this._sendResponse({ seq: e29.seq, type: V2.CALL_SUCCESS, data: t2 }); }).catch((t2) => { t2 instanceof Error ? this._sendResponse({ seq: e29.seq, type: V2.CALL_FAILURE, data: t2.message }) : this._sendResponse({ seq: e29.seq, type: V2.CALL_FAILURE, data: String(t2) }); }); } _onSubscribe(e29) { let { channelName: t, seq: n } = e29, r = this._channels.get(t); try { if (!r) throw Error(`[ChannelServer]: Channel ${t} not found!`); let i = r.subscribe(e29.method, e29.args).subscribe({ next: (e30) => { this._sendResponse({ seq: n, type: V2.SUBSCRIBE_NEXT, data: e30 }); }, error: (e30) => { this._sendResponse({ seq: n, type: V2.SUBSCRIBE_ERROR, data: e30.message }), this._sendResponse({ seq: n, type: V2.SUBSCRIBE_COMPLETE }); }, complete: () => { this._sendResponse({ seq: n, type: V2.SUBSCRIBE_COMPLETE }); } }); this._subscriptions.set(e29.seq, i); } catch (t2) { t2 instanceof Error ? this._sendResponse({ seq: e29.seq, type: V2.SUBSCRIBE_ERROR, data: t2.message }) : this._sendResponse({ seq: e29.seq, type: V2.SUBSCRIBE_ERROR, data: String(t2) }); } } _onUnsubscribe(e29) { let t = this._subscriptions.get(e29.seq); t && (t.unsubscribe(), this._subscriptions.delete(e29.seq)); } _sendResponse(e29) { this._protocol.send(e29); } }; var W2 = createIdentifier(`IRPCChannelService`); var G2 = class { constructor(e29) { I2(this, `_client`, void 0), I2(this, `_server`, void 0), this._client = new H2(e29), this._server = new U2(e29); } dispose() { this._client.dispose(), this._server.dispose(); } requestChannel(e29) { return this._client.getChannel(e29); } registerChannel(e29, t) { this._server.registerChannel(e29, t); } }; var K2 = class extends dn { constructor(e29, t, n, r, i) { super(), this._injector = e29, this._commandService = t, this._univerInstanceService = n, this._rpcChannelService = r, this._remoteSyncService = i, I2(this, `_remoteInstanceService`, void 0), I2(this, `_syncingUnits`, /* @__PURE__ */ new Set()), I2(this, `_syncingMutations`, /* @__PURE__ */ new Set()), this._initRPCChannels(), this._init(); } registerSyncingMutations(e29) { this._syncingMutations.add(e29.id); } syncUnit(e29) { return this._syncingUnits.add(e29), T2(() => this._syncingUnits.delete(e29)); } _initRPCChannels() { this._rpcChannelService.registerChannel(D2, L2(this._remoteSyncService)), this._injector.add([j2, { useFactory: () => R3(this._rpcChannelService.requestChannel(A2)) }]), this._remoteInstanceService = this._injector.get(j2); } _init() { this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).pipe(takeUntil(this.dispose$)).subscribe((e29) => { this._syncingUnits.add(e29.getUnitId()), this._remoteInstanceService.createInstance({ unitID: e29.getUnitId(), type: O.UNIVER_SHEET, snapshot: e29.getSnapshot() }); }), this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).pipe(takeUntil(this.dispose$)).subscribe((e29) => { this._syncingUnits.delete(e29.getUnitId()), this._remoteInstanceService.disposeInstance({ unitID: e29.getUnitId() }); }), this.disposeWithMe(this._commandService.onCommandExecuted((t, n) => { let { type: r, params: i, id: a } = t, o = (i == null ? void 0 : i.unitId) || ``; r === ri.MUTATION && (!o || this._syncingUnits.has(o)) && !(n != null && n.fromSync) && this._syncingMutations.has(a) && this._remoteInstanceService.syncMutation({ mutationInfo: t }, n); })); } }; K2 = E2([T3(0, Inject(Injector)), T3(1, ii), T3(2, Mu), T3(3, W2), T3(4, O3)], K2); var q2 = class extends E { constructor(e29, t, n, r) { super(), this._injector = e29, this._remoteInstanceService = t, this._commandService = n, this._rpcChannelService = r, I2(this, `_remoteSyncService`, void 0), this._initRPCChannels(), this._init(); } _initRPCChannels() { this._rpcChannelService.registerChannel(A2, L2(this._remoteInstanceService)), this._injector.add([O3, { useFactory: () => R3(this._rpcChannelService.requestChannel(D2)) }]), this._remoteSyncService = this._injector.get(O3); } _init() { this.disposeWithMe(this._commandService.onCommandExecuted((t, n) => { t.type === ri.MUTATION && !(n != null && n.fromSync) && this._remoteSyncService.syncMutation({ mutationInfo: t }, n); })); } }; q2 = E2([T3(0, Inject(Injector)), T3(1, j2), T3(2, ii), T3(3, W2)], q2); var J2 = `@univerjs/rpc`; var Y2 = `0.19.0`; function X2() { return { send(e29) { postMessage(e29); }, onMessage: new Observable((e29) => { let t = (t2) => { e29.next(t2.data); }; return addEventListener(`message`, t), () => removeEventListener(`message`, t); }).pipe(shareReplay(1)) }; } function Z2(e29) { return { send(t) { e29.postMessage(t); }, onMessage: new Observable((t) => { let n = (e30) => { t.next(e30.data); }; return e29.addEventListener(`message`, n), () => e29.removeEventListener(`message`, n); }).pipe(shareReplay(1)) }; } var Q2 = class extends qu { constructor(e29 = S3, t, n) { super(), this._config = e29, this._injector = t, this._configService = n, I2(this, `_internalWorker`, null); let { ...r } = merge_default({}, S3, this._config); this._configService.setConfig(x, r); } dispose() { super.dispose(), this._internalWorker && (this._internalWorker.terminate(), this._internalWorker = null); } onStarting() { let { workerURL: e29 } = this._config; if (!e29) throw Error(`[UniverRPCMainThreadPlugin]: The workerURL is required for the RPC main thread plugin.`); let t = e29 instanceof Worker ? e29 : new Worker(e29); this._internalWorker = e29 instanceof Worker ? null : t; let n = Z2(t); [[W2, { useFactory: () => new G2(n) }], [K2], [O3, { useClass: k2 }]].forEach((e30) => this._injector.add(e30)), this._injector.get(K2); } }; I2(Q2, `pluginName`, `UNIVER_RPC_MAIN_THREAD_PLUGIN`), I2(Q2, `packageName`, J2), I2(Q2, `version`, Y2), Q2 = E2([T3(1, Inject(Injector)), T3(2, Yr)], Q2); var $2 = class extends qu { constructor(e29 = w, t, n) { super(), this._config = e29, this._injector = t, this._configService = n; let { ...r } = merge_default({}, w, this._config); this._configService.setConfig(C2, r); } onStarting() { [[q2], [W2, { useFactory: () => new G2(X2()) }], [j2, { useClass: M2 }]].forEach((e29) => this._injector.add(e29)), this._injector.get(q2); } }; I2($2, `pluginName`, `UNIVER_RPC_WORKER_THREAD_PLUGIN`), I2($2, `packageName`, J2), I2($2, `version`, Y2), $2 = E2([T3(1, Inject(Injector)), T3(2, Yr)], $2); // node_modules/@univerjs/engine-formula/lib/es/index.js var Ne = (function(e29) { return e29.FALSE = `FALSE`, e29.TRUE = `TRUE`, e29; })({}); var Pe = (function(e29) { return e29[e29.SUCCESS = 0] = `SUCCESS`, e29[e29.ERROR = 1] = `ERROR`, e29; })({}); var Fe = (function(e29) { return e29.ALL = `#All`, e29.DATA = `#Data`, e29.HEADERS = `#Headers`, e29.TOTALS = `#Totals`, e29.THIS_ROW = `#This Row`, e29; })({}); var Ie2 = (function(e29) { return e29[e29.FRONT = 0] = `FRONT`, e29[e29.BACK = 1] = `BACK`, e29; })({}); function Le2(e29) { "@babel/helpers - typeof"; return Le2 = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e30) { return typeof e30; } : function(e30) { return e30 && typeof Symbol == `function` && e30.constructor === Symbol && e30 !== Symbol.prototype ? `symbol` : typeof e30; }, Le2(e29); } function Re2(e29, t) { if (Le2(e29) != `object` || !e29) return e29; var n = e29[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e29, t || `default`); if (Le2(r) != `object`) return r; throw TypeError(`@@toPrimitive must return a primitive value.`); } return (t === `string` ? String : Number)(e29); } function ze2(e29) { var t = Re2(e29, `string`); return Le2(t) == `symbol` ? t : t + ``; } function E3(e29, t, n) { return (t = ze2(t)) in e29 ? Object.defineProperty(e29, t, { value: n, enumerable: true, configurable: true, writable: true }) : e29[t] = n, e29; } var Be2 = class { constructor(e29) { E3(this, `_cache`, void 0), this._cache = new so(e29); } set(e29, t) { let n = this._hash(e29); this._cache.set(n, t); } get(e29) { let t = this._hash(e29); return this._cache.get(t); } clear() { this._cache.clear(); } delete(e29) { this._cache.delete(this._hash(e29)); } forEach(e29, t) { this._cache.forEach(e29, t); } _hash(e29) { return e29.length <= 64 ? e29 : Ya(e29).toString(); } }; var D3 = (function(e29) { return e29.DIV_BY_ZERO = `#DIV/0!`, e29.NAME = `#NAME?`, e29.VALUE = `#VALUE!`, e29.NUM = `#NUM!`, e29.NA = `#N/A`, e29.CYCLE = `#CYCLE!`, e29.REF = `#REF!`, e29.SPILL = `#SPILL!`, e29.CALC = `#CALC!`, e29.ERROR = `#ERROR!`, e29.CONNECT = `#GETTING_DATA`, e29.NULL = `#NULL!`, e29; })({}); var Ve2 = new Set(Object.values(D3)); var He2 = [...new Set(Object.values(D3).map((e29) => e29.length))]; var Ue2 = class { constructor() { E3(this, `pattern`, ``); } dispose() { } getPattern() { return this.pattern; } setPattern(e29) { this.pattern = e29; } isError() { return false; } isAsyncObject() { return false; } isAsyncArrayObject() { return false; } isReferenceObject() { return false; } isArray() { return false; } isValueObject() { return false; } isEqualType(e29) { return false; } }; var O4 = (function(e29) { return e29.PLUS = `+`, e29.MINUS = `-`, e29.MULTIPLY = `*`, e29.DIVIDED = `/`, e29.CONCATENATE = `&`, e29.POWER = `^`, e29.EQUALS = `=`, e29.NOT_EQUAL = `<>`, e29.GREATER_THAN = `>`, e29.GREATER_THAN_OR_EQUAL = `>=`, e29.LESS_THAN = `<`, e29.LESS_THAN_OR_EQUAL = `<=`, e29; })({}); var k3 = (function(e29) { return e29.EQUALS = `=`, e29.NOT_EQUAL = `<>`, e29.GREATER_THAN = `>`, e29.GREATER_THAN_OR_EQUAL = `>=`, e29.LESS_THAN = `<`, e29.LESS_THAN_OR_EQUAL = `<=`, e29; })({}); var We2 = /* @__PURE__ */ new Map([[O4.NOT_EQUAL, 4], [O4.LESS_THAN, 4], [O4.GREATER_THAN_OR_EQUAL, 4], [O4.EQUALS, 4], [O4.GREATER_THAN, 4], [O4.LESS_THAN_OR_EQUAL, 4], [O4.CONCATENATE, 3], [O4.PLUS, 2], [O4.MINUS, 2], [O4.DIVIDED, 1], [O4.MULTIPLY, 1], [O4.POWER, 0]]); var Ge = new Set(We2.keys()); var Ke = /* @__PURE__ */ new Set([O4.EQUALS, O4.NOT_EQUAL, O4.GREATER_THAN, O4.GREATER_THAN_OR_EQUAL, O4.LESS_THAN, O4.LESS_THAN_OR_EQUAL]); var A3 = (function(e29) { return e29.OPEN_BRACKET = `(`, e29.CLOSE_BRACKET = `)`, e29.COMMA = `,`, e29.SINGLE_QUOTATION = `'`, e29.DOUBLE_QUOTATION = `"`, e29.OPEN_BRACES = `{`, e29.CLOSE_BRACES = `}`, e29.COLON = `:`, e29.OPEN_SQUARE_BRACKET = `[`, e29.CLOSE_SQUARE_BRACKET = `]`, e29; })({}); var qe2 = (function(e29) { return e29.PERCENTAGE = `%`, e29.POUND = `#`, e29; })({}); var Je = /* @__PURE__ */ new Set([qe2.PERCENTAGE, qe2.POUND]); var Ye = (function(e29) { return e29.AT = `@`, e29.MINUS = `-`, e29.PLUS = `+`, e29; })({}); var Xe2 = class extends Ue2 { constructor(e29) { super(), this._rawValue = e29, E3(this, `_customData`, void 0); } isValueObject() { return true; } toUnitRange() { return { range: { startColumn: -1, startRow: -1, endRow: -1, endColumn: -1 }, sheetId: ``, unitId: `` }; } getValue() { return 0; } getArrayValue() { return []; } setValue(e29) { } setArrayValue(e29) { } withCustomData(e29) { return this._customData = e29, this; } getCustomData() { return this._customData; } isCube() { return false; } isString() { return false; } isNumber() { return false; } isBoolean() { return false; } isLambda() { return false; } isDateFormat() { return false; } isError() { return false; } isNull() { return false; } isHyperlink() { return false; } isImage() { return false; } sum() { return j3.create(D3.VALUE); } max() { return j3.create(D3.VALUE); } min() { return j3.create(D3.VALUE); } count() { return j3.create(D3.VALUE); } countA() { return j3.create(D3.VALUE); } countBlank() { return j3.create(D3.VALUE); } getNegative() { return j3.create(D3.VALUE); } getReciprocal() { return j3.create(D3.VALUE); } plus(e29) { return j3.create(D3.VALUE); } minus(e29) { return j3.create(D3.VALUE); } multiply(e29) { return j3.create(D3.VALUE); } divided(e29) { return j3.create(D3.VALUE); } mod(e29) { return j3.create(D3.VALUE); } map(e29) { return j3.create(D3.NAME); } mapValue(e29) { return j3.create(D3.NAME); } compare(e29, t, n = false) { return j3.create(D3.NAME); } isEqual(e29) { return this.compare(e29, k3.EQUALS); } isNotEqual(e29) { return this.compare(e29, k3.NOT_EQUAL); } isGreaterThanOrEqual(e29) { return this.compare(e29, k3.GREATER_THAN_OR_EQUAL); } isLessThanOrEqual(e29) { return this.compare(e29, k3.LESS_THAN_OR_EQUAL); } isLessThan(e29) { return this.compare(e29, k3.LESS_THAN); } isGreaterThan(e29) { return this.compare(e29, k3.GREATER_THAN); } concatenateFront(e29) { return j3.create(D3.NAME); } concatenateBack(e29) { return j3.create(D3.NAME); } plusBy(e29) { return j3.create(D3.VALUE); } minusBy(e29) { return j3.create(D3.VALUE); } multiplyBy(e29) { return j3.create(D3.VALUE); } dividedBy(e29) { return j3.create(D3.VALUE); } modInverse(e29) { return j3.create(D3.VALUE); } compareBy(e29, t, n = false) { return j3.create(D3.NAME); } concatenate(e29, t = Ie2.FRONT) { let n = this.getValue().toString(); if (typeof e29 == `string`) t === Ie2.FRONT ? n = e29 + n : n += e29; else if (typeof e29 == `number`) t === Ie2.FRONT ? n = e29.toString() + n : n += e29.toString(); else if (typeof e29 == `boolean`) { let r = e29 ? `TRUE` : `FALSE`; t === Ie2.FRONT ? n = r + n : n += r; } return n; } pow(e29) { return j3.create(D3.VALUE); } powInverse(e29) { return j3.create(D3.VALUE); } sqrt() { return j3.create(D3.VALUE); } cbrt() { return j3.create(D3.VALUE); } cos() { return j3.create(D3.VALUE); } cosh() { return j3.create(D3.VALUE); } acos() { return j3.create(D3.VALUE); } acosh() { return j3.create(D3.VALUE); } sin() { return j3.create(D3.VALUE); } sinh() { return j3.create(D3.VALUE); } asin() { return j3.create(D3.VALUE); } asinh() { return j3.create(D3.VALUE); } tan() { return j3.create(D3.VALUE); } tanh() { return j3.create(D3.VALUE); } atan() { return j3.create(D3.VALUE); } atan2(e29) { return j3.create(D3.VALUE); } atan2Inverse(e29) { return j3.create(D3.VALUE); } atanh() { return j3.create(D3.VALUE); } mean() { return this; } median() { return this; } var() { return this; } std() { return this; } log() { return j3.create(D3.VALUE); } log10() { return j3.create(D3.VALUE); } exp() { return j3.create(D3.VALUE); } abs() { return j3.create(D3.VALUE); } round(e29) { return j3.create(D3.VALUE); } roundInverse(e29) { return j3.create(D3.VALUE); } floor(e29) { return j3.create(D3.VALUE); } floorInverse(e29) { return j3.create(D3.VALUE); } ceil(e29) { return j3.create(D3.VALUE); } ceilInverse(e29) { return j3.create(D3.VALUE); } convertToNumberObjectValue() { return j3.create(D3.VALUE); } convertToBooleanObjectValue() { return j3.create(D3.VALUE); } }; var Ze2 = new Be2(1e3); var j3 = class e18 extends Xe2 { static create(t, n = ``) { let r = `${t}-${n}`, i = Ze2.get(r); if (i) return i; let a = new e18(t, n); return Ze2.set(r, a), a; } constructor(e29, t = ``) { super(e29), this._errorType = e29, this._errorContent = t; } getValue() { return this._errorType; } getErrorType() { return this._errorType; } getErrorContent() { return this._errorContent; } isEqualType(e29) { return e29.getErrorType() === this.getErrorType(); } isError() { return true; } }; var Qe2 = `yyyy/mm/dd;@`; var $e2 = 1440 * 60 * 1e3; function et2(e29) { let t = Date.UTC(1900, 0, 1), n = Date.UTC(1900, 1, 28), r = Date.UTC(e29.getUTCFullYear(), e29.getUTCMonth(), e29.getUTCDate()), i = (r - t) / $e2; return r > n && (i += 1), Math.floor(i) + 1; } function tt2(e29) { let t = Date.UTC(1900, 0, 1, 0, 0, 0), n = Date.UTC(1900, 1, 28, 0, 0, 0), r = Date.UTC(e29.getUTCFullYear(), e29.getUTCMonth(), e29.getUTCDate(), e29.getUTCHours(), e29.getUTCMinutes(), e29.getUTCSeconds(), e29.getUTCMilliseconds()), i = (r - t) / $e2; return r > n && (i += 1), i + 1; } function M3(e29) { let t = Date.UTC(1900, 0, 1), n = Date.UTC(1900, 1, 28), r = Math.floor(e29) - 1; return r > (n - t) / $e2 && --r, new Date(t + r * $e2); } function nt(e29) { let t = Date.UTC(1900, 0, 1, 0, 0, 0), n = Date.UTC(1900, 1, 28, 0, 0, 0), r = e29 - 1; return r > (n - t) / $e2 && --r, r < 0 && (r = e29), new Date(t + r * $e2); } function rt(e29) { if (!/^\d{4}[-/](0?[1-9]|1[012])[-/](0?[1-9]|[12][0-9]|3[01])$/.test(e29)) return false; let t = e29.replace(/-/g, `/`).replace(/T.+/, ``), n = /* @__PURE__ */ new Date(`${t}`); if (Number.isNaN(n.getTime())) return false; let r = `${n.getFullYear()}-${(n.getMonth() + 1).toString().padStart(2, `0`)}-${n.getDate().toString().padStart(2, `0`)}`; return e29.replace(/\//g, `-`).split(`-`).map((e30) => e30.padStart(2, `0`)).join(`-`) === r; } function it2(e29) { return lib_exports.parseDate(e29); } function at(e29) { return lib_exports.parseTime(e29); } function ot(e29) { return lib_exports.getFormatInfo(e29).isDate; } var st = { 1: [6, 0], 2: [0, 1], 3: [1, 2], 4: [2, 3], 5: [3, 4], 6: [4, 5], 7: [5, 6], 11: [0], 12: [1], 13: [2], 14: [3], 15: [4], 16: [5], 17: [6] }; function ct2(e29) { return !!(typeof e29 == `string` && /^[0|1]{7}/.test(e29) || st[Number(e29)]); } function lt2(e29) { if (!ct2(e29)) return []; if (typeof e29 == `string` && /^[0|1]{7}/.test(e29)) { let t = []; for (let n = 1; n <= e29.length; n++) `${e29[n - 1]}` == `1` && (n === e29.length ? t.push(0) : t.push(n)); return t; } return st[Number(e29)] || []; } function ut2(e29, t, n = 1, r) { let i = lt2(n), a = Math.floor(e29), o = Math.floor(t), s = o > a ? a : o, c = 0, l = Math.abs(Math.floor(t) - Math.floor(e29)) + 1; for (let e30 = 0; e30 < l; e30++) { let t2 = s + e30; if (r && r.length > 0 && r.some((e31) => Math.floor(e31) === t2)) continue; let n2 = ft2(t2); i.includes(n2) || c++; } return o >= a ? c : -c; } function dt2(e29, t, n = 1, r) { let i = lt2(n), a = Math.floor(e29), o = a, s = Math.abs(t); for (let e30 = 1; e30 <= s; e30++) { let n2 = t < 0 ? a - e30 : a + e30; if (n2 < 0) return j3.create(D3.NUM); if (r && r.length > 0 && r.some((e31) => Math.floor(e31) === n2)) { s++; continue; } let c = ft2(n2); if (i.includes(c)) { s++; continue; } o = n2; } return o; } function N3(e29) { if (e29.isError()) return e29; let t = e29.getValue(); if (e29.isString()) { let e30; if (it2(`${t}`)) e30 = it2(`${t}`).v; else if (at(`${t}`)) e30 = at(`${t}`).v; else if (Ja(t)) e30 = +t; else return j3.create(D3.VALUE); return e30 instanceof Date && (e30 = tt2(e30)), +e30 < 0 || +e30 > 2958465 ? j3.create(D3.NUM) : +e30; } else { let t2 = +e29.getValue(); return t2 < 0 || t2 > 2958465 ? j3.create(D3.NUM) : t2; } } function ft2(e29) { let t = Math.floor(e29) === 60, n = M3(e29), r = Date.UTC(1900, 1, 28), i = Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), n.getUTCDate()); return !t && i <= r && (n = new Date(i - $e2)), n.getUTCDay(); } function pt2(e29, t, n) { switch (n) { case 0: return mt2(e29, t); case 1: return ht(e29, t); case 2: return { days: Math.abs(t - e29), yearDays: 360 }; case 3: return { days: Math.abs(t - e29), yearDays: 365 }; case 4: return gt2(e29, t); default: return { days: Math.abs(t - e29), yearDays: 365 }; } } function mt2(e29, t) { let n = M3(e29), r = e29 > 0 ? n.getUTCFullYear() : 1900, i = e29 > 0 ? n.getUTCMonth() + 1 : 1, a = e29 > 0 ? n.getUTCDate() : 0, o = M3(t), s = t > 0 ? o.getUTCFullYear() : 1900, c = t > 0 ? o.getUTCMonth() + 1 : 1, l = t > 0 ? o.getUTCDate() : 0; i === 2 ? M3(e29 + 1).getUTCMonth() + 1 === 3 && (a = 30) : a === 31 && (a = 30), l === 31 && (a < 30 ? (o = M3(t + 1), s = o.getUTCFullYear(), c = o.getUTCMonth() + 1, l = o.getUTCDate()) : l = 30); let u = (s - r) * 360, d = t >= e29 ? 30 - a : -a, f = t >= e29 ? l : l - 30, p = (t >= e29 ? c - i - 1 : c - i + 1) * 30; return { days: Math.abs(u + d + f + p), yearDays: 360 }; } function ht(e29, t) { let n = M3(e29), r = e29 > 0 ? n.getUTCFullYear() : 1900, i = M3(t), a = t > 0 ? i.getUTCFullYear() : 1900, o = Math.abs(t - e29), s = Math.abs(a - r) + 1, c, l; if (a < r) { let e30 = new Date(Date.UTC(a, 0, 1)), t2 = new Date(Date.UTC(r, 11, 31)); c = et2(e30), l = et2(t2), a === 1900 && (c += 1); } else { let e30 = new Date(Date.UTC(r, 0, 1)), t2 = new Date(Date.UTC(a, 11, 31)); c = et2(e30), l = et2(t2), r === 1900 && (c += 1); } return { days: o, yearDays: (l - c + 1) / s }; } function gt2(e29, t) { let n = M3(e29), r = e29 > 0 ? n.getUTCFullYear() : 1900, i = e29 > 0 ? n.getUTCMonth() + 1 : 1, a = e29 > 0 ? n.getUTCDate() : 0, o = M3(t), s = t > 0 ? o.getUTCFullYear() : 1900, c = t > 0 ? o.getUTCMonth() + 1 : 1, l = t > 0 ? o.getUTCDate() : 0; a === 31 && (a = 30), l === 31 && (l = 30); let u = (s - r) * 360, d = t >= e29 ? 30 - a : -a, f = t >= e29 ? l : l - 30, p = (t >= e29 ? c - i - 1 : c - i + 1) * 30; return { days: Math.abs(u + d + f + p), yearDays: 360 }; } function _t2(e29) { return e29 % 4 == 0 && e29 % 100 != 0 || e29 % 400 == 0; } function vt(e29) { return e29 % 4 == 0 && e29 % 100 != 0 || e29 % 400 == 0 || e29 === 1900; } var yt2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var bt = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; function xt2(e29, t) { return _t2(e29) ? yt2[t] : bt[t]; } function St2(e29) { return vt(e29) ? 366 : 365; } function Ct2(e29, t) { switch (t) { case 0: case 2: case 4: return 360; case 1: return St2(M3(e29).getUTCFullYear()); case 3: return 365; default: return -1; } } function wt2(e29, t, n) { return xt2(e29, t) === n; } function Tt(e29, t) { let n = e29.getUTCFullYear(), r = e29.getUTCMonth(), i = e29.getUTCDate(); return wt2(n, r, i) ? (e29.setUTCDate(1), e29.setUTCMonth(e29.getUTCMonth() + t), n = e29.getUTCFullYear(), r = e29.getUTCMonth(), e29.setUTCDate(xt2(n, r))) : e29.setUTCMonth(e29.getUTCMonth() + t), e29; } function Et2(e29, t, n, r, i) { for (let a = 0, o = e29.length; a < o; a++) { let o2 = e29[a]; if (t !== o2.unitId || n !== o2.sheetId) continue; let { startRow: s, startColumn: c, endRow: l, endColumn: u } = o2.range; if (r >= s && r <= l && i >= c && i <= u) return true; } return false; } var Dt2 = (function(e29) { return e29[e29.Financial = 0] = `Financial`, e29[e29.Date = 1] = `Date`, e29[e29.Math = 2] = `Math`, e29[e29.Statistical = 3] = `Statistical`, e29[e29.Lookup = 4] = `Lookup`, e29[e29.Database = 5] = `Database`, e29[e29.Text = 6] = `Text`, e29[e29.Logical = 7] = `Logical`, e29[e29.Information = 8] = `Information`, e29[e29.Engineering = 9] = `Engineering`, e29[e29.Cube = 10] = `Cube`, e29[e29.Compatibility = 11] = `Compatibility`, e29[e29.Web = 12] = `Web`, e29[e29.Array = 13] = `Array`, e29[e29.Univer = 14] = `Univer`, e29[e29.User = 15] = `User`, e29[e29.DefinedName = 16] = `DefinedName`, e29[e29.Table = 17] = `Table`, e29; })({}); var Ot2 = [...Object.values(k3), ...Object.values(O4), ...Object.values(A3), ...Object.values(qe2), ...Object.values(Ye)]; function kt2(e29) { return Ot2.includes(e29); } function At2(e29) { for (let t of Ot2) if (e29.indexOf(t) > -1) return true; return false; } var Nt2 = /* @__PURE__ */ new Set([O4.PLUS, O4.MINUS, O4.MULTIPLY, O4.DIVIDED, O4.CONCATENATE, O4.POWER, O4.EQUALS, O4.NOT_EQUAL, O4.GREATER_THAN, O4.GREATER_THAN_OR_EQUAL, O4.LESS_THAN, O4.LESS_THAN_OR_EQUAL, A3.OPEN_BRACKET, A3.COMMA, A3.COLON, A3.OPEN_BRACES, A3.OPEN_SQUARE_BRACKET]); function Pt(e29) { return Nt2.has(e29); } var Ft = /* @__PURE__ */ new Set([O4.PLUS, O4.MINUS, O4.MULTIPLY, O4.DIVIDED, O4.CONCATENATE, O4.POWER, O4.EQUALS, O4.NOT_EQUAL, O4.GREATER_THAN, O4.GREATER_THAN_OR_EQUAL, O4.LESS_THAN, O4.LESS_THAN_OR_EQUAL, A3.OPEN_BRACKET, A3.COMMA, A3.COLON, A3.OPEN_BRACES, A3.OPEN_SQUARE_BRACKET, qe2.PERCENTAGE, qe2.POUND]); function It(e29) { return Ft.has(e29); } var Lt = `\\[([^\\[\\]\\/?:"<>|*\\\\]+)\\]`; var Rt = new RegExp(Lt); var zt = `\\s*?:\\s*?`; var Bt2 = `[A-Za-z]+`; var Vt = `[1-9][0-9]*`; var Ht = `'?(${Lt})?(((?![\\[\\]\\/?*\\\\]).)*!)?'?`; var Ut2 = `\\$?${Bt2}\\$?${Vt}`; var Wt2 = `^(${Ye.AT})?${Ht}${Ut2}${zt}${Ut2}$`; var Gt2 = new RegExp(Wt2); var Kt2 = `^${Ht}\\s*?${Ut2}(${qe2.POUND})?$`; var qt = new RegExp(Kt2); var Jt = `^${Ht}\\$?${Vt}${zt}\\$?${Vt}$`; var Yt = new RegExp(Jt); var Xt = `^${Ht}\\$?${Bt2}${zt}\\$?${Bt2}$`; var Zt2 = new RegExp(Xt); var Qt = `^${Ht}\\s*?\\$?${Vt}$`; var $t2 = new RegExp(Qt); var en2 = `^${Ht}\\s*?\\$?${Bt2}$`; var tn2 = new RegExp(en2); var nn = `((?![~!@#$%^&*()_+<>?:,./;\u2019\uFF0C\u3002\u3001\u2018\uFF1A\u201C\u300A\u300B\uFF1F~\uFF01@#\uFFE5%\u2026\u2026\uFF08\uFF09\u3010\u3011\\[\\]\\/\\\\]).)+`; var rn = `\\[#.+\\]\\s*?,\\s*?`; var an2 = `\\[((? { let r = e29[n]; if (r == null) return true; t[n] == null && (t[n] = {}), Object.keys(r).forEach((e30) => { let i = r[e30]; t[n][e30] = new Sa(i); }); }), t; } function kn2(e29) { let t = {}; for (let n in e29) { let r = e29[n]; if (r != null) { t[n] == null && (t[n] = {}); for (let e30 in r) { let i = r[e30], a = {}; i.forValue((e31, t2, n2) => { a[e31] === void 0 && (a[e31] = {}), a[e31][t2] = n2; }), t[n][e30] = a; } } } return t; } var Nn2 = `LO_1`; var Fn2 = `LAMBDA`; var In = /* @__PURE__ */ new Set([`RAND`, `RANDBETWEEN`, `NOW`, `TODAY`]); var Ln2 = { type: ri.MUTATION, id: `sheet.mutation.data-validation-formula-mark-dirty`, handler() { return true; } }; var Rn2 = { id: `formula.mutation.register-function`, type: ri.MUTATION, handler: () => true }; var zn2 = { id: `formula.mutation.set-array-formula-data`, type: ri.MUTATION, handler: (e29, t) => true }; var Bn2 = /[^0-9]/g; var Vn2 = /[^A-Za-z]/g; function Hn2(t) { let n = t[0] === `$`, r = t.substring(1), i = r.indexOf(`$`) > -1; return D.isStringNumber(r) && n && !i && (n = false, i = true), n && i ? V.ALL : n ? V.COLUMN : i ? V.ROW : V.NONE; } function Wn2(t = V.NONE) { let n = ``, r = ``; return t === V.ROW ? n = `$` : t === V.COLUMN ? r = `$` : t === V.ALL && (n = `$`, r = `$`), { rowAbsoluteString: n, columnAbsoluteString: r }; } function Gn2(e29) { let { startColumn: t, startRow: n, endColumn: r, endRow: i, startAbsoluteRefType: a, endAbsoluteRefType: o, rangeType: s = B.NORMAL } = e29, c = Wn2(a), l = Wn2(o); if (s === B.ROW || s === B.ALL) return `${`${c.rowAbsoluteString}${n + 1}`}:${`${l.rowAbsoluteString}${i + 1}`}`; if (s === B.COLUMN) return `${`${c.columnAbsoluteString}${D.chatAtABC(t)}`}:${`${l.columnAbsoluteString}${D.chatAtABC(r)}`}`; let u = `${c.columnAbsoluteString}${D.chatAtABC(t)}${c.rowAbsoluteString}${n + 1}`, d = `${l.columnAbsoluteString}${D.chatAtABC(r)}${l.rowAbsoluteString}${i + 1}`; return u === d ? u : `${u}:${d}`; } function Kn2(e29, t) { return `${ir2(e29)}!${Gn2(t)}`; } function qn2(e29, t, n) { return rr2(e29) || rr2(t) ? `'[${ar2(e29)}]${ar2(t)}'!${Gn2(n)}` : `[${e29}]${t}!${Gn2(n)}`; } function Jn2(e29) { let { unitId: t, sheetName: n, range: r } = e29; return t != null && t.length > 0 && n != null && n.length > 0 ? qn2(t, n, r) : n != null && n.length > 0 ? Kn2(n, r) : Gn2(r); } function Yn2(e29) { return { row: Number.parseInt(e29.replace(Bn2, ``)) - 1, column: D.ABCatNum(e29.replace(Vn2, ``)), absoluteRefType: Hn2(e29) }; } function Xn2(e29) { let t = Rt.exec(e29), n = ``; t != null && (n = t[0].trim(), n = or2(n.slice(1, n.length - 1)), e29 = e29.replace(Rt, ``)); let r = e29.indexOf(`!`), i = ``, a = ``; return r > -1 ? (i = e29.substring(0, r), i[0] === `'` && i[i.length - 1] === `'` && (i = i.substring(1, i.length - 1)), i = or2(i), a = e29.substring(r + 1)) : a = e29, { refBody: a, sheetName: i, unitId: n }; } function Zn2(e29) { let { refBody: t, sheetName: n, unitId: r } = Xn2(e29), i = t.indexOf(`:`); if (i === -1) { let e30 = Yn2(t), i2 = e30.row, a2 = e30.column, o2 = e30.absoluteRefType; return { unitId: r, sheetName: n, range: { startRow: i2, startColumn: a2, endRow: i2, endColumn: a2, startAbsoluteRefType: o2, endAbsoluteRefType: o2 } }; } let a = t.substring(0, i), o = t.substring(i + 1), s = Yn2(a), c = Yn2(o), l = s.row > c.row ? c.row : s.row, u = s.column > c.column ? c.column : s.column, d = s.row > c.row ? s.row : c.row, f = s.column > c.column ? s.column : c.column, p = B.NORMAL; return Number.isNaN(l) && Number.isNaN(d) ? p = B.COLUMN : Number.isNaN(u) && Number.isNaN(f) && (p = B.ROW), { unitId: r, sheetName: n, range: { startRow: l, startColumn: u, endRow: d, endColumn: f, startAbsoluteRefType: s.absoluteRefType, endAbsoluteRefType: c.absoluteRefType, rangeType: p } }; } var Qn2 = [`LOG10`]; function $n2(e29) { let t = er2(e29); if (!Dn2(t) || Qn2.includes(t.toUpperCase().trim())) return false; let { range: n } = Zn2(t); return !(n.endColumn >= fo); } function er2(e29) { let t = [], n = false; for (let r = 0, i = e29.length; r < i; r++) { let i2 = e29[r]; if (i2 === ` ` && !n) t.push(i2); else if (!n && (i2 === Ye.AT || i2 === Ye.MINUS || i2 === Ye.PLUS)) continue; else t.push(i2), n = true; } return t.join(``); } function nr2(e29) { return ((e29 == null ? void 0 : e29.split(`,`)) || []).every((e30) => $n2(e30.trim())); } function rr2(e29) { return e29.length === 0 ? false : !!(At2(e29) || sr2(e29) || cr2(e29) || lr2(e29) || /[\s!$%^&*()+\-=\[\]{};':"\\|,.<>\/?()]/.test(e29)); } function ir2(e29) { return rr2(e29) ? `'${ar2(e29)}'` : e29; } function ar2(e29) { return e29.replace(/'/g, `''`); } function or2(e29) { return e29.replace(/''/g, `'`); } function sr2(e29) { let t = /^([A-Z]+)([1-9][0-9]*)$/.exec(e29); if (!t) return false; let [, n, r] = t, i = Number(r); if (i < 1 || i > uo) return false; let a = lo(n); return !(a < 1 || a > fo); } function cr2(e29) { return /^(R(-?[0-9]+)?C(-?[0-9]+)?|C(-?[0-9]+)?|R(-?[0-9]+)?)$/.test(e29); } function lr2(e29) { return !/^\p{Letter}/u.test(e29.charAt(0)); } function ur2(e29) { let t = e29.indexOf(`[`); return t === -1 ? { tableName: e29, struct: `` } : { tableName: e29.slice(0, t), columnStruct: e29.slice(t) }; } function P5(e29, t) { return function(n, r) { t(n, r, e29); }; } function dr2(e29, t, n, r) { var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o; if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e29, t, n, r); else for (var s = e29.length - 1; s >= 0; s--) (o = e29[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a); return i > 3 && a && Object.defineProperty(t, n, a), a; } var fr2 = class extends E { constructor(e29) { super(), this._univerInstanceService = e29, E3(this, `_definedNameMap`, {}), E3(this, `_nameCacheMap`, {}), E3(this, `_update$`, new Subject()), E3(this, `update$`, this._update$.asObservable()), E3(this, `_currentRange`, { unitId: ``, sheetId: ``, range: { startRow: 0, endRow: 0, startColumn: 0, endColumn: 0 } }), E3(this, `_currentRange$`, new Subject()), E3(this, `currentRange$`, this._currentRange$.asObservable()), E3(this, `_focusRange$`, new Subject()), E3(this, `focusRange$`, this._focusRange$.asObservable()); } dispose() { super.dispose(), this._definedNameMap = {}, this._nameCacheMap = {}, this._update$.complete(), this._currentRange$.complete(), this._focusRange$.complete(); } getWorksheetByRef(e29, t) { var n; let { sheetName: r } = Xn2(t); return (n = this._univerInstanceService.getUnit(e29)) == null ? void 0 : n.getSheetBySheetName(r); } focusRange(e29, t) { let n = this.getValueById(e29, t); n !== void 0 && this._focusRange$.next({ ...n, unitId: e29 }); } setCurrentRange(e29) { this._currentRange = e29, this._currentRange$.next(e29); } getCurrentRange() { return this._currentRange; } getCurrentRangeForString() { return Gn2(this._currentRange.range); } registerDefinedNames(e29, t) { this._definedNameMap[e29] = t, this._updateCache(e29), this._update(); } registerDefinedName(e29, t) { this._definedNameMap[e29] === void 0 && (this._definedNameMap[e29] = {}), this._definedNameMap[e29][t.id] = t, this._updateCache(e29), this._update(); } removeDefinedName(e29, t) { var n; (n = this._definedNameMap[e29]) == null || delete n[t], this._updateCache(e29), this._update(); } removeUnitDefinedName(e29) { delete this._definedNameMap[e29], this._updateCache(e29), this._update(); } getDefinedNameMap(e29) { return this._definedNameMap[e29]; } getValueByName(e29, t) { let n = this._nameCacheMap[e29]; if (n) return n[t.toLowerCase()] || null; let r = this._definedNameMap[e29]; if (r === void 0) return null; let i = null; for (let e30 of Object.values(r)) if (e30.name === t) { i = e30; break; } return i && (this._nameCacheMap[e29] = this._nameCacheMap[e29] || {}, this._nameCacheMap[e29][t.toLowerCase()] = i), i; } getValueById(e29, t) { var n; return (n = this._definedNameMap[e29]) == null ? void 0 : n[t]; } hasDefinedName(e29) { return this._definedNameMap[e29] === void 0 ? false : (Array.from(Object.values(this._definedNameMap[e29])).length || 0) !== 0; } getAllDefinedNames() { return this._definedNameMap; } getDefinedNameByRefString(e29, t) { if (this._definedNameMap[e29]) { for (let [n, r] of Object.entries(this._definedNameMap[e29])) if (r.formulaOrRefString === t) return r; } } _update() { this._update$.next(null); } _updateCache(e29) { let t = this._definedNameMap[e29]; if (t === void 0) { delete this._nameCacheMap[e29]; return; } this._nameCacheMap[e29] = {}; for (let n of Object.values(t)) this._nameCacheMap[e29][n.name.toLowerCase()] = n; } }; fr2 = dr2([P5(0, Mu)], fr2); var pr2 = createIdentifier(`univer.formula.defined-names.service`); var mr2 = (e29, t) => { let { unitId: n, id: r } = t; return { ...e29.get(pr2).getValueById(n, r), unitId: n }; }; var hr2 = { id: `formula.mutation.set-defined-name`, type: ri.MUTATION, handler: (e29, t) => { if (t == null) return false; let n = e29.get(pr2), { id: r, unitId: i, name: a, formulaOrRefString: o, comment: s, hidden: c, localSheetId: l, formulaOrRefStringWithPrefix: u } = t; return n.registerDefinedName(i, { id: r, name: a.trim(), formulaOrRefString: o.trim(), comment: s == null ? void 0 : s.trim(), hidden: c, localSheetId: l, formulaOrRefStringWithPrefix: u }), true; } }; var gr2 = { id: `formula.mutation.remove-defined-name`, type: ri.MUTATION, handler: (e29, t) => { if (t == null) return false; let n = e29.get(pr2), { unitId: r, id: i } = t; return n.removeDefinedName(r, i), true; } }; var _r2 = { id: `formula.mutation.set-feature-calculation`, type: ri.MUTATION, handler: () => true }; var vr2 = { id: `formula.mutation.remove-feature-calculation`, type: ri.MUTATION, handler: () => true }; var yr2 = { id: `formula.mutation.set-formula-calculation-start`, type: ri.MUTATION, handler: () => true }; var br2 = { id: `formula.mutation.set-trigger-formula-calculation-start`, type: ri.MUTATION, handler: () => true }; var xr2 = { id: `formula.mutation.set-formula-string-batch-calculation`, type: ri.MUTATION, handler: () => true }; var Sr2 = { id: `formula.mutation.set-formula-string-batch-calculation-result`, type: ri.MUTATION, handler: () => true }; var Cr2 = { id: `formula.mutation.set-formula-calculation-stop`, type: ri.MUTATION, handler: () => true }; var wr2 = { id: `formula.mutation.set-formula-calculation-notification`, type: ri.MUTATION, handler: () => true }; var Tr2 = { id: `formula.mutation.set-formula-calculation-result`, type: ri.MUTATION, handler: () => true }; var Er2 = { id: `formula.mutation.set-formula-dependency-calculation`, type: ri.MUTATION, handler: () => true }; var Dr2 = { id: `formula.mutation.set-formula-dependency-calculation-result`, type: ri.MUTATION, handler: () => true }; var Or2 = { id: `formula.mutation.set-cell-formula-dependency-calculation`, type: ri.MUTATION, handler: () => true }; var kr2 = { id: `formula.mutation.set-cell-formula-dependency-calculation-result`, type: ri.MUTATION, handler: () => true }; var Ar2 = { id: `formula.mutation.set-query-formula-dependency`, type: ri.MUTATION, handler: () => true }; var jr2 = { id: `formula.mutation.set-query-formula-dependency-result`, type: ri.MUTATION, handler: () => true }; var Mr2 = { id: `formula.mutation.set-query-formula-dependency-all`, type: ri.MUTATION, handler: () => true }; var Nr2 = { id: `formula.mutation.set-query-formula-dependency-all-result`, type: ri.MUTATION, handler: () => true }; var Pr2 = { id: `formula.mutation.set-formula-data`, type: ri.MUTATION, handler: (e29, t) => true }; var Fr2 = { id: `formula.mutation.set-image-formula-data`, type: ri.MUTATION, handler: (e29, t) => true }; var Ir2 = { id: `formula.mutation.set-other-formula`, type: ri.MUTATION, handler: () => true }; var Lr2 = { id: `formula.mutation.remove-other-formula`, type: ri.MUTATION, handler: () => true }; var Rr2 = class extends E { constructor() { super(), E3(this, `_tableMap`, /* @__PURE__ */ new Map()), E3(this, `_tableOptionMap`, /* @__PURE__ */ new Map()), E3(this, `_update$`, new Subject()), E3(this, `update$`, this._update$.asObservable()), this.registerTableOptionMap(Fe.ALL, Fe.ALL), this.registerTableOptionMap(Fe.DATA, Fe.DATA), this.registerTableOptionMap(Fe.HEADERS, Fe.HEADERS), this.registerTableOptionMap(Fe.TOTALS, Fe.TOTALS), this.registerTableOptionMap(Fe.THIS_ROW, Fe.THIS_ROW); } dispose() { super.dispose(), this._update$.complete(), this._tableMap.clear(), this._tableOptionMap.clear(); } remove(e29, t) { var n; (n = this._tableMap.get(e29)) == null || n.delete(t), this._update(); } getTableMap(e29) { return this._tableMap.get(e29); } getTableOptionMap() { return this._tableOptionMap; } registerTable(e29, t, n) { var r; this._tableMap.get(e29) == null && this._tableMap.set(e29, /* @__PURE__ */ new Map()), (r = this._tableMap.get(e29)) == null || r.set(t, n), this._update(); } registerTableOptionMap(e29, t) { this._tableOptionMap.set(e29, t); } getTable(e29, t) { var n; return (n = this._tableMap.get(e29)) == null ? void 0 : n.get(t); } hasTable(e29, t) { let n = this._tableMap.get(e29); return n ? n.keys().some((e30) => e30.toLowerCase() === t.toLowerCase()) : false; } _update() { this._update$.next(null); } }; var zr2 = createIdentifier(`univer.formula.super-table.service`); var Br2 = { id: `formula.mutation.set-super-table`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, tableName: r, reference: i } = t; return e29.get(zr2).registerTable(n, r, i), true; } }; var Vr2 = { id: `formula.mutation.remove-super-table`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, tableName: r } = t; return e29.get(zr2).remove(n, r), true; } }; var Hr2 = { id: `formula.mutation.set-super-table-option`, type: ri.MUTATION, handler: (e29, t) => { let { tableOption: n, tableOptionType: r } = t; return e29.get(zr2).registerTableOptionMap(n, r), true; } }; var Ur2 = `engine-formula.config`; var Wr2 = `CYCLE_REFERENCE_COUNT`; var Gr2 = `RETURN_DEPENDENCY_TREE`; Symbol(Ur2); var Kr2 = {}; var qr2 = new Be2(1e5); function Jr2(e29) { let t = qr2.get(e29); if (t) return t; let n = Zn2(e29); return qr2.set(e29, n), Zn2(e29); } function Yr2() { qr2.clear(); } var Xr = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.NUMBER = 1] = `NUMBER`, e29[e29.STRING = 2] = `STRING`, e29[e29.FUNCTION = 3] = `FUNCTION`, e29[e29.REFERENCE = 4] = `REFERENCE`, e29[e29.ARRAY = 5] = `ARRAY`, e29[e29.DEFINED_NAME = 6] = `DEFINED_NAME`, e29[e29.TABLE = 7] = `TABLE`, e29; })({}); function Zr2(e29) { let t = ``; for (let n of e29) typeof n == `string` ? t += n : t += n.token; return t; } var F3 = class e19 { constructor() { E3(this, `_parent`, void 0), E3(this, `_token`, `R_1`), E3(this, `_children`, []), E3(this, `_lambdaId`, void 0), E3(this, `_functionDefinitionPrivacyVar`, void 0), E3(this, `_lambdaParameter`, ``), E3(this, `_startIndex`, -1), E3(this, `_endIndex`, -1), E3(this, `_definedNames`, []); } dispose() { var e29; this._children.forEach((e30) => { typeof e30 != `string` && e30.dispose(); }), (e29 = this._functionDefinitionPrivacyVar) == null || e29.clear(), this._functionDefinitionPrivacyVar = null, this._children = [], this._parent = null, this._definedNames = []; } getDefinedNames() { return this._definedNames; } getStartIndex() { return this._startIndex; } getLambdaId() { return this._lambdaId; } setLambdaId(e29) { this._lambdaId = e29; } getFunctionDefinitionPrivacyVar() { return this._functionDefinitionPrivacyVar; } setLambdaPrivacyVar(e29) { this._functionDefinitionPrivacyVar = e29; } getLambdaParameter() { return this._lambdaParameter; } setLambdaParameter(e29) { this._lambdaParameter = e29; } getParent() { return this._parent; } setParent(e29) { this._parent = e29; } getChildren() { return this._children; } setChildren(e29) { this._children = e29; } addChildren(e29) { this._children.push(e29); } addChildrenFirst(e29) { this._children.unshift(e29); } getToken() { return this._token; } setToken(e29) { this._token = e29; } setIndex(e29, t) { this._startIndex = e29, this._endIndex = t; } setDefinedNames(e29) { this._definedNames = e29; } hasDefinedNames() { return this._definedNames.length > 0; } replaceChild(e29, t) { let n = this._getIndexInParent(e29); n != null && (this.getChildren().splice(n, 1, t), t.setParent(this)); } changeToParent(e29) { let t = this.getParent(); t && t.removeChild(this), this.setParent(e29), e29.getChildren().push(this); } removeChild(e29) { let t = this._getIndexInParent(e29); t != null && this.getChildren().splice(t, 1); } serialize() { let t = this.getToken(), n = this.getChildren(), r = [], i = n.length; for (let t2 = 0; t2 < i; t2++) { let i2 = n[t2]; i2 instanceof e19 ? r.push(i2.serialize()) : r.push(i2); } return { token: t, st: this._startIndex, ed: this._endIndex, children: r }; } _getIndexInParent(e29) { let t = this.getChildren(), n = t.length; for (let r = 0; r < n; r++) if (t[r] === e29) return r; } }; var Qr = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.FUNCTION = 1] = `FUNCTION`, e29[e29.LAMBDA = 2] = `LAMBDA`, e29; })(Qr || {}); var $r2 = 2e3; var ei = new Be2($r2); var ti = new Be2($r2); var ni = class extends E { constructor(...e29) { super(...e29), E3(this, `_currentLexerNode`, new F3()), E3(this, `_upLevel`, 0), E3(this, `_segment`, ``), E3(this, `_bracketState`, []), E3(this, `_openBracketNormalIndexStack`, []), E3(this, `_squareBracketState`, 0), E3(this, `_bracesState`, 0), E3(this, `_singleQuotationState`, 0), E3(this, `_doubleQuotationState`, 0), E3(this, `_lambdaState`, false), E3(this, `_colonState`, false), E3(this, `_formulaErrorCount`, 0), E3(this, `_tableBracketState`, false); } dispose() { this._resetTemp(), this._currentLexerNode.dispose(), ei.clear(), ti.clear(); } getUpLevel() { return this._upLevel; } isColonClose() { return this._colonState === false; } isColonOpen() { return this._colonState === true; } isDoubleQuotationClose() { return this._doubleQuotationState === 0; } isLambdaOpen() { return this._lambdaState === true; } isLambdaClose() { return this._lambdaState === false; } isSingleQuotationClose() { return this._singleQuotationState === 0; } isBracesClose() { return this._bracesState === 0; } isBracketClose() { return this._bracketState.length === 0; } isSquareBracketClose() { return this._squareBracketState === 0; } getCurrentLexerNode() { return this._currentLexerNode; } getFunctionAndParameter(e29, t) { let n = this._getCurrentParamIndex(e29, t); if (n == null || n === D3.VALUE) return; let r = n[0]; if (typeof r == `string`) return; let i = r.getParent(), a = r; for (; i; ) { let e30 = i.getToken(); if (e30 !== `P_1` && !kt2(e30) && i.getStartIndex() !== -1) return { functionName: e30, paramIndex: i.getChildren().indexOf(a) }; a = i, i = i.getParent(); } } checkIfAddBracket(e29) { let t = 0, n = e29.length - 1, r = e29[n]; for (; (r === A3.CLOSE_BRACKET || r === ` `) && n >= 0; ) r === A3.CLOSE_BRACKET && t++, r = e29[--n]; let i = this._getCurrentParamIndex(e29, e29.length - 2); if (i == null || i === D3.VALUE) return 0; let a = i[0]; if (typeof a == `string`) return 0; let o = a.getParent(), s = 0; for (i[1] === A3.OPEN_BRACKET && s++; o; ) { let e30 = o.getToken(); e30 !== `P_1` && e30 !== A3.COLON && o.getStartIndex() !== -1 && e30.toUpperCase() !== `LAMBDA` && (t === 0 ? s += 1 : t--), o = o.getParent(); } return s; } sequenceNodesBuilder(e29) { let t = ti.get(e29); if (t) return [...t]; let n = this._getSequenceArray(e29); if (n.length === 0) return; let r = this.getSequenceNode(n); return ti.set(e29, [...r]), r; } convertRefersToAbsolute(e29, t, n, r = ``) { let i = this.sequenceNodesBuilder(e29); if (i == null) return e29; let a = ``; e29.substring(0, 1) === O4.EQUALS && (a = O4.EQUALS); for (let e30 = 0, a2 = i.length; e30 < a2; e30++) { let o = i[e30]; if (typeof o != `string` && o.nodeType === Xr.REFERENCE) { let { token: s, endIndex: c } = o, l = Jr2(s); if (l == null) continue; let { range: u, sheetName: d, unitId: f } = l, p = Jn2({ range: { ...u, startAbsoluteRefType: t, endAbsoluteRefType: n }, unitId: f, sheetName: d || r }), m = p.length - s.length; i[e30] = { ...o, token: p, endIndex: c + m }; for (let t2 = e30 + 1; t2 < a2; t2++) { let e31 = i[t2]; typeof e31 != `string` && (e31.startIndex += m, e31.endIndex += m); } } } return `${a}${Zr2(i)}`; } moveFormulaRefOffset(t, n, r, i = false) { let a = this.sequenceNodesBuilder(t); if (a == null) return t; let o = []; for (let t2 = 0, s = a.length; t2 < s; t2++) { let s2 = a[t2]; if (typeof s2 == `string` || s2.nodeType !== Xr.REFERENCE) { o.push(s2); continue; } let { token: c } = s2, l = Jr2(c), { sheetName: u, unitId: d } = l, f = l.range; if (!i && f.startAbsoluteRefType === V.ALL && f.endAbsoluteRefType === V.ALL) { o.push(s2); continue; } else f = Do(f, n, r, i); let p = ``; p = Fa(f) ? Jn2({ range: f, unitId: d, sheetName: u }) : D3.REF, o.push({ ...s2, token: p }); } return `=${Zr2(o)}`; } _formulaSpellCheck() { if (this._currentLexerNode.getChildren().length === 0) return true; let e29 = this._currentLexerNode.getChildren()[0]; return e29 instanceof F3 ? true : !!(this._passArrayOperator(e29) || Ge.has(e29) || Je.has(e29) || e29 === Ye.AT || e29 === A3.COMMA || e29 === A3.COLON || e29 === A3.OPEN_BRACKET); } _passArrayOperator(e29) { if (e29.length === 0 || !(e29[0] === `{` && e29[e29.length - 1] === `}`)) return false; let t = this._currentLexerNode.getChildren(), n = t[t.length - 1]; return n instanceof F3 ? false : !!Ge.has(n); } getSequenceNode(e29) { let t = [], n = false; for (let r = 0, i = e29.length; r < i; r++) { let a = e29[r], o = e29[r - 1], { segment: s, currentString: c } = a; if (c === A3.DOUBLE_QUOTATION && (n = true), (s !== `` || r === 0) && r !== i - 1) { t.push(c); continue; } let l = (o == null ? void 0 : o.segment) || ``, u = r - l.length, d = r - 1, f = r - 1; if (r === i - 1 && this._isLastMergeString(c) && (l += c, d += 1), l === `` || We2.has(l)) { t.push(c); continue; } let p = l.trim(), m = er2(p); n === true && p[p.length - 1] === A3.DOUBLE_QUOTATION && p[0] !== A3.OPEN_BRACES ? (n = false, this._processPushSequenceNode(t, Xr.STRING, l, u, d, f)) : gn2(m) && $n2(m) ? this._processPushSequenceNode(t, Xr.REFERENCE, l, u, d, f) : D.isStringNumber(p) ? this._processPushSequenceNode(t, Xr.NUMBER, l, u, d, f) : p.length > 0 && this._processPushSequenceNode(t, Xr.FUNCTION, l, u, d, f), (r !== i - 1 || !this._isLastMergeString(c)) && t.push(c); } return this._mergeSequenceNodeReference(t); } _processPushSequenceNode(e29, t, n, r, i, a) { this._pushSequenceNode(e29, { nodeType: t, token: n, startIndex: r, endIndex: i }, a); } _getCurrentParamIndex(e29, t) { return this._nodeMaker(e29, void 0, t); } _isLastMergeString(e29) { return e29 === A3.DOUBLE_QUOTATION || D.isStringNumber(e29) || !kt2(e29); } _mergeSequenceNodeReference(e29) { let t = [], n = e29.length, r = 0; for (; r < n; ) { let n2 = e29[r]; if (typeof n2 == `string`) { let i = e29[r - 1]; if (n2.trim() === A3.CLOSE_BRACES && i != null && typeof i != `string` && i.nodeType === Xr.FUNCTION && i.token.trim().substring(0, 1) === A3.OPEN_BRACES) { i.nodeType = Xr.ARRAY, i.token += n2, i.endIndex += n2.length, r++; continue; } t.push(n2); } else { let i = e29[r + 1], a = e29[r + 2]; i === A3.COLON && typeof n2 != `string` && a != null && typeof a != `string` && $n2((n2.token + i + a.token).trim()) && (n2.nodeType = Xr.REFERENCE, n2.token += i + a.token, n2.endIndex = a.endIndex, r += 2), t.push(n2); } r++; } return this._minusSplitSequenceNode(t); } _minusSplitSequenceNode(e29) { let t = []; for (let n of e29) { if (typeof n != `string`) { let e30 = n.token.match(/^(\s*([-@+]\s*)+)(.*)$/); if (e30) { let r = e30[1], i = e30[3]; if ($n2(i.trim())) { let e31 = r.length, a = n.startIndex, o = n.startIndex + e31 - 1, s = { nodeType: Xr.NORMAL, token: r, startIndex: a, endIndex: o }, c = { nodeType: Xr.REFERENCE, token: i, startIndex: o + 1, endIndex: n.endIndex }; t.push(s), t.push(c); continue; } } } t.push(n); } return t; } _pushSequenceNode(e29, t, n) { let r = n - t.startIndex + 1; e29.splice(e29.length - r, r, t); } nodeMakerTest(e29) { return this._nodeMaker(e29); } treeBuilder(e29, t = true, n) { if (t === true) { var r; let t2 = ei.get(e29), i2 = n && ((r = this._simpleCheckDefinedName) == null ? void 0 : r.call(this, e29, n)); if (t2 && !i2) return t2; } this._resetCurrentLexerNode(), this._currentLexerNode.setToken(`R_1`); let i = [], a = this._nodeMaker(e29, i); if (a === D3.VALUE || i.length === 0) return a; let o = false, s = ``, c = []; if (n) { let { hasDefinedName: e30, sequenceString: t2, definedNames: r2 } = this._handleDefinedName(i, n); o = e30, s = t2, c = r2; } if (o && (this._resetCurrentLexerNode(), this._currentLexerNode.setToken(`R_1`), a = this._nodeMaker(`=${s}`), a === D3.VALUE)) return a; let l = this._getTopNode(this._currentLexerNode); if (l && (this._currentLexerNode = l), t) { if (!this._suffixExpressionHandler(this._currentLexerNode)) return D3.VALUE; ei.set(e29, this._currentLexerNode); } return o && this._currentLexerNode.setDefinedNames(c), this._currentLexerNode; } _handleDefinedName(e29, t) { let { unitId: n, getValueByName: r, getSheetName: i } = t; if (n == null) return { sequenceString: ``, hasDefinedName: false, definedNames: [] }; let a = this.getSequenceNode(e29), o = ``, s = false, c = []; for (let e30 = 0, i2 = a.length; e30 < i2; e30++) { let i3 = a[e30]; if (typeof i3 == `string`) { o += i3; continue; } let { nodeType: l, token: u } = i3, d = u; if (l === Xr.REFERENCE || l === Xr.FUNCTION) { l === Xr.FUNCTION && (d = this._getHasSheetNameDefinedName(u, n, t)); let e31 = r(n, d); if (e31) { let n2 = e31.formulaOrRefString, r2 = this._handleNestedDefinedName(n2, t); if (typeof r2 != `object` || !r2) o += r2 || D3.NAME, s = true, c.push(d); else if (typeof r2 == `object`) { let { sequenceString: e32, definedNames: t2 } = r2; o += e32, t2.forEach((e33) => { c.push(e33); }), s = true; } } else this._checkDefinedNameDirty(d, t) ? (o += D3.NAME, s = true, c.push(d)) : o += d; } else o += d; } return { sequenceString: o, hasDefinedName: s, definedNames: c }; } _getHasSheetNameDefinedName(e29, t, n) { if (!e29.includes(`!`)) return e29; let r = e29.split(`!`); if (r.length !== 2) return e29; let i = r[0], a = r[1].trim(), o = n.getValueByName(t, a); if (!o) return e29; let s = o.localSheetId; if (s !== void 0) { if (s === `AllDefaultWorkbook` || i === n.getSheetName(t, s)) return a; } else return a; return e29; } _handleNestedDefinedName(e29, t) { let n = [], r = this._nodeMaker(e29, n); return r === D3.VALUE || n.length === 0 ? r : this._handleDefinedName(n, t); } _simpleCheckDefinedName(e29, t) { let { getDirtyDefinedNameMap: n, unitId: r } = t, i = n(), a = r; if (a != null && i[a] != null) { let t2 = Object.keys(i[a]); for (let n2 = 0, r2 = t2.length; n2 < r2; n2++) { let r3 = t2[n2]; if (e29.indexOf(r3) > -1) return true; } } return false; } _checkDefinedNameDirty(e29, t) { let { getDirtyDefinedNameMap: n, unitId: r } = t, i = n(), a = r; if (a != null && i[a] != null) { let t2 = Object.keys(i[a]); for (let n2 = 0, r2 = t2.length; n2 < r2; n2++) if (t2[n2] === e29) return true; } return false; } _suffixExpressionHandler(e29) { let t = e29.getChildren(); if (!t) return false; let n = t.length, r = [], i = [], a = true; for (let e30 = 0; e30 < n; e30++) { let n2 = t[e30]; if (n2 instanceof F3) a = this._suffixExpressionHandler(n2), r.push(n2); else { let a2 = n2.trim(); if (a2 === ``) continue; if (Ge.has(a2)) { if (a2 === O4.PLUS && this._deletePlusForPreNode(t[e30 - 1])) continue; if (a2 !== O4.PLUS && a2 !== O4.MINUS && this._deletePlusForPreNode(t[e30 - 1])) return false; for (; i.length > 0; ) { var o; let e31 = (o = i[i.length - 1]) == null ? void 0 : o.trim(); if (!e31 || e31 === A3.OPEN_BRACKET) break; let t2 = We2.get(e31), n3 = We2.get(a2); if (t2 === void 0 || n3 === void 0) break; if (n3 >= t2) r.push(i.pop()); else break; } i.push(n2); } else if (a2 === A3.OPEN_BRACKET) i.push(n2); else if (a2 === A3.CLOSE_BRACKET) this._processSuffixExpressionCloseBracket(r, i, t, e30); else { if (this._checkCloseBracket(t[e30 - 1])) return false; r.push(n2); } } } return a ? this._processSuffixExpressionRemain(r, i, e29) : false; } _processSuffixExpressionRemain(e29, t, n) { let r = e29[e29.length - 1]; for (; t.length > 0; ) { let n2 = t.pop(); if (!(r instanceof F3) && (n2 === A3.OPEN_BRACKET || n2 === A3.CLOSE_BRACKET)) return false; e29.push(n2); } return n.setChildren(e29), true; } _processSuffixExpressionCloseBracket(e29, t, n, r) { if (this._checkOpenBracket(n[r - 1]) || this._checkOperator(n[r - 1])) return false; for (; t.length > 0; ) { var i; let n2 = (i = t[t.length - 1]) == null ? void 0 : i.trim(); if (!n2) break; if (n2 === A3.OPEN_BRACKET) { t.pop(); break; } e29.push(t.pop()); } } _checkCloseBracket(e29) { return e29 === A3.CLOSE_BRACKET || e29 instanceof F3; } _checkOpenBracket(e29) { return e29 === A3.OPEN_BRACKET; } _checkOperator(e29) { return e29 == null || e29 instanceof F3 ? false : Ge.has(e29); } _deletePlusForPreNode(e29) { if (e29 == null) return true; if (!(e29 instanceof F3)) { let t = e29.trim(); if (Ge.has(t) || t === A3.OPEN_BRACKET) return true; } return false; } _resetCurrentLexerNode() { this._currentLexerNode = new F3(); } _resetSegment() { this._segment = ``; } _openBracket(e29 = Qr.NORMAL) { this._bracketState.push(e29); } _closeBracket() { this._bracketState.pop(); } _openBracketNormalIndex() { this._openBracketNormalIndexStack.push(this._currentLexerNode.getChildren().length - 1); } _getNodesByCurrentBracketNormalIndex() { let e29 = this._openBracketNormalIndexStack.pop(); if (e29 === void 0) return []; let t = this._currentLexerNode.getChildren(); return t.length === 0 ? [] : t.splice(e29); } _openSquareBracket() { this._squareBracketState += 1; } _closeSquareBracket() { --this._squareBracketState; } _getCurrentBracket() { let e29 = this._bracketState; return e29[e29.length - 1]; } _changeCurrentBracket(e29) { let t = this._bracketState; t[t.length - 1] = e29; } _openBraces() { this._bracesState += 1; } _closeBraces() { --this._bracesState; } _openSingleQuotation() { this._singleQuotationState += 1; } _closeSingleQuotation() { --this._singleQuotationState; } _openDoubleQuotation() { this._doubleQuotationState += 1; } _closeDoubleQuotation() { --this._doubleQuotationState; } _openLambda() { this._lambdaState = true; } _closeLambda() { this._lambdaState = false; } _openColon(e29) { this._upLevel = e29, this._colonState = true; } _closeColon() { this._upLevel = 0, this._colonState = false; } _isTableBracket() { return this._tableBracketState; } _openTableBracket() { this._tableBracketState = true; } _closeTableBracket() { this._tableBracketState = false; } _formalErrorOccurred() { this._formulaErrorCount += 1; } _hasFormalError() { return this._formulaErrorCount > 0; } _getLastChildCurrentLexerNode() { let e29 = this._currentLexerNode.getChildren(); if (e29 && e29.length > 0) { let t = e29[e29.length - 1]; if (t instanceof F3) return t; } return false; } _getLastChildCurrent() { let e29 = this._currentLexerNode.getChildren(); return e29 && e29.length > 0 ? e29[e29.length - 1] : false; } _setParentCurrentLexerNode() { let e29 = this._currentLexerNode.getParent(); return e29 ? (this._currentLexerNode = e29, true) : false; } _setAncestorCurrentLexerNode() { var e29; let t = (e29 = this._currentLexerNode) == null ? void 0 : e29.getParent(), n = false; if (t && t.getToken() === `L_1`) { var r; if (!(t == null || (r = t.getParent()) == null) && r.getParent()) { var i; let e30 = (i = this._currentLexerNode.getParent()) == null || (i = i.getParent()) == null ? void 0 : i.getParent(); e30 && (this._currentLexerNode = e30), n = true; } } else if (t != null && t.getParent()) { var a; let e30 = (a = this._currentLexerNode.getParent()) == null ? void 0 : a.getParent(); e30 && (this._currentLexerNode = e30), n = true; } for (let e30 = 0; e30 < this._upLevel; e30++) { var o; let e31 = (o = this._currentLexerNode) == null ? void 0 : o.getParent(); e31 && (this._currentLexerNode = e31), n = !!this._currentLexerNode; } return n; } _segmentCount() { return this._segment.trim().length; } _pushSegment(e29) { this._segment += e29; } _pushNodeToChildren(e29, t = false) { let n = e29; if (n !== ``) { let e30 = this._currentLexerNode.getChildren(); if (!(n instanceof F3) && this.isColonOpen()) { let e31 = new F3(); e31.setToken(n), e31.setParent(this._currentLexerNode), n = e31; } t ? e30.unshift(n) : e30.push(n); } this.isColonOpen() && (this._setAncestorCurrentLexerNode(), this._closeColon()); } _setCurrentLexerNode(e29, t = false) { this._pushNodeToChildren(e29, t), e29.setParent(this._currentLexerNode), this._currentLexerNode = e29; } _newAndPushCurrentLexerNode(e29, t, n = false) { let r = new F3(); r.setToken(e29), r.setIndex(t - e29.length, t - 1), this._setCurrentLexerNode(r, n); } _getTopNode(e29) { let t = e29; for (; t != null && t.getParent(); ) t = t.getParent(); return t; } _removeLastChild() { this._currentLexerNode.getChildren().splice(-1); } _formulaErrorLastTokenCheck(e29, t) { let n = this._findPreviousToken(e29, t) || ``, r = e29.length - 1 === t; if (!r && this._isOperatorToken(n) || r && Pt(n)) return true; if (Je.has(n)) { let n2 = this._findSecondLastNonSpaceToken(e29, t); if (n2 == null || It(n2)) return true; } return false; } _findPreviousToken(e29, t) { let n = t; for (; n >= 0; ) { let t2 = e29[n]; if (t2 !== ` `) return t2; n--; } } _findSecondLastNonSpaceToken(e29, t) { let n = t, r = 0; for (; n >= 0; ) { let t2 = e29[n]; if (t2 !== ` ` && (r++, r === 2)) return t2; n--; } return null; } _findNextToken(e29, t) { let n = t; for (; n >= 0; ) { let t2 = e29[n]; if (t2 !== ` `) return t2; n++; } } _unexpectedEndingTokenExcludeOperator(e29) { return e29 === A3.OPEN_BRACKET || e29 === A3.COMMA || e29 === O4.EQUALS || e29 === ``; } _unexpectedEndingToken(e29) { return !!(this._isOperatorToken(e29) || this._unexpectedEndingTokenExcludeOperator(e29)); } _isOperatorToken(e29) { return !!Ge.has(e29); } _getSequenceArray(e29) { let t = []; return this._nodeMaker(e29, t), t; } _resetTemp() { this._currentLexerNode = new F3(), this._upLevel = 0, this._segment = ``, this._bracketState = [], this._bracesState = 0, this._singleQuotationState = 0, this._doubleQuotationState = 0, this._lambdaState = false, this._colonState = false, this._formulaErrorCount = 0; } _checkErrorState() { return !!(this._bracketState.length > 0 || this._bracesState > 0 || this._singleQuotationState > 0 || this._doubleQuotationState > 0 || this._hasFormalError()); } _checkSimilarErrorToken(e29, t, n) { let r = t; if (e29 !== qe2.POUND) return true; let i = n[++r]; for (; i === ` `; ) i = n[++r]; return !!kt2(i); } _checkIfErrorObject(e29, t) { return !!this._findErrorObject(e29, t); } _findErrorObject(e29, t) { for (let n = 0; n < He2.length; n++) { let r = He2[n], i = t.slice(e29, e29 + r).join(``).toUpperCase(); if (Ve2.has(i)) return i; } } _nodeMaker(e29, t, n) { let r = e29.replace(/\r\n$|\r|\n/g, ` `); r.substring(0, 1) === O4.EQUALS && (r = r.substring(1)); let i = r.split(``), a = i.length; this._resetTemp(), this._formulaErrorLastTokenCheck(i, a - 1) && this._formalErrorOccurred(); let o = 0; for (; o < a; ) { let e30 = i[o]; if (n === o) return [this._currentLexerNode, e30]; if (e30 === qe2.POUND && this.isSingleQuotationClose() && this.isDoubleQuotationClose() && this.isBracesClose() && this.isSquareBracketClose() && this._checkIfErrorObject(o, i)) { let e31 = this._findErrorObject(o, i); if (e31 == null) return D3.VALUE; this._pushNodeToChildren(e31); for (let n2 = 0; n2 < e31.length; n2++) { let e32 = i[o]; this._pushSegment(e32), this._addSequenceArray(t, e32, o), o++; } this._resetSegment(); continue; } else if (e30 === A3.OPEN_BRACKET && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) if (this._segmentCount() > 0 || this.isLambdaOpen()) { this.isLambdaClose() && (this._newAndPushCurrentLexerNode(this._segment, o), this._resetSegment()), this._openBracket(Qr.FUNCTION), this._closeLambda(); let n2 = i[o + 1]; if (n2 && n2 === A3.CLOSE_BRACKET) { if (!this._setParentCurrentLexerNode() && o !== a - 1) return D3.VALUE; this._addSequenceArray(t, e30, o), o++, this._addSequenceArray(t, n2, o), o++, this._closeBracket(); continue; } else n2 && this._newAndPushCurrentLexerNode(`P_1`, o); } else this._pushNodeToChildren(e30), this._openBracket(Qr.NORMAL), this._openBracketNormalIndex(), this._resetSegment(); else if (e30 === A3.CLOSE_BRACKET && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) { this._formulaErrorLastTokenCheck(i, o - 1) && this._formalErrorOccurred(), this._pushNodeToChildren(this._segment), this._resetSegment(); let t2 = this._getCurrentBracket(); if (t2 === Qr.NORMAL) this._pushNodeToChildren(e30); else if (t2 === Qr.FUNCTION) { let e31 = i[o + 1]; if (e31 && e31 === A3.OPEN_BRACKET) { if (!this._setParentCurrentLexerNode() && o !== a - 1) return D3.VALUE; this._newAndPushCurrentLexerNode(`L_1`, o, true), this._openLambda(); } else if (!this._setAncestorCurrentLexerNode() && o !== a - 1) return D3.VALUE; } else return D3.VALUE; this._closeBracket(); } else if (e30 === A3.OPEN_BRACES && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) { if (this._pushSegment(e30), this._openBraces(), !this._formulaSpellCheck()) return D3.VALUE; } else if (e30 === A3.CLOSE_BRACES && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) this._pushSegment(e30), this._pushNodeToChildren(this._segment), this._resetSegment(), this._closeBraces(); else if (e30 === A3.OPEN_SQUARE_BRACKET && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) this._segment.length > 0 && this._openTableBracket(), this._pushSegment(e30), this._openSquareBracket(); else if (e30 === A3.CLOSE_SQUARE_BRACKET && this.isSingleQuotationClose() && this.isDoubleQuotationClose()) this._closeSquareBracket(), this.isSquareBracketClose() ? (this._pushSegment(e30), this._isTableBracket() && (this._pushNodeToChildren(this._segment), this._resetSegment()), this._closeTableBracket()) : this._pushSegment(e30); else if (e30 === A3.DOUBLE_QUOTATION && this.isSingleQuotationClose() && this.isSquareBracketClose()) { if (this.isDoubleQuotationClose()) this._openDoubleQuotation(); else { let e31 = i[o + 1]; e31 && e31 === A3.DOUBLE_QUOTATION ? o++ : this._closeDoubleQuotation(); } this._pushSegment(e30); } else if (e30 === A3.SINGLE_QUOTATION && this.isDoubleQuotationClose()) { if (this.isSingleQuotationClose()) this._openSingleQuotation(), this._segmentCount() === 0 && this._resetSegment(); else { let n2 = i[o + 1]; if (n2 && n2 === A3.SINGLE_QUOTATION) { this._pushSegment(e30), this._addSequenceArray(t, e30, o), o++, this._pushSegment(n2), this._addSequenceArray(t, n2, o), o++; continue; } else this._closeSingleQuotation(); } this._pushSegment(e30); } else if (e30 === A3.COMMA && this.isSingleQuotationClose() && this.isDoubleQuotationClose() && this.isBracesClose() && this.isSquareBracketClose()) { this._formulaErrorLastTokenCheck(i, o - 1) && this._formalErrorOccurred(); let e31 = this._getCurrentBracket(); if (e31 === Qr.FUNCTION || e31 == null) { if (this._pushNodeToChildren(this._segment), this._resetSegment(), !this._setParentCurrentLexerNode() && o !== a - 1 && e31 != null) return D3.VALUE; this._newAndPushCurrentLexerNode(`P_1`, o); } else { let e32 = new F3(); e32.setToken(`CUBE`); let t2 = new F3(); t2.setToken(`P_1`), t2.changeToParent(e32); let n2 = this._currentLexerNode.getParent(); if (n2 && n2.getToken() === A3.COLON) { let r2 = n2.getParent(); if (!r2) return D3.VALUE; n2.changeToParent(t2), r2.setChildren([]), e32.changeToParent(r2); } else return D3.VALUE; this._changeCurrentBracket(Qr.FUNCTION), this._pushNodeToChildren(this._segment), this._resetSegment(), this._currentLexerNode = e32, this._newAndPushCurrentLexerNode(`P_1`, o); } } else if (e30 === A3.COLON && this.isSingleQuotationClose() && this.isDoubleQuotationClose() && this.isBracesClose() && this.isSquareBracketClose()) { let t2 = new F3(); t2.setToken(e30); let n2 = new F3(); n2.setToken(`P_1`), n2.setParent(t2); let r2 = new F3(); r2.setToken(`P_1`), r2.setParent(t2), t2.getChildren().push(n2, r2); let i2 = t2, a2 = 0; if (this._segmentCount() > 0) { let e31, r3, s = 0, c = this._segment.trim(), l = c[0], u = c[1]; if (l === Ye.MINUS && (e31 = new F3(), e31.setToken(Ye.MINUS), e31.setIndex(o - this._segment.length, o - this._segment.length), s++), l === Ye.AT || u === Ye.AT) { r3 = new F3(), r3.setToken(Ye.AT); let t3 = o - this._segment.length + s; r3.setIndex(t3, t3), e31 && (e31.addChildren(r3), r3.setParent(e31)), s++; } if (s > 0 && (this._segment = c.slice(s)), a2 = s, r3) if (r3.addChildren(t2), t2.setParent(r3), r3.getParent()) { let e32 = r3.getParent(); e32 && (i2 = e32); } else i2 = r3; else e31 && (i2 = e31, e31.addChildren(t2), t2.setParent(e31)); let d = new F3(); d.setToken(this._segment), d.setParent(n2), d.setIndex(o - this._segment.length, o - 1), n2.getChildren().push(d), this._resetSegment(); } else { let e31 = this._getLastChildCurrentLexerNode(); e31 && e31.changeToParent(n2); } this._setCurrentLexerNode(i2), this._currentLexerNode = r2, this._openColon(a2); } else if (Je.has(e30) && this._checkSimilarErrorToken(e30, o, i) && this.isSingleQuotationClose() && this.isDoubleQuotationClose() && this.isSquareBracketClose() && this.isBracesClose()) { this._pushNodeToChildren(this._segment); let t2 = new F3(); t2.setToken(e30), t2.setIndex(o - 1, o - 1); let n2 = this._getLastChildCurrent(); if (n2 instanceof F3) n2.changeToParent(t2); else if (n2 === A3.CLOSE_BRACKET) { let e31 = this._getNodesByCurrentBracketNormalIndex(); t2.getChildren().push(...e31); } else n2 !== false && (t2.getChildren().push(n2), this._removeLastChild()); this._pushNodeToChildren(t2), t2.setParent(this._currentLexerNode), this._resetSegment(); } else if (Ge.has(e30) && this.isSingleQuotationClose() && this.isDoubleQuotationClose() && this.isSquareBracketClose() && this.isBracesClose()) { let n2 = this._segment.trim(); if (e30 === O4.MINUS && n2 === ``) { let n3 = this._findPreviousToken(i, o - 1) || ``, r2 = this._findNextToken(i, o + 1) || ``; if (this._unexpectedEndingTokenExcludeOperator(n3) && this._isOperatorToken(r2)) { this._pushNodeToChildren(`0`), this._pushNodeToChildren(O4.MINUS), this._addSequenceArray(t, e30, o), this._resetSegment(), o++; continue; } else if (this._unexpectedEndingToken(n3)) if (r2 === O4.PLUS) { this._pushSegment(O4.MINUS), this._addSequenceArray(t, e30, o), this._addSequenceArray(t, O4.PLUS, o + 1), o += 2; continue; } else { this._pushSegment(O4.MINUS), this._addSequenceArray(t, e30, o), o++; continue; } } else if (this._segment.length > 0 && this._isScientificNotation(i, o, e30)) { this._pushSegment(e30), this._addSequenceArray(t, e30, o), o++; continue; } else this._segment.length > 0 && n2 === `` ? n2 = this._segment : (this._pushNodeToChildren(this._segment), n2 = ``); if (e30 === O4.LESS_THAN || e30 === O4.GREATER_THAN) { let r2 = i[o + 1]; if (r2 && Ge.has(e30 + r2)) { this._pushNodeToChildren(n2 + e30 + r2), this._resetSegment(), this._addSequenceArray(t, e30, o), o++, this._addSequenceArray(t, r2, o), o++; continue; } else this._pushNodeToChildren(n2 + e30); } else this._pushNodeToChildren(n2 + e30); this._resetSegment(); } else (this._segment !== `` || e30 !== ` `) && this._pushSegment(e30); this._addSequenceArray(t, e30, o), o++; } if (this._pushNodeToChildren(this._segment), this._checkErrorState()) return D3.VALUE; } _isScientificNotation(e29, t, n) { let r = e29[t - 2]; if (r && Number.isNaN(Number(r)) || !(n === O4.MINUS || n === O4.PLUS)) return false; let i = e29[t + 1]; if (i && Number.isNaN(Number(i))) return false; let a = e29[t - 1]; return a && a.toUpperCase() === `E`; } _addSequenceArray(e29, t, n) { e29 == null || e29.push({ segment: this._segment, currentString: t, cur: n, currentLexerNode: this._currentLexerNode }); } getNewFormulaWithPrefix(e29, t) { return null; } getFormulaExprTree(e29, t, n, r, i) { return null; } }; function ri2(e29, t, n, r, i, a, o) { let s = (o == null ? void 0 : o.f) || ``, c = (o == null ? void 0 : o.si) || ``, l = ka(s), u = Aa(c), d = e29.getValue(i, a), f = (d == null ? void 0 : d.f) || ``, p = (d == null ? void 0 : d.si) || ``, m = (d == null ? void 0 : d.x) || 0, h = (d == null ? void 0 : d.y) || 0; function g2() { if (ka(f) && Aa(p) && m === 0 && h === 0) { var e30; let t2 = n == null || (e30 = n[p]) == null ? void 0 : e30.f; t2 ? r.set(p, t2) : r.set(p, f); } } l && u ? (p !== c && g2(), e29.setValue(i, a, { f: s, si: c }), n[c] = { f: s, r: i, c: a }, t.setValue(i, a, { f: s, si: c })) : l && !u ? (f !== s && g2(), e29.setValue(i, a, { f: s }), t.setValue(i, a, { f: s })) : !l && u ? (p !== c && g2(), e29.setValue(i, a, { f: ``, si: c })) : !l && !u && e29.getValue(i, a) && (g2(), e29.realDeleteValue(i, a), t.setValue(i, a, null)); } function ii2(e29, t, n, r) { let i = e29 == null ? void 0 : e29.getValue(n, r); if (i == null) return true; let a = []; e29.forValue((e30, t2, o2) => { e30 === n && t2 === r || G.intersects(o2, i) && a.push(o2); }); let { startRow: o, startColumn: s, endRow: c, endColumn: l } = i; for (let e30 = o; e30 <= c; e30++) for (let n2 = s; n2 <= l; n2++) { let r2 = false, i2 = Ia(e30, n2); a.some((e31) => G.contains(e31, i2) ? (r2 = true, true) : false), r2 || t.realDeleteValue(e30, n2); } } var ai2 = class extends E { constructor(e29, t) { super(), this._univerInstanceService = e29, this._lexerTreeBuilder = t, E3(this, `_arrayFormulaRange`, {}), E3(this, `_arrayFormulaCellData`, {}), E3(this, `_unitImageFormulaData`, {}); } dispose() { super.dispose(), this._arrayFormulaRange = {}, this._arrayFormulaCellData = {}, this._unitImageFormulaData = {}; } clearPreviousArrayFormulaCellData(e29) { Object.keys(e29).forEach((t) => { let n = e29[t]; if (n == null) return true; Object.keys(n).forEach((e30) => { var r, i; let a = n[e30], o = (r = this._arrayFormulaRange) == null || (r = r[t]) == null ? void 0 : r[e30]; if (o == null) return true; let s = new Sa(o), c = new Sa(); if (((i = this._arrayFormulaCellData[t]) == null ? void 0 : i[e30]) != null) { var l; c = new Sa((l = this._arrayFormulaCellData[t]) == null ? void 0 : l[e30]); } a.forValue((e31, t2) => { let n2 = s.getValue(e31, t2); if (n2 == null) return true; let { startRow: r2, startColumn: i2, endRow: a2, endColumn: o2 } = n2; for (let e32 = r2; e32 <= a2; e32++) for (let t3 = i2; t3 <= o2; t3++) c.setValue(e32, t3, null); s.realDeleteValue(e31, t2); }), this._arrayFormulaCellData[t] && (this._arrayFormulaCellData[t][e30] = c.getData()); }); }); } mergeArrayFormulaCellData(e29) { Object.keys(e29).forEach((t) => { let n = e29[t]; if (n == null) return true; this._arrayFormulaRange[t] == null && (this._arrayFormulaRange[t] = {}), this._arrayFormulaCellData[t] == null && (this._arrayFormulaCellData[t] = {}), Object.keys(n).forEach((e30) => { var r, i; let a = n[e30], o = new Sa((r = this._arrayFormulaRange[t]) == null ? void 0 : r[e30]), s = new Sa((i = this._arrayFormulaCellData[t]) == null ? void 0 : i[e30]); a.forValue((e31, t2) => { let n2 = o == null ? void 0 : o.getValue(e31, t2); if (n2 == null) return true; let { startRow: r2, startColumn: i2, endRow: a2, endColumn: c } = n2; for (let e32 = r2; e32 <= a2; e32++) for (let t3 = i2; t3 <= c; t3++) s.setValue(e32, t3, null); }), a.forValue((e31, t2, n2) => { s.setValue(e31, t2, n2); }), this._arrayFormulaCellData[t] && (this._arrayFormulaCellData[t][e30] = s.getData()); }); }); } getFormulaData() { let e29 = {}, t = this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET); return t.length === 0 || t.forEach((t2) => { let n = t2.getUnitId(); e29[n] = {}, t2.getSheets().forEach((t3) => { let r = t3.getCellMatrix(); oi2(e29, n, t3.getSheetId(), r); }); }), e29; } getSheetFormulaData(e29, t) { let n = {}, r = this._univerInstanceService.getUnit(e29); if (r == null) return {}; n[e29] = {}; let i = r.getSheetBySheetId(t); return i == null ? {} : (oi2(n, e29, t, i.getCellMatrix()), n[e29][t]); } getArrayFormulaRange() { return this._arrayFormulaRange; } setArrayFormulaRange(e29) { this._arrayFormulaRange = e29; } getArrayFormulaCellData() { return this._arrayFormulaCellData; } setArrayFormulaCellData(e29) { this._arrayFormulaCellData = e29; } getUnitImageFormulaData() { return this._unitImageFormulaData; } setUnitImageFormulaData(e29) { this._unitImageFormulaData = e29; } mergeArrayFormulaRange(e29) { Object.keys(e29).forEach((t) => { let n = e29[t]; if (n == null) return true; this._arrayFormulaRange[t] || (this._arrayFormulaRange[t] = {}), Object.keys(n).forEach((e30) => { var r; let i = new Sa(n[e30]), a = new Sa((r = this._arrayFormulaRange[t]) == null ? void 0 : r[e30]); i.forValue((e31, t2, n2) => { a.setValue(e31, t2, n2); }), this._arrayFormulaRange[t] && (this._arrayFormulaRange[t][e30] = a.getData()); }); }); } mergeUnitImageFormulaData(e29) { let t = Object.keys(e29); for (let n = 0; n < t.length; n++) { let r = t[n], i = e29[r]; if (!i) continue; this._unitImageFormulaData[r] || (this._unitImageFormulaData[r] = {}); let a = Object.keys(i); for (let e30 = 0; e30 < a.length; e30++) { let t2 = a[e30], n2 = i[t2]; n2 && (this._unitImageFormulaData[r][t2] || (this._unitImageFormulaData[r][t2] = new Sa()), n2.forValue((e31, n3, i2) => { this._unitImageFormulaData[r][t2].setValue(e31, n3, i2); })); } } } deleteArrayFormulaRange(e29, t, n, r) { var i; let a = (i = this._arrayFormulaRange[e29]) == null ? void 0 : i[t]; if (a == null) return; let o = new Sa(a); o.getValue(n, r) && (o.realDeleteValue(n, r), this._arrayFormulaRange[e29] && (this._arrayFormulaRange[e29][t] = o.getData())); } getCalculateData() { let e29 = this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET), t = {}, n = {}, r = {}; for (let i of e29) { let e30 = i.getUnitId(), a = i.getSheets(), o = {}, s = {}; for (let e31 of a) { let t2 = e31.getSheetId(), n2 = e31.getConfig(); o[t2] = { cellData: new Sa(n2.cellData), rowCount: n2.rowCount, columnCount: n2.columnCount, rowData: n2.rowData, columnData: n2.columnData, defaultRowHeight: n2.defaultRowHeight, defaultColumnWidth: n2.defaultColumnWidth }, s[e31.getName()] = e31.getSheetId(); } t[e30] = o, n[e30] = i.getStyles(), r[e30] = s; } return { allUnitData: t, unitStylesData: n, unitSheetNameMap: r }; } getHiddenRowsFiltered() { let e29 = this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET), t = {}; for (let r of e29) { let e30 = r.getUnitId(), i = r.getSheets(); t[e30] = {}; for (let r2 of i) { let i2 = r2.getSheetId(); t[e30][i2] = {}; let a = r2.getRowCount() - 1, o = {}; for (let e31 = 0; e31 <= a; e31++) r2.getRowVisible(e31) || (o[e31] = { hd: A.TRUE }); t[e30][i2] = o; } } return t; } updateFormulaData(e29, t, n) { let r = new Sa(n), i = this._getSheetFormulaIdMap(e29, t), a = /* @__PURE__ */ new Map(), o = this.getFormulaData(); o[e29] == null && (o[e29] = {}); let s = o[e29]; s[t] == null && (s[t] = {}); let c = new Sa(s[t] || {}), l = new Sa(); return r.forValue((e30, t2, n2) => { ri2(c, l, i, a, e30, t2, n2); }), c.forValue((e30, t2, n2) => { let r2 = (n2 == null ? void 0 : n2.f) || ``, o2 = (n2 == null ? void 0 : n2.si) || ``; if (Aa(o2)) { let s2 = i == null ? void 0 : i[o2], u = a.get(o2); if (s2 && !ka(r2)) { let n3 = s2.f, r3 = t2 - s2.c, i2 = e30 - s2.r; c.setValue(e30, t2, { f: n3, si: o2, x: r3, y: i2 }), l.setValue(e30, t2, { f: n3, si: o2, x: r3, y: i2 }); } else if (typeof u == `string`) { let r3 = (n2 == null ? void 0 : n2.x) || 0, i2 = (n2 == null ? void 0 : n2.y) || 0, s3 = this._lexerTreeBuilder.moveFormulaRefOffset(u, r3, i2); a.set(o2, { r: e30, c: t2, f: s3 }), c.setValue(e30, t2, { f: s3, si: o2 }), l.setValue(e30, t2, { f: s3, si: o2 }); } else if (typeof u == `object`) { let n3 = t2 - u.c, r3 = e30 - u.r; c.setValue(e30, t2, { f: u.f, si: o2, x: n3, y: r3 }), l.setValue(e30, t2, { f: u.f, si: o2, x: n3, y: r3 }); } } }), l.getMatrix(); } updateArrayFormulaRange(e29, t, n) { var r; let i = (r = this._arrayFormulaRange[e29]) == null ? void 0 : r[t]; if (!i) return; let a = new Sa(i); new Sa(n).forValue((e30, t2, n2) => { a.realDeleteValue(e30, t2); }); } updateArrayFormulaCellData(e29, t, n) { var r, i; let a = (r = this._arrayFormulaRange[e29]) == null ? void 0 : r[t]; if (!a) return; let o = new Sa(a), s = (i = this._arrayFormulaCellData[e29]) == null ? void 0 : i[t]; if (!s) return; let c = new Sa(s); new Sa(n).forValue((e30, t2, n2) => { ii2(o, c, e30, t2); }); } updateImageFormulaData(e29, t, n) { var r; let i = (r = this._unitImageFormulaData[e29]) == null ? void 0 : r[t]; i && new Sa(n).forValue((e30, t2) => { i.realDeleteValue(e30, t2); }); } getFormulaStringByCell(e29, t, n, r) { let i = this._univerInstanceService.getUnit(r); if (i == null) return null; let a = i.getSheetBySheetId(n); if (a == null) return null; let o = a.getCellMatrix(), s = o.getValue(e29, t); if (s == null) return null; let { f: c, si: l } = s; if (ka(c)) return c; if (Aa(l)) { let n2 = null; return o.forValue((r2, i2, a2) => { if (a2 == null) return true; let { f: o2, si: s2 } = a2; if (ka(o2) && l === s2) return n2 = this._lexerTreeBuilder.moveFormulaRefOffset(o2, t - i2, e29 - r2), false; }), n2; } return null; } getFormulaDirtyRanges() { let e29 = this.getFormulaData(), t = []; for (let n in e29) { let r = e29[n]; if (!r) continue; let i = this._univerInstanceService.getUnit(n); if (i) for (let e30 in r) { let a = r[e30]; if (!a) continue; let o = i.getSheetBySheetId(e30); if (!o) continue; let s = {}; for (let e31 of Object.keys(a)) { let t2 = Number(e31); for (let e32 in a[t2]) { let n2 = Number(e32), r2 = o.getCellRaw(t2, n2), i2 = ka(r2 == null ? void 0 : r2.f) || Aa(r2 == null ? void 0 : r2.si), a2 = (r2 == null ? void 0 : r2.v) === void 0 || (r2 == null ? void 0 : r2.v) === null || (r2 == null ? void 0 : r2.v) === ``; if (!(i2 && a2)) continue; s[n2] || (s[n2] = []); let c = s[n2].slice(-1)[0]; c && c.endRow === t2 - 1 ? c.endRow = t2 : s[n2].push({ startRow: t2, endRow: t2 }); } } for (let r2 in s) { let i2 = s[r2]; for (let a2 = 0; a2 < i2.length; a2++) { let o2 = i2[a2]; t.push({ unitId: n, sheetId: e30, range: { rangeType: B.NORMAL, startRow: o2.startRow, endRow: o2.endRow, startColumn: Number(r2), endColumn: Number(r2) } }); } } } } return t; } _getSheetFormulaIdMap(e29, t) { let n = {}, r = this._univerInstanceService.getUnit(e29); if (r == null) return n; let i = r.getSheetBySheetId(t); return i == null || i.getCellMatrix().forValue((e30, t2, r2) => { if (r2 == null) return true; let { f: i2, si: a } = r2; ka(i2) && Aa(a) && (n[a] = { f: i2, r: e30, c: t2 }); }), n; } }; ai2 = dr2([P5(0, Mu), P5(1, Inject(ni))], ai2); function oi2(e29, t, n, r) { e29[t] || (e29[t] = {}), e29[t][n] || (e29[t][n] = {}); let i = /* @__PURE__ */ new Map(), a = new Sa(e29[t][n]); r.forValue((e30, t2, n2) => { let r2 = (n2 == null ? void 0 : n2.f) || ``, o2 = (n2 == null ? void 0 : n2.si) || ``, s = ka(r2), c = Aa(o2); s && c ? (a.setValue(e30, t2, { f: r2, si: o2 }), i.set(o2, { f: r2, r: e30, c: t2 })) : s && !c ? a.setValue(e30, t2, { f: r2 }) : !s && c && a.setValue(e30, t2, { f: ``, si: o2 }); }), a.forValue((e30, t2, n2) => { let r2 = (n2 == null ? void 0 : n2.f) || ``, o2 = (n2 == null ? void 0 : n2.si) || ``; if (Aa(o2) && !ka(r2)) { let n3 = i.get(o2); if (n3) { let r3 = n3.f, i2 = t2 - n3.c, s = e30 - n3.r; a.setValue(e30, t2, { f: r3, si: o2, x: i2, y: s }); } else a.realDeleteValue(e30, t2); } }); let o = a.getMatrix(); return { [t]: { [n]: o } }; } var si2 = /* @__PURE__ */ Symbol(`EMPTY_CELL`); var ci2 = new class { constructor() { E3(this, `_cache`, /* @__PURE__ */ new Map()), E3(this, `_continueBuildingCache`, /* @__PURE__ */ new Map()); } set(e29, t, n, r, i, a = false) { if (!this.shouldContinueBuildingCache(e29, t, n, i) && !a) return; let o = this._cache.get(e29); o == null && (o = /* @__PURE__ */ new Map(), this._cache.set(e29, o)); let s = o.get(t); s == null && (s = /* @__PURE__ */ new Map(), o.set(t, s)); let c = s.get(n); if (c == null && (c = /* @__PURE__ */ new Map(), s.set(n, c)), a) { for (let [e30, t2] of c) if (t2.has(i)) { t2.delete(i); break; } } let l = typeof r == `string` ? r.toLowerCase() : r; (l === `` || l === null) && (l = si2); let u = c.get(l); u == null && (u = /* @__PURE__ */ new Set(), c.set(l, u)), u.add(i); } getCellValuePositions(e29, t, n) { var r; return (r = this._cache.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } getCellPositions(e29, t, n, r, i) { var a; let o = typeof r == `string` ? r.toLowerCase() : r; (o === `` || o === null) && (o = si2); let s = (a = this._cache.get(e29)) == null || (a = a.get(t)) == null || (a = a.get(n)) == null ? void 0 : a.get(o); return s && [...s].filter((e30) => i.some(([t2, n2]) => e30 >= t2 && e30 <= n2)); } setContinueBuildingCache(e29, t, n, r, i) { if (n === -1 || r === -1 || i === -1) return; let a = this._continueBuildingCache.get(e29); a == null && (a = /* @__PURE__ */ new Map(), this._continueBuildingCache.set(e29, a)); let o = a.get(t); o == null && (o = /* @__PURE__ */ new Map(), a.set(t, o)); let s = o.get(n); if (s == null) { s = new IntervalTree(), s.insert([r, i]), o.set(n, s); return; } this._handleNewInterval(s, r, i); } shouldContinueBuildingCache(e29, t, n, r) { var i; if (n === -1 || r === -1) return false; let a = (i = this._continueBuildingCache.get(e29)) == null || (i = i.get(t)) == null ? void 0 : i.get(n); return a ? a.search([r, r]).length === 0 : true; } canUseCache(e29, t, n, r, i) { var a; let o = (a = this._continueBuildingCache.get(e29)) == null || (a = a.get(t)) == null ? void 0 : a.get(n); if (n === -1 || r === -1 || i === -1 || !o) return { rowsInCache: [], rowsNotInCache: [] }; let s = o.search([r, i]); if (s.length === 0) return { rowsInCache: [], rowsNotInCache: [] }; s.sort((e30, t2) => e30[0] - t2[0]); let c = [], l = [], u = r; for (let e30 = 0; e30 < s.length; e30++) { let [t2, n2] = s[e30]; if (u >= t2) { if (i <= n2) { c.push([u, i]); break; } c.push([u, n2]), u = n2 + 1, e30 === s.length - 1 && u <= i && l.push([u, i]); } else { if (i > n2) { c.push([t2, n2]), l.push([u, t2 - 1]), u = n2 + 1, e30 === s.length - 1 && u <= i && l.push([u, i]); continue; } c.push([t2, i]), l.push([u, t2 - 1]); } } return { rowsInCache: c, rowsNotInCache: l }; } clear() { this._cache.clear(), this._continueBuildingCache.clear(); } _handleNewInterval(e29, t, n) { let r = e29.search([t, n]); if (r.length === 0) { let i2 = [t - 1 < 0 ? 0 : t - 1, n + 1]; if (r = e29.search(i2), r.length === 0) { e29.insert([t, n]); return; } } let i = t, a = n; for (let t2 of r) i = Math.min(i, t2[0]), a = Math.max(a, t2[1]), e29.remove(t2); e29.insert([i, a]); } }(); var li2 = class extends E { constructor(...e29) { super(...e29), E3(this, `_getRowFilteredCallback`, void 0); } register(e29) { this._getRowFilteredCallback = e29; } getRowFiltered(e29, t, n) { var r; return this._getRowFilteredCallback ? (r = this._getRowFilteredCallback(e29, t, n)) == null ? false : r : false; } }; var ui2 = createIdentifier(`univer.formula.sheet-row-filtered.service`); var di = class extends E { constructor(e29, t, n, r) { super(), this._univerInstanceService = e29, this._localeService = t, this._formulaDataModel = n, this._sheetRowFilteredService = r, E3(this, `_unitData`, {}), E3(this, `_unitStylesData`, {}), E3(this, `_arrayFormulaCellData`, {}), E3(this, `_arrayFormulaRange`, {}), E3(this, `_formulaData`, {}), E3(this, `_sheetNameMap`, {}), E3(this, `_forceCalculate`, false), E3(this, `_clearDependencyTreeCache`, {}), E3(this, `_dirtyRanges`, []), E3(this, `_dirtyNameMap`, {}), E3(this, `_dirtyDefinedNameMap`, {}), E3(this, `_dirtyUnitFeatureMap`, {}), E3(this, `_dirtyUnitOtherFormulaMap`, {}), E3(this, `_excludedCell`, void 0), E3(this, `_sheetIdToNameMap`, {}), E3(this, `_executeUnitId`, ``), E3(this, `_executeSubUnitId`, ``); } dispose() { super.dispose(), this._unitData = {}, this._unitStylesData = {}, this._arrayFormulaCellData = {}, this._arrayFormulaRange = {}, this._formulaData = {}, this._sheetNameMap = {}, this._clearDependencyTreeCache = {}, this._dirtyRanges = [], this._dirtyNameMap = {}, this._dirtyDefinedNameMap = {}, this._dirtyUnitFeatureMap = {}, this._dirtyUnitOtherFormulaMap = {}, this._excludedCell = {}, this._sheetIdToNameMap = {}; } getExecuteUnitId() { return this._executeUnitId; } getExecuteSubUnitId() { return this._executeSubUnitId; } setExecuteUnitId(e29) { this._executeUnitId = e29; } setExecuteSubUnitId(e29) { this._executeSubUnitId = e29; } getExcludedRange() { return this._excludedCell; } getUnitData() { return this._unitData; } getUnitStylesData() { return this._unitStylesData; } getFormulaData() { return this._formulaData; } getArrayFormulaCellData() { return this._arrayFormulaCellData; } getArrayFormulaRange() { return this._arrayFormulaRange; } getSheetNameMap() { return this._sheetNameMap; } isForceCalculate() { return this._forceCalculate; } getDirtyRanges() { return this._dirtyRanges; } getDirtyNameMap() { return this._dirtyNameMap; } getDirtyDefinedNameMap() { return this._dirtyDefinedNameMap; } getDirtyUnitFeatureMap() { return this._dirtyUnitFeatureMap; } getDirtyUnitOtherFormulaMap() { return this._dirtyUnitOtherFormulaMap; } getSheetName(e29, t) { return this._sheetIdToNameMap[e29] == null ? `` : this._sheetIdToNameMap[e29][t] || ``; } setSheetNameMap(e29) { this._sheetIdToNameMap = e29; } getClearDependencyTreeCache() { return this._clearDependencyTreeCache; } getLocale() { return this._localeService.getCurrentLocale(); } getSheetsInfo() { let { id: e29, sheetOrder: t } = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET).getSnapshot(); return { sheetOrder: t, sheetNameMap: this._sheetIdToNameMap[e29] }; } getSheetRowColumnCount(e29, t) { let n = this._univerInstanceService.getUnit(e29), r = n == null ? void 0 : n.getSheetBySheetId(t), i = r == null ? void 0 : r.getSnapshot(); if (!i) return { rowCount: 0, columnCount: 0 }; let { rowCount: a, columnCount: o } = i; return { rowCount: a, columnCount: o }; } getFilteredOutRows(e29, t, n, r) { let i = []; for (let a = n; a <= r; a++) this._sheetRowFilteredService.getRowFiltered(e29, t, a) && i.push(a); return i; } load(e29) { if (e29.allUnitData && e29.unitSheetNameMap && e29.unitStylesData) this._unitData = e29.allUnitData, this._unitStylesData = e29.unitStylesData, this._sheetNameMap = e29.unitSheetNameMap; else { let { allUnitData: e30, unitSheetNameMap: t, unitStylesData: n } = this._loadSheetData(); this._unitData = e30, this._unitStylesData = n, this._sheetNameMap = t; } e29.rowData && this._applyUnitRowData(e29.rowData), this._formulaData = e29.formulaData, this._arrayFormulaCellData = On2(e29.arrayFormulaCellData), this._arrayFormulaRange = e29.arrayFormulaRange, this._forceCalculate = e29.forceCalculate, this._clearDependencyTreeCache = e29.clearDependencyTreeCache || {}, this._dirtyRanges = e29.dirtyRanges, this._dirtyNameMap = e29.dirtyNameMap, this._dirtyDefinedNameMap = e29.dirtyDefinedNameMap, this._dirtyUnitFeatureMap = e29.dirtyUnitFeatureMap, this._dirtyUnitOtherFormulaMap = e29.dirtyUnitOtherFormulaMap, this._excludedCell = e29.excludedCell, this._mergeNameMap(this._sheetNameMap, this._dirtyNameMap); } loadDataLite(e29) { let { allUnitData: t, unitSheetNameMap: n, unitStylesData: r } = this._loadSheetData(); this._unitData = t, this._unitStylesData = r, this._sheetNameMap = n, this._formulaData = this._formulaDataModel.getFormulaData(), this._arrayFormulaCellData = On2(this._formulaDataModel.getArrayFormulaCellData()), this._arrayFormulaRange = this._formulaDataModel.getArrayFormulaRange(), e29 && this._applyUnitRowData(e29); } getDirtyData() { return { forceCalculation: this._forceCalculate, dirtyRanges: this._dirtyRanges, dirtyNameMap: this._dirtyNameMap, dirtyDefinedNameMap: this._dirtyDefinedNameMap, dirtyUnitFeatureMap: this._dirtyUnitFeatureMap, dirtyUnitOtherFormulaMap: this._dirtyUnitOtherFormulaMap, clearDependencyTreeCache: this._clearDependencyTreeCache }; } loadDirtyRangesAndExcludedCell(e29, t) { this._dirtyRanges = e29, this._excludedCell = t, this._dirtyNameMap = {}; } registerUnitData(e29) { this._unitData = e29; } registerFormulaData(e29) { this._formulaData = e29; } registerSheetNameMap(e29) { this._sheetNameMap = e29; } _mergeNameMap(e29, t) { Object.keys(t).forEach((n) => { t[n] && Object.keys(t[n]).forEach((r) => { e29[n] == null && (e29[n] = {}), e29[n][t[n][r]] = r; }); }), this._sheetIdToNameMap = {}, Object.keys(e29).forEach((t2) => { Object.keys(e29[t2]).forEach((n) => { this._sheetIdToNameMap[t2] == null && (this._sheetIdToNameMap[t2] = {}), this._sheetIdToNameMap[t2][e29[t2][n]] = n; }); }); } _loadSheetData() { let e29 = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET), t = e29 == null ? void 0 : e29.getActiveSheet(); return this._executeUnitId = e29 == null ? void 0 : e29.getUnitId(), this._executeSubUnitId = t == null ? void 0 : t.getSheetId(), this._formulaDataModel.getCalculateData(); } _applyUnitRowData(e29) { for (let t in e29) if (e29[t] != null) for (let n in e29[t]) e29[t][n] != null && (this._unitData[t] == null && (this._unitData[t] = {}), this._unitData[t][n] == null && (this._unitData[t][n] = { cellData: new Sa({}), rowCount: 0, columnCount: 0, rowData: {}, columnData: {} }), this._unitData[t][n].rowData = e29[t][n]); } }; di = dr2([P5(0, Mu), P5(1, Inject(zu)), P5(2, Inject(ai2)), P5(3, Inject(ui2))], di); var fi2 = createIdentifier(`univer.formula.current-data.service`); var pi = class extends E { constructor(e29, t, n) { super(), this._definedNamesService = e29, this._lexerTreeBuilder = t, this._formulaCurrentConfigService = n; } treeBuilder(e29, t = true) { let n = this._definedNamesService.getAllDefinedNames(); return this._isDeepDefinedNameMapEmpty(n) ? this._lexerTreeBuilder.treeBuilder(e29, t) : this._lexerTreeBuilder.treeBuilder(e29, t, { unitId: this._formulaCurrentConfigService.getExecuteUnitId(), getValueByName: this._definedNamesService.getValueByName.bind(this._definedNamesService), getDirtyDefinedNameMap: this._formulaCurrentConfigService.getDirtyDefinedNameMap.bind(this._formulaCurrentConfigService), getSheetName: this._formulaCurrentConfigService.getSheetName.bind(this._formulaCurrentConfigService) }); } _isDeepDefinedNameMapEmpty(e29) { for (let t in e29) if (Object.keys(e29[t]).length > 0) return false; return true; } }; pi = dr2([P5(0, pr2), P5(1, Inject(ni)), P5(2, fi2)], pi); function mi(e29) { if (e29 == null) return true; let { v: t, f: n, si: r, p: i } = e29; return !(!(t == null || typeof t == `string` && t.length === 0) || n != null && n.length > 0 || r != null && r.length > 0 || i != null); } function hi(e29) { var t; if (e29 === null) return 0; if (e29 != null && e29.p) { let t2 = e29 == null ? void 0 : e29.p.body; if (t2 == null) return 0; let n = t2.dataStream; return Z.transform.getPlainText(n); } return (t = e29 == null ? void 0 : e29.v) == null ? 0 : t; } function _i2(e29, t, n, r, i) { let a = Object.keys(i); for (let s of a) { var o; let a2 = i[s], c = a2 == null || (o = a2[r]) == null ? void 0 : o[n]; if (c == null) continue; let l = c.getValue(e29, t); if (l != null) return l; } } var vi = (function(e29) { return e29[e29.MIN = 0] = `MIN`, e29[e29.MAX = 1] = `MAX`, e29; })({}); var yi2 = (function(e29) { return e29[e29.NORMAL = 0] = `NORMAL`, e29[e29.MIN = 1] = `MIN`, e29[e29.MAX = 2] = `MAX`, e29; })({}); function bi2() { return Intl && Intl.Collator ? new Intl.Collator(void 0, { numeric: false }).compare : (e29, t) => e29.localeCompare(t); } function xi(e29) { return e29.indexOf(`*`) > -1 || e29.indexOf(`?`) > -1; } function Si(e29, t) { let n = Ti(t).replace(/~?[*?]/g, (e30) => e30.startsWith(`~`) ? `\\${e30.substring(1)}` : e30 === `*` ? `.*` : e30 === `?` ? `.` : e30); return RegExp(`^${n}$`).test(e29); } function Ci(e29) { return e29.replace(/~?[*?]/g, (e30) => e30.startsWith(`~`) ? e30.substring(1) : ` `); } function wi(e29, t, n) { let r = false; switch (n) { case k3.EQUALS: r = Si(e29, t); break; case k3.NOT_EQUAL: r = !Si(e29, t); break; case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: r = Si(e29, t) || e29 > Ci(t); break; case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: r = e29 < Ci(t); break; default: break; } return r; } function Ti(e29) { return e29.replace(/[.+^${}()|[\]\\]/g, `\\$&`); } function Ei(e29) { switch (e29) { case 1: return yi2.MAX; case 0: return yi2.NORMAL; case -1: return yi2.MIN; default: return yi2.NORMAL; } } function Di(e29) { return e29 === -2 ? vi.MAX : vi.MIN; } var Oi = (function(e29) { return e29[e29.General = 0] = `General`, e29[e29.Number = 1] = `Number`, e29[e29.Currency = 2] = `Currency`, e29[e29.Accounting = 3] = `Accounting`, e29[e29.Date = 4] = `Date`, e29[e29.Time = 5] = `Time`, e29[e29.Percentage = 6] = `Percentage`, e29[e29.Fraction = 7] = `Fraction`, e29[e29.Scientific = 8] = `Scientific`, e29[e29.Text = 9] = `Text`, e29[e29.Special = 10] = `Special`, e29[e29.Custom = 11] = `Custom`, e29; })(Oi || {}); Oi.Currency, Oi.Date, Oi.Time, Oi.Custom, Oi.Fraction, Oi.General, Oi.Custom, Oi.Number, Oi.Percentage, Oi.Scientific, Oi.Text, Oi.Time, Oi.Custom; function ki(e29, t, n) { var r, i; if (e29 == null || t == null) return t; let a = (n == null ? void 0 : n.getStyleByCell(e29)) || e29.s, o = (n == null ? void 0 : n.getStyleByCell(t)) || t.s; if (a == null || o == null || typeof a != `object` || typeof o != `object`) return t; let s = a == null || (r = a.n) == null ? void 0 : r.pattern, c = o == null || (i = o.n) == null ? void 0 : i.pattern; if (s == null || c == null) return t; let l = s || c; return o.n.pattern = l, t; } var Ai = new Be2(1e5); function ji() { Ai.clear(); } var Mi = /* @__PURE__ */ new Map([[Rn.EN_US, `$`], [Rn.RU_RU, `\u20BD`], [Rn.VI_VN, `\u20AB`], [Rn.ZH_CN, `\xA5`], [Rn.ZH_TW, `NT$`], [Rn.FR_FR, `\u20AC`], [Rn.FA_IR, `\uFDFC`], [Rn.KO_KR, `\u20A9`], [Rn.ES_ES, `\u20AC`], [Rn.CA_ES, `\u20AC`]]); function Ni(e29) { return Mi.get(e29) || `$`; } function Pi(e29, t = 2) { let n = t; t > 127 && (n = 127); let r = ``; return n > 0 && (r = `.${`0`.repeat(n)}`), `"${Ni(e29)}"#,##0${r}_);[Red]("${Ni(e29)}"#,##0${r})`; } function Fi(e29, t, n = 2) { return lib_exports.format(Pi(e29, n), t); } var Ii = new Be2(1e5); function Li(e29) { let t = e29; t.startsWith(`"`) && t.endsWith(`"`) && (t = t.slice(1, -1)); let n = Ii.get(t); if (n) return { isNumberPattern: true, value: n.value, pattern: n.pattern }; let r = da(t); return r && r.z ? Ri(t, r.v, r.z) : { isNumberPattern: false }; } function Ri(e29, t, n) { return Ii.set(e29, { value: t, pattern: n }), { isNumberPattern: true, value: t, pattern: n }; } function zi() { Ii.clear(); } function Bi(e29) { let t; switch (e29) { case k3.EQUALS: t = k3.EQUALS; break; case k3.GREATER_THAN: t = k3.LESS_THAN; break; case k3.GREATER_THAN_OR_EQUAL: t = k3.LESS_THAN_OR_EQUAL; break; case k3.LESS_THAN: t = k3.GREATER_THAN; break; case k3.LESS_THAN_OR_EQUAL: t = k3.GREATER_THAN_OR_EQUAL; break; case k3.NOT_EQUAL: t = k3.NOT_EQUAL; break; } return t; } function Vi(e29, t) { let n = e29 + t; return Number.isSafeInteger(n) ? n : new decimal_default(e29).add(t).toNumber(); } function Hi(e29, t) { let n = e29 - t; return Number.isSafeInteger(n) ? n : new decimal_default(e29).sub(t).toNumber(); } function Ui(e29, t) { let n = e29 * t; return Number.isSafeInteger(n) ? n : new decimal_default(e29).mul(t).toNumber(); } function Wi(e29, t) { let n = e29 / t; return Number.isSafeInteger(n) ? n : new decimal_default(e29).div(t).toNumber(); } function Gi(e29, t) { let n = 10 ** Math.trunc(t), r = Ji(e29, n); return Math.round(Ui(e29, n) + r) / n; } function Ki2(e29, t) { let n = 10 ** Math.trunc(t), r = Ji(e29, n); return Math.floor(Ui(e29, n) + r) / n; } function qi(e29, t) { let n = 10 ** Math.trunc(t), r = Ji(e29, n); return Math.ceil(Ui(e29, n) - r) / n; } function Ji(e29, t) { return 2 ** -52 * Math.max(1, Math.abs(Ui(e29, t))); } function Yi(e29, t) { return e29 - t * Math.floor(e29 / t); } function Xi2(e29, t) { return e29 ** t; } function Zi2(e29) { return Math.sqrt(e29); } function Qi2(e29, t) { return e29 === t; } function $i(e29, t) { return e29 > t; } function ea2(e29, t) { return e29 >= t; } function ta2(e29, t) { return e29 < t; } function na(e29, t) { return e29 <= t; } function ra(e29, t = 15) { return Math.floor(Math.abs(e29)).toString().length >= t ? e29 : Number.parseFloat(e29.toPrecision(t)); } function ia(e29, t, n = 2 ** -52) { return Math.abs(e29 - t) < n; } function aa2(e29, t = 12, n = 1e-10) { let r = ra(e29, t); return ia(e29, r, n) ? r : ra(e29); } function oa2(e29) { return e29 - Math.trunc(e29); } var I3 = class e20 extends Xe2 { static create() { return this._instance = this._instance || new e20(0), this._instance; } isNull() { return true; } plus(e29) { return R4.create(0).plus(e29); } minus(e29) { return R4.create(0).minus(e29); } multiply(e29) { return R4.create(0).multiply(e29); } divided(e29) { return R4.create(0).divided(e29); } mod(e29) { return R4.create(0).mod(e29); } compare(e29, t) { return e29.isString() ? z3.create(``).compare(e29, t) : e29.isBoolean() ? L3.create(false).compare(e29, t) : R4.create(0).compare(e29, t); } concatenateFront(e29) { return e29.isArray() ? e29.concatenateBack(z3.create(``)) : z3.create(this.concatenate(e29.getValue(), Ie2.FRONT)); } concatenateBack(e29) { return e29.isArray() ? e29.concatenateFront(z3.create(``)) : z3.create(this.concatenate(e29.getValue(), Ie2.BACK)); } plusBy(e29) { return R4.create(0).plusBy(e29); } minusBy(e29) { return R4.create(0).minusBy(e29); } multiplyBy(e29) { return R4.create(0).multiplyBy(e29); } dividedBy(e29) { return R4.create(0).dividedBy(e29); } compareBy(e29, t) { return typeof e29 == `string` ? z3.create(``).compareBy(e29, t) : typeof e29 == `boolean` ? L3.create(false).compareBy(e29, t) : R4.create(0).compareBy(e29, t); } pow(e29) { return R4.create(0).pow(e29); } sqrt() { return R4.create(0).sqrt(); } cbrt() { return R4.create(0).cbrt(); } cos() { return R4.create(0).cos(); } cosh() { return R4.create(0).cosh(); } acos() { return R4.create(0).acos(); } acosh() { return R4.create(0).acosh(); } sin() { return R4.create(0).sin(); } sinh() { return R4.create(0).sinh(); } asin() { return R4.create(0).asin(); } asinh() { return R4.create(0).asinh(); } tan() { return R4.create(0).tan(); } tanh() { return R4.create(0).tanh(); } atan() { return R4.create(0).atan(); } atan2(e29) { return R4.create(0).atan2(e29); } atanh() { return R4.create(0).atanh(); } log() { return j3.create(D3.NUM); } log10() { return j3.create(D3.NUM); } exp() { return R4.create(0).exp(); } abs() { return R4.create(0).abs(); } round(e29) { return R4.create(0).round(e29); } floor(e29) { return R4.create(0).floor(e29); } ceil(e29) { return R4.create(0).ceil(e29); } convertToNumberObjectValue() { return R4.create(0); } convertToBooleanObjectValue() { return L3.create(false); } }; E3(I3, `_instance`, void 0); var L3 = class e21 extends Xe2 { static create(t) { return t ? (this._instanceTrue = this._instanceTrue || new e21(true), this._instanceTrue) : (this._instanceFalse = this._instanceFalse || new e21(false), this._instanceFalse); } constructor(e29) { super(e29), E3(this, `_value`, false), this._value = e29; } getValue() { return this._value; } isBoolean() { return true; } getNegative() { let e29 = this.getValue(), t = 0; return e29 && (t = 1), R4.create(-t); } getReciprocal() { return this.getValue() ? R4.create(1) : j3.create(D3.DIV_BY_ZERO); } plus(e29) { return this._convertToNumber().plus(e29); } minus(e29) { return this._convertToNumber().minus(e29); } multiply(e29) { return this._convertToNumber().multiply(e29); } divided(e29) { return this._convertToNumber().divided(e29); } mod(e29) { return this._convertToNumber().mod(e29); } compare(e29, t) { return e29.isArray() ? e29.compare(this, Bi(t)) : e29.isNull() ? this._convertToNumber().compare(e29, t) : this.compareBy(e29.getValue(), t); } compareBy(t, n) { let r = false; if (typeof t == `string` || typeof t == `number`) r = this._compareString(n); else if (typeof t == `boolean`) { let e29 = R4.create(t ? 1 : 0); return this._convertToNumber().compare(e29, n); } return e21.create(r); } _compareString(e29) { switch (e29) { case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: return true; case k3.EQUALS: case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: case k3.NOT_EQUAL: return false; } } concatenateFront(e29) { return this._convertToNumber().concatenateFront(e29); } concatenateBack(e29) { return this._convertToNumber().concatenateBack(e29); } _convertToNumber() { let e29 = this.getValue(), t = 0; return e29 && (t = 1), R4.create(t); } pow(e29) { return this._convertToNumber().pow(e29); } sqrt() { return this._convertToNumber().sqrt(); } cbrt() { return this._convertToNumber().cbrt(); } cos() { return this._convertToNumber().cos(); } cosh() { return this._convertToNumber().cosh(); } acos() { return this._convertToNumber().acos(); } acosh() { return this._convertToNumber().acosh(); } sin() { return this._convertToNumber().sin(); } sinh() { return this._convertToNumber().sinh(); } asin() { return this._convertToNumber().asin(); } asinh() { return this._convertToNumber().asinh(); } tan() { return this._convertToNumber().tan(); } tanh() { return this._convertToNumber().tanh(); } atan() { return this._convertToNumber().atan(); } atan2(e29) { return this._convertToNumber().atan2(e29); } atanh() { return this._convertToNumber().atanh(); } log() { return this._convertToNumber().log(); } log10() { return this._convertToNumber().log10(); } exp() { return this._convertToNumber().exp(); } abs() { return this._convertToNumber().abs(); } round(e29) { return this._convertToNumber().round(e29); } floor(e29) { return this._convertToNumber().floor(e29); } ceil(e29) { return this._convertToNumber().ceil(e29); } convertToNumberObjectValue() { return ua2(this.getValue()); } convertToBooleanObjectValue() { return this; } }; E3(L3, `_instanceTrue`, void 0), E3(L3, `_instanceFalse`, void 0); var R4 = class e22 extends Xe2 { static create(t, n = ``) { let r = new e22(t); return n && r.setPattern(n), r; } constructor(e29) { super(e29), E3(this, `_value`, 0), this._value = Number(e29); } getValue() { return this._value; } setValue(e29) { this._value = e29; } isNumber() { return true; } getNegative() { return e22.create(0).minus(this); } getReciprocal() { return e22.create(1).divided(this); } plus(e29) { if (e29.isArray()) return e29.plus(this); let t = e29; e29.isNumber() || (t = e29.convertToNumberObjectValue()); let n = this.plusBy(t.getValue()); return n.isError(), n; } equalZero() { return this._value === 0; } minus(e29) { if (e29.isArray()) { let t2 = e29.getNegative(); return t2.isError() ? t2 : t2.plus(this); } let t = e29; e29.isNumber() || (t = e29.convertToNumberObjectValue()); let n = this.minusBy(t.getValue()); return n.isError(), n; } multiply(e29) { if (e29.isArray()) return e29.multiply(this); let t = e29; e29.isNumber() || (t = e29.convertToNumberObjectValue()); let n = this.multiplyBy(t.getValue()); return n.isError(), n; } divided(e29) { if (e29.isArray()) { let t2 = e29.getReciprocal(); return t2.isError() ? t2 : t2.multiply(this); } let t = e29; e29.isNumber() || (t = e29.convertToNumberObjectValue()); let n = this.dividedBy(t.getValue()); return n.isError(), n; } mod(t) { if (t.isArray()) return t.modInverse(this); let n = this.getValue(), r = t.getValue(); if (t.isNull()) return j3.create(D3.DIV_BY_ZERO); if (typeof r == `string`) return j3.create(D3.VALUE); if (typeof r == `number`) { if (r === 0) return j3.create(D3.DIV_BY_ZERO); if (!Number.isFinite(n) || !Number.isFinite(r) || Math.abs(r) * 11259e8 <= Math.abs(n)) return j3.create(D3.NUM); let t2 = Yi(n, r); return Number.isFinite(t2) ? e22.create(t2) : j3.create(D3.NUM); } if (typeof r == `boolean`) { let t2 = r ? 1 : 0; return t2 === 0 ? j3.create(D3.DIV_BY_ZERO) : e22.create(Yi(n, t2)); } return this; } concatenateFront(e29) { return e29.isArray() ? e29.concatenateBack(this) : z3.create(this.concatenate(e29.getValue(), Ie2.FRONT)); } concatenateBack(e29) { return e29.isArray() ? e29.concatenateFront(this) : z3.create(this.concatenate(e29.getValue(), Ie2.BACK)); } isDateFormat() { let e29 = this.getPattern(); return lib_exports.isDateFormat(e29); } compare(e29, t) { if (e29.isArray()) return e29.compare(this, Bi(t)); let n = false; return e29.isDateFormat() && this.isDateFormat() && (n = true), this.compareBy(e29.getValue(), t, n); } plusBy(t) { if (typeof t == `string` && t.trim() === ``) return j3.create(D3.VALUE); let n = +this.getValue(), r = +t; if (Number.isNaN(n) || Number.isNaN(r)) return j3.create(D3.VALUE); if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let i = Vi(n, r); return Number.isFinite(i) ? e22.create(i) : j3.create(D3.NUM); } minusBy(t) { if (typeof t == `string` && t.trim() === ``) return j3.create(D3.VALUE); let n = +this.getValue(), r = +t; if (Number.isNaN(n) || Number.isNaN(r)) return j3.create(D3.VALUE); if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let i = Hi(n, r); return Number.isFinite(i) ? e22.create(i) : j3.create(D3.NUM); } multiplyBy(t) { if (typeof t == `string` && t.trim() === ``) return j3.create(D3.VALUE); let n = +this.getValue(), r = +t; if (Number.isNaN(n) || Number.isNaN(r)) return j3.create(D3.VALUE); if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let i = Ui(n, r); return Number.isFinite(i) ? e22.create(i) : j3.create(D3.NUM); } dividedBy(t) { if (typeof t == `string` && t.trim() === ``) return j3.create(D3.VALUE); let n = +this.getValue(), r = +t; if (Number.isNaN(n) || Number.isNaN(r)) return j3.create(D3.VALUE); if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); if (r === 0) return j3.create(D3.DIV_BY_ZERO); let i = Wi(n, r); return Number.isFinite(i) ? e22.create(i) : j3.create(D3.NUM); } compareBy(e29, t, n = false) { let r = this.getValue(), i = false, a = r, o = e29; return n && (a = Math.round(r * 1e8) / 1e8, o = Math.round(e29 * 1e8) / 1e8), typeof o == `string` ? i = this._compareString(t) : typeof o == `number` ? i = this._compareNumber(a, o, t) : typeof o == `boolean` && (i = this._compareBoolean(t)), L3.create(i); } _compareString(e29) { switch (e29) { case k3.EQUALS: case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: return false; case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: case k3.NOT_EQUAL: return true; } } _compareNumber(e29, t, n) { return !Number.isFinite(e29) || !Number.isFinite(t) ? this._compareInfinity(e29, t, n) : this._compareFiniteNumber(e29, t, n); } _compareFiniteNumber(e29, t, n) { switch (n) { case k3.EQUALS: return Qi2(e29, t); case k3.GREATER_THAN: return $i(e29, t); case k3.GREATER_THAN_OR_EQUAL: return ea2(e29, t); case k3.LESS_THAN: return ta2(e29, t); case k3.LESS_THAN_OR_EQUAL: return na(e29, t); case k3.NOT_EQUAL: return !Qi2(e29, t); } } _compareBoolean(e29) { switch (e29) { case k3.EQUALS: case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: return false; case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: case k3.NOT_EQUAL: return true; } } pow(t) { if (t.isArray()) return t.powInverse(this); if (this.isError()) return this; let n = this.getValue(), r = t; if (t.isString() && (r = t.convertToNumberObjectValue()), r.isError()) return r; let i = +r.getValue(); if (Number.isNaN(i)) return j3.create(D3.VALUE); if (!Number.isFinite(n) || !Number.isFinite(i)) return j3.create(D3.NUM); if (n === 0) return i < 0 ? j3.create(D3.DIV_BY_ZERO) : i === 0 ? j3.create(D3.NUM) : e22.create(0); let a = Xi2(n, i); return Number.isFinite(a) ? e22.create(a) : j3.create(D3.NUM); } sqrt() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Zi2(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } cbrt() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.cbrt(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } cos() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.cos(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } cosh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.cosh(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } acos() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.acos(t); return Number.isNaN(n) ? j3.create(D3.NUM) : e22.create(n); } acosh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.acosh(t); return Number.isNaN(n) ? j3.create(D3.NUM) : e22.create(n); } sin() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.sin(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } sinh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.sinh(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } asin() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.asin(t); return Number.isNaN(n) ? j3.create(D3.NUM) : e22.create(n); } asinh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.asinh(t); return Number.isNaN(n) ? j3.create(D3.NUM) : e22.create(n); } tan() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.tan(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } tanh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.tanh(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } atan() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.atan(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } atan2(t) { if (t.isArray()) return t.atan2Inverse(this); let n = this.getValue(), r = t.getValue(); if (typeof r == `string`) return j3.create(D3.VALUE); if (typeof r == `number`) { if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); if (n === 0 && r === 0) return j3.create(D3.DIV_BY_ZERO); let t2 = Math.atan2(n, r); return Number.isFinite(t2) ? e22.create(t2) : j3.create(D3.NUM); } return typeof r == `boolean` ? e22.create(Math.atan2(n, r ? 1 : 0)) : this; } atanh() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.atanh(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } log() { let t = this.getValue(); if (typeof t == `number` && t <= 0 || !Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.log(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } log10() { let t = this.getValue(); if (typeof t == `number` && t <= 0 || !Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.log10(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } exp() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.exp(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } abs() { let t = this.getValue(); if (!Number.isFinite(t)) return j3.create(D3.NUM); let n = Math.abs(t); return Number.isFinite(n) ? e22.create(n) : j3.create(D3.NUM); } round(t) { if (t.isArray()) return t.roundInverse(this); let n = this.getValue(), r = t.getValue(); if (typeof r == `string`) return j3.create(D3.VALUE); if (typeof r == `number`) { if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let t2 = n < 0 ? -Gi(Math.abs(n), r) : Gi(n, r); return Number.isFinite(t2) ? e22.create(t2) : j3.create(D3.NUM); } return typeof r == `boolean` ? e22.create(Gi(n, r ? 1 : 0)) : this; } floor(t) { if (t.isArray()) return t.floorInverse(this); let n = this.getValue(), r = t.getValue(); if (typeof r == `string`) return j3.create(D3.VALUE); if (typeof r == `number`) { if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let t2 = n < 0 ? -Ki2(Math.abs(n), r) : Ki2(n, r); return Number.isFinite(t2) ? e22.create(t2) : j3.create(D3.NUM); } return typeof r == `boolean` ? e22.create(Ki2(n, r ? 1 : 0)) : this; } ceil(t) { if (t.isArray()) return t.ceilInverse(this); let n = this.getValue(), r = t.getValue(); if (typeof r == `string`) return j3.create(D3.VALUE); if (typeof r == `number`) { if (!Number.isFinite(n) || !Number.isFinite(r)) return j3.create(D3.NUM); let t2 = n < 0 ? -qi(Math.abs(n), r) : qi(n, r); return Number.isFinite(t2) ? e22.create(t2) : j3.create(D3.NUM); } return typeof r == `boolean` ? e22.create(qi(n, r ? 1 : 0)) : this; } convertToNumberObjectValue() { return this; } convertToBooleanObjectValue() { return ca2(true); } _compareInfinity(e29, t, n) { let r = false; switch (n) { case k3.EQUALS: r = e29 === t; break; case k3.GREATER_THAN: r = e29 > t; break; case k3.GREATER_THAN_OR_EQUAL: r = e29 >= t; break; case k3.LESS_THAN: r = e29 < t; break; case k3.LESS_THAN_OR_EQUAL: r = e29 <= t; break; case k3.NOT_EQUAL: r = e29 !== t; break; } return r; } }; var sa = new Be2(1e5); var z3 = class e23 extends Xe2 { static create(t, n) { let r = sa.get(t); if (r && n && this.checkCacheByOptions(r, n)) return r; let i = new e23(t); if (n != null && n.isHyperlink) { var a; i._isHyperlink = n.isHyperlink, i._hyperlinkUrl = (a = n.hyperlinkUrl) == null ? `` : a; } return n != null && n.isImage && (i._isImage = n.isImage, i._imageInfo = n.imageInfo), sa.set(t, i), i; } static checkCacheByOptions(e29, t) { return !(e29.isHyperlink() !== t.isHyperlink || e29.getHyperlinkUrl() !== t.hyperlinkUrl || e29.isImage() !== t.isImage || !D.diffValue(e29.getImageInfo(), t.imageInfo)); } constructor(e29) { super(e29), E3(this, `_value`, void 0), E3(this, `_isHyperlink`, false), E3(this, `_hyperlinkUrl`, ``), E3(this, `_isImage`, false), E3(this, `_imageInfo`, void 0), this._value = e29; } getValue() { return this._value; } isString() { return true; } isHyperlink() { return this._isHyperlink; } getHyperlinkUrl() { return this._hyperlinkUrl; } isImage() { return this._isImage; } getImageInfo() { return this._imageInfo; } concatenateFront(t) { return t.isArray() ? t.concatenateBack(this) : e23.create(this.concatenate(t.getValue(), Ie2.FRONT)); } concatenateBack(t) { return t.isArray() ? t.concatenateFront(this) : e23.create(this.concatenate(t.getValue(), Ie2.BACK)); } plus(e29) { return this.convertToNumberObjectValue().plus(e29); } minus(e29) { return this.convertToNumberObjectValue().minus(e29); } multiply(e29) { return this.convertToNumberObjectValue().multiply(e29); } divided(e29) { return this.convertToNumberObjectValue().divided(e29); } compare(e29, t, n) { return e29.isArray() ? e29.compare(this, Bi(t), n) : this.compareBy(e29.getValue(), t, n); } compareBy(e29, t, n = false) { let r = this.getValue(), i = false; if (typeof e29 == `string`) { let a = e29; if (n || (r = r.toLocaleLowerCase(), a = a.toLocaleLowerCase()), xi(a)) return this._checkWildcard(a, t); i = this._compareString(r, a, t); } else typeof e29 == `number` ? i = this._compareNumber(t) : typeof e29 == `boolean` && (i = this._compareBoolean(t)); return L3.create(i); } _compareString(e29, t, n) { switch (n) { case k3.EQUALS: return e29 === t; case k3.GREATER_THAN: return e29 > t; case k3.GREATER_THAN_OR_EQUAL: return e29 >= t; case k3.LESS_THAN: return e29 < t; case k3.LESS_THAN_OR_EQUAL: return e29 <= t; case k3.NOT_EQUAL: return e29 !== t; } } _compareNumber(e29) { switch (e29) { case k3.NOT_EQUAL: case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: return true; case k3.EQUALS: case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: return false; } } _compareBoolean(e29) { switch (e29) { case k3.EQUALS: case k3.GREATER_THAN: case k3.GREATER_THAN_OR_EQUAL: return false; case k3.LESS_THAN: case k3.LESS_THAN_OR_EQUAL: case k3.NOT_EQUAL: return true; } } convertToNumberObjectValue() { let e29 = this.getValue(), t = da(e29); return t && t.z ? ua2(t.v, t.z) : ua2(e29); } convertToBooleanObjectValue() { return L3.create(true); } _checkWildcard(e29, t) { let n = wi(this.getValue().toLocaleLowerCase(), e29, t); return L3.create(n); } }; function ca2(e29) { if (typeof e29 == `boolean`) return L3.create(e29); let t = false; if (typeof e29 == `string`) { let n = e29.toLocaleUpperCase(); n === Ne.TRUE ? t = true : n === Ne.FALSE && (t = false); } else t = e29 === 1; return L3.create(t); } function la2(e29) { let t = e29.toString(); return t.charAt(0) === `"` && t.charAt(t.length - 1) === `"` && (t = t.slice(1, -1), t = t.replace(/""/g, `"`)), z3.create(t); } function ua2(e29, t = ``) { if (typeof e29 == `boolean`) { let n = 0; return e29 && (n = 1), R4.create(n, t); } else if (typeof e29 == `number`) return Number.isFinite(e29) ? R4.create(e29, t) : j3.create(D3.NUM); else if (Ja(e29)) return R4.create(Number(e29), t); return j3.create(D3.VALUE); } var da2 = (function(e29) { return e29[e29.MINUS = 0] = `MINUS`, e29[e29.PLUS = 1] = `PLUS`, e29[e29.MULTIPLY = 2] = `MULTIPLY`, e29[e29.DIVIDED = 3] = `DIVIDED`, e29[e29.MOD = 4] = `MOD`, e29[e29.COMPARE = 5] = `COMPARE`, e29[e29.CONCATENATE_FRONT = 6] = `CONCATENATE_FRONT`, e29[e29.CONCATENATE_BACK = 7] = `CONCATENATE_BACK`, e29[e29.POW = 8] = `POW`, e29[e29.ROUND = 9] = `ROUND`, e29[e29.FLOOR = 10] = `FLOOR`, e29[e29.CEIL = 11] = `CEIL`, e29[e29.ATAN2 = 12] = `ATAN2`, e29; })(da2 || {}); var fa2 = (function(e29) { return e29[e29.PRODUCT = 0] = `PRODUCT`, e29[e29.ROW = 1] = `ROW`, e29[e29.COLUMN = 2] = `COLUMN`, e29[e29.SINGLE = 3] = `SINGLE`, e29; })(fa2 || {}); function pa2(e29) { return ``; } function ma(e29 = [], t = false) { let n = []; for (let r = 0; r < e29.length; r++) { let i = e29[r]; n[r] == null && (n[r] = []); for (let e30 = 0; e30 < i.length; e30++) { let a = i[e30]; n[r][e30] = ga2.create(a, t); } } return n; } function ha(e29 = []) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; t[n] == null && (t[n] = []); for (let e30 = 0; e30 < r.length; e30++) { let i = r[e30]; i == null ? t[n][e30] = null : i.isError() ? t[n][e30] = i.getErrorType() : t[n][e30] = i.getValue(); } } return t; } var B3 = class e24 extends Xe2 { static create(t) { return new e24(t); } static createByArray(t) { return new e24({ calculateValueList: ma(t), rowCount: t.length, columnCount: t[0].length || 0, unitId: ``, sheetId: ``, row: -1, column: -1 }); } constructor(e29) { super(typeof e29 == `string` ? e29 : pa2(e29)), E3(this, `_values`, []), E3(this, `_rowCount`, -1), E3(this, `_columnCount`, -1), E3(this, `_unitId`, ``), E3(this, `_sheetId`, ``), E3(this, `_currentRow`, -1), E3(this, `_currentColumn`, -1), E3(this, `_sliceCache`, /* @__PURE__ */ new Map()), E3(this, `_flattenCache`, void 0), E3(this, `_defaultValue`, null), E3(this, `_flattenPosition`, void 0), this._values = this._formatValue(e29); } dispose() { this._values = [], this._defaultValue = null, this._flattenPosition = null, this._clearCache(); } clone() { return this.map((e29) => e29); } getRowCount() { return this._rowCount; } setRowCount(e29) { this._rowCount = e29; } getColumnCount() { return this._columnCount; } setColumnCount(e29) { this._columnCount = e29; } setCurrent(e29, t) { this._currentRow = e29, this._currentColumn = t; } setUnitId(e29) { this._unitId = e29; } getUnitId() { return this._unitId; } setSheetId(e29) { this._sheetId = e29; } getSheetId() { return this._sheetId; } getCurrentRow() { return this._currentRow; } getCurrentColumn() { return this._currentColumn; } getArrayValue() { return this._values; } setArrayValue(e29) { this._clearCache(), this._values = e29; } isArray() { return true; } setDefaultValue(e29) { this._defaultValue = e29; } get(e29, t) { var n; return ((n = this._values[e29]) == null ? void 0 : n[t]) || this._defaultValue; } getRealValue(e29, t) { let n = this._values[e29]; if (n == null) return null; let r = n[t]; return r == null ? null : r; } getValueOrDefault(e29, t) { return this.get(e29, t) || this._defaultValue; } set(e29, t, n) { if (e29 >= this._rowCount || t >= this._columnCount) { console.error(`Exceeding array bounds.`); return; } this._clearCache(), this._values[e29][t] = n; } getRangePosition() { let e29 = this.getRowCount(), t = this.getColumnCount(); return { startRow: 0, endRow: e29 - 1, startColumn: 0, endColumn: t - 1 }; } iterator(e29) { let { startRow: t, endRow: n, startColumn: r, endColumn: i } = this.getRangePosition(), a = this.getArrayValue(); for (let s = t; s <= n; s++) for (let t2 = r; t2 <= i; t2++) { var o; if (e29(((o = a[s]) == null ? void 0 : o[t2]) || this._defaultValue, s, t2) === false) return; } } iteratorReverse(e29) { let { startRow: t, endRow: n, startColumn: r, endColumn: i } = this.getRangePosition(), a = this.getArrayValue(); for (let s = n; s >= t; s--) for (let t2 = i; t2 >= r; t2--) { var o; if (e29(((o = a[s]) == null ? void 0 : o[t2]) || this._defaultValue, s, t2) === false) return; } } getLastTruePosition() { let e29; return this.iteratorReverse((t, n, r) => { if (t != null && t.isBoolean() && t.getValue() === true) return e29 = { row: n, column: r }, false; }), e29; } getFirstTruePosition() { let e29; return this.iterator((t, n, r) => { if (t != null && t.isBoolean() && t.getValue() === true) return e29 = { row: n, column: r }, false; }), e29; } getFirstCell() { let { startRow: e29, startColumn: t } = this.getRangePosition(); return this.get(e29, t) || this._defaultValue || I3.create(); } getLastCell() { let { endRow: e29, endColumn: t } = this.getRangePosition(); return this.get(e29, t) || this._defaultValue || I3.create(); } pick(e29) { let t = this.pickRaw(e29); return this._createNewArray(t, 1, t[0].length); } pickRaw(e29) { let t = e29.getRowCount(), n = e29.getColumnCount(); if (t !== this._rowCount || n !== this._columnCount) return [[I3.create()]]; let r = []; r[0] = []; for (let i = 0; i < t; i++) for (let t2 = 0; t2 < n; t2++) { let n2 = e29.get(i, t2); if (!(n2 == null || n2.isError()) && n2.getValue() === true) { let e30 = this.get(i, t2); r[0].push(e30); } } return r; } flatten() { if (this._flattenCache != null) return this._flattenCache; let e29 = []; e29[0] = []; for (let t2 = 0; t2 < this._rowCount; t2++) for (let n = 0; n < this._columnCount; n++) { let r = this.get(t2, n); e29[0].push(r); } let t = this._createNewArray(e29, 1, e29[0].length); return t.setDefaultValue(this._defaultValue), this._flattenCache = t, t; } flattenPosition() { if (this._flattenPosition != null) return this._flattenPosition; let e29 = [], t = [], n = [], r = [], i = 0; for (let a2 = 0; a2 < this._rowCount; a2++) for (let o = 0; o < this._columnCount; o++) { let s = this.get(a2, o); if (s == null || s.isError() || s.isNull()) { i++; continue; } s.isString() ? (e29.push(s), n.push(i++)) : (t.push(s), r.push(i++)); } let a = { stringArray: e29, numberArray: t, stringPosition: n, numberPosition: r }; return this._flattenPosition = a, a; } slice(e29, t) { let n = 0, r = this._rowCount, i = 1, a = 0, o = this._columnCount, s = 1; if (e29 != null && (n = e29[0] || 0, r = e29[1] || this._rowCount, i = e29[2] || 1), t != null && (a = t[0] || 0, o = t[1] || this._columnCount, s = t[2] || 1), n >= this._rowCount || a >= this._columnCount) return; let c = `${n}_${r}_${i}_${a}_${o}_${s}`, l = this._sliceCache.get(c); if (l != null) return l; let u = [], d = this._values, f = 0, p = 0; for (let e30 = n; e30 < r; e30 += i) { p = 0, u[f] == null && (u[f] = []); for (let t2 = a; t2 < o; t2 += s) { if (!d[e30]) return; let n2 = d[e30][t2] || this._defaultValue; n2 == null && (n2 = I3.create()), u[f][p] = n2, p++; } f++; } if (u.length === 0 || u[0].length === 0) return; let m = i > 1 ? -1 : n + this._currentRow, h = s > 1 ? -1 : a + this._currentColumn, g2 = this._createNewArray(u, u.length, u[0].length, m, h); return g2.setDefaultValue(this._defaultValue), this._sliceCache.set(c, g2), g2; } sortByRow(e29) { let t = this._transposeArray(this._values); t.sort(this._sort(e29)), this._clearCache(), this._values = this._transposeArray(t); } sortByColumn(e29) { this._clearCache(), this._values.sort(this._sort(e29)); } transpose() { let e29 = this._transposeArray(this._values), t = this._rowCount, n = this._columnCount, r = this._createNewArray(e29, n, t); return r.setDefaultValue(this._defaultValue), r; } orderSearch(e29, t = yi2.MIN, n = false, r = false) { let i, a, o, s, c = (n2, c2, l) => { if (n2 == null || n2.isNull()) return true; let u; if (u = r === true ? n2.compare(e29, k3.EQUALS) : n2.isEqual(e29), (u == null ? void 0 : u.getValue()) === true) return i = n2, o = { row: c2, column: l }, false; t === yi2.MAX ? n2.isGreaterThan(e29).getValue() === true && (a == null || n2.minus(e29).abs().isLessThanOrEqual(a.minus(e29).abs()).getValue() === true) && (a = n2, s = { row: c2, column: l }) : t === yi2.MIN && n2.isLessThan(e29).getValue() === true && (a == null || n2.minus(e29).abs().isLessThanOrEqual(a.minus(e29).abs()).getValue() === true) && (a = n2, s = { row: c2, column: l }); }; if (n ? this.iteratorReverse((e30, t2, n2) => c(e30, t2, n2)) : this.iterator((e30, t2, n2) => c(e30, t2, n2)), i != null) return o; if (a != null) return s; } binarySearch(e29, t = vi.MIN, n = yi2.MIN) { if (e29.isError()) return; let { stringArray: r, stringPosition: i, numberArray: a, numberPosition: o } = this.flattenPosition(); return e29.isString() ? this._binarySearch(e29, r, i, t, n) : this._binarySearch(e29, a, o, t, n); } _binarySearch(e29, t, n, r = vi.MIN, i = yi2.MIN) { let a = bi2(), o = Number(e29.getValue()), s = !Number.isNaN(o), c = 0, l = t.length - 1, u = -1, d = -1, f = -1; for (; c <= l; ) { let n2 = Math.floor((c + l) / 2), i2 = t[n2], p; if (i2.isNull()) p = r === vi.MIN ? 1 : -1; else { let t2 = i2.getValue(); if (s) { let e30 = Number(t2); p = Number.isNaN(e30) ? 1 : Math.sign(e30 - o); } else p = a(t2.toString().toLocaleLowerCase(), e29.getValue().toString().toLocaleLowerCase()); } if (r === vi.MAX && (p = -p), p === 0) { u = n2; break; } p < 0 ? (d = n2, c = n2 + 1) : (f = n2, l = n2 - 1); } if (i === yi2.NORMAL) return u === -1 ? void 0 : n[u]; if (i === yi2.MIN) return u === -1 ? r === vi.MIN ? n[d] : n[f] : n[u]; if (i === yi2.MAX) return u === -1 ? r === vi.MIN ? n[f] : n[d] : n[u]; } sum() { let e29 = R4.create(0); return this.iterator((t) => { if (t == null || t.isString() || t.isBoolean() || t.isNull()) return true; if (t.isError()) return e29 = t, false; e29 = e29.plus(t); }), e29; } max() { let e29 = R4.create(-1 / 0); return this.iterator((t) => { if (t == null) return true; if (t.isError()) return e29 = t, false; if (t.isString() || t.isNull() || t.isBoolean()) return true; e29.isLessThan(t).getValue() && (e29 = t); }), e29; } min() { let e29 = R4.create(1 / 0); return this.iterator((t) => { if (t == null) return true; if (t.isError()) return e29 = t, false; if (t.isString() || t.isNull() || t.isBoolean()) return true; e29.isGreaterThan(t).getValue() && (e29 = t); }), e29; } count() { let e29 = R4.create(0); return this.iterator((t) => { if (t == null || t.isError() || t.isString() || t.isNull() || t.isBoolean()) return true; e29 = e29.plusBy(1); }), e29; } countA() { let e29 = R4.create(0); return this.iterator((t) => { if (t == null || t.isNull()) return true; e29 = e29.plusBy(1); }), e29; } countBlank() { let e29 = R4.create(0); return this.iterator((t) => { (t == null || t.isNull() || t.getValue() === ``) && (e29 = e29.plusBy(1)); }), e29; } getNegative() { return e24.create(`{0}`).minus(this); } getReciprocal() { return e24.create(`{1}`).divided(this); } plus(e29) { return this._batchOperator(e29, da2.PLUS); } minus(e29) { return this._batchOperator(e29, da2.MINUS); } multiply(e29) { return this._batchOperator(e29, da2.MULTIPLY); } divided(e29) { return this._batchOperator(e29, da2.DIVIDED); } mod(e29) { return this._batchOperator(e29, da2.MOD); } modInverse(e29) { return this.map((t) => t.isError() ? t : e29.mod(t)); } compare(e29, t, n) { return this._batchOperator(e29, da2.COMPARE, t, n); } concatenateFront(e29) { return this._batchOperator(e29, da2.CONCATENATE_FRONT); } concatenateBack(e29) { return this._batchOperator(e29, da2.CONCATENATE_BACK); } map(e29) { return this.mapValue((t, n, r) => t == null ? I3.create() : t.isError() ? t : e29(t, n, r)); } mapValue(e29) { let t = this._rowCount, n = this._columnCount, r = []; for (let a = 0; a < t; a++) { let t2 = []; for (let r2 = 0; r2 < n; r2++) { var i; let n2 = (i = this._values) == null ? void 0 : i[a]; if (n2 == null) t2[r2] = j3.create(D3.VALUE); else { let i2 = n2[r2] || this._defaultValue; i2 ? t2[r2] = e29(i2, a, r2) : t2[r2] = I3.create(); } } r.push(t2); } return this._createNewArray(r, t, n); } pow(e29) { return this._batchOperator(e29, da2.POW); } powInverse(e29) { return this.map((t) => t.isError() ? t : e29.pow(t)); } sqrt() { return this.map((e29) => e29.isError() ? e29 : e29.sqrt()); } cbrt() { return this.map((e29) => e29.isError() ? e29 : e29.cbrt()); } cos() { return this.map((e29) => e29.isError() ? e29 : e29.cos()); } cosh() { return this.map((e29) => e29.isError() ? e29 : e29.cosh()); } acos() { return this.map((e29) => e29.isError() ? e29 : e29.acos()); } acosh() { return this.map((e29) => e29.isError() ? e29 : e29.acosh()); } sin() { return this.map((e29) => e29.isError() ? e29 : e29.sin()); } sinh() { return this.map((e29) => e29.isError() ? e29 : e29.sinh()); } asin() { return this.map((e29) => e29.isError() ? e29 : e29.asin()); } asinh() { return this.map((e29) => e29.isError() ? e29 : e29.asinh()); } tan() { return this.map((e29) => e29.isError() ? e29 : e29.tan()); } tanh() { return this.map((e29) => e29.isError() ? e29 : e29.tanh()); } atan() { return this.map((e29) => e29.isError() ? e29 : e29.atan()); } atanh() { return this.map((e29) => e29.isError() ? e29 : e29.atanh()); } atan2(e29) { return this._batchOperator(e29, da2.ATAN2); } atan2Inverse(e29) { return this.map((t) => t.isError() ? t : e29.atan2(t)); } mean(e29 = 0) { let t = this.sum(), n = this.count(); return t.divided(e29 === 0 ? n : n.minusBy(1)); } median() { let e29 = this.flattenPosition().numberArray, t = this._createNewArray([e29], 1, e29.length), n = t.getColumnCount(); if (n <= 1) return t.get(0, 0) || I3.create(); if (t.sortByRow(0), n % 2 == 0) { let e30 = t.get(0, n / 2) || I3.create(), r = t.get(0, n / 2 - 1) || I3.create(); return e30.plus(r).divided(R4.create(2)); } return t.get(0, (n - 1) / 2) || I3.create(); } var(t = 0) { let n = this.mean(), r = [[]]; this.iterator((e29) => { if (e29 == null || e29.isError() || e29.isString() || e29.isBoolean() || e29.isNull()) return; let t2 = e29.minus(n).pow(R4.create(2)); t2.isError() || r[0].push(t2); }); let { _unitId: i, _sheetId: a, _currentRow: o, _currentColumn: s } = this; return e24.create({ calculateValueList: r, rowCount: 1, columnCount: r[0].length, unitId: i, sheetId: a, row: o, column: s }).mean(t); } std(e29 = 0) { let t = this.var(e29); return t.isError() ? t : t.sqrt(); } log() { return this.map((e29) => e29.isError() ? e29 : e29.log()); } log10() { return this.map((e29) => e29.isError() ? e29 : e29.log10()); } exp() { return this.map((e29) => e29.isError() ? e29 : e29.exp()); } abs() { return this.map((e29) => e29.isError() ? e29 : e29.abs()); } round(e29) { return this._batchOperator(e29, da2.ROUND); } roundInverse(e29) { return this.map((t) => t.isError() ? t : e29.round(t)); } floor(e29) { return this._batchOperator(e29, da2.FLOOR); } floorInverse(e29) { return this.map((t) => t.isError() ? t : e29.floor(t)); } ceil(e29) { return this._batchOperator(e29, da2.CEIL); } ceilInverse(e29) { return this.map((t) => t.isError() ? t : e29.ceil(t)); } toValue() { return ha(this._values); } _clearCache() { this._flattenCache = null, this._sliceCache.clear(); } _sort(e29) { let t = bi2(); return (n, r) => { let i = n[e29], a = r[e29]; return i == null ? 1 : a == null ? -1 : i.isError() && i.isError() ? 0 : i.isError() ? 1 : a.isError() ? -1 : t(i.getValue(), a.getValue()); }; } _transposeArray(e29) { let t = e29.length, n = e29[0].length, r = []; for (let i = 0; i < n; i++) { r[i] = []; for (let n2 = 0; n2 < t; n2++) r[i][n2] = e29[n2][i]; } return r; } _batchOperator(e29, t, n, r) { let i = [], a = this._rowCount, o = this._columnCount; if (e29.isArray()) { let s2 = e29.getRowCount(), c2 = e29.getColumnCount(); if (a = Math.max(s2, a), o = Math.max(c2, o), s2 === 1 && c2 === 1) { let t2 = e29.getFirstCell(); for (let e30 = 0; e30 < o; e30++) i.push(t2); } else if (s2 === 1 && this._columnCount > 1) { let t2 = e29.getArrayValue(); for (let e30 = 0; e30 < o; e30++) t2[0] && t2[0][e30] ? i.push(t2[0][e30]) : i.push(I3.create()); } else return this._batchOperatorArray(e29, t, n, r); } else for (let t2 = 0; t2 < o; t2++) i.push(e29); let s = []; for (let e30 = 0; e30 < o; e30++) { let a2 = i[e30]; this._batchOperatorValue(a2, e30, s, t, n, r); } let c = this._createNewArray(s, a, o); return c.setDefaultValue(L3.create(false)), c; } _batchOperatorValue(e29, t, n, r, i, a) { let o = this._rowCount, s = this.getUnitId(), c = this.getSheetId(), l = this.getCurrentRow(), u = this.getCurrentColumn(); if (r === da2.COMPARE) { let { rowsInCache: d, rowsNotInCache: f } = ci2.canUseCache(s, c, t + u, l, l + o - 1); if (d.length > 0) { if (i === k3.EQUALS && !(e29.isString() && xi(e29.getValue()))) { let r2 = ci2.getCellPositions(s, c, t + u, e29.isNull() ? null : e29.getValue(), d); r2 != null && r2.forEach((e30) => { if (e30 < l || e30 > l + o - 1) return; let r3 = e30 - l; n[r3] == null && (n[r3] = []), n[r3][t] = L3.create(true); }); } else { let r2 = ci2.getCellValuePositions(s, c, t + u); r2 != null && r2.forEach((r3, s2) => { let c2 = I3.create(); Ve2.has(s2) ? c2 = j3.create(s2) : typeof s2 == `string` ? c2 = z3.create(s2) : typeof s2 == `number` ? c2 = R4.create(s2) : typeof s2 == `boolean` && (c2 = L3.create(s2)); let u2; u2 = c2.isError() ? c2 : e29.isError() ? e29 : c2.compare(e29, i, a), r3.forEach((e30) => { e30 >= l && e30 <= l + o - 1 && (n[e30 - l] == null && (n[e30 - l] = []), n[e30 - l][t] = u2); }); }); } if (f.length > 0) for (let o2 of f) { let [d2, f2] = o2; for (let o3 = d2; o3 <= f2; o3++) this.__batchOperatorRowValue(e29, t, n, r, o3 - l, s, c, l, u, i, a); ci2.setContinueBuildingCache(s, c, t + u, d2, f2); } return; } } for (let d = 0; d < o; d++) this.__batchOperatorRowValue(e29, t, n, r, d, s, c, l, u, i, a); ci2.setContinueBuildingCache(s, c, t + u, l, l + o - 1); } __batchOperatorRowValue(e29, t, n, r, i, a, o, s, c, l, u) { let d = this.getValueOrDefault(i, t); if (n[i] == null && (n[i] = []), d && e29) if (d.isError()) n[i][t] = d; else if (e29.isError()) n[i][t] = e29; else switch (r) { case da2.PLUS: n[i][t] = d.plus(e29); break; case da2.MINUS: n[i][t] = d.minus(e29); break; case da2.MULTIPLY: n[i][t] = d.multiply(e29); break; case da2.DIVIDED: n[i][t] = d.divided(e29); break; case da2.MOD: n[i][t] = d.mod(e29); break; case da2.COMPARE: l ? n[i][t] = d.compare(e29, l, u) : n[i][t] = j3.create(D3.VALUE); break; case da2.CONCATENATE_FRONT: n[i][t] = d.concatenateFront(e29); break; case da2.CONCATENATE_BACK: n[i][t] = d.concatenateBack(e29); break; case da2.POW: n[i][t] = d.pow(e29); break; case da2.ROUND: n[i][t] = d.round(e29); break; case da2.FLOOR: n[i][t] = d.floor(e29); break; case da2.ATAN2: n[i][t] = d.atan2(e29); break; case da2.CEIL: n[i][t] = d.ceil(e29); break; } else n[i][t] = j3.create(D3.NA); !d || d != null && d.isNull() ? ci2.set(a, o, t + c, si2, i + s) : ci2.set(a, o, t + c, d.getValue(), i + s); } _batchOperatorArray(e29, t, n, r) { let i = e29.getRowCount(), a = e29.getColumnCount(); i < this._rowCount && (i = this._rowCount), a < this._columnCount && (a = this._columnCount); let o = [], s = this._checkArrayCalculateType(this), c = this._checkArrayCalculateType(e29); for (let l = 0; l < i; l++) { let i2 = []; for (let o2 = 0; o2 < a; o2++) { let a2; a2 = s === fa2.SINGLE ? this.getValueOrDefault(0, 0) : s === fa2.ROW ? this.getValueOrDefault(0, o2) : s === fa2.COLUMN ? this.getValueOrDefault(l, 0) : this.getValueOrDefault(l, o2); let u; if (u = c === fa2.SINGLE ? e29.getValueOrDefault(0, 0) : c === fa2.ROW ? e29.getValueOrDefault(0, o2) : c === fa2.COLUMN ? e29.getValueOrDefault(l, 0) : e29.getValueOrDefault(l, o2), a2 && u) if (a2.isError()) i2[o2] = a2; else if (u.isError()) i2[o2] = u; else switch (t) { case da2.PLUS: i2[o2] = a2.plus(u); break; case da2.MINUS: i2[o2] = a2.minus(u); break; case da2.MULTIPLY: i2[o2] = a2.multiply(u); break; case da2.DIVIDED: i2[o2] = a2.divided(u); break; case da2.MOD: i2[o2] = a2.mod(u); break; case da2.COMPARE: n ? i2[o2] = a2.compare(u, n, r) : i2[o2] = j3.create(D3.VALUE); break; case da2.CONCATENATE_FRONT: i2[o2] = a2.concatenateFront(u); break; case da2.CONCATENATE_BACK: i2[o2] = a2.concatenateBack(u); break; case da2.POW: i2[o2] = a2.pow(u); break; case da2.ROUND: i2[o2] = a2.round(u); break; case da2.ATAN2: i2[o2] = a2.atan2(u); break; case da2.FLOOR: i2[o2] = a2.floor(u); break; case da2.CEIL: i2[o2] = a2.ceil(u); break; } else i2[o2] = j3.create(D3.NA); } o.push(i2); } return this._createNewArray(o, i, a); } _checkArrayCalculateType(e29) { return e29.getRowCount() === 1 && e29.getColumnCount() === 1 ? fa2.SINGLE : e29.getRowCount() === 1 ? fa2.ROW : e29.getColumnCount() === 1 ? fa2.COLUMN : fa2.PRODUCT; } _formatValue(e29) { if (typeof e29 != `string`) return e29 = e29, this._rowCount = e29.rowCount, this._columnCount = e29.columnCount, this._unitId = e29.unitId, this._sheetId = e29.sheetId, this._currentRow = e29.row, this._currentColumn = e29.column, e29.calculateValueList; e29 = e29.slice(1, -1); let t = e29.split(`;`), n = t.length, r = [], i = 0; for (let e30 = 0; e30 < n; e30++) { let n2 = t[e30].split(`,`), a = n2.length; i < a && (i = a); let o = []; for (let e31 = 0; e31 < a; e31++) { let t2 = n2[e31].trim(); o.push(ga2.create(t2)); } r.push(o); } return this._rowCount = n, this._columnCount = i, r; } _createNewArray(t, n, r, i = -1, a = -1) { (this._currentColumn === -1 || this._currentRow === -1) && (i = -1, a = -1); let o = { calculateValueList: t, rowCount: n, columnCount: r, unitId: this.getUnitId(), sheetId: this.getSheetId(), row: i, column: a }; return e24.create(o); } }; var ga2 = class { static create(e29, t = false) { if (e29 == null) return I3.create(); if (typeof e29 == `boolean`) return L3.create(e29); if (typeof e29 == `string`) { let n = e29.toLocaleUpperCase().trim(); if (Ve2.has(n)) return j3.create(n); if (n === Ne.TRUE || n === Ne.FALSE) return ca2(e29); if (Ja(e29) && Number(e29).toString() === e29.trim()) return R4.create(Number(e29)); if (!t) { let { isNumberPattern: t2, value: n2, pattern: r2 } = Li(e29); if (t2) return R4.create(n2, r2); } let r = e29.replace(/\n/g, ``).replace(/\r/g, ``); return !_a2(r) && En(r) ? B3.create(r) : la2(e29); } return typeof e29 == `number` ? ua2(e29) : j3.create(D3.VALUE); } }; function _a2(e29) { let t = e29.trim(); return t.startsWith(`"`) && t.endsWith(`"`); } var va2 = new Be2(1e4); var ya2 = class extends Ue2 { constructor(e29) { super(), this._token = e29, E3(this, `_forcedSheetId`, ``), E3(this, `_forcedSheetName`, ``), E3(this, `_defaultSheetId`, ``), E3(this, `_rangeData`, { startColumn: -1, startRow: -1, endRow: -1, endColumn: -1 }), E3(this, `_unitData`, {}), E3(this, `_unitStylesData`, {}), E3(this, `_filteredOutRows`, []), E3(this, `_defaultUnitId`, ``), E3(this, `_forcedUnitId`, ``), E3(this, `_runtimeData`, {}), E3(this, `_arrayFormulaCellData`, {}), E3(this, `_arrayFormulaRange`, {}), E3(this, `_runtimeArrayFormulaCellData`, {}), E3(this, `_runtimeArrayFormulaRange`, {}), E3(this, `_runtimeFeatureCellData`, {}), E3(this, `_refOffsetX`, 0), E3(this, `_refOffsetY`, 0), E3(this, `_currentRow`, void 0), E3(this, `_currentColumn`, void 0); } dispose() { this._unitData = {}, this._unitStylesData = {}, this._runtimeData = {}; } getToken() { return this._token; } setToken(e29) { this._token = e29; } isExceedRange() { let { startRow: e29, endRow: t, startColumn: n, endColumn: r } = this.getRangePosition(); return e29 < 0 || n < 0 || t >= this.getActiveSheetRowCount() || r >= this.getActiveSheetColumnCount(); } setRefOffset(e29 = 0, t = 0) { this._refOffsetX = e29, this._refOffsetY = t; } getRefOffset() { return { x: this._refOffsetX, y: this._refOffsetY }; } getRangePosition() { let { x: e29, y: t } = this.getRefOffset(), n = Do(this.getRangeData(), e29, t); return Number.isNaN(n.startRow) && (n.startRow = 0), Number.isNaN(n.startColumn) && (n.startColumn = 0), Number.isNaN(n.endRow) && (n.endRow = this.getActiveSheetRowCount() - 1), Number.isNaN(n.endColumn) && (n.endColumn = this.getActiveSheetColumnCount() - 1), n; } isReferenceObject() { return true; } iterator(e29) { let { startRow: t, endRow: n, startColumn: r, endColumn: i } = this.getRangePosition(); if (this._checkIfWorksheetMiss()) return e29(j3.create(D3.VALUE), t, r); let a = this._forcedUnitId || this._defaultUnitId, o = this._forcedSheetId || this._defaultSheetId; for (let s = t; s <= n; s++) for (let n2 = r; n2 <= i; n2++) { if (s < 0 || n2 < 0) return e29(j3.create(D3.REF), s, n2); let i2 = this.getCellData(s, n2), c = false; if (mi(i2)) { c = e29(null, s, n2); continue; } let l = this.getCellValueObject(i2); if (s === t && n2 === r) { let e30 = this.getCellPattern(a, o, s, n2); if (e30 && l.isNumber()) { let t2 = Number(l.getValue()); l = R4.create(t2, e30); } } if (c = e29(l, s, n2), c === false) return; } } getFirstCell() { if (this._checkIfWorksheetMiss()) return j3.create(D3.VALUE); let { startRow: e29, startColumn: t } = this.getRangePosition(), n = this.getCellData(e29, t); if (!n) return R4.create(0); let r = this.getCellValueObject(n), i = this._forcedUnitId || this._defaultUnitId, a = this._forcedSheetId || this._defaultSheetId, o = this.getCellPattern(i, a, e29, t); if (o && r.isNumber()) { let e30 = Number(r.getValue()); r = R4.create(e30, o); } return r; } getRangeData() { return this._rangeData; } setRangeData(e29) { this._rangeData = e29; } getUnitId() { return this._forcedUnitId && this._forcedUnitId.length > 0 ? this._forcedUnitId : this._defaultUnitId; } getSheetId() { return this._forcedSheetId && this._forcedSheetId.length > 0 ? this._forcedSheetId : this._defaultSheetId; } setForcedUnitIdDirect(e29) { e29.length > 0 && (this._forcedUnitId = e29); } getForcedUnitId() { return this._forcedUnitId; } setForcedSheetId(e29) { var t; this._forcedSheetId = (t = e29[this.getUnitId()]) == null ? void 0 : t[this._forcedSheetName]; } setForcedSheetIdDirect(e29) { this._forcedSheetId = e29; } getForcedSheetId() { return this._forcedSheetId; } setForcedSheetName(e29) { e29.length > 0 && (this._forcedSheetName = e29); } getForcedSheetName() { return this._forcedSheetName; } setDefaultSheetId(e29) { this._defaultSheetId = e29; } getDefaultSheetId() { return this._defaultSheetId; } setDefaultUnitId(e29) { this._defaultUnitId = e29; } getDefaultUnitId() { return this._defaultUnitId; } getUnitData() { return this._unitData; } setUnitData(e29) { this._unitData = e29; } getUnitStylesData() { return this._unitStylesData; } setUnitStylesData(e29) { this._unitStylesData = e29; } getFilteredOutRows() { return this._filteredOutRows; } setFilteredOutRows(e29) { this._filteredOutRows = e29; } getRuntimeData() { return this._runtimeData; } setRuntimeData(e29) { this._runtimeData = e29; } getArrayFormulaCellData() { return this._arrayFormulaCellData; } setArrayFormulaCellData(e29) { this._arrayFormulaCellData = e29; } getArrayFormulaRange() { return this._arrayFormulaRange; } setArrayFormulaRange(e29) { this._arrayFormulaRange = e29; } getRuntimeArrayFormulaCellData() { return this._runtimeArrayFormulaCellData; } setRuntimeArrayFormulaCellData(e29) { this._runtimeArrayFormulaCellData = e29; } getRuntimeArrayFormulaRange() { return this._runtimeArrayFormulaRange; } setRuntimeArrayFormulaRange(e29) { this._runtimeArrayFormulaRange = e29; } getRuntimeFeatureCellData() { return this._runtimeFeatureCellData; } setRuntimeFeatureCellData(e29) { this._runtimeFeatureCellData = e29; } getActiveSheetRowCount() { var e29; return ((e29 = this.getCurrentActiveSheetData()) == null ? void 0 : e29.rowCount) || 0; } getActiveSheetColumnCount() { var e29; return ((e29 = this.getCurrentActiveSheetData()) == null ? void 0 : e29.columnCount) || 0; } getRowCount() { let e29 = this.getRangeData(); return e29.endRow - e29.startRow + 1; } getColumnCount() { let e29 = this.getRangeData(); return e29.endColumn - e29.startColumn + 1; } getRowData() { var e29; return ((e29 = this.getCurrentActiveSheetData()) == null ? void 0 : e29.rowData) || {}; } getColumnData() { var e29; return ((e29 = this.getCurrentActiveSheetData()) == null ? void 0 : e29.columnData) || {}; } isCell() { return false; } isColumn() { return false; } isRow() { return false; } isRange() { return false; } isTable() { return false; } isCurrentRowForRange() { return false; } isCurrentColumnForRange() { return false; } isMultiArea() { return false; } unionBy(e29) { return j3.create(D3.REF); } unionRange(e29, t) { return { startRow: -1, startColumn: -1, endRow: -1, endColumn: -1 }; } getCellValueObject(e29) { let t = hi(e29); if (Ve2.has(t)) return j3.create(t); if (e29.t === tr.NUMBER) { let n = this._getPatternByCell(e29); return aa(n) ? z3.create(t.toString()) : ua2(t, n); } return e29.t === tr.STRING || e29.t === tr.FORCE_STRING ? z3.create(t.toString()) : e29.t === tr.BOOLEAN ? ca2(t) : ga2.create(t); } _getPatternByCell(e29) { var t; let n = this._unitStylesData[this.getUnitId()]; if (!n) return ``; let r = n.getStyleByCell(e29); return (r == null || (t = r.n) == null ? void 0 : t.pattern) || ``; } getCellByRow(e29) { return this.getCellByPosition(e29); } getCellByColumn(e29) { return this.getCellByPosition(void 0, e29); } getCurrentActiveSheetData() { var e29; return (e29 = this._unitData[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCurrentStylesData() { return this._unitStylesData[this.getUnitId()]; } getCurrentRuntimeSheetData() { var e29; return (e29 = this._runtimeData) == null || (e29 = e29[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCurrentActiveArrayFormulaCellData() { var e29; return (e29 = this._arrayFormulaCellData) == null || (e29 = e29[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCurrentRuntimeActiveArrayFormulaCellData() { var e29; return (e29 = this._runtimeArrayFormulaCellData) == null || (e29 = e29[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCurrentActiveArrayFormulaRange() { var e29; return (e29 = this._arrayFormulaRange) == null || (e29 = e29[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCurrentRuntimeActiveArrayFormulaRange() { var e29; return (e29 = this._runtimeArrayFormulaRange) == null || (e29 = e29[this.getUnitId()]) == null ? void 0 : e29[this.getSheetId()]; } getCellData(e29, t) { let n = this.getCurrentActiveSheetData(), r = this.getCurrentRuntimeSheetData(), i = this.getCurrentActiveArrayFormulaCellData(), a = this.getCurrentRuntimeActiveArrayFormulaCellData(), o = new Sa(this.getCurrentActiveArrayFormulaRange()), s = new Sa(this.getCurrentRuntimeActiveArrayFormulaRange()), c = (r == null ? void 0 : r.getValue(e29, t)) || (a == null ? void 0 : a.getValue(e29, t)) || this.getRuntimeFeatureCellValue(e29, t); if (c) return c; if (c = i == null ? void 0 : i.getValue(e29, t), c) { let n2 = false; return o.forValue((r2, i2, a2) => { if (e29 >= a2.startRow && e29 <= a2.endRow && t >= a2.startColumn && t <= a2.endColumn && s.getValue(r2, i2)) return n2 = true, false; }), n2 ? null : c; } return n == null ? void 0 : n.cellData.getValue(e29, t); } getRuntimeFeatureCellValue(e29, t) { return _i2(e29, t, this.getSheetId(), this.getUnitId(), this._runtimeFeatureCellData); } getCellByPosition(e29, t) { let n = e29, r = t, i = this.getRangeData(); n || (n = i.startRow), r || (r = i.startColumn); let a = this.getCellData(n, r); return a ? this.getCellValueObject(a) : j3.create(D3.VALUE); } setCurrentRowAndColumn(e29, t) { this._currentRow = e29, this._currentColumn = t; } getCurrentRow() { return this._currentRow; } getCurrentColumn() { return this._currentColumn; } getCellPattern(e29, t, n, r) { var i, a; let o = this._unitStylesData[e29]; if (!o) return ``; let s = (i = this._unitData[e29]) == null || (i = i[t]) == null || (i = i.cellData) == null ? void 0 : i.getValue(n, r); if (!s) return ``; let c = o.getStyleByCell(s); return (c == null || (a = c.n) == null ? void 0 : a.pattern) || ``; } toArrayValueObject(e29 = true) { var t; let { startRow: n, endRow: r, startColumn: i, endColumn: a } = this.getRangePosition(), o = `${this.getUnitId()}_${this.getSheetId()}_${n}_${r}_${i}_${a}`, s = va2.get(o); if (s && e29) return s; let c = r - n + 1, l = a - i + 1; if (c < 0 || l < 0) return this._getBlankArrayValueObject(); let u = Array(c); this.iterator((e30, t2, r2) => { let a2 = t2 - n, o2 = r2 - i; u[a2] || (u[a2] = Array(l)), e30 == null && (e30 = I3.create()), u[a2][o2] = e30; }); let d = { calculateValueList: u, rowCount: u.length, columnCount: ((t = u[0]) == null ? void 0 : t.length) || 0, unitId: this.getUnitId(), sheetId: this.getSheetId(), row: n, column: i }, f = B3.create(d); return e29 && va2.set(o, f), f; } toUnitRange() { return { range: this.getRangePosition(), sheetId: this.getSheetId(), unitId: this.getUnitId() }; } _checkIfWorksheetMiss() { return (this._forcedSheetId == null || this._forcedSheetId.length === 0) && this._forcedSheetName.length > 0; } _getBlankArrayValueObject() { let e29 = { calculateValueList: [], rowCount: 0, columnCount: 0, unitId: this.getUnitId(), sheetId: this.getSheetId(), row: 0, column: 0 }; return B3.create(e29); } }; var ba2 = class extends Ue2 { constructor(e29) { super(), this._promise = e29; } isAsyncObject() { return true; } async getValue() { return this._promise; } }; var xa2 = class extends Ue2 { constructor(e29) { super(), this._promiseList = e29; } isAsyncArrayObject() { return true; } async getValue() { var e29; let t = []; for (let e30 = 0; e30 < this._promiseList.length; e30++) { let n2 = this._promiseList[e30]; t[e30] == null && (t[e30] = []); for (let r = 0; r < n2.length; r++) { let i = n2[r]; i.isAsyncObject() ? t[e30][r] = await i.getValue() : t[e30][r] = i; } } let n = { calculateValueList: t, rowCount: t.length, columnCount: ((e29 = t[0]) == null ? void 0 : e29.length) || 0, unitId: ``, sheetId: ``, row: 0, column: 0 }; return B3.create(n); } }; var Sa2 = class extends ya2 { constructor(e29, t, n) { super(``), this.setRangeData(e29), t && this.setForcedSheetIdDirect(t), n && this.setForcedUnitIdDirect(n); } isRange() { return true; } }; var Ca = class extends ya2 { constructor(e29) { super(e29); let t = Jr2(e29); this.setForcedUnitIdDirect(t.unitId), this.setForcedSheetName(t.sheetName), this.setRangeData(t.range); } isCell() { return true; } unionBy(e29) { if (!e29.isCell()) return j3.create(D3.REF); let t = e29, n = this.unionRange(this.getRangeData(), t.getRangeData()); return this._createRange(n); } unionRange(e29, t) { let n = e29.startRow, r = e29.startColumn, i = t.startRow, a = t.startColumn, o = { startRow: -1, startColumn: -1, endRow: -1, endColumn: -1 }; return n > i ? (o.startRow = i, o.endRow = n) : (o.startRow = n, o.endRow = i), r > a ? (o.startColumn = a, o.endColumn = r) : (o.startColumn = r, o.endColumn = a), e29.startAbsoluteRefType && (o.startAbsoluteRefType = e29.startAbsoluteRefType), t.startAbsoluteRefType && (o.endAbsoluteRefType = t.startAbsoluteRefType), o; } _createRange(e29) { let t = new Sa2(e29, this.getForcedSheetId(), this.getForcedUnitId()); t.setUnitData(this.getUnitData()), t.setDefaultSheetId(this.getDefaultSheetId()), t.setDefaultUnitId(this.getDefaultUnitId()), t.setRuntimeData(this.getRuntimeData()), t.setUnitStylesData(this.getUnitStylesData()), t.setArrayFormulaCellData(this.getArrayFormulaCellData()), t.setRuntimeArrayFormulaCellData(this.getRuntimeArrayFormulaCellData()), t.setRuntimeFeatureCellData(this.getRuntimeFeatureCellData()); let { x: n, y: r } = this.getRefOffset(); t.setRefOffset(n, r); let i = this.getForcedSheetId(); t.setForcedSheetName(this.getForcedSheetName()), i != null && t.setForcedSheetIdDirect(i); let a = this.getForcedUnitId(); return a && t.setForcedUnitIdDirect(a), t; } }; var wa = class extends ya2 { constructor(e29) { super(e29); let t = Jr2(e29); this.setForcedUnitIdDirect(t.unitId), this.setForcedSheetName(t.sheetName); let n = { ...t.range, startColumn: t.range.startColumn, startRow: NaN, endColumn: t.range.endColumn, endRow: NaN, rangeType: B.COLUMN }; this.setRangeData(n); } isColumn() { return true; } unionBy(e29) { if (!e29.isColumn()) return j3.create(D3.REF); let t = e29; if (t.getForcedSheetName() !== void 0 && t.getForcedSheetName() !== ``) return j3.create(D3.REF); let n = this.getRangeData(), r = t.getRangeData(), i = r.startColumn; if (i >= n.startColumn && i <= n.endColumn) return this; let a = n.startColumn; return i > a ? n.endColumn = i : (n.startColumn = i, n.endColumn = a), r.startAbsoluteRefType && (n.endAbsoluteRefType = r.startAbsoluteRefType), n.rangeType = B.COLUMN, this.setToken(`${this.getToken()}${A3.COLON}${t.getToken()}`), this; } }; var Ta = class extends ya2 { constructor(e29) { super(e29); let t = Jr2(e29); this.setForcedUnitIdDirect(t.unitId), this.setForcedSheetName(t.sheetName); let n = { ...t.range, startColumn: NaN, startRow: t.range.startRow, endColumn: NaN, endRow: t.range.endRow, rangeType: B.ROW }; this.setRangeData(n); } isRow() { return true; } unionBy(e29) { if (!e29.isRow()) return j3.create(D3.REF); let t = e29; if (t.getForcedSheetName() !== void 0 && t.getForcedSheetName() !== ``) return j3.create(D3.REF); let n = this.getRangeData(), r = t.getRangeData(), i = r.startRow; if (i >= n.startRow && i <= n.endRow) return this; let a = n.startRow; return i > a ? n.endRow = i : (n.startRow = i, n.endRow = a), r.startAbsoluteRefType && (n.endAbsoluteRefType = r.startAbsoluteRefType), n.rangeType = B.ROW, this.setToken(`${this.getToken()}${A3.COLON}${t.getToken()}`), this; } }; function V3(e29, t, n, r) { let i = n.isArray() ? n.getRowCount() : 1, a = n.isArray() ? n.getColumnCount() : 1, o = []; for (let s = 0; s < e29; s++) { let e30 = []; for (let o2 = 0; o2 < t; o2++) { if (i === 1 && a === 1) { let t3 = n.isArray() ? n.get(0, 0) : n; e30.push(t3); continue; } if (i === 1 && o2 < a) { let t3 = n.get(0, o2); e30.push(t3); continue; } if (a === 1 && s < i) { let t3 = n.get(s, 0); e30.push(t3); continue; } if (s >= i || o2 >= a) { e30.push(r == null ? I3.create() : r); continue; } let t2 = n.get(s, o2); e30.push(t2); } o.push(e30); } return Ea2(o, e29, t); } function Ea2(e29, t, n, r = ``, i = ``) { let a = { calculateValueList: e29, rowCount: t, columnCount: n, unitId: r, sheetId: i, row: -1, column: -1 }; return B3.create(a); } function Da2(e29) { let t = [k3.EQUALS, k3.NOT_EQUAL, k3.GREATER_THAN_OR_EQUAL, k3.GREATER_THAN, k3.LESS_THAN_OR_EQUAL, k3.LESS_THAN]; for (let n of t) if (e29.startsWith(n)) { let t2 = e29.substring(n.length); return [n, ga2.create(t2)]; } return [k3.EQUALS, ga2.create(e29)]; } function Oa(e29, t, n, r) { if (!n) if (t.isString()) { let [e30, r2] = Da2(`${t.getValue()}`); n = e30, t = r2; } else n = k3.EQUALS; return e29.compare(t, n, r); } function ka2(e29, t) { let n = e29.getRowCount(), r = e29.getColumnCount(), i = t.getRowCount(), a = t.getColumnCount(), o = e29, s = t; if (n !== i || r !== a) { let c = Math.max(n, i), l = Math.max(r, a); o = V3(c, l, e29), s = V3(c, l, t); } return o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2); return e30 != null && e30.isError() ? e30 : r2 != null && r2.isError() ? r2 : e30 != null && e30.isBoolean() && r2 != null && r2.isBoolean() ? ca2(e30.getValue() && r2.getValue()) : L3.create(false); }); } function Aa2(e29) { let t = e29.getValue(), n = 0; return t && (n = 1), R4.create(n); } function ja(e29) { return e29.isArray() && e29.getRowCount() === 1 && e29.getColumnCount() === 1 ? true : e29.isReferenceObject() ? !!(e29.isCell() || e29.getRowCount() === 1 && e29.getColumnCount() === 1) : (e29 = e29, !!(e29.isString() || e29.isNumber() || e29.isBoolean() || e29.isError() || e29.isNull())); } function Ma(e29) { let t = e29 == null ? void 0 : e29.getPattern(), n = {}, r = {}; if (t && (n = { s: { n: { pattern: t } } }), e29 != null && e29.getCustomData() && (r = { custom: e29.getCustomData() }), e29 == null) return { v: null, ...n }; if (e29.isError()) return { v: e29.getErrorType(), t: tr.STRING, ...n, ...r }; if (e29.isValueObject()) { let t2 = e29, a = t2.getValue(); return t2.isNumber() ? { v: a, t: tr.NUMBER, ...n, ...r } : t2.isBoolean() ? { v: a ? 1 : 0, t: tr.BOOLEAN, ...n, ...r } : t2.isString() ? { v: a, t: tr.STRING, ...n, ...r } : t2.isNull() ? { v: null, ...n, ...r } : { v: a, t: tr.STRING, ...n, ...r }; } } function Na(e29) { let t = 0, n = 0; return e29.forEach((e30, r) => { if (r % 2 == 1) if (e30.isArray()) { let r2 = e30; t = Math.max(t, r2.getRowCount()), n = Math.max(n, r2.getColumnCount()); } else t = Math.max(t, 1), n = Math.max(n, 1); }), { maxRowLength: t, maxColumnLength: n }; } function Pa(e29, t) { if (e29.length === 0 || e29.length % 2 != 0) return { isError: true, errorObject: j3.create(D3.VALUE), rangeIsDifferentSize: false, criteriaMaxRowLength: 0, criteriaMaxColumnLength: 0, targetRange: null, variants: [] }; let n = null, r = -1, i = -1; if (t) { if (!t.isReferenceObject()) return { isError: true, errorObject: j3.create(D3.VALUE), rangeIsDifferentSize: false, criteriaMaxRowLength: 0, criteriaMaxColumnLength: 0, targetRange: null, variants: [] }; n = t.toArrayValueObject(), r = n.getRowCount(), i = n.getColumnCount(); } let a = 0, o = 0, s = false, c = []; for (let t2 = 0; t2 < e29.length; t2++) if (t2 % 2 == 1) { let n2 = e29[t2 - 1], l = e29[t2]; if (!n2.isReferenceObject()) return { isError: true, errorObject: j3.create(D3.VALUE), rangeIsDifferentSize: false, criteriaMaxRowLength: 0, criteriaMaxColumnLength: 0, targetRange: null, variants: [] }; let u = n2.toArrayValueObject(), d = u.getRowCount(), f = u.getColumnCount(); t2 === 1 && r === -1 && i === -1 ? (r = d, i = f) : !s && (r !== d || i !== f) && (s = true); let p = l; l.isReferenceObject() && (p = l.toArrayValueObject()), a = Math.max(a, p.isArray() ? p.getRowCount() : 1), o = Math.max(o, p.isArray() ? p.getColumnCount() : 1), c.push(u), c.push(p); } return { isError: false, errorObject: null, rangeIsDifferentSize: s, criteriaMaxRowLength: a, criteriaMaxColumnLength: o, targetRange: n, variants: c }; } function Fa2(e29) { return e29.isArray() ? e29 : B3.createByArray([[e29.getValue()]]); } function Ia2(e29, t) { let { formulaName: n, maxRowLength: r, maxColumnLength: i, isNumberSensitive: a = false, targetRange: o } = t, s = []; for (let t2 = 0; t2 < e29.length; t2++) { if (t2 % 2 == 1) continue; let n2 = e29[t2], a2 = e29[t2 + 1], o2 = V3(r, i, a2, j3.create(D3.NA)); s.push({ range: n2, criteriaArray: o2 }); } if (s.length === 0) return []; let c = []; return s[0].criteriaArray.iterator((e30, t2, r2) => { let i2; for (let e31 = 0; e31 < s.length; e31++) { let { range: n2, criteriaArray: o2 } = s[e31], c2 = o2.get(t2, r2); if (!c2) continue; let l2 = Oa(n2, c2); if (a && (l2 = La(l2, n2, c2)), i2 === void 0) { i2 = l2; continue; } i2 = ka2(i2, l2); } let l; if (n === `COUNTIFS`) { let e31 = 0; i2.iterator((t3) => { t3 != null && t3.isBoolean() && t3.getValue() === true && e31++; }), l = R4.create(e31); } else if (n === `SUMIFS`) l = o.pick(i2).sum(); else if (n === `AVERAGEIFS`) { let e31 = o.pick(i2), t3 = e31.sum(), n2 = e31.count(); l = t3.divided(n2); } else if (n === `MAXIFS`) { let e31 = o.pick(i2); l = e31.getColumnCount() === 0 ? B3.create(`0`) : e31.max(); } else if (n === `MINIFS`) { let e31 = o.pick(i2); l = e31.getColumnCount() === 0 ? B3.create(`0`) : e31.min(); } c[t2] || (c[t2] = []), c[t2][r2] = l; }), c; } function La(e29, t, n) { let [r, i] = Da2(`${n.getValue()}`); return e29.mapValue((e30, n2, a) => { let o = t.get(n2, a); if (o && Ra(o, i)) return e30; if (o != null && o.isError() && i.isError() && o.getValue() === i.getValue()) return L3.create(true); if (r === k3.EQUALS || r === k3.NOT_EQUAL) { if (o != null && o.isNumber() && i.isString()) { let e31 = i.convertToNumberObjectValue(); if (e31.isNumber()) return o.compare(e31, r); } if (i.isNumber() && o != null && o.isString()) { let e31 = o.convertToNumberObjectValue(); if (e31.isNumber()) return e31.compare(i, r); } if (r === k3.EQUALS) return L3.create(false); if (r === k3.NOT_EQUAL) return L3.create(true); } return L3.create(false); }); } function Ra(e29, t) { if (e29.isNumber() && t.isNumber() || e29.isBoolean() && t.isBoolean()) return true; let n = e29.isString() && e29.getValue() === ``, r = t.isString() && t.getValue() === ``; return !!((n || e29.isNull()) && (r || t.isNull()) || e29.isString() && !n && t.isString() && !r); } var za2 = (function(e29) { return e29[e29.CELL = 0] = `CELL`, e29[e29.COLUMN = 1] = `COLUMN`, e29[e29.ROW = 2] = `ROW`, e29; })({}); function Ba2(e29, t) { let n; switch (t) { case za2.COLUMN: n = new wa(e29); break; case za2.ROW: n = new Ta(e29); break; case za2.CELL: default: n = new Ca(e29); break; } return n; } function Va(e29, t) { let n; return n = e29.isCell() && t.isCell() || e29.isRow() && t.isRow() || e29.isColumn() && t.isColumn() ? e29.unionBy(t) : j3.create(D3.NAME), n; } var Ha2 = class extends E { constructor(e29) { super(), this._univerInstanceService = e29; } generateCellValue(e29, t) { if (t.trim() === ``) return { v: `` }; let n = e29; if (e29.startsWith(`#`) && Dn2(e29.slice(1))) { let { unitId: t2, sheetName: r, range: i } = Zn2(e29.slice(1)), a = this._univerInstanceService.getCurrentUnitOfType(O.UNIVER_SHEET); if (t2 === `` || t2 === a.getUnitId()) if (r === ``) n = `#gid=${a.getActiveSheet().getSheetId()}&range=${Gn2(i)}`; else { let e30 = a.getSheetBySheetName(r); e30 && (n = `#gid=${e30.getSheetId()}&range=${Gn2(i)}`); } } else D.isLegalUrl(e29) && (n = D.normalizeUrl(e29)); return { p: il.create().insertLink(t, n).getData() }; } }; Ha2 = dr2([P5(0, Mu)], Ha2); var Ua = createIdentifier(`univer.formula.hyperlink-engine-formula.service`); var Wa = (function(e29) { return e29[e29.IDLE = 0] = `IDLE`, e29[e29.START = 1] = `START`, e29[e29.START_DEPENDENCY = 2] = `START_DEPENDENCY`, e29[e29.START_CALCULATION = 3] = `START_CALCULATION`, e29[e29.CURRENTLY_CALCULATING = 4] = `CURRENTLY_CALCULATING`, e29[e29.START_DEPENDENCY_ARRAY_FORMULA = 5] = `START_DEPENDENCY_ARRAY_FORMULA`, e29[e29.START_CALCULATION_ARRAY_FORMULA = 6] = `START_CALCULATION_ARRAY_FORMULA`, e29[e29.CURRENTLY_CALCULATING_ARRAY_FORMULA = 7] = `CURRENTLY_CALCULATING_ARRAY_FORMULA`, e29[e29.CALCULATION_COMPLETED = 8] = `CALCULATION_COMPLETED`, e29; })({}); var Ga = (function(e29) { return e29[e29.INITIAL = 0] = `INITIAL`, e29[e29.STOP_EXECUTION = 1] = `STOP_EXECUTION`, e29[e29.NOT_EXECUTED = 2] = `NOT_EXECUTED`, e29[e29.SUCCESS = 3] = `SUCCESS`, e29; })({}); var Ka2 = class extends E { constructor(e29, t) { super(), this._currentConfigService = e29, this._hyperlinkEngineFormulaService = t, E3(this, `_formulaExecuteStage`, Wa.IDLE), E3(this, `_stopState`, false), E3(this, `_currentRow`, -1), E3(this, `_currentColumn`, -1), E3(this, `_currentRowCount`, -1 / 0), E3(this, `_currentColumnCount`, -1 / 0), E3(this, `_currentSubUnitId`, ``), E3(this, `_currentUnitId`, ``), E3(this, `_runtimeData`, {}), E3(this, `_runtimeOtherData`, {}), E3(this, `_unitArrayFormulaRange`, {}), E3(this, `_unitArrayFormulaEmbeddedMap`, {}), E3(this, `_runtimeArrayFormulaCellData`, {}), E3(this, `_runtimeClearArrayFormulaCellData`, {}), E3(this, `_runtimeFeatureRange`, {}), E3(this, `_runtimeFeatureCellData`, {}), E3(this, `_runtimeImageFormulaData`, []), E3(this, `_functionsExecutedState`, Ga.INITIAL), E3(this, `_functionDefinitionPrivacyVar`, /* @__PURE__ */ new Map()), E3(this, `_totalFormulasToCalculate`, 0), E3(this, `_completedFormulasCount`, 0), E3(this, `_totalArrayFormulasToCalculate`, 0), E3(this, `_completedArrayFormulasCount`, 0), E3(this, `_formulaCycleIndex`, 0), E3(this, `_isCycleDependency`, false), E3(this, `_dependencyTreeModelData`, []); } get currentRow() { return this._currentRow; } get currentColumn() { return this._currentColumn; } get currentRowCount() { return this._currentRowCount; } get currentColumnCount() { return this._currentColumnCount; } get currentSubUnitId() { return this._currentSubUnitId; } get currentUnitId() { return this._currentUnitId; } dispose() { super.dispose(), this.reset(), this._runtimeFeatureCellData = {}, this._runtimeFeatureRange = {}, this.clearReferenceAndNumberformatCache(); } enableCycleDependency() { this._isCycleDependency = true; } disableCycleDependency() { this._isCycleDependency = false; } isCycleDependency() { return this._isCycleDependency; } setFormulaCycleIndex(e29) { this._formulaCycleIndex = e29; } getFormulaCycleIndex() { return this._formulaCycleIndex; } setTotalArrayFormulasToCalculate(e29) { this._totalArrayFormulasToCalculate = e29; } getTotalArrayFormulasToCalculate() { return this._totalArrayFormulasToCalculate; } setCompletedArrayFormulasCount(e29) { this._completedArrayFormulasCount = e29; } getCompletedArrayFormulasCount() { return this._completedArrayFormulasCount; } setTotalFormulasToCalculate(e29) { this._totalFormulasToCalculate = e29; } getTotalFormulasToCalculate() { return this._totalFormulasToCalculate; } setCompletedFormulasCount(e29) { this._completedFormulasCount = e29; } getCompletedFormulasCount() { return this._completedFormulasCount; } markedAsSuccessfullyExecuted() { this._functionsExecutedState = Ga.SUCCESS; } markedAsNoFunctionsExecuted() { this._functionsExecutedState = Ga.NOT_EXECUTED; } markedAsStopFunctionsExecuted() { this._functionsExecutedState = Ga.STOP_EXECUTION; } markedAsInitialFunctionsExecuted() { this._functionsExecutedState = Ga.INITIAL; } stopExecution() { this._stopState = true, this.setFormulaExecuteStage(Wa.IDLE); } isStopExecution() { return this._stopState; } setFormulaExecuteStage(e29) { this._formulaExecuteStage = e29; } getFormulaExecuteStage() { return this._formulaExecuteStage; } reset() { this._formulaExecuteStage = Wa.IDLE, this._runtimeData = {}, this._runtimeOtherData = {}, this._unitArrayFormulaRange = {}, this._unitArrayFormulaEmbeddedMap = {}, this._runtimeArrayFormulaCellData = {}, this._runtimeClearArrayFormulaCellData = {}, this._runtimeImageFormulaData = [], this._functionDefinitionPrivacyVar.clear(), this.markedAsInitialFunctionsExecuted(), this._stopState = false, this._isCycleDependency = false, this._totalFormulasToCalculate = 0, this._completedFormulasCount = 0, this.clearReferenceAndNumberformatCache(); } clearReferenceAndNumberformatCache() { ji(), zi(), Yr2(); } setCurrent(e29, t, n, r, i, a) { this._currentRow = e29, this._currentColumn = t, this._currentRowCount = n, this._currentColumnCount = r, this._currentSubUnitId = i, this._currentUnitId = a; } clearFunctionDefinitionPrivacyVar() { this._functionDefinitionPrivacyVar.clear(); } registerFunctionDefinitionPrivacyVar(e29, t) { this._functionDefinitionPrivacyVar.set(e29, t); } getFunctionDefinitionPrivacyVar(e29) { return this._functionDefinitionPrivacyVar.get(e29); } setRuntimeOtherData(e29, t, n, r) { let i = this._currentSubUnitId, a = this._currentUnitId; this._runtimeOtherData[a] === void 0 && (this._runtimeOtherData[a] = {}); let o = this._runtimeOtherData[a]; (o[i] === void 0 || o[i] === null) && (o[i] = {}); let s = o[i], c = []; if (r.isReferenceObject() || r.isValueObject() && r.isArray()) { let e30 = r, { startRow: t2, startColumn: n2 } = e30.getRangePosition(); e30.iterator((e31, r2, i2) => { let a2 = this._getValueObjectOfRuntimeData(e31), o2 = r2 - t2, s2 = i2 - n2; c[o2] == null && (c[o2] = []), c[o2][s2] = a2; }); } else c = [[this._getValueObjectOfRuntimeData(r)]]; (s[e29] === void 0 || s[e29] === null) && (s[e29] = {}), (s[e29][n] === void 0 || s[e29][n] === null) && (s[e29][n] = {}), s[e29][n][t] = c; } setRuntimeData(e29) { let t = this._currentRow, n = this._currentColumn, r = this._currentRowCount, i = this.currentColumnCount, a = this._currentSubUnitId, o = this._currentUnitId; this._runtimeData[o] == null && (this._runtimeData[o] = {}); let s = this._runtimeData[o]; s[a] == null && (s[a] = new Sa()); let c = s[a]; this._unitArrayFormulaRange[o] == null && (this._unitArrayFormulaRange[o] = {}); let l = this._unitArrayFormulaRange[o]; (l[a] === null || l[a] === void 0) && (l[a] = {}); let u = new Sa(l[a]); this._runtimeArrayFormulaCellData[o] === void 0 && (this._runtimeArrayFormulaCellData[o] = {}); let d = this._runtimeArrayFormulaCellData[o]; d[a] == null && (d[a] = new Sa()); let f = d[a]; this._runtimeClearArrayFormulaCellData[o] === void 0 && (this._runtimeClearArrayFormulaCellData[o] = {}); let p = this._runtimeClearArrayFormulaCellData[o]; p[a] == null && (p[a] = new Sa()); let m = p[a]; if (e29.isReferenceObject() || e29.isValueObject() && e29.isArray()) { let s2 = e29, { startRow: l2, startColumn: d2, endRow: p2, endColumn: h } = s2.getRangePosition(); if (l2 === p2 && d2 === h) { let e30 = s2.getFirstCell(), r2 = this._getValueObjectOfRuntimeData(e30); c.setValue(t, n, r2), m.setValue(t, n, r2), ci2.set(o, a, n, e30.getValue(), t, true); return; } let g2 = { startRow: t, startColumn: n, endRow: p2 - l2 + t, endColumn: h - d2 + n }; if (u.setValue(t, n, g2), this._checkIfArrayFormulaRangeHasData(o, a, t, n, g2) || this._checkIfArrayFormulaExceeded(r, i, g2)) { let e30 = this._getValueObjectOfRuntimeData(j3.create(D3.SPILL)); c.setValue(t, n, e30), m.setValue(t, n, e30), ci2.set(o, a, n, D3.SPILL, t, true); let r2 = this._currentConfigService.getUnitData(); s2.iterator((i2, s3, c2) => { var u2; let p3 = s3 - l2 + t, m2 = c2 - d2 + n, h2 = (u2 = r2[o]) == null || (u2 = u2[a]) == null ? void 0 : u2.cellData.getValue(p3, m2); if (s3 === l2 && c2 === d2) f.setValue(t, n, e30); else if (h2 != null) h2.v == null && (h2.v = ``), f.setValue(p3, m2, h2); else if (this._isInOtherArrayFormulaRange(o, a, t, n, p3, m2)) return true; else f.setValue(p3, m2, { v: `` }); }); } else { let e30 = j3.create(D3.SPILL); s2.iterator((r2, i2, s3) => { ci2.set(o, a, n - d2 + s3, r2 ? r2.getValue() : 0, t - l2 + i2, true); let u2 = this._getValueObjectOfRuntimeData(r2); if (i2 === l2 && s3 === d2) { if (r2 != null && r2.isError() && r2.isEqualType(e30)) return m.setValue(t, n, {}), c.setValue(t, n, { ...this._getValueObjectOfRuntimeData(e30) }), false; c.setValue(t, n, { ...u2 }); } let p3 = i2 - l2 + t, h2 = s3 - d2 + n; f.setValue(p3, h2, u2); }); } } else { let r2 = this._getValueObjectOfRuntimeData(e29); if (c.setValue(t, n, r2), e29.isString() && e29.isImage()) { let r3 = e29.getImageInfo(); r3 && this._runtimeImageFormulaData.push({ ...r3, unitId: o, sheetId: a, row: t, column: n }); } ci2.set(o, a, n, e29.getValue(), t, true), m.setValue(t, n, r2); } } _getValueObjectOfRuntimeData(e29) { return e29 != null && e29.isString() && e29.isHyperlink() ? this._hyperlinkEngineFormulaService.generateCellValue(e29.getHyperlinkUrl(), e29.getValue()) : Ma(e29); } getUnitData() { return this._runtimeData; } getUnitArrayFormula() { return this._unitArrayFormulaRange; } getUnitArrayFormulaEmbeddedMap() { return this._unitArrayFormulaEmbeddedMap; } setUnitArrayFormulaEmbeddedMap() { let e29 = this._currentUnitId, t = this._currentSubUnitId, n = this._currentRow, r = this._currentColumn, i = this._unitArrayFormulaEmbeddedMap; i[e29] == null && (i[e29] = {}), i[e29][t] == null && (i[e29][t] = {}), i[e29][t][n] == null && (i[e29][t][n] = {}), i[e29][t][n][r] = true; } getRuntimeOtherData() { return this._runtimeOtherData; } getRuntimeArrayFormulaCellData() { return this._runtimeArrayFormulaCellData; } getRuntimeClearArrayFormulaCellData() { return this._runtimeClearArrayFormulaCellData; } getRuntimeFeatureRange() { return this._runtimeFeatureRange; } setRuntimeFeatureRange(e29, t) { this._runtimeFeatureRange[e29] = t; } getRuntimeFeatureCellData() { return this._runtimeFeatureCellData; } setRuntimeFeatureCellData(e29, t) { this._runtimeFeatureCellData[e29] = t; } setDependencyTreeModelData(e29) { this._dependencyTreeModelData = e29; } getDependencyTreeModelData() { return this._dependencyTreeModelData; } getRuntimeImageFormulaData() { return this._runtimeImageFormulaData; } getAllRuntimeData() { return { unitData: this.getUnitData(), arrayFormulaRange: this.getUnitArrayFormula(), arrayFormulaEmbedded: this.getUnitArrayFormulaEmbeddedMap(), unitOtherData: this.getRuntimeOtherData(), functionsExecutedState: this._functionsExecutedState, arrayFormulaCellData: this.getRuntimeArrayFormulaCellData(), clearArrayFormulaCellData: this.getRuntimeClearArrayFormulaCellData(), imageFormulaData: this.getRuntimeImageFormulaData(), runtimeFeatureRange: this.getRuntimeFeatureRange(), runtimeFeatureCellData: this.getRuntimeFeatureCellData(), dependencyTreeModelData: this.getDependencyTreeModelData() }; } getRuntimeState() { return { totalFormulasToCalculate: this.getTotalFormulasToCalculate(), completedFormulasCount: this.getCompletedFormulasCount(), totalArrayFormulasToCalculate: this.getTotalArrayFormulasToCalculate(), completedArrayFormulasCount: this.getCompletedArrayFormulasCount(), stage: this.getFormulaExecuteStage(), formulaCycleIndex: this.getFormulaCycleIndex() }; } clearArrayObjectCache() { va2.clear(); } _checkIfArrayFormulaRangeHasData(e29, t, n, r, i) { var a; let { startRow: o, startColumn: s, endRow: c, endColumn: l } = i, u = this._currentConfigService.getUnitData(), d = this._currentConfigService.getArrayFormulaCellData(); (a = this._unitArrayFormulaRange[e29]) == null || (a = a[t]) == null || (a = a[n]) == null || a[r]; for (let i2 = o; i2 <= c; i2++) for (let a2 = s; a2 <= l; a2++) { var f, p, m; if (i2 === n && r === a2) continue; let o2 = (f = this._runtimeData) == null || (f = f[e29]) == null || (f = f[t]) == null ? void 0 : f.getValue(i2, a2); d == null || (p = d[e29]) == null || (p = p[t]) == null || p.getValue(i2, a2); let s2 = u == null || (m = u[e29]) == null || (m = m[t]) == null || (m = m.cellData) == null ? void 0 : m.getValue(i2, a2), c2 = this._getRuntimeFeatureCellValue(i2, a2, t, e29); if (!mi(o2) || this._isInOtherArrayFormulaRange(e29, t, n, r, i2, a2) || !mi(s2) || !mi(c2)) return true; } return false; } _getRuntimeFeatureCellValue(e29, t, n, r) { return _i2(e29, t, n, r, this._runtimeFeatureCellData); } _arrayCellHasData(e29) { return e29 == null ? false : e29.v !== void 0; } _isInOtherArrayFormulaRange(e29, t, n, r, i, a) { var o; let s = (o = this._currentConfigService.getArrayFormulaRange()[e29]) == null ? void 0 : o[t]; if (s == null) return false; let c = false; return new Sa(s).forValue((o2, s2, l) => { var u; if (o2 === n && s2 === r) return; let d = this._isInArrayFormulaRange(l, i, a), f = (u = this._runtimeData[e29]) == null || (u = u[t]) == null ? void 0 : u.getValue(o2, s2); d && (f == null ? void 0 : f.v) !== D3.SPILL && (c = true); }), c; } _isInArrayFormulaRange(e29, t, n) { if (e29 == null) return false; let { startRow: r, startColumn: i, endRow: a, endColumn: o } = e29; return t >= r && t <= a && n >= i && n <= o; } _checkIfArrayFormulaExceeded(e29, t, n) { return n.endRow >= e29 || n.endColumn >= t; } _isInDirtyRange(e29, t, n, r) { let i = this._currentConfigService.getDirtyRanges(); return i.length === 0 ? true : Et2(i, e29, t, n, r); } }; Ka2 = dr2([P5(0, fi2), P5(1, Ua)], Ka2); var qa2 = createIdentifier(`univer.formula.runtime.service`); var H3 = (function(e29) { return e29[e29.REFERENCE = 1] = `REFERENCE`, e29[e29.VALUE = 2] = `VALUE`, e29[e29.OPERATOR = 3] = `OPERATOR`, e29[e29.FUNCTION = 4] = `FUNCTION`, e29[e29.LAMBDA = 5] = `LAMBDA`, e29[e29.LAMBDA_PARAMETER = 6] = `LAMBDA_PARAMETER`, e29[e29.ERROR = 7] = `ERROR`, e29[e29.BASE = 8] = `BASE`, e29[e29.ROOT = 9] = `ROOT`, e29[e29.UNION = 10] = `UNION`, e29[e29.PREFIX = 11] = `PREFIX`, e29[e29.SUFFIX = 12] = `SUFFIX`, e29[e29.NULL = 13] = `NULL`, e29; })({}); var Ja2 = /* @__PURE__ */ new Map([[H3.REFERENCE, 7], [H3.VALUE, 9], [H3.OPERATOR, 8], [H3.FUNCTION, 6], [H3.LAMBDA, 1], [H3.LAMBDA_PARAMETER, 2], [H3.ROOT, 10], [H3.UNION, 3], [H3.PREFIX, 4], [H3.SUFFIX, 5]]); var Ya2 = class { constructor(e29) { this._token = e29, E3(this, `_children`, []), E3(this, `_definedNames`, void 0), E3(this, `_parent`, void 0), E3(this, `_valueObject`, void 0), E3(this, `_calculateState`, false), E3(this, `_async`, false), E3(this, `_address`, false), E3(this, `_isForcedCalculateFunction`, false); } dispose() { var e29; this._children.forEach((e30) => { e30.dispose(); }), (e29 = this._valueObject) == null || e29.dispose(), this._valueObject = null, this._children = [], this._definedNames = null, this._parent = null; } get nodeType() { return H3.BASE; } resetCalculationState() { this._children.forEach((e29) => { e29.resetCalculationState(); }), this._valueObject = null, this._calculateState = false; } isAsync() { return this._async; } isAddress() { return this._address; } isForcedCalculateFunction() { return this._isForcedCalculateFunction; } setAsync() { this._async = true; } setAddress() { this._address = true; } getParent() { return this._parent; } setParent(e29) { this._parent = e29, e29.addChildren(this); } setForcedCalculateFunction() { this._isForcedCalculateFunction = true; } getChildren() { return this._children; } addChildren(...e29) { this._children.push(...e29); } getToken() { return this._token; } setValue(e29) { this._valueObject = e29; } getValue() { return this._valueObject; } isCalculated() { return this._calculateState; } setCalculated() { this._calculateState = true; } execute() { } setNotEmpty(e29 = true) { } async executeAsync() { return Promise.resolve(Pe.SUCCESS); } serialize() { let e29 = this.getToken(), t = this.getChildren(), n = [], r = t.length; for (let e30 = 0; e30 < r; e30++) { let r2 = t[e30]; n.push(r2.serialize()); } let i = { token: e29, nodeType: this.nodeType }; return r > 0 && (i.children = n), i; } hasDefinedName(e29) { var t; return ((t = this._definedNames) == null ? void 0 : t.includes(e29)) || false; } setDefinedNames(e29) { this._definedNames = e29; } getDefinedNames() { return this._definedNames; } }; var Xa = class e25 extends Ya2 { constructor(e29) { super(e29), E3(this, `_errorValueObject`, void 0), this._errorValueObject = j3.create(e29); } get nodeType() { return H3.ERROR; } static create(t) { return new e25(t); } getValue() { return this._errorValueObject; } }; var Za2 = class { get zIndex() { return 0; } dispose() { } create(e29, t, n) { let r; return r = e29 instanceof F3 ? e29.getToken() : e29, new Ya2(r); } }; var Qa = class extends Ya2 { get nodeType() { return H3.ROOT; } execute() { let e29 = this.getChildren(); if (e29.length > 1) { this.setValue(j3.create(D3.VALUE)); return; } let t = e29[0]; t == null ? this.setValue(j3.create(D3.VALUE)) : this.setValue(t.getValue()); } }; var $a2 = class extends Za2 { get zIndex() { return Ja2.get(H3.ROOT) || 100; } checkAndCreateNodeType(e29) { if (e29 instanceof F3 && e29.getToken() === `R_1`) return new Qa(`R_1`); } }; var eo2 = (function(e29) { return e29.DATE = `DATE`, e29.DATEDIF = `DATEDIF`, e29.DATEVALUE = `DATEVALUE`, e29.DAY = `DAY`, e29.DAYS = `DAYS`, e29.DAYS360 = `DAYS360`, e29.EDATE = `EDATE`, e29.EOMONTH = `EOMONTH`, e29.EPOCHTODATE = `EPOCHTODATE`, e29.HOUR = `HOUR`, e29.ISOWEEKNUM = `ISOWEEKNUM`, e29.MINUTE = `MINUTE`, e29.MONTH = `MONTH`, e29.NETWORKDAYS = `NETWORKDAYS`, e29.NETWORKDAYS_INTL = `NETWORKDAYS.INTL`, e29.NOW = `NOW`, e29.SECOND = `SECOND`, e29.TIME = `TIME`, e29.TIMEVALUE = `TIMEVALUE`, e29.TO_DATE = `TO_DATE`, e29.TODAY = `TODAY`, e29.WEEKDAY = `WEEKDAY`, e29.WEEKNUM = `WEEKNUM`, e29.WORKDAY = `WORKDAY`, e29.WORKDAY_INTL = `WORKDAY.INTL`, e29.YEAR = `YEAR`, e29.YEARFRAC = `YEARFRAC`, e29; })({}); var U3 = (function(e29) { return e29.BESSELI = `BESSELI`, e29.BESSELJ = `BESSELJ`, e29.BESSELK = `BESSELK`, e29.BESSELY = `BESSELY`, e29.BIN2DEC = `BIN2DEC`, e29.BIN2HEX = `BIN2HEX`, e29.BIN2OCT = `BIN2OCT`, e29.BITAND = `BITAND`, e29.BITLSHIFT = `BITLSHIFT`, e29.BITOR = `BITOR`, e29.BITRSHIFT = `BITRSHIFT`, e29.BITXOR = `BITXOR`, e29.COMPLEX = `COMPLEX`, e29.CONVERT = `CONVERT`, e29.DEC2BIN = `DEC2BIN`, e29.DEC2HEX = `DEC2HEX`, e29.DEC2OCT = `DEC2OCT`, e29.DELTA = `DELTA`, e29.ERF = `ERF`, e29.ERF_PRECISE = `ERF.PRECISE`, e29.ERFC = `ERFC`, e29.ERFC_PRECISE = `ERFC.PRECISE`, e29.GESTEP = `GESTEP`, e29.HEX2BIN = `HEX2BIN`, e29.HEX2DEC = `HEX2DEC`, e29.HEX2OCT = `HEX2OCT`, e29.IMABS = `IMABS`, e29.IMAGINARY = `IMAGINARY`, e29.IMARGUMENT = `IMARGUMENT`, e29.IMCONJUGATE = `IMCONJUGATE`, e29.IMCOS = `IMCOS`, e29.IMCOSH = `IMCOSH`, e29.IMCOT = `IMCOT`, e29.IMCOTH = `IMCOTH`, e29.IMCSC = `IMCSC`, e29.IMCSCH = `IMCSCH`, e29.IMDIV = `IMDIV`, e29.IMEXP = `IMEXP`, e29.IMLN = `IMLN`, e29.IMLOG = `IMLOG`, e29.IMLOG10 = `IMLOG10`, e29.IMLOG2 = `IMLOG2`, e29.IMPOWER = `IMPOWER`, e29.IMPRODUCT = `IMPRODUCT`, e29.IMREAL = `IMREAL`, e29.IMSEC = `IMSEC`, e29.IMSECH = `IMSECH`, e29.IMSIN = `IMSIN`, e29.IMSINH = `IMSINH`, e29.IMSQRT = `IMSQRT`, e29.IMSUB = `IMSUB`, e29.IMSUM = `IMSUM`, e29.IMTAN = `IMTAN`, e29.IMTANH = `IMTANH`, e29.OCT2BIN = `OCT2BIN`, e29.OCT2DEC = `OCT2DEC`, e29.OCT2HEX = `OCT2HEX`, e29; })({}); var W3 = (function(e29) { return e29.ACCRINT = `ACCRINT`, e29.ACCRINTM = `ACCRINTM`, e29.AMORDEGRC = `AMORDEGRC`, e29.AMORLINC = `AMORLINC`, e29.COUPDAYBS = `COUPDAYBS`, e29.COUPDAYS = `COUPDAYS`, e29.COUPDAYSNC = `COUPDAYSNC`, e29.COUPNCD = `COUPNCD`, e29.COUPNUM = `COUPNUM`, e29.COUPPCD = `COUPPCD`, e29.CUMIPMT = `CUMIPMT`, e29.CUMPRINC = `CUMPRINC`, e29.DB = `DB`, e29.DDB = `DDB`, e29.DISC = `DISC`, e29.DOLLARDE = `DOLLARDE`, e29.DOLLARFR = `DOLLARFR`, e29.DURATION = `DURATION`, e29.EFFECT = `EFFECT`, e29.FV = `FV`, e29.FVSCHEDULE = `FVSCHEDULE`, e29.INTRATE = `INTRATE`, e29.IPMT = `IPMT`, e29.IRR = `IRR`, e29.ISPMT = `ISPMT`, e29.MDURATION = `MDURATION`, e29.MIRR = `MIRR`, e29.NOMINAL = `NOMINAL`, e29.NPER = `NPER`, e29.NPV = `NPV`, e29.ODDFPRICE = `ODDFPRICE`, e29.ODDFYIELD = `ODDFYIELD`, e29.ODDLPRICE = `ODDLPRICE`, e29.ODDLYIELD = `ODDLYIELD`, e29.PDURATION = `PDURATION`, e29.PMT = `PMT`, e29.PPMT = `PPMT`, e29.PRICE = `PRICE`, e29.PRICEDISC = `PRICEDISC`, e29.PRICEMAT = `PRICEMAT`, e29.PV = `PV`, e29.RATE = `RATE`, e29.RECEIVED = `RECEIVED`, e29.RRI = `RRI`, e29.SLN = `SLN`, e29.SYD = `SYD`, e29.TBILLEQ = `TBILLEQ`, e29.TBILLPRICE = `TBILLPRICE`, e29.TBILLYIELD = `TBILLYIELD`, e29.VDB = `VDB`, e29.XIRR = `XIRR`, e29.XNPV = `XNPV`, e29.YIELD = `YIELD`, e29.YIELDDISC = `YIELDDISC`, e29.YIELDMAT = `YIELDMAT`, e29; })({}); var to2 = (function(e29) { return e29.CELL = `CELL`, e29.ERROR_TYPE = `ERROR.TYPE`, e29.INFO = `INFO`, e29.ISBETWEEN = `ISBETWEEN`, e29.ISBLANK = `ISBLANK`, e29.ISDATE = `ISDATE`, e29.ISEMAIL = `ISEMAIL`, e29.ISERR = `ISERR`, e29.ISERROR = `ISERROR`, e29.ISEVEN = `ISEVEN`, e29.ISFORMULA = `ISFORMULA`, e29.ISLOGICAL = `ISLOGICAL`, e29.ISNA = `ISNA`, e29.ISNONTEXT = `ISNONTEXT`, e29.ISNUMBER = `ISNUMBER`, e29.ISODD = `ISODD`, e29.ISOMITTED = `ISOMITTED`, e29.ISREF = `ISREF`, e29.ISTEXT = `ISTEXT`, e29.ISURL = `ISURL`, e29.N = `N`, e29.NA = `NA`, e29.SHEET = `SHEET`, e29.SHEETS = `SHEETS`, e29.TYPE = `TYPE`, e29; })({}); var no2 = (function(e29) { return e29.AND = `AND`, e29.BYCOL = `BYCOL`, e29.BYROW = `BYROW`, e29.FALSE = `FALSE`, e29.IF = `IF`, e29.IFERROR = `IFERROR`, e29.IFNA = `IFNA`, e29.IFS = `IFS`, e29.LAMBDA = `LAMBDA`, e29.LET = `LET`, e29.MAKEARRAY = `MAKEARRAY`, e29.MAP = `MAP`, e29.NOT = `NOT`, e29.OR = `OR`, e29.REDUCE = `REDUCE`, e29.SCAN = `SCAN`, e29.SWITCH = `SWITCH`, e29.TRUE = `TRUE`, e29.XOR = `XOR`, e29; })({}); var G3 = (function(e29) { return e29.ADDRESS = `ADDRESS`, e29.AREAS = `AREAS`, e29.CHOOSE = `CHOOSE`, e29.CHOOSECOLS = `CHOOSECOLS`, e29.CHOOSEROWS = `CHOOSEROWS`, e29.COLUMN = `COLUMN`, e29.COLUMNS = `COLUMNS`, e29.DROP = `DROP`, e29.EXPAND = `EXPAND`, e29.FILTER = `FILTER`, e29.FORMULATEXT = `FORMULATEXT`, e29.GETPIVOTDATA = `GETPIVOTDATA`, e29.HLOOKUP = `HLOOKUP`, e29.HSTACK = `HSTACK`, e29.HYPERLINK = `HYPERLINK`, e29.IMAGE = `IMAGE`, e29.INDEX = `INDEX`, e29.INDIRECT = `INDIRECT`, e29.LOOKUP = `LOOKUP`, e29.MATCH = `MATCH`, e29.OFFSET = `OFFSET`, e29.ROW = `ROW`, e29.ROWS = `ROWS`, e29.RTD = `RTD`, e29.SORT = `SORT`, e29.SORTBY = `SORTBY`, e29.TAKE = `TAKE`, e29.TOCOL = `TOCOL`, e29.TOROW = `TOROW`, e29.TRANSPOSE = `TRANSPOSE`, e29.UNIQUE = `UNIQUE`, e29.VLOOKUP = `VLOOKUP`, e29.VSTACK = `VSTACK`, e29.WRAPCOLS = `WRAPCOLS`, e29.WRAPROWS = `WRAPROWS`, e29.XLOOKUP = `XLOOKUP`, e29.XMATCH = `XMATCH`, e29; })({}); var K3 = (function(e29) { return e29.ABS = `ABS`, e29.ACOS = `ACOS`, e29.ACOSH = `ACOSH`, e29.ACOT = `ACOT`, e29.ACOTH = `ACOTH`, e29.AGGREGATE = `AGGREGATE`, e29.ARABIC = `ARABIC`, e29.ASIN = `ASIN`, e29.ASINH = `ASINH`, e29.ATAN = `ATAN`, e29.ATAN2 = `ATAN2`, e29.ATANH = `ATANH`, e29.BASE = `BASE`, e29.CEILING = `CEILING`, e29.CEILING_MATH = `CEILING.MATH`, e29.CEILING_PRECISE = `CEILING.PRECISE`, e29.COMBIN = `COMBIN`, e29.COMBINA = `COMBINA`, e29.COS = `COS`, e29.COSH = `COSH`, e29.COT = `COT`, e29.COTH = `COTH`, e29.CSC = `CSC`, e29.CSCH = `CSCH`, e29.DECIMAL = `DECIMAL`, e29.DEGREES = `DEGREES`, e29.EVEN = `EVEN`, e29.EXP = `EXP`, e29.FACT = `FACT`, e29.FACTDOUBLE = `FACTDOUBLE`, e29.FLOOR = `FLOOR`, e29.FLOOR_MATH = `FLOOR.MATH`, e29.FLOOR_PRECISE = `FLOOR.PRECISE`, e29.GCD = `GCD`, e29.INT = `INT`, e29.ISO_CEILING = `ISO.CEILING`, e29.LCM = `LCM`, e29.LET = `LET`, e29.LN = `LN`, e29.LOG = `LOG`, e29.LOG10 = `LOG10`, e29.MDETERM = `MDETERM`, e29.MINVERSE = `MINVERSE`, e29.MMULT = `MMULT`, e29.MOD = `MOD`, e29.MROUND = `MROUND`, e29.MULTINOMIAL = `MULTINOMIAL`, e29.MUNIT = `MUNIT`, e29.ODD = `ODD`, e29.PI = `PI`, e29.POWER = `POWER`, e29.PRODUCT = `PRODUCT`, e29.QUOTIENT = `QUOTIENT`, e29.RADIANS = `RADIANS`, e29.RAND = `RAND`, e29.RANDARRAY = `RANDARRAY`, e29.RANDBETWEEN = `RANDBETWEEN`, e29.ROMAN = `ROMAN`, e29.ROUND = `ROUND`, e29.ROUNDBANK = `ROUNDBANK`, e29.ROUNDDOWN = `ROUNDDOWN`, e29.ROUNDUP = `ROUNDUP`, e29.SEC = `SEC`, e29.SECH = `SECH`, e29.SERIESSUM = `SERIESSUM`, e29.SEQUENCE = `SEQUENCE`, e29.SIGN = `SIGN`, e29.SIN = `SIN`, e29.SINH = `SINH`, e29.SQRT = `SQRT`, e29.SQRTPI = `SQRTPI`, e29.SUBTOTAL = `SUBTOTAL`, e29.SUM = `SUM`, e29.SUMIF = `SUMIF`, e29.SUMIFS = `SUMIFS`, e29.SUMPRODUCT = `SUMPRODUCT`, e29.SUMSQ = `SUMSQ`, e29.SUMX2MY2 = `SUMX2MY2`, e29.SUMX2PY2 = `SUMX2PY2`, e29.SUMXMY2 = `SUMXMY2`, e29.TAN = `TAN`, e29.TANH = `TANH`, e29.TRUNC = `TRUNC`, e29; })({}); var q3 = (function(e29) { return e29.AVEDEV = `AVEDEV`, e29.AVERAGE = `AVERAGE`, e29.AVERAGE_WEIGHTED = `AVERAGE.WEIGHTED`, e29.AVERAGEA = `AVERAGEA`, e29.AVERAGEIF = `AVERAGEIF`, e29.AVERAGEIFS = `AVERAGEIFS`, e29.BETA_DIST = `BETA.DIST`, e29.BETA_INV = `BETA.INV`, e29.BINOM_DIST = `BINOM.DIST`, e29.BINOM_DIST_RANGE = `BINOM.DIST.RANGE`, e29.BINOM_INV = `BINOM.INV`, e29.CHISQ_DIST = `CHISQ.DIST`, e29.CHISQ_DIST_RT = `CHISQ.DIST.RT`, e29.CHISQ_INV = `CHISQ.INV`, e29.CHISQ_INV_RT = `CHISQ.INV.RT`, e29.CHISQ_TEST = `CHISQ.TEST`, e29.CONFIDENCE_NORM = `CONFIDENCE.NORM`, e29.CONFIDENCE_T = `CONFIDENCE.T`, e29.CORREL = `CORREL`, e29.COUNT = `COUNT`, e29.COUNTA = `COUNTA`, e29.COUNTBLANK = `COUNTBLANK`, e29.COUNTIF = `COUNTIF`, e29.COUNTIFS = `COUNTIFS`, e29.COVARIANCE_P = `COVARIANCE.P`, e29.COVARIANCE_S = `COVARIANCE.S`, e29.DEVSQ = `DEVSQ`, e29.EXPON_DIST = `EXPON.DIST`, e29.F_DIST = `F.DIST`, e29.F_DIST_RT = `F.DIST.RT`, e29.F_INV = `F.INV`, e29.F_INV_RT = `F.INV.RT`, e29.F_TEST = `F.TEST`, e29.FISHER = `FISHER`, e29.FISHERINV = `FISHERINV`, e29.FORECAST = `FORECAST`, e29.FORECAST_ETS = `FORECAST.ETS`, e29.FORECAST_ETS_CONFINT = `FORECAST.ETS.CONFINT`, e29.FORECAST_ETS_SEASONALITY = `FORECAST.ETS.SEASONALITY`, e29.FORECAST_ETS_STAT = `FORECAST.ETS.STAT`, e29.FORECAST_LINEAR = `FORECAST.LINEAR`, e29.FREQUENCY = `FREQUENCY`, e29.GAMMA = `GAMMA`, e29.GAMMA_DIST = `GAMMA.DIST`, e29.GAMMA_INV = `GAMMA.INV`, e29.GAMMALN = `GAMMALN`, e29.GAMMALN_PRECISE = `GAMMALN.PRECISE`, e29.GAUSS = `GAUSS`, e29.GEOMEAN = `GEOMEAN`, e29.GROWTH = `GROWTH`, e29.HARMEAN = `HARMEAN`, e29.HYPGEOM_DIST = `HYPGEOM.DIST`, e29.INTERCEPT = `INTERCEPT`, e29.KURT = `KURT`, e29.LARGE = `LARGE`, e29.LINEST = `LINEST`, e29.LOGEST = `LOGEST`, e29.LOGNORM_DIST = `LOGNORM.DIST`, e29.LOGNORM_INV = `LOGNORM.INV`, e29.MARGINOFERROR = `MARGINOFERROR`, e29.MAX = `MAX`, e29.MAXA = `MAXA`, e29.MAXIFS = `MAXIFS`, e29.MEDIAN = `MEDIAN`, e29.MIN = `MIN`, e29.MINA = `MINA`, e29.MINIFS = `MINIFS`, e29.MODE_MULT = `MODE.MULT`, e29.MODE_SNGL = `MODE.SNGL`, e29.NEGBINOM_DIST = `NEGBINOM.DIST`, e29.NORM_DIST = `NORM.DIST`, e29.NORM_INV = `NORM.INV`, e29.NORM_S_DIST = `NORM.S.DIST`, e29.NORM_S_INV = `NORM.S.INV`, e29.PEARSON = `PEARSON`, e29.PERCENTILE_EXC = `PERCENTILE.EXC`, e29.PERCENTILE_INC = `PERCENTILE.INC`, e29.PERCENTRANK_EXC = `PERCENTRANK.EXC`, e29.PERCENTRANK_INC = `PERCENTRANK.INC`, e29.PERMUT = `PERMUT`, e29.PERMUTATIONA = `PERMUTATIONA`, e29.PHI = `PHI`, e29.POISSON_DIST = `POISSON.DIST`, e29.PROB = `PROB`, e29.QUARTILE_EXC = `QUARTILE.EXC`, e29.QUARTILE_INC = `QUARTILE.INC`, e29.RANK_AVG = `RANK.AVG`, e29.RANK_EQ = `RANK.EQ`, e29.RSQ = `RSQ`, e29.SKEW = `SKEW`, e29.SKEW_P = `SKEW.P`, e29.SLOPE = `SLOPE`, e29.SMALL = `SMALL`, e29.STANDARDIZE = `STANDARDIZE`, e29.STDEV_P = `STDEV.P`, e29.STDEV_S = `STDEV.S`, e29.STDEVA = `STDEVA`, e29.STDEVPA = `STDEVPA`, e29.STEYX = `STEYX`, e29.T_DIST = `T.DIST`, e29.T_DIST_2T = `T.DIST.2T`, e29.T_DIST_RT = `T.DIST.RT`, e29.T_INV = `T.INV`, e29.T_INV_2T = `T.INV.2T`, e29.T_TEST = `T.TEST`, e29.TREND = `TREND`, e29.TRIMMEAN = `TRIMMEAN`, e29.VAR_P = `VAR.P`, e29.VAR_S = `VAR.S`, e29.VARA = `VARA`, e29.VARPA = `VARPA`, e29.WEIBULL_DIST = `WEIBULL.DIST`, e29.Z_TEST = `Z.TEST`, e29; })({}); var J3 = (function(e29) { return e29.ASC = `ASC`, e29.ARRAYTOTEXT = `ARRAYTOTEXT`, e29.BAHTTEXT = `BAHTTEXT`, e29.CHAR = `CHAR`, e29.CLEAN = `CLEAN`, e29.CODE = `CODE`, e29.CONCAT = `CONCAT`, e29.CONCATENATE = `CONCATENATE`, e29.DBCS = `DBCS`, e29.DOLLAR = `DOLLAR`, e29.EXACT = `EXACT`, e29.FIND = `FIND`, e29.FINDB = `FINDB`, e29.FIXED = `FIXED`, e29.LEFT = `LEFT`, e29.LEFTB = `LEFTB`, e29.LEN = `LEN`, e29.LENB = `LENB`, e29.LOWER = `LOWER`, e29.MID = `MID`, e29.MIDB = `MIDB`, e29.NUMBERSTRING = `NUMBERSTRING`, e29.NUMBERVALUE = `NUMBERVALUE`, e29.PHONETIC = `PHONETIC`, e29.PROPER = `PROPER`, e29.REGEXEXTRACT = `REGEXEXTRACT`, e29.REGEXMATCH = `REGEXMATCH`, e29.REGEXREPLACE = `REGEXREPLACE`, e29.REPLACE = `REPLACE`, e29.REPLACEB = `REPLACEB`, e29.REPT = `REPT`, e29.RIGHT = `RIGHT`, e29.RIGHTB = `RIGHTB`, e29.SEARCH = `SEARCH`, e29.SEARCHB = `SEARCHB`, e29.SUBSTITUTE = `SUBSTITUTE`, e29.T = `T`, e29.TEXT = `TEXT`, e29.TEXTAFTER = `TEXTAFTER`, e29.TEXTBEFORE = `TEXTBEFORE`, e29.TEXTJOIN = `TEXTJOIN`, e29.TEXTSPLIT = `TEXTSPLIT`, e29.TRIM = `TRIM`, e29.UNICHAR = `UNICHAR`, e29.UNICODE = `UNICODE`, e29.UPPER = `UPPER`, e29.VALUE = `VALUE`, e29.VALUETOTEXT = `VALUETOTEXT`, e29.CALL = `CALL`, e29.EUROCONVERT = `EUROCONVERT`, e29.REGISTER_ID = `REGISTER.ID`, e29; })({}); var ro2 = (function(e29) { return e29.ENCODEURL = `ENCODEURL`, e29.FILTERXML = `FILTERXML`, e29.WEBSERVICE = `WEBSERVICE`, e29; })({}); var io2 = [eo2, U3, W3, to2, no2, G3, K3, q3, J3, ro2]; var ao2 = new Set(io2.flatMap((e29) => Object.values(e29)).filter((e29) => /^[A-Z]{1,3}$/.test(e29)).filter((e29) => { let t = lo(e29); return t > 0 && t <= fo; })); var oo2 = new Be2(5e3); function so2(e29, t, n, r, i) { let a = oo2.get(`${e29}${t}`); if (a && !co2(a, i)) return a; let o = n.treeBuilder(t); return Ve2.has(o) ? Xa.create(o) : (a = r.parse(o), a == null ? (console.error(`generateAstNode astNode is null`), Xa.create(o)) : (oo2.set(`${e29}${t}`, a), a)); } function co2(e29, t) { let n = t.getDirtyDefinedNameMap(), r = t.getExecuteUnitId(); if (r != null && n[r] != null) { let t2 = Object.keys(n[r]); for (let n2 = 0, r2 = t2.length; n2 < r2; n2++) { let r3 = t2[n2]; if (e29.hasDefinedName(r3)) return true; } } return false; } function lo2(e29, t, n) { return !!(t != null && co2(t, n)); } var uo2 = createIdentifier(`univer.formula-function.service`); var fo2 = class extends E { constructor(...e29) { super(...e29), E3(this, `_functionExecutors`, /* @__PURE__ */ new Map()), E3(this, `_functionDescriptions`, /* @__PURE__ */ new Map()); } dispose() { super.dispose(), this._functionExecutors.clear(), this._functionDescriptions.clear(); } registerExecutors(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; this._functionExecutors.set(n.name, n); } } getExecutors() { return this._functionExecutors; } getExecutor(e29) { return this._functionExecutors.get(e29); } hasExecutor(e29) { return this._functionExecutors.has(e29); } unregisterExecutors(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; this._functionExecutors.delete(n); } } registerDescriptions(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; this._functionDescriptions.set(n.functionName, n); } return T2(() => { for (let t = 0; t < e29.length; t++) { let n = e29[t]; this._functionDescriptions.delete(n.functionName); } }); } getDescriptions() { return this._functionDescriptions; } getDescription(e29) { return this._functionDescriptions.get(e29); } hasDescription(e29) { return this._functionDescriptions.has(e29); } unregisterDescriptions(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; this._functionDescriptions.delete(n); } } deleteFormulaAstCacheKey(...e29) { oo2.forEach((t, n) => { e29.forEach((e30) => { n.includes(e30) && oo2.delete(n); }); }); } }; var po = (function(e29) { return e29.COMPARE = `COMPARE`, e29.DIVIDED = `DIVIDED`, e29.MINUS = `MINUS`, e29.MULTIPLY = `MULTIPLY`, e29.PLUS = `PLUS`, e29.UNION = `UNION`, e29.CUBE = `CUBE`, e29; })({}); var mo = class extends Ya2 { constructor(e29, t, n) { super(t), this._runtimeService = e29, this._operatorString = t, this._functionExecutor = n; } get nodeType() { return H3.PREFIX; } execute() { let e29 = this.getChildren()[0].getValue(), t; if (e29 == null) { console.error(`PrefixNode execute value is null`), this.setValue(j3.create(D3.VALUE)); return; } this._operatorString === Ye.MINUS ? (e29.isReferenceObject() && (e29 = e29.toArrayValueObject()), t = this._functionExecutor.calculate(R4.create(0), e29)) : t = this._operatorString === Ye.AT ? this._handlerAT(e29) : j3.create(D3.VALUE), this.setValue(t); } _handlerAT(e29) { if (!e29.isReferenceObject()) return j3.create(D3.VALUE); let t = e29; if (t.isCell()) return j3.create(D3.VALUE); let n = this._runtimeService, r = n.currentRow || 0, i = n.currentColumn || 0, { startRow: a, startColumn: o, endRow: s, endColumn: c } = t.getRangePosition(); return c !== o && s !== a || a === s && o === c ? j3.create(D3.VALUE) : s === a && i >= o && i <= c ? t.getCellByColumn(i) : o === c && r >= a && r <= s ? t.getCellByRow(r) : t.isTable() ? t.getCellByPosition(r) : j3.create(D3.VALUE); } }; var ho = class extends Za2 { constructor(e29, t) { super(), this._functionService = e29, this._runtimeService = t; } get zIndex() { return Ja2.get(H3.PREFIX) || 100; } checkAndCreateNodeType(e29) { if (!(e29 instanceof F3)) return; let t = e29.getToken(), n = t.trim(); if (n.charAt(0) === `"` && n.charAt(n.length - 1) === `"`) return; let r = ``; if (n === Ye.MINUS) r = po.MINUS; else if (n === Ye.AT) return new mo(this._runtimeService, n); else return; let i = this._functionService.getExecutor(r); return i ? new mo(this._runtimeService, n, i) : (console.error(`No function ${t}`), Xa.create(D3.NAME)); } }; ho = dr2([P5(0, uo2), P5(1, qa2)], ho); function go(e29, t, n) { let r, i, a = e29, o = a[0], s = 0; if (o === Ye.MINUS) { let e30 = t.getExecutor(po.MINUS); r = new mo(n, Ye.MINUS, e30), s++; } else o === Ye.AT && (i = new mo(n, Ye.AT), r && i.setParent(r), s++); return s > 0 && (a = a.slice(s)), { tokenTrim: a, minusPrefixNode: r, atPrefixNode: i }; } var _o2 = class extends Ya2 { constructor(e29, t, n, r, i, a) { super(e29), this._functionExecutor = t, this._currentConfigService = n, this._runtimeService = r, this._definedNamesService = i, this._formulaDataModel = a, this._functionExecutor.isAsync() && this.setAsync(), this._functionExecutor.isAddress() && this.setAddress(), this._functionExecutor.needsLocale && this._setLocale(), this._functionExecutor.needsSheetsInfo && this._setSheetsInfo(), this._functionExecutor.needsFormulaDataModel && this._functionExecutor.setFormulaDataModel(this._formulaDataModel); } get nodeType() { return H3.FUNCTION; } async executeAsync() { let e29 = [], t = this.getChildren(), n = t.length; this._compatibility(); for (let r2 = 0; r2 < n; r2++) { let n2 = t[r2].getValue(); n2 != null && (n2.isReferenceObject() && !this._functionExecutor.needsReferenceObject ? e29.push(n2.toArrayValueObject()) : e29.push(n2)); } let r = await this._calculateAsync(e29), i; return i = r.isAsyncObject() || r.isAsyncArrayObject() ? await r.getValue() : r, this._setEmbeddedArrayFormulaToResult(i), this._setRefData(i), this.setValue(i), Promise.resolve(Pe.SUCCESS); } execute() { let e29 = [], t = this.getChildren(), n = t.length; this._compatibility(); for (let r2 = 0; r2 < n; r2++) { let n2 = t[r2].getValue(); n2 != null && (n2.isReferenceObject() && this._functionExecutor.needsFilteredOutRows && this._setFilteredOutRows(n2), n2.isReferenceObject() && !this._functionExecutor.needsReferenceObject ? e29.push(n2.toArrayValueObject()) : e29.push(n2)); } let r = this._calculate(e29); this._setEmbeddedArrayFormulaToResult(r), this._setRefData(r), this.setValue(r); } isFunctionExecutorArgumentsIgnoreNumberPattern() { return this._functionExecutor.isArgumentsIgnoreNumberPattern(); } _setEmbeddedArrayFormulaToResult(e29) { if (!e29.isArray()) return; let t = e29.getRowCount(), n = e29.getColumnCount(); t <= 1 && n <= 1 || this._runtimeService.setUnitArrayFormulaEmbeddedMap(); } _compatibility() { this._lookupCompatibility(); } _lookupCompatibility() { let e29 = this.getChildren(), t = e29.length; if (!this._functionExecutor.needsExpandParams || t !== 3) return; let n = e29[1].getValue(), r = e29[2].getValue(); if (!(n != null && n.isReferenceObject()) && !(r != null && r.isReferenceObject())) return; let i, a; if (n != null && n.isReferenceObject()) { let { startRow: e30, startColumn: t2, endRow: r2, endColumn: o2 } = n.getRangeData(); i = r2 - e30 + 1, a = o2 - t2 + 1; } else i = n != null && n.isArray() ? n.getRowCount() : 1, a = n != null && n.isArray() ? n.getColumnCount() : 1; let o = r.getRangeData(), { startRow: s, startColumn: c, endRow: l, endColumn: u } = o, d = l - s + 1, f = u - c + 1; i !== d && (o.endRow += i - d), a !== f && (o.endColumn += a - f); } _handleCustomResult(e29) { var t; if (typeof e29 != `object` || !e29) return ga2.create(e29); let n = ma(e29); return B3.create({ calculateValueList: n, rowCount: n.length, columnCount: ((t = n[0]) == null ? void 0 : t.length) || 0, unitId: ``, sheetId: ``, row: -1, column: -1 }); } _handleAddressFunction() { this._functionExecutor.isAddress() && this._setDefinedNamesForFunction(); } _mapVariantsToValues(e29) { return e29.map((e30) => e30.isArray() ? e30.toValue() : e30.isLambda() ? e30 : e30.getValue()); } _calculate(e29) { let { minParams: t, maxParams: n } = this._functionExecutor; if (t !== -1 && n !== -1 && (e29.length < t || e29.length > n)) return j3.create(D3.NA); let r; if (this._setRefInfo(), this._functionExecutor.isCustom()) { let t2 = this._functionExecutor.calculateCustom(...this._mapVariantsToValues(e29)); r = this._handleCustomResult(t2); } else this._handleAddressFunction(), r = this._functionExecutor.calculate(...e29); return r; } async _calculateAsync(e29) { let { minParams: t, maxParams: n } = this._functionExecutor; if (t !== -1 && n !== -1 && (e29.length < t || e29.length > n)) return j3.create(D3.NA); let r; if (this._setRefInfo(), this._functionExecutor.isCustom()) { let t2 = await this._functionExecutor.calculateCustom(...this._mapVariantsToValues(e29)); r = this._handleCustomResult(t2); } else this._handleAddressFunction(), r = this._functionExecutor.calculate(...e29); return r; } _setDefinedNamesForFunction() { let e29 = this._currentConfigService.getExecuteUnitId(); if (e29 == null) return; let t = this._definedNamesService.getDefinedNameMap(e29); t != null && this._functionExecutor.setDefinedNames(t); } _setRefInfo() { let { currentUnitId: e29, currentSubUnitId: t, currentRow: n, currentColumn: r } = this._runtimeService; if (this._functionExecutor.setRefInfo(e29, t, n, r), this._functionExecutor.needsSheetRowColumnCount) { let { rowCount: n2, columnCount: r2 } = this._currentConfigService.getSheetRowColumnCount(e29, t); this._functionExecutor.setSheetRowColumnCount(n2, r2); } } _setRefData(e29) { if (!e29.isReferenceObject()) return; let t = e29; t.setForcedSheetId(this._currentConfigService.getSheetNameMap()), t.setUnitData(this._currentConfigService.getUnitData()), t.setArrayFormulaCellData(this._currentConfigService.getArrayFormulaCellData()), t.setArrayFormulaRange(this._currentConfigService.getArrayFormulaRange()), t.setRuntimeData(this._runtimeService.getUnitData()), t.setRuntimeArrayFormulaCellData(this._runtimeService.getRuntimeArrayFormulaCellData()), t.setRuntimeArrayFormulaRange(this._runtimeService.getUnitArrayFormula()), t.setRuntimeFeatureCellData(this._runtimeService.getRuntimeFeatureCellData()); } _setLocale() { this._functionExecutor.setLocale(this._currentConfigService.getLocale()); } _setSheetsInfo() { this._functionExecutor.setSheetsInfo(this._currentConfigService.getSheetsInfo()); } _setFilteredOutRows(e29) { let { startRow: t, endRow: n } = e29.getRangePosition(), r = this._currentConfigService.getFilteredOutRows(e29.getUnitId(), e29.getSheetId(), t, n); e29.setFilteredOutRows(r); } }; var vo = class extends Ya2 { constructor(e29 = `Error`) { super(e29); } get nodeType() { return H3.FUNCTION; } async executeAsync() { return this.setValue(j3.create(D3.NAME)), Promise.resolve(Pe.SUCCESS); } execute() { this.setValue(j3.create(D3.NAME)); } }; var yo2 = class extends Za2 { constructor(e29, t, n, r, i, a) { super(), this._functionService = e29, this._currentConfigService = t, this._runtimeService = n, this._definedNamesService = r, this._injector = i, this._formulaDataModel = a; } get zIndex() { return Ja2.get(H3.FUNCTION) || 100; } create(e29) { let t = this._functionService.getExecutor(e29); return t ? new _o2(e29, t, this._currentConfigService, this._runtimeService, this._definedNamesService, this._formulaDataModel) : (console.error(`No function ${e29}`), Xa.create(D3.NAME)); } checkAndCreateNodeType(e29) { if (typeof e29 == `string`) return; let { tokenTrim: t, minusPrefixNode: n, atPrefixNode: r } = go(e29.getToken().trim(), this._functionService, this._runtimeService), i = this._isParentUnionNode(e29); if (!Number.isNaN(Number(t)) && !i) return Xa.create(D3.VALUE); let a = t.toUpperCase(); if (!(i && ao2.has(a)) && this._functionService.hasExecutor(a)) { let e30 = this.create(a); return r ? e30.setParent(r) : n && e30.setParent(n), e30; } } _isParentUnionNode(e29) { var t; return ((t = e29.getParent()) == null || (t = t.getParent()) == null ? void 0 : t.getToken()) === A3.COLON; } }; yo2 = dr2([P5(0, uo2), P5(1, fi2), P5(2, qa2), P5(3, pr2), P5(4, Inject(Injector)), P5(5, Inject(ai2))], yo2); var bo2 = class extends E { constructor(e29) { super(), this._runtimeService = e29; } async executeAsync(e29) { if (!e29 || !e29.node) return Promise.resolve(j3.create(D3.VALUE)); let t = e29.node, n = e29.refOffsetX, r = e29.refOffsetY; await this._executeAsync(t, n, r); let i = t.getValue(); return i == null ? Promise.resolve(j3.create(D3.VALUE)) : Promise.resolve(i); } execute(e29) { if (!e29 || !e29.node) return j3.create(D3.VALUE); let t = e29.node, n = e29.refOffsetX, r = e29.refOffsetY; this._execute(t, n, r); let i = t.getValue(); return i == null ? j3.create(D3.VALUE) : i; } executePreCalculateNode(e29) { return e29.execute(), e29.getValue(); } checkAsyncNode(e29) { if (e29 == null) return false; let t = []; this._checkAsyncNode(e29, t); for (let e30 = 0, n = t.length; e30 < n; e30++) if (t[e30] === true) return true; return false; } _checkAsyncNode(e29, t) { let n = e29.getChildren(), r = n.length; for (let e30 = 0; e30 < r; e30++) { let r2 = n[e30]; t.push(r2.isAsync()), this._checkAsyncNode(r2, t); } } async _executeAsync(e29, t = 0, n = 0) { if (this._runtimeService.isStopExecution()) return Promise.resolve(Pe.ERROR); let r = e29.getChildren(), i = r.length; for (let e30 = 0; e30 < i; e30++) { let i2 = r[e30]; if (i2.getToken().toUpperCase() === `LAMBDA` && i2.isEmptyParamFunction()) { i2.execute(); continue; } await this._executeAsync(i2, t, n); } return e29.nodeType === H3.REFERENCE && e29.setRefOffset(t, n), e29.nodeType === H3.FUNCTION && e29.isAsync() ? await e29.executeAsync() : e29.execute(), Promise.resolve(Pe.SUCCESS); } _execute(e29, t = 0, n = 0) { if (this._runtimeService.isStopExecution()) return Pe.ERROR; let r = e29.getChildren(), i = r.length; for (let e30 = 0; e30 < i; e30++) { let i2 = r[e30]; if (i2.getToken().toUpperCase() === `LAMBDA` && i2.isEmptyParamFunction()) { i2.execute(); continue; } this._execute(i2, t, n); } return e29.nodeType === H3.REFERENCE && e29.setRefOffset(t, n), e29.execute(), Pe.SUCCESS; } }; bo2 = dr2([P5(0, qa2)], bo2); function xo(e29) { return e29 instanceof F3 ? e29.getToken() === `L_1` : false; } function So(e29) { return e29 instanceof F3 ? e29.getToken() === Nn2 : false; } function Co2(e29, t, n) { let r = e29.getChildren(), i = r.length, a = r[0]; for (let e30 = 0; e30 < i; e30++) { let i2 = r[e30]; if (!(xo(a) && e30 !== 0)) if (i2 instanceof F3) Co2(i2, t, n); else { let a2 = i2.trim(); if (n.has(a2)) { let i3 = new F3(); i3.setToken(`LR_1`), i3.setLambdaId(t), i3.setLambdaPrivacyVar(n), i3.setLambdaParameter(a2), r[e30] = i3; } } } } function wo2(e29) { let t = e29; for (; t != null && t.getParent(); ) t = t.getParent(); return t; } function To2(e29, t = 0, n = 0) { return { node: e29, refOffsetX: t, refOffsetY: n }; } function Eo2(e29) { if (!e29) return; if (e29.getToken() !== `LR_1`) return e29; let t = e29, n = t.getCurrentLambdaPrivacyVar(), r = t.getLambdaParameter(); if (!n) return; let i = n.get(r); return i == null && e29.getValue() ? e29 : Eo2(i); } var Do2 = class e26 extends Xe2 { static create(t, n, r) { return new e26(t, n, r); } constructor(e29, t, n) { super(0), this._lambdaNode = e29, this._interpreter = t, this._lambdaPrivacyVarKeys = n, E3(this, `_lambdaPrivacyValueMap`, /* @__PURE__ */ new Map()), this._lambdaPrivacyValueMap.clear(); } dispose() { this._lambdaPrivacyValueMap.clear(), this._lambdaPrivacyValueMap = /* @__PURE__ */ new Map(), this._lambdaNode = null, this._interpreter = null, this._lambdaPrivacyVarKeys = []; } isLambda() { return true; } execute(...e29) { let t = this._lambdaPrivacyVarKeys.length; if (e29.length !== t || !this._interpreter || !this._lambdaNode) return j3.create(D3.VALUE); this._setLambdaPrivacyValueMap(e29), this._setLambdaNodeValue(this._lambdaNode), this._lambdaNode.setNotEmpty(false); let n; if (this._interpreter.checkAsyncNode(this._lambdaNode)) n = new ba2(this._interpreter.executeAsync(To2(this._lambdaNode))); else { let e30 = this._interpreter.execute(To2(this._lambdaNode)); n = e30.isReferenceObject() ? e30.toArrayValueObject() : e30; } return this._lambdaNode.setNotEmpty(true), n; } executeCustom(...e29) { let t = e29.map((e30) => ga2.create(e30)); return this.execute(...t); } _setLambdaNodeValue(e29) { if (!e29) return; let t = e29.getChildren(), n = t.length; for (let e30 = 0; e30 < n; e30++) { let n2 = t[e30]; if (n2.getToken() === `LR_1`) { let e31 = n2.getLambdaParameter(), t2 = this._lambdaPrivacyValueMap.get(e31); if (t2) n2.setValue(t2); else { let t3 = Eo2(n2.getCurrentLambdaPrivacyVar().get(e31)); t3 != null && n2.setValue(t3.getValue()); } continue; } this._setLambdaNodeValue(n2); } } _setLambdaPrivacyValueMap(e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t], r = this._lambdaPrivacyVarKeys[t]; this._lambdaPrivacyValueMap.set(r, n); } } getLambdaPrivacyVarKeys() { return this._lambdaPrivacyVarKeys; } }; var Oo2 = class extends Ya2 { constructor(e29, t, n, r, i) { super(e29), this._lambdaId = t, this._interpreter = n, this._lambdaPrivacyVarKeys = r, this._runtimeService = i, E3(this, `_isNotEmpty`, true); } get nodeType() { return H3.LAMBDA; } setNotEmpty(e29 = false) { this._isNotEmpty = e29; } isEmptyParamFunction() { return this.getChildren().length < 2 && this._isNotEmpty; } isFunctionParameter() { return this._lambdaId === null; } getLambdaId() { return this._lambdaId; } execute() { if (this.isEmptyParamFunction()) this.setValue(Do2.create(this, this._interpreter, this._lambdaPrivacyVarKeys)); else { let e29 = this.getChildren(), t = e29.length; this.setValue(e29[t - 1].getValue()); } this._runtimeService.setUnitArrayFormulaEmbeddedMap(); } }; var ko2 = class extends Za2 { constructor(e29, t) { super(), this._runtimeService = e29, this._interpreter = t; } get zIndex() { return Ja2.get(H3.LAMBDA) || 100; } create(e29) { let t = e29.getChildren(), n = t[0], r = t.slice(1, -1), i = t[t.length - 1]; if (!(n instanceof F3 && i instanceof F3)) return Xa.create(D3.NAME); if (n.getToken() === `L_1`) { let e30 = n.getChildren(); if (r.length !== e30.length) return Xa.create(D3.VALUE); } else r = t.slice(0, -1); let a = O2(8), o = /* @__PURE__ */ new Map(); for (let e30 = 0; e30 < r.length; e30++) { let t2 = r[e30]; if (t2 instanceof F3) { let e31 = t2.getChildren()[0]; t2.setToken(Nn2), o.set(e31.trim(), void 0); } else return Xa.create(D3.VALUE); } return this._runtimeService.registerFunctionDefinitionPrivacyVar(a, o), this._updateLambdaStatement(i, a, o), new Oo2(e29.getToken(), a, this._interpreter, [...o.keys()], this._runtimeService); } checkAndCreateNodeType(e29) { if (e29 instanceof F3 && e29.getToken().trim().toUpperCase() === `LAMBDA`) return this.create(e29); } _updateLambdaStatement(e29, t, n) { Co2(e29, t, n); } }; ko2 = dr2([P5(0, qa2), P5(1, Inject(bo2))], ko2); function Ao2(e29) { if (!e29) return; if (e29.getToken() !== `LR_1`) return e29; let t = e29, n = t.getCurrentLambdaPrivacyVar(), r = t.getLambdaParameter(); if (n) return Ao2(n.get(r)); } var jo2 = class extends Ya2 { constructor(e29, t, n) { super(e29), this._lambdaParameter = t, this._currentLambdaPrivacyVar = n; } getLambdaParameter() { return this._lambdaParameter; } getCurrentLambdaPrivacyVar() { return this._currentLambdaPrivacyVar; } get nodeType() { return H3.LAMBDA_PARAMETER; } execute() { let e29 = Ao2(this._currentLambdaPrivacyVar.get(this._lambdaParameter)); if (e29) this.setValue(e29.getValue()); else { let e30 = this.getValue(); (e30 == null || e30.isError()) && this.setValue(j3.create(D3.NAME)); } } }; var Mo2 = class extends Za2 { get zIndex() { return Ja2.get(H3.LAMBDA_PARAMETER) || 100; } create(e29) { let t = e29.getFunctionDefinitionPrivacyVar(), n = e29.getLambdaParameter(); return t ? new jo2(e29.getToken(), n, t) : new Xa(D3.NAME); } checkAndCreateNodeType(e29) { if (e29 instanceof F3 && e29.getToken().trim() === `LR_1`) return this.create(e29); } }; var No2 = class extends Ya2 { constructor(e29) { super(e29), this._operatorString = e29; } get nodeType() { return H3.NULL; } execute() { this.setValue(I3.create()); } }; var Po2 = class extends Ya2 { constructor(e29, t, n) { super(e29), this._functionExecutor = t, this._runtimeService = n; } get nodeType() { return H3.OPERATOR; } execute() { let e29 = this.getChildren(); this._functionExecutor.name === po.COMPARE && this._functionExecutor.setCompareType(this.getToken()); let t = e29[0], n = e29[1], r = t == null ? void 0 : t.getValue(), i = n == null ? void 0 : n.getValue(), a = this.getToken(); if ((r == null || i == null) && a !== O4.MINUS && a !== O4.PLUS) { this.setValue(j3.create(D3.VALUE)); return; } r == null && (r = I3.create()), i == null && (i = I3.create()), r.isReferenceObject() && (r = r.toArrayValueObject()), i.isReferenceObject() && (i = i.toArrayValueObject()); let o = this._functionExecutor.calculate(r, i); this._setEmbeddedArrayFormulaToResult(o), this.setValue(o); } _setEmbeddedArrayFormulaToResult(e29) { if (!e29.isArray()) return; let t = e29.getRowCount(), n = e29.getColumnCount(); t <= 1 && n <= 1 || this._runtimeService.setUnitArrayFormulaEmbeddedMap(); } }; var Fo2 = class extends Za2 { constructor(e29, t) { super(), this._functionService = e29, this._runtimeService = t; } get zIndex() { return Ja2.get(H3.OPERATOR) || 100; } create(e29) { let t = ``, n = e29; n === O4.PLUS ? t = po.PLUS : n === O4.MINUS ? t = po.MINUS : n === O4.MULTIPLY ? t = po.MULTIPLY : n === O4.DIVIDED ? t = po.DIVIDED : n === O4.CONCATENATE ? t = J3.CONCATENATE : n === O4.POWER ? t = K3.POWER : Ke.has(n) && (t = po.COMPARE); let r = this._functionService.getExecutor(t); return r ? new Po2(n, r, this._runtimeService) : (console.error(`No function ${e29}`), Xa.create(D3.NAME)); } checkAndCreateNodeType(e29) { if (e29 instanceof F3) return; let t = e29.trim(); if (!(t.charAt(0) === `"` && t.charAt(t.length - 1) === `"`) && Ge.has(t)) return this.create(t); } }; Fo2 = dr2([P5(0, uo2), P5(1, qa2)], Fo2); var Io2 = class extends ya2 { constructor(e29, t, n, r) { super(e29), this._tableData = t, this._columnDataString = n, this._tableOptionMap = r, E3(this, `_isCurrentRowForRange`, false); let { sheetId: i, range: a, titleMap: o } = this._tableData; this.setForcedSheetIdDirect(i); let { startColumn: s, endColumn: c, type: l } = this._parseStructuredRef(this._columnDataString, o), u = a.startRow, d = a.endRow, f = -1, p = -1; switch (l) { case Fe.ALL: f = u, p = d; break; case Fe.DATA: f = u + 1, p = d; break; case Fe.HEADERS: f = u, p = u; break; case Fe.TOTALS: f = d, p = d; break; case Fe.THIS_ROW: { let e30 = this._resolveThisRow(u, d); f = e30, p = e30; break; } default: f = u + 1, p = d; break; } this.setRangeData({ startColumn: s, endColumn: c, startRow: f, endRow: p }); } getRangeData() { let e29 = super.getRangeData(); if (this._isCurrentRowForRange) { let { startRow: t, startColumn: n, endRow: r, endColumn: i } = e29, a = this.getCurrentRow(); return { startRow: a == null ? t : a, endRow: a == null ? r : a, startColumn: n, endColumn: i }; } return e29; } getRefOffset() { return { x: 0, y: 0 }; } isTable() { return true; } isCurrentRowForRange() { return this._isCurrentRowForRange; } setForcedSheetId(e29) { } _parseStructuredRef(e29, t) { var n, r; let { range: i } = this._tableData, a = (n = i.startColumn) == null ? 0 : n, o = (r = i.endColumn) == null ? 0 : r; if (!e29 || e29.trim().length === 0) return { startColumn: a, endColumn: o, type: Fe.DATA }; let s = e29.trim(); if (s[0] !== `[`) { let e30 = this._mapSection(s); if (e30 !== void 0) return { startColumn: a, endColumn: o, type: e30 }; let { startColumn: n2, endColumn: r2 } = this._parseColumnOrRange(s, t, a); return { startColumn: n2, endColumn: r2, type: Fe.DATA }; } let c = this._stripOuterBracketOnce(s), l = this._findCommaAtTopLevel(c); if (c.length === 0) return { startColumn: a, endColumn: o, type: Fe.DATA }; if (l === -1) { if (c.startsWith(`#`)) { let e31 = this._mapSection(c); return e31 === void 0 ? { startColumn: a, endColumn: o, type: Fe.DATA } : { startColumn: a, endColumn: o, type: e31 }; } let { startColumn: e30, endColumn: n2 } = this._parseColumnOrRange(c, t, a); return { startColumn: e30, endColumn: n2, type: Fe.DATA }; } let u = c.slice(0, l).trim(), d = c.slice(l + 1).trim(), f = this._parseSectionMaybeBracketed(u), { startColumn: p, endColumn: m } = this._parseColumnOrRange(d, t, a); return { startColumn: p, endColumn: m, type: f }; } _stripOuterBracketOnce(e29) { return e29.length >= 2 && e29[0] === `[` && e29[e29.length - 1] === `]` ? e29.slice(1, -1) : e29; } _findCommaAtTopLevel(e29) { let t = 0; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r === `[`) t++; else if (r === `]`) t = Math.max(0, t - 1); else if (r === A3.COMMA && t === 0) return n; } return -1; } _parseSectionMaybeBracketed(e29) { let t = e29.trim(), n = t.startsWith(`[`) && t.endsWith(`]`) ? this._stripOuterBracketOnce(t) : t, r = this._mapSection(n); return r == null ? Fe.DATA : r; } _mapSection(e29) { let t = e29.trim(); if (!t.startsWith(`#`)) return; let n = this._tableOptionMap.get(t); if (n !== void 0) return n; let r = t.replace(/\s+/g, ` `).toLowerCase(); for (let [e30, t2] of this._tableOptionMap.entries()) if (e30.replace(/\s+/g, ` `).toLowerCase() === r) return t2; } _parseColumnOrRange(e29, t, n) { let r = e29.trim(), i = this._findColonAtTopLevel(r); if (i === -1) { let e30 = this._stripOuterBracketIfAny(r), i2 = this._titleToIndex(e30, t); return { startColumn: n + i2, endColumn: +n + i2 }; } let a = r.slice(0, i).trim(), o = r.slice(i + 1).trim(), s = this._stripOuterBracketIfAny(a), c = this._stripOuterBracketIfAny(o), l = this._titleToIndex(s, t), u = this._titleToIndex(c, t); return l !== -1 && u !== -1 && l > u ? { startColumn: n + u, endColumn: n + l } : { startColumn: n + l, endColumn: n + u }; } _stripOuterBracketIfAny(e29) { return e29.length >= 2 && e29[0] === `[` && e29[e29.length - 1] === `]` ? e29.slice(1, -1) : e29; } _findColonAtTopLevel(e29) { let t = 0; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r === `[`) t++; else if (r === `]`) t = Math.max(0, t - 1); else if (r === A3.COLON && t === 0) return n; } return -1; } _titleToIndex(e29, t) { var n; let r = e29.trim(), i = t.get(r); if (i !== void 0) return i; let a = r.replace(/\u3000/g, ` `).trim(); return (n = t.get(a)) == null ? -1 : n; } _resolveThisRow(e29, t) { return this._isCurrentRowForRange = true, Math.min(e29 + 1, t); } }; var Lo2 = class extends Ya2 { constructor(e29, t, n, r, i = false, a) { super(n), this._currentConfigService = e29, this._runtimeService = t, this._referenceObjectType = r, this._isPrepareMerge = i, this._tableReferenceObject = a, E3(this, `_refOffsetX`, 0), E3(this, `_refOffsetY`, 0); } get nodeType() { return H3.REFERENCE; } execute() { let e29 = this._currentConfigService, t = this._runtimeService, n = this._tableReferenceObject || Ba2(this.getToken(), this._referenceObjectType); n.setDefaultUnitId(t.currentUnitId), n.setDefaultSheetId(t.currentSubUnitId), n.setForcedSheetId(e29.getSheetNameMap()), n.setUnitData(e29.getUnitData()), n.setArrayFormulaCellData(e29.getArrayFormulaCellData()), n.setArrayFormulaRange(e29.getArrayFormulaRange()), n.setRuntimeData(t.getUnitData()), n.setUnitStylesData(e29.getUnitStylesData()), n.setRuntimeArrayFormulaCellData(t.getRuntimeArrayFormulaCellData()), n.setRuntimeArrayFormulaRange(t.getUnitArrayFormula()), n.setRuntimeFeatureCellData(t.getRuntimeFeatureCellData()); let r = t.currentRow, i = t.currentColumn; n.setCurrentRowAndColumn(r, i); let { x: a, y: o } = this.getRefOffset(); n.setRefOffset(a, o), !this._isPrepareMerge && n.isExceedRange() ? this.setValue(j3.create(D3.NAME)) : this.setValue(n); } setRefOffset(e29 = 0, t = 0) { this._refOffsetX = e29, this._refOffsetY = t; } getRefOffset() { return { x: this._refOffsetX, y: this._refOffsetY }; } }; var Ro2 = class extends Za2 { constructor(e29, t, n, r) { super(), this._currentConfigService = e29, this._formulaRuntimeService = t, this._functionService = n, this._superTableService = r; } get zIndex() { return Ja2.get(H3.REFERENCE) || 100; } checkAndCreateNodeType(e29) { let t = false, n, r = false; if (e29 instanceof F3) { var i; t = true, n = e29.getToken().trim(), ((i = e29.getParent()) == null || (i = i.getParent()) == null ? void 0 : i.getToken().trim()) === A3.COLON && (r = true); } else n = e29.trim(); let { tokenTrim: a, minusPrefixNode: o, atPrefixNode: s } = go(n, this._functionService, this._formulaRuntimeService); if (!t && a.charAt(0) === `"` && a.charAt(a.length - 1) === `"`) return; let c = this._getNode(a, t, r, e29); if (c) return s ? c.setParent(s) : o && c.setParent(o), c; } _getTableMap() { let e29 = this._currentConfigService.getExecuteUnitId(); if (e29) return this._superTableService.getTableMap(e29); } _getNode(e29, t, n, r) { var i; let a = this._currentConfigService, o = this._formulaRuntimeService, s = (t2) => new Lo2(a, o, e29, t2, n), c = this._getTableMap(); if ((i = c == null ? void 0 : c.has(e29)) != null && i) return this._getTableReferenceNode(e29, t, n, true); if (gn2(e29)) return s(za2.CELL); let l = t && this._checkParentIsUnionOperator(r); return l && bn(e29) ? s(za2.ROW) : l && xn2(e29) ? s(za2.COLUMN) : this._getTableReferenceNode(e29, t, n, false); } _getTableReferenceNode(e29, t, n, r = false) { if (!this._checkTokenIsTableReference(e29) && !r) return; let { tableName: i, columnStruct: a } = ur2(e29), o = this._getTableMap(); if (!t && o != null && o.has(i)) { let t2 = a, r2 = o.get(i), s = this._superTableService.getTableOptionMap(); return new Lo2(this._currentConfigService, this._formulaRuntimeService, e29, za2.COLUMN, n, new Io2(e29, r2, t2, s)); } } _checkTokenIsTableReference(e29) { return Sn2(e29) || Cn2(e29) || wn2(e29) || Tn2(e29); } _checkParentIsUnionOperator(e29) { var t; return ((t = e29.getParent()) == null || (t = t.getParent()) == null ? void 0 : t.getToken().trim()) === A3.COLON; } }; Ro2 = dr2([P5(0, fi2), P5(1, qa2), P5(2, uo2), P5(3, zr2)], Ro2); var zo2 = class extends Ya2 { constructor(e29, t, n, r) { super(n), this._currentConfigService = e29, this._lexer = t, this._operatorString = n, this._functionExecutor = r; } get nodeType() { return H3.SUFFIX; } execute() { var e29; let t = (e29 = this.getChildren()[0]) == null ? void 0 : e29.getValue(), n; if (t == null) { this.setValue(j3.create(D3.ERROR)); return; } if (this._operatorString === qe2.PERCENTAGE) { if (t.isReferenceObject() && (t = t.toArrayValueObject()), n = this._functionExecutor.calculate(t, R4.create(100)), n.isNumber()) { let e30 = Number(n.getValue()); n = R4.create(e30, `0.00%`); } } else n = this._operatorString === qe2.POUND ? this._handlerPound(t) : j3.create(D3.VALUE); this.setValue(n); } _handlerPound(e29) { var t; if (!e29.isReferenceObject() || !e29.isCell()) return j3.create(D3.VALUE); let n = e29, r = n.getRangePosition(), i = n.getUnitId(), a = n.getSheetId(), o = this._currentConfigService.getFormulaData(), s = o == null || (t = o[i]) == null || (t = t[a]) == null || (t = t[r.startRow]) == null || (t = t[r.startColumn]) == null ? void 0 : t.f; return s && this._lexer.treeBuilder(s), j3.create(D3.VALUE); } }; var Bo2 = class extends Za2 { constructor(e29, t, n) { super(), this._functionService = e29, this._lexer = t, this._currentConfigService = n; } get zIndex() { return Ja2.get(H3.SUFFIX) || 100; } checkAndCreateNodeType(e29) { if (!(e29 instanceof F3)) return; let t = e29.getToken().trim(); if (t.charAt(0) === `"` && t.charAt(t.length - 1) === `"`) return; let n = ``; if (t === qe2.PERCENTAGE) n = po.DIVIDED; else if (t === qe2.POUND) return new zo2(this._currentConfigService, this._lexer, t); else return; let r = this._functionService.getExecutor(n); return r ? new zo2(this._currentConfigService, this._lexer, t, r) : (console.error(`No function ${e29}`), Xa.create(D3.NAME)); } }; Bo2 = dr2([P5(0, uo2), P5(1, Inject(pi)), P5(2, fi2)], Bo2); var Vo2 = class extends Ya2 { constructor(e29) { super(e29); } get nodeType() { return H3.UNION; } execute() { let e29 = this.getChildren(), t = e29[0], n = e29[1], r = t.getValue(), i = n.getValue(); if (r == null || i == null) { console.error(`UnionNode execute leftNode or rightNode is null`), this.setValue(j3.create(D3.VALUE)); return; } let a; a = this.getToken() === A3.COLON ? this._unionFunction(r, i) : j3.create(D3.NAME), this.setValue(a); } _unionFunction(e29, t) { return e29.isError() || t.isError() || !e29.isReferenceObject() || !t.isReferenceObject() ? j3.create(D3.REF) : (e29 = e29, t = t, Va(e29, t)); } }; var Ho = class extends Za2 { constructor(e29) { super(), this._functionService = e29; } get zIndex() { return Ja2.get(H3.UNION) || 100; } create(e29) { return new Vo2(e29); } checkAndCreateNodeType(e29) { if (!(e29 instanceof F3)) return; let t = e29.getToken().trim(); if (!(t.charAt(0) === `"` && t.charAt(t.length - 1) === `"`) && t === A3.COLON) return this.create(t); } }; Ho = dr2([P5(0, uo2)], Ho); var Uo2 = class extends Ya2 { constructor(e29) { super(e29); } get nodeType() { return H3.VALUE; } execute() { let e29 = this.getParent(), t = true; if ((e29 == null ? void 0 : e29.nodeType) === H3.FUNCTION) { var n, r; t = (n = (r = e29.isFunctionExecutorArgumentsIgnoreNumberPattern) == null ? void 0 : r.call(e29)) == null ? true : n; } this.setValue(ga2.create(this.getToken(), t)); } }; var Wo = class extends Za2 { get zIndex() { return Ja2.get(H3.VALUE) || 100; } _checkValueNode(e29) { if (Number.isNaN(Number(e29))) { let t = e29.trim(), n = t.charAt(0), r = t.charAt(t.length - 1); if (Ve2.has(t) || n === `"` && r === `"` || n === `{` && r === `}`) return this.create(t); let i = t.toUpperCase(); if (i === Ne.TRUE || i === Ne.FALSE) return this.create(i); } else return this.create(e29); } create(e29) { return new Uo2(e29); } checkAndCreateNodeType(e29) { if (!(e29 instanceof F3)) return this._checkValueNode(e29); } }; var Go = class extends E { constructor(e29, t, n, r, i, a, o, s, c, l, u) { super(), this._runtimeService = e29, this._astRootNodeFactory = t, this._functionNodeFactory = n, this._lambdaNodeFactory = r, this._lambdaParameterNodeFactory = i, this._operatorNodeFactory = a, this._prefixNodeFactory = o, this._referenceNodeFactory = s, this._suffixNodeFactory = c, this._unionNodeFactory = l, this._valueNodeFactory = u, E3(this, `_astNodeFactoryList`, []), this._initializeAstNode(); } dispose() { this._astNodeFactoryList.forEach((e29) => { e29.dispose(); }), this._astNodeFactoryList = []; } parse(e29) { let t = new Qa(`R_1`), n = this._parse(e29, t); return e29.hasDefinedNames() && (n == null || n.setDefinedNames(e29.getDefinedNames())), n; } _lambdaParameterHandler(e29, t) { if (t.getLambdaId == null) return Xa.create(D3.VALUE); let n = t.getLambdaId(), r = new Qa(`R_1`), i = this._runtimeService.getFunctionDefinitionPrivacyVar(n); if (!i) return false; let a = [...i.keys()], o = e29.getChildren(), s = o.length; for (let e30 = 0; e30 < s; e30++) { let t2 = o[e30]; if (t2 instanceof F3) { Co2(t2, n, i), this._parse(t2, r); let o2 = r.getChildren()[e30]; o2 != null && i.set(a[e30], o2); } else return false; } return r.setParent(t), t; } _changeLetToLambda(e29) { let t = e29.getChildren(), n = t.length; if (n % 2 != 1 || n === 0) return; let r = new F3(); r.setToken(Fn2); let i = new F3(); i.setToken(`L_1`); let a = [...t]; for (let e30 = 0; e30 < n; e30++) { let t2 = a[e30]; if (!(t2 instanceof F3)) return; e30 % 2 == 0 ? t2.changeToParent(r) : t2.changeToParent(i); } r.addChildrenFirst(i), i.setParent(r); let o = e29.getParent(); return o == null || o.replaceChild(e29, r), r; } _parse(e29, t) { let n = e29.getChildren(), r = n.length, i = [], a = null, o = e29.getToken().trim().toUpperCase(); if (o === `LET`) { let n2 = this._changeLetToLambda(e29); return n2 == null ? Xa.create(D3.ERROR) : this._parse(n2, t); } if (o === `P_1`) { if (a = t, r === 0) return new No2(`R_1`).setParent(t), a; } else { if (o === `L_1`) { let n2 = this._lambdaParameterHandler(e29, t); return n2 === false && (n2 = Xa.create(D3.ERROR)), n2; } if (a = this._checkAstNode(e29), a == null) return Xa.create(D3.NAME); } let s = n[0]; for (let e30 = 0; e30 < r; e30++) { let t2 = n[e30]; if (xo(s)) { if (e30 !== 0 && e30 !== r - 1) continue; } else if (So(t2) && e30 !== r - 1) continue; let o2 = null; if (t2 instanceof F3) { if (t2.getToken() === `P_1` && t2.getChildren().length === 0) { var c; let e31 = (c = t2.getParent()) == null ? void 0 : c.getChildren(); if (e31 && e31.length === 1) return Xa.create(D3.NAME); } if (o2 = this._parse(t2, a), o2 === a) continue; } else o2 = this._checkAstNode(t2); if (o2 == null) return Xa.create(D3.NAME); if (o2 = wo2(o2), o2 == null || (o2 == null ? void 0 : o2.nodeType) === H3.ERROR) return o2; switch (o2.nodeType) { case H3.FUNCTION: { let e31 = o2.getToken().trim().toUpperCase(); In.has(e31) && o2.setForcedCalculateFunction(), i.push(o2); break; } case H3.LAMBDA: i.push(o2); break; case H3.LAMBDA_PARAMETER: i.push(o2); break; case H3.OPERATOR: { let e31 = i.pop(), t3 = i.pop(); t3 && t3.setParent(o2), e31 && e31.setParent(o2), i.push(o2); break; } case H3.REFERENCE: i.push(o2); break; case H3.ROOT: i.push(o2); break; case H3.UNION: i.push(o2); break; case H3.VALUE: i.push(o2); break; case H3.PREFIX: i.push(o2); break; case H3.SUFFIX: i.push(o2); break; } } let l = i.length; for (let e30 = 0; e30 < l; e30++) i[e30].setParent(a); return a; } _checkAstNode(e29) { let t = null, n = this._astNodeFactoryList.length; for (let r = 0; r < n && (t = this._astNodeFactoryList[r].checkAndCreateNodeType(e29), t == null); r++) ; return t == null ? new vo() : t; } _initializeAstNode() { this._astNodeFactoryList = [this._astRootNodeFactory, this._functionNodeFactory, this._lambdaNodeFactory, this._lambdaParameterNodeFactory, this._operatorNodeFactory, this._prefixNodeFactory, this._referenceNodeFactory, this._suffixNodeFactory, this._unionNodeFactory, this._valueNodeFactory].sort(Jo); } }; Go = dr2([P5(0, qa2), P5(1, Inject($a2)), P5(2, Inject(yo2)), P5(3, Inject(ko2)), P5(4, Inject(Mo2)), P5(5, Inject(Fo2)), P5(6, Inject(ho)), P5(7, Inject(Ro2)), P5(8, Inject(Bo2)), P5(9, Inject(Ho)), P5(10, Inject(Wo))], Go); var Ko = class extends E { constructor(...e29) { super(...e29), E3(this, `_otherFormulaData`, /* @__PURE__ */ new Map()), E3(this, `_featureFormulaData`, /* @__PURE__ */ new Map()), E3(this, `_formulaData`, /* @__PURE__ */ new Map()), E3(this, `_definedNameMap`, /* @__PURE__ */ new Map()), E3(this, `_otherFormulaDataMainData`, /* @__PURE__ */ new Set()), E3(this, `_dependencyRTreeCache`, new dd()), E3(this, `_dependencyTreeIdLast`, 0); } buildDependencyTree(e29, t) { throw Error(`Method not implemented.`); } getTreeById(e29) { throw Error(`Method not implemented.`); } getAllTree() { throw Error(`Method not implemented.`); } reset() { throw Error(`Method not implemented.`); } addOtherFormulaDependency(e29, t, n, r) { throw Error(`Method not implemented.`); } removeOtherFormulaDependency(e29, t, n) { throw Error(`Method not implemented.`); } clearOtherFormulaDependency(e29, t) { throw Error(`Method not implemented.`); } addFeatureFormulaDependency(e29, t, n, r) { throw Error(`Method not implemented.`); } removeFeatureFormulaDependency(e29, t, n) { throw Error(`Method not implemented.`); } clearFeatureFormulaDependency(e29, t) { throw Error(`Method not implemented.`); } addFormulaDependency(e29, t, n, r, i) { throw Error(`Method not implemented.`); } removeFormulaDependency(e29, t, n, r) { throw Error(`Method not implemented.`); } clearFormulaDependency(e29, t) { throw Error(`Method not implemented.`); } removeFormulaDependencyByDefinedName(e29, t) { throw Error(`Method not implemented.`); } searchDependency(e29, t) { return this._dependencyRTreeCache.bulkSearch(e29, t); } _restDependencyTreeId() { this._dependencyTreeIdLast = 0; } getOtherFormulaDependency(e29, t, n) { var r; return (r = this._otherFormulaData.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } addOtherFormulaDependencyMainData(e29) { this._otherFormulaDataMainData.add(e29); } hasOtherFormulaDataMainData(e29) { return this._otherFormulaDataMainData.has(e29); } _removeDependencyRTreeCacheById(e29, t) { this._dependencyRTreeCache.removeById(e29, t); } getFeatureFormulaDependency(e29, t, n) { var r; return (r = this._featureFormulaData.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } getFormulaDependency(e29, t, n, r) { var i; return (i = this._formulaData.get(e29)) == null || (i = i.get(t)) == null ? void 0 : i.getValue(n, r); } addDependencyRTreeCache(e29) { let t = []; for (let n = 0; n < e29.rangeList.length; n++) { let { unitId: r, sheetId: i, range: a } = e29.rangeList[n]; t.push({ unitId: r, sheetId: i, range: a, id: e29.treeId }); } this._dependencyRTreeCache.bulkInsert(t), this._addAllTreeMap(e29); } getLastTreeId() { let e29 = this._dependencyTreeIdLast; return this._dependencyTreeIdLast++, e29; } _addAllTreeMap(e29) { throw Error(`Method not implemented.`); } _addDefinedName(e29, t, n) { this._definedNameMap.has(e29) || this._definedNameMap.set(e29, /* @__PURE__ */ new Map()); let r = this._definedNameMap.get(e29); r.has(t) || r.set(t, /* @__PURE__ */ new Set()), r.get(t).add(n); } addFormulaDependencyByDefinedName(e29, t) { let n = e29.treeId, r = (t == null ? void 0 : t.getDefinedNames()) || []; for (let t2 of r) this._addDefinedName(e29.unitId, t2, n); } updateDependencyTreeDirtyState(e29, t) { throw Error(`Method not implemented.`); } }; var qo = class extends Ko { constructor(...e29) { super(...e29), E3(this, `_allTreeMap`, /* @__PURE__ */ new Map()); } dispose() { super.dispose(), this.reset(); } buildDependencyTree(e29, t = []) { let n = this.getAllTree(); return e29.length === 0 ? (this._buildReverseDependency(n, t), n) : (this._buildDependencyTree(n, e29), this._buildReverseDependency(n, e29), n); } _buildDependencyTree(e29, t) { let n = /* @__PURE__ */ new Map(); for (let e30 = 0; e30 < t.length; e30++) { let r = t[e30]; n.set(r.treeId, r); } for (let t2 = 0; t2 < e29.length; t2++) { let r = e29[t2], i = r.toRTreeItem(), a = this._dependencyRTreeCache.bulkSearch(i); for (let e30 of a) { let t3 = n.get(e30); t3 && r !== t3 && !t3.hasChildren(r.treeId) && t3.pushChildren(r); } } n.clear(); } _buildReverseDependency(e29, t) { let n = /* @__PURE__ */ new Map(); for (let t2 = 0; t2 < e29.length; t2++) { let r = e29[t2]; n.set(r.treeId, r); } for (let e30 = 0; e30 < t.length; e30++) { let r = t[e30], i = r.toRTreeItem(), a = this._dependencyRTreeCache.bulkSearch(i); for (let e31 of a) { let t2 = n.get(e31); t2 && r !== t2 && !t2.hasChildren(r.treeId) && t2.pushChildren(r); } } n.clear(); } getAllTree() { let e29 = []; return this._allTreeMap.forEach((t) => { t.resetState(), e29.push(t); }), e29; } getTreeById(e29) { return this._allTreeMap.get(e29); } reset() { this._otherFormulaData.clear(), this._featureFormulaData.clear(), this._formulaData.clear(), this._definedNameMap.clear(), this._otherFormulaDataMainData.clear(), this._dependencyRTreeCache.clear(), this._allTreeMap.clear(), this._restDependencyTreeId(); } addOtherFormulaDependency(e29, t, n, r) { this._otherFormulaData.has(e29) || this._otherFormulaData.set(e29, /* @__PURE__ */ new Map()); let i = this._otherFormulaData.get(e29); i.has(t) || i.set(t, /* @__PURE__ */ new Map()); let a = i.get(t); a.has(n) || a.set(n, new Sa()), a.get(n).setValue(r.refOffsetX, r.refOffsetY, r.treeId), this._addAllTreeMap(r); } removeOtherFormulaDependency(e29, t, n) { let r = this._otherFormulaData.get(e29); if (r && r.has(t)) { let i = r.get(t); n.forEach((e30) => { let t2 = i.get(e30); t2 != null && (t2.forValue((e31, t3, n2) => { this._removeDependencyRTreeCache(n2), this.clearDependencyForTree(this._allTreeMap.get(n2)), this._removeAllTreeMap(n2); }), i.delete(e30), this._otherFormulaDataMainData.delete(e30)); }), i.size === 0 && r.delete(t), r.size === 0 && this._otherFormulaData.delete(e29); } } clearOtherFormulaDependency(e29, t) { let n = this._otherFormulaData.get(e29); if (t && n && n.has(t)) { let r = n.get(t); this._removeDependencyRTreeCacheById(e29, t); for (let e30 of r.keys()) { let t2 = r.get(e30); t2 != null && (t2.forValue((e31, t3, n2) => { let r2 = this._allTreeMap.get(n2); r2 && (this.clearDependencyForTree(r2), this._removeAllTreeMap(n2)); }), this._otherFormulaDataMainData.delete(e30)); } r.clear(); } else if (n) { for (let t2 of n.keys()) { let r = n.get(t2); this._removeDependencyRTreeCacheById(e29, t2); for (let e30 of r.keys()) { let t3 = r.get(e30); t3 != null && (t3.forValue((e31, t4, n2) => { let r2 = this._allTreeMap.get(n2); r2 && (this.clearDependencyForTree(r2), this._removeAllTreeMap(n2)); }), this._otherFormulaDataMainData.delete(e30)); } } this._otherFormulaData.delete(e29); } } addFeatureFormulaDependency(e29, t, n, r) { this._featureFormulaData.has(e29) || this._featureFormulaData.set(e29, /* @__PURE__ */ new Map()); let i = this._featureFormulaData.get(e29); i.has(t) || i.set(t, /* @__PURE__ */ new Map()), i.get(t).set(n, r.treeId), this._addAllTreeMap(r); } removeFeatureFormulaDependency(e29, t, n) { let r = this._featureFormulaData.get(e29); if (r && r.has(t)) { let e30 = r.get(t); n.forEach((t2) => { let n2 = e30.get(t2); n2 != null && (this._removeDependencyRTreeCache(n2), e30.delete(t2), this.clearDependencyForTree(this._allTreeMap.get(n2)), this._removeAllTreeMap(n2)); }); } } clearFeatureFormulaDependency(e29, t) { let n = this._featureFormulaData.get(e29); if (t && n && n.has(t)) { let r = n.get(t); this._removeDependencyRTreeCacheById(e29, t), r.forEach((e30) => { e30 != null && (this.clearDependencyForTree(this._allTreeMap.get(e30)), this._removeAllTreeMap(e30)); }), r.clear(); } else n && (n.forEach((t2, n2) => { this._removeDependencyRTreeCacheById(e29, n2), t2.forEach((e30) => { e30 != null && (this.clearDependencyForTree(this._allTreeMap.get(e30)), this._removeAllTreeMap(e30)); }); }), this._featureFormulaData.delete(e29)); } addFormulaDependency(e29, t, n, r, i) { this._formulaData.has(e29) || this._formulaData.set(e29, /* @__PURE__ */ new Map()); let a = this._formulaData.get(e29); a.has(t) || a.set(t, new Sa()), a.get(t).setValue(n, r, i.treeId), this._addAllTreeMap(i); } removeFormulaDependency(e29, t, n, r) { let i = this._formulaData.get(e29); if (i && i.has(t)) { let e30 = i.get(t), a = e30.getValue(n, r); if (a == null) return; this._removeDependencyRTreeCache(a), e30.realDeleteValue(n, r), this.clearDependencyForTree(this._allTreeMap.get(a)), this._removeAllTreeMap(a); } } clearFormulaDependency(e29, t) { let n = this._formulaData.get(e29); if (t && n && n.has(t)) { let r = n.get(t); this._removeDependencyRTreeCacheById(e29, t), r.forValue((e30, t2, n2) => { if (n2 == null) return true; this.clearDependencyForTree(this._allTreeMap.get(n2)), this._removeAllTreeMap(n2); }), r.reset(); } else n && (n.forEach((t2, n2) => { this._removeDependencyRTreeCacheById(e29, n2), t2.forValue((e30, t3, n3) => { if (n3 == null) return true; this.clearDependencyForTree(this._allTreeMap.get(n3)), this._removeAllTreeMap(n3); }); }), this._formulaData.delete(e29)); } clearDependencyForTree(e29) { if (e29 == null) return; let t = e29.parents, n = e29.children, r = this._allTreeMap; for (let n2 of t) { let t2 = r.get(n2); t2 == null || t2.children.delete(e29.treeId); } for (let t2 of n) { let n2 = r.get(t2); n2 == null || n2.parents.delete(e29.treeId); } e29.dispose(); } _removeDependencyRTreeCache(e29) { if (e29 == null) return; let t = this._allTreeMap.get(e29); if (t) { let n = []; for (let r = 0; r < t.rangeList.length; r++) { let { unitId: i, sheetId: a, range: o } = t.rangeList[r]; n.push({ unitId: i, sheetId: a, range: o, id: e29 }); } this._dependencyRTreeCache.bulkRemove(n); } } removeFormulaDependencyByDefinedName(e29, t) { let n = this._definedNameMap.get(e29); if (n) { let e30 = n.get(t); if (e30) { for (let t2 of e30) this._removeDependencyRTreeCache(t2), this.clearDependencyForTree(this._allTreeMap.get(t2)), this._removeAllTreeMap(t2); e30.clear(); } } } _removeAllTreeMap(e29) { e29 != null && this._allTreeMap.delete(e29); } _addAllTreeMap(e29) { this._allTreeMap.set(e29.treeId, e29); } updateDependencyTreeDirtyState(e29, t) { let n = this._allTreeMap.get(e29); n && (n.isDirty = t); } }; var Jo2 = createIdentifier(`univer.formula.dependency-manager.service`); var Yo = class extends E { constructor(...e29) { super(...e29), E3(this, `_referenceExecutorMap`, /* @__PURE__ */ new Map()), E3(this, `_onChanged$`, new Subject()), E3(this, `onChanged$`, this._onChanged$.asObservable()); } dispose() { super.dispose(), this._referenceExecutorMap.clear(), this._onChanged$.complete(); } remove(e29, t, n) { n.forEach((n2) => { var r; (r = this._referenceExecutorMap.get(e29)) == null || (r = r.get(t)) == null || r.delete(n2); }), this._onChanged$.next({ unitId: e29, subUnitId: t, featureIds: n }); } get(e29, t, n) { var r; return (r = this._referenceExecutorMap.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } has(e29, t, n) { var r; return !!(!((r = this._referenceExecutorMap.get(e29)) == null || (r = r.get(t)) == null) && r.has(n)); } register(e29, t, n, r) { let i = this._referenceExecutorMap.get(e29); i || (i = /* @__PURE__ */ new Map(), this._referenceExecutorMap.set(e29, i)); let a = i.get(t); a || (a = /* @__PURE__ */ new Map(), i.set(t, a)), this._onChanged$.next({ unitId: e29, subUnitId: t, featureIds: [n] }), a.set(n, r); } getReferenceExecutorMap() { return this._referenceExecutorMap; } }; var Xo2 = createIdentifier(`univer.formula.feature-calculation-manager.service`); var Zo2 = class extends E { constructor(...e29) { super(...e29), E3(this, `_otherFormulaData`, {}); } dispose() { super.dispose(), this._otherFormulaData = {}; } remove(e29) { var t; let { unitId: n, subUnitId: r, formulaId: i } = e29; (t = this._otherFormulaData) == null || (t = t[n]) == null || (t = t[r]) == null || delete t[i]; } get(e29) { var t; let { unitId: n, subUnitId: r, formulaId: i } = e29; return (t = this._otherFormulaData[n]) == null || (t = t[r]) == null ? void 0 : t[i]; } has(e29) { var t; let { unitId: n, subUnitId: r, formulaId: i } = e29; return ((t = this._otherFormulaData[n]) == null || (t = t[r]) == null ? void 0 : t[i]) != null; } register(e29) { let { unitId: t, subUnitId: n, formulaId: r, item: i } = e29; this._otherFormulaData[t] || (this._otherFormulaData[t] = {}), this._otherFormulaData[t][n] || (this._otherFormulaData[t][n] = {}), this._otherFormulaData[t][n][r] = i; } batchRegister(e29) { Object.keys(e29).forEach((t) => { let n = e29[t]; if (n == null) return true; Object.keys(n).forEach((e30) => { let r = n[e30]; if (r == null) return true; Object.keys(r).forEach((n2) => { let i = r[n2]; if (i == null) return true; this.register({ unitId: t, subUnitId: e30, formulaId: n2, item: i }); }); }); }); } batchRemove(e29) { Object.keys(e29).forEach((t) => { let n = e29[t]; if (n == null) return true; Object.keys(n).forEach((e30) => { let r = n[e30]; if (r == null) return true; Object.keys(r).forEach((n2) => { this.remove({ unitId: t, subUnitId: e30, formulaId: n2 }); }); }); }); } getOtherFormulaData() { return this._otherFormulaData; } }; var Qo2 = createIdentifier(`univer.formula.other-formula-manager.service`); var $o2 = (function(e29) { return e29[e29.DEFAULT = 0] = `DEFAULT`, e29[e29.ADDED = 1] = `ADDED`, e29[e29.SKIP = 2] = `SKIP`, e29; })({}); var es2 = (function(e29) { return e29[e29.NORMAL_FORMULA = 0] = `NORMAL_FORMULA`, e29[e29.OTHER_FORMULA = 1] = `OTHER_FORMULA`, e29[e29.FEATURE_FORMULA = 2] = `FEATURE_FORMULA`, e29; })({}); var ts2 = class { constructor() { E3(this, `_state`, $o2.DEFAULT), E3(this, `type`, es2.NORMAL_FORMULA), E3(this, `treeId`, void 0), E3(this, `children`, /* @__PURE__ */ new Set()), E3(this, `parents`, /* @__PURE__ */ new Set()); } resetState() { this._state = $o2.DEFAULT; } setAdded() { this._state = $o2.ADDED; } isAdded() { return this._state === $o2.ADDED; } setSkip() { this._state = $o2.SKIP; } isSkip() { return this._state === $o2.SKIP; } pushChildren(e29) { this.children.add(e29.treeId), e29._pushParent(this); } hasChildren(e29) { return this.children.has(e29); } _pushParent(e29) { this.parents.add(e29.treeId); } }; var ns2 = class extends ts2 { constructor(...e29) { super(...e29), E3(this, `refTree`, void 0), E3(this, `refOffsetX`, -1), E3(this, `refOffsetY`, -1), E3(this, `isCache`, false), E3(this, `isDirty`, false), E3(this, `addressFunctionNodes`, []), E3(this, `getDirtyData`, void 0), E3(this, `featureId`, void 0); } get isVirtual() { return true; } get row() { return this.refTree == null ? -1 : this.refTree.row + this.refOffsetY; } get column() { return this.refTree == null ? -1 : this.refTree.column + this.refOffsetX; } get rowCount() { return this.refTree == null ? 0 : this.refTree.rowCount; } get columnCount() { return this.refTree == null ? 0 : this.refTree.columnCount; } get unitId() { return this.refTree == null ? `` : this.refTree.unitId; } get subUnitId() { return this.refTree == null ? `` : this.refTree.subUnitId; } get formula() { var e29, t; return (e29 = (t = this.refTree) == null ? void 0 : t.formula) == null ? `` : e29; } get nodeData() { return { node: this.node, refOffsetX: this.refOffsetX, refOffsetY: this.refOffsetY }; } get node() { var e29; return (e29 = this.refTree) == null ? void 0 : e29.node; } dispose() { this.refTree = null; } get rangeList() { let e29 = []; if (this.refTree == null) return []; for (let t = 0; t < this.refTree.rangeList.length; t++) { let n = this.refTree.rangeList[t]; e29.push({ unitId: n.unitId, sheetId: n.sheetId, range: Do(n.range, this.refOffsetX, this.refOffsetY) }); } return e29; } toRTreeItem() { let e29 = this.row, t = this.column; return [{ unitId: this.unitId, sheetId: this.subUnitId, range: { startRow: e29, startColumn: t, endRow: e29, endColumn: t } }]; } inRangeData(e29) { let t = e29.startRow, n = e29.startColumn, r = e29.endRow, i = e29.endColumn, a = this.row, o = this.column; return !(a < t || a > r || o < n || o > i); } dependencySheetName(e29) { return this.refTree == null ? false : this.refTree.dependencySheetName(e29); } isExcludeRange(e29) { let t = this.rangeList; if (t.length === 0) return false; for (let r = 0, i = t.length; r < i; r++) { var n; let { unitId: i2, sheetId: a, range: o } = t[r], s = e29 == null || (n = e29[i2]) == null ? void 0 : n[a], { startRow: c, endRow: l, startColumn: u, endColumn: d } = o; Number.isNaN(c) && (c = 0), Number.isNaN(u) && (u = 0), Number.isNaN(l) && (l = 1 / 0), Number.isNaN(d) && (d = 1 / 0); let f = false; if (s == null || s.forValue((e30, t2) => { if (e30 >= c && e30 <= l && t2 >= u && t2 <= d) return f = true, false; }), f) return true; } return false; } get formulaId() { return this.refTree == null ? `` : this.refTree.formulaId; } }; var rs2 = class extends ts2 { constructor(e29) { super(), E3(this, `isCache`, false), E3(this, `featureId`, void 0), E3(this, `featureDirtyRanges`, []), E3(this, `refOffsetX`, 0), E3(this, `refOffsetY`, 0), E3(this, `formulaId`, void 0), E3(this, `subUnitId`, ``), E3(this, `unitId`, ``), E3(this, `rangeList`, []), E3(this, `formula`, ``), E3(this, `row`, -1), E3(this, `column`, -1), E3(this, `rowCount`, -1 / 0), E3(this, `columnCount`, -1 / 0), E3(this, `isDirty`, false), E3(this, `node`, void 0), E3(this, `addressFunctionNodes`, []), E3(this, `getDirtyData`, void 0), this.treeId = e29; } get isVirtual() { return false; } get nodeData() { return { node: this.node, refOffsetX: 0, refOffsetY: 0 }; } toJson() { return { formula: this.formula, refOffsetX: this.refOffsetX, refOffsetY: this.refOffsetY }; } dispose() { this.featureDirtyRanges = [], this.rangeList = [], this.addressFunctionNodes = [], this.getDirtyData = null; } inRangeData(e29) { let t = e29.startRow, n = e29.startColumn, r = e29.endRow, i = e29.endColumn, a = this.row, o = this.column; return !(a < t || a > r || o < n || o > i); } dependencySheetName(e29) { let t = this.rangeList; if (t.length === 0 || e29 == null) return false; for (let r = 0, i = t.length; r < i; r++) { var n; let { unitId: i2, sheetId: a } = t[r]; if (((n = e29[i2]) == null ? void 0 : n[a]) != null) return true; } return false; } isExcludeRange(e29) { let t = this.rangeList; if (t.length === 0) return false; for (let r = 0, i = t.length; r < i; r++) { var n; let { unitId: i2, sheetId: a, range: o } = t[r], s = e29 == null || (n = e29[i2]) == null ? void 0 : n[a], { startRow: c, endRow: l, startColumn: u, endColumn: d } = o; Number.isNaN(c) && (c = 0), Number.isNaN(u) && (u = 0), Number.isNaN(l) && (l = 1 / 0), Number.isNaN(d) && (d = 1 / 0); let f = false; if (s == null || s.forValue((e30, t2) => { if (e30 >= c && e30 <= l && t2 >= u && t2 <= d) return f = true, false; }), f) return true; } return false; } pushRangeList(e29) { this.rangeList.push(...e29); } shouldBePushRangeList() { return this.rangeList.length === 0 && this.type !== es2.FEATURE_FORMULA; } toRTreeItem() { if (this.featureId != null) return this.featureDirtyRanges; let e29 = this.row, t = this.column; return [{ unitId: this.unitId, sheetId: this.subUnitId, range: { startRow: e29, startColumn: t, endRow: e29, endColumn: t } }]; } }; var is2 = class { constructor(e29) { if (E3(this, `children`, /* @__PURE__ */ new Set()), E3(this, `parents`, /* @__PURE__ */ new Set()), E3(this, `treeId`, -1), E3(this, `formula`, ``), E3(this, `refOffsetX`, 0), E3(this, `refOffsetY`, 0), E3(this, `row`, -1), E3(this, `column`, -1), E3(this, `unitId`, ``), E3(this, `subUnitId`, ``), E3(this, `rangeList`, []), E3(this, `refTreeId`, void 0), E3(this, `formulaId`, void 0), E3(this, `featureId`, void 0), E3(this, `type`, void 0), this.treeId = e29.treeId, this.row = e29.row, this.column = e29.column, this.unitId = e29.unitId, this.subUnitId = e29.subUnitId, this.refOffsetX = e29.refOffsetX, this.refOffsetY = e29.refOffsetY, this.rangeList = e29.rangeList, e29.isVirtual) { var t, n; this.refTreeId = (t = (n = e29.refTree) == null ? void 0 : n.treeId) == null ? -1 : t; } else { var r, i; this.formula = e29.formula, this.formulaId = (r = e29.formulaId) == null ? void 0 : r, this.featureId = (i = e29.featureId) == null ? void 0 : i, this.type = e29.type; } } toJson() { return { children: Array.from(this.children).map((e29) => e29.treeId), parents: Array.from(this.parents).map((e29) => e29.treeId), treeId: this.treeId, formula: this.formula, row: this.row, column: this.column, unitId: this.unitId, subUnitId: this.subUnitId, refOffsetX: this.refOffsetX, refOffsetY: this.refOffsetY, rangeList: this.rangeList, refTreeId: this.refTreeId, formulaId: this.formulaId, featureId: this.featureId, type: this.type }; } toFullJson() { return { children: Array.from(this.children).map((e29) => e29.toJson()), parents: Array.from(this.parents).map((e29) => e29.toJson()), treeId: this.treeId, formula: this.formula, row: this.row, column: this.column, unitId: this.unitId, subUnitId: this.subUnitId, refOffsetX: this.refOffsetX, refOffsetY: this.refOffsetY, rangeList: this.rangeList, refTreeId: this.refTreeId, formulaId: this.formulaId, featureId: this.featureId, type: this.type }; } addParent(e29) { this.parents.add(e29); } addChild(e29) { this.children.add(e29); } }; function as2(e29) { return e29.getLastTreeId() || 0; } var os2 = createIdentifier(`engine-formula.dependency-generator`); var ss2 = class extends E { constructor(e29, t, n, r, i, a, o, s, c, l) { super(), this._currentConfigService = e29, this._runtimeService = t, this._otherFormulaManagerService = n, this._featureCalculationManagerService = r, this._univerInstanceService = i, this._interpreter = a, this._astTreeBuilder = o, this._lexer = s, this._dependencyManagerService = c, this._lexerTreeBuilder = l, E3(this, `_updateRangeFlattenCache`, /* @__PURE__ */ new Map()), E3(this, `_dependencyRTreeCacheForAddressFunction`, new dd()), E3(this, `_executedAddressFunctionNodeIds`, /* @__PURE__ */ new Set()), E3(this, `_formulaDependencyTreeModel`, /* @__PURE__ */ new Map()), this._initUnitDispose(); } dispose() { super.dispose(), this._updateRangeFlattenCache.clear(), this._dependencyRTreeCacheForAddressFunction.clear(), oo2.clear(); } _initUnitDispose() { this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).subscribe((e29) => { this._disposeByUnitId(e29.getUnitId()); })); } _disposeByUnitId(e29) { oo2.forEach((t, n) => { n.startsWith(e29) && oo2.delete(n); }); } async generate(e29 = false) { this._updateRangeFlatten(); let t = this._currentConfigService.getFormulaData(), n = this._otherFormulaManagerService.getOtherFormulaData(), r = this._currentConfigService.getClearDependencyTreeCache(); r != null && Object.keys(r).forEach((e30) => { e30 != null && Object.keys(r[e30]).forEach((t2) => { t2 != null && (this._dependencyManagerService.clearOtherFormulaDependency(e30, t2), this._dependencyManagerService.clearFeatureFormulaDependency(e30, t2), this._dependencyManagerService.clearFormulaDependency(e30, t2)); }); }); let i = this._currentConfigService.getUnitData(), a = await this._generateTreeList(t, n, i); e29 && this._runtimeService.setDependencyTreeModelData(this._getAllDependencyJson(a)); let o = this._getUpdateTreeListAndMakeDependency(a), s = this._calculateRunList(o); return this._dependencyFeatureCalculation(s) && (s.forEach((e30) => { e30.resetState(); }), s = this._calculateRunList(s)), this._checkIsCycleDependency(s) && this._runtimeService.enableCycleDependency(), this._dependencyRTreeCacheForAddressFunction.clear(), this._runtimeService.clearArrayObjectCache(), Promise.resolve(s); } _dependencyFeatureCalculation(e29) { let t = this._featureCalculationManagerService.getReferenceExecutorMap(); if (t.size === 0) return; this._clearFeatureCalculationNode(e29); let n = false; return t.forEach((t2, r) => { t2.forEach((t3, r2) => { t3.forEach((t4, r3) => { let { unitId: i, subUnitId: a, getDirtyData: o } = t4, s = o(this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData()), c = this._convertDirtyRangesToUnitRange(s.dirtyRanges), l = this._intersectFeatureCalculation(c, e29, { unitId: i, subUnitId: a, featureId: r3 }); if (l.length > 0) { let o2 = this._getExistTreeList({ unitId: i, subUnitId: a, featureId: r3 }, e29); o2 == null && (o2 = this._getFeatureFormulaTree(r3, as2(this._dependencyManagerService), t4), e29.push(o2)), o2.parents = /* @__PURE__ */ new Set(), l.forEach((e30) => { e30.hasChildren(o2.treeId) || e30.pushChildren(o2); }), n = true; } }); }); }), n; } _clearFeatureCalculationNode(e29) { let t = this._featureCalculationManagerService.getReferenceExecutorMap(); e29.forEach((e30) => { let n = /* @__PURE__ */ new Set(); for (let i2 of e30.children) { var r; let a2 = this._dependencyManagerService.getTreeById(i2); a2 && (a2.featureId && !((r = t.get(e30.unitId)) == null || (r = r.get(e30.subUnitId)) == null) && r.has(a2.featureId) || n.add(i2)); } e30.children = n; let i = /* @__PURE__ */ new Set(); for (let n2 of e30.parents) { var a; let r2 = this._dependencyManagerService.getTreeById(n2); r2 && (r2.featureId && !((a = t.get(e30.unitId)) == null || (a = a.get(e30.subUnitId)) == null) && a.has(r2.featureId) || i.add(n2)); } e30.parents = i; }); } _convertDirtyRangesToUnitRange(e29) { let t = []; for (let n in e29) { let r = e29[n]; for (let e30 in r) { let i = r[e30]; for (let r2 of i) t.push({ unitId: n, sheetId: e30, range: r2 }); } } return t; } _intersectFeatureCalculation(e29, t, n) { let r = [], i = this._dependencyManagerService.searchDependency(e29); for (let e30 = 0, a = t.length; e30 < a; e30++) { let a2 = t[e30]; a2.unitId === n.unitId && a2.subUnitId === n.subUnitId && a2.featureId === n.featureId || i.has(a2.treeId) && r.push(a2); } return r; } _getExistTreeList(e29, t) { let { unitId: n, subUnitId: r, featureId: i } = e29; for (let e30 = 0, a = t.length; e30 < a; e30++) { let a2 = t[e30]; if (a2.unitId === n && a2.subUnitId === r && a2.featureId === i) return a2; } } _isCyclicUtil(e29, t, n) { let r = this._dependencyManagerService.getTreeById(e29); if (r == null) return false; if (!t.has(r.treeId)) { t.add(r.treeId), n.add(r.treeId); for (let e30 of r.children) if (!t.has(e30) && this._isCyclicUtil(e30, t, n) || n.has(e30)) return true; } return n.delete(r.treeId), false; } _checkIsCycleDependency(e29) { let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(); for (let r = 0, i = e29.length; r < i; r++) { let i2 = e29[r]; if (this._isCyclicUtil(i2.treeId, t, n) === true) return true; } return false; } async _generateTreeList(e29, t, n) { let r = Object.keys(e29), i = Object.keys(t), a = []; this._currentConfigService.isForceCalculate() && this._dependencyManagerService.reset(), this._registerFormulas(r, e29, n, a), this._registerOtherFormulas(t, i, a), this._registerFeatureFormulas(a); for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; if (!t3.formula) continue; let n2 = this._getTreeNode(t3); t3.isDirty = this._includeTree(t3, n2); let r2 = this._getAddressFunctionNodeList(n2); if (r2.length > 0 && (t3.addressFunctionNodes = r2), t3.isVirtual) continue; this._runtimeService.setCurrent(t3.row, t3.column, t3.rowCount, t3.columnCount, t3.subUnitId, t3.unitId); let i2 = await this._getRangeListByNode({ node: n2, refOffsetX: t3.refOffsetX, refOffsetY: t3.refOffsetY }); t3.pushRangeList(i2); } for (let e30 = 0, t2 = a.length; e30 < t2; e30++) { let t3 = a[e30]; t3.isCache || this._dependencyManagerService.addDependencyRTreeCache(t3); } return await this._calculateListByFunctionRefNode(a), a; } _registerFeatureFormulas(e29) { this._featureCalculationManagerService.getReferenceExecutorMap().forEach((t, n) => { t.forEach((t2, n2) => { t2.forEach((t3, n3) => { let r = this._dependencyManagerService.getFeatureFormulaDependency(t3.unitId, t3.subUnitId, n3); e29.push(this._getFeatureFormulaTree(n3, r, t3)); }); }); }); } _getFeatureFormulaTree(e29, t, n) { let { unitId: r, subUnitId: i, dependencyRanges: a, getDirtyData: o } = n, s = new rs2(t || as2(this._dependencyManagerService)); s.unitId = r, s.subUnitId = i, s.rangeList = a, s.getDirtyData = o; let c = o(this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData()); return s.featureDirtyRanges = this._convertDirtyRangesToUnitRange(c.dirtyRanges), s.featureId = e29, s.type = es2.FEATURE_FORMULA, this._dependencyManagerService.addFeatureFormulaDependency(r, i, e29, s), this._dependencyManagerService.getFeatureFormulaDependency(n.unitId, n.subUnitId, e29) && (s.isCache = true), s; } _registerOtherFormulas(e29, t, n) { for (let r of t) { let t2 = e29[r]; if (t2 == null) continue; let i = Object.keys(t2); for (let e30 of i) { let i2 = t2[e30]; if (i2 == null) continue; let { rowCount: a = 1 / 0, columnCount: o = 1 / 0 } = this._currentConfigService.getSheetRowColumnCount(r, e30) || {}, s = Object.keys(i2); for (let t3 of s) { let s2 = this._dependencyManagerService.hasOtherFormulaDataMainData(t3), { f: c, ranges: l } = i2[t3], u = false; s2 && (u = true); let d = so2(r, c, this._lexer, this._astTreeBuilder, this._currentConfigService), { firstRow: f, firstColumn: p } = this._getFirstCellOfRange(l), m = this._dependencyManagerService.getOtherFormulaDependency(r, e30, t3), h = new rs2((m == null ? void 0 : m.getValue(0, 0)) || as2(this._dependencyManagerService)); for (let i3 = 0; i3 < l.length; i3++) { let s3 = l[i3], { startRow: g2, startColumn: _2 } = s3, { endRow: v, endColumn: y } = s3; v = Math.min(v, a - 1), y = Math.min(y, o - 1); for (let i4 = g2; i4 <= v; i4++) for (let a2 = _2; a2 <= y; a2++) { let o2 = a2 - p, s4 = i4 - f; if (o2 === 0 && s4 === 0) { h.node = d, h.formula = c, h.unitId = r, h.subUnitId = e30, h.formulaId = t3, h.type = es2.OTHER_FORMULA, h.isCache = u, n.push(h), this._dependencyManagerService.addOtherFormulaDependency(r, e30, t3, h), this._dependencyManagerService.addFormulaDependencyByDefinedName(h); continue; } let l2 = new ns2(); l2.treeId = (m == null ? void 0 : m.getValue(o2, s4)) || as2(this._dependencyManagerService), l2.refTree = h, l2.refOffsetX = o2, l2.refOffsetY = s4, l2.isCache = u, l2.type = es2.OTHER_FORMULA, this._dependencyManagerService.addOtherFormulaDependency(r, e30, t3, l2), this._dependencyManagerService.addFormulaDependencyByDefinedName(l2), n.push(l2); } } this._dependencyManagerService.addOtherFormulaDependencyMainData(t3); } } } } _getFirstCellOfRange(e29) { let t = e29[0]; return { firstRow: t.startRow, firstColumn: t.startColumn }; } _registerFormulas(e29, t, n, r) { for (let i of e29) { let e30 = t[i]; if (e30 == null) continue; let a = Object.keys(e30); for (let t2 of a) { let a2 = new Sa(e30[t2] || {}), o = /* @__PURE__ */ new Map(); a2.forValue((e31, a3, s) => { if (s == null) return true; let { x: c = 0, y: l = 0, si: u } = s; if (!(c === 0 && l === 0 && u != null)) return true; let d = this._createFDtree(i, t2, e31, a3, n, s), f = this._dependencyManagerService.getFormulaDependency(i, t2, e31, a3); f == null ? (this._dependencyManagerService.addFormulaDependency(i, t2, e31, a3, d), this._dependencyManagerService.addFormulaDependencyByDefinedName(d)) : (d.treeId = f, d.isCache = true, this._dependencyManagerService.updateDependencyTreeDirtyState(f, false)), o.set(u, d), r.push(d); }), a2.forValue((e31, a3, s) => { if (s == null) return true; let { x: c = 0, y: l = 0, si: u } = s; if (c === 0 && l === 0 && u != null) return true; let d; if (u && o.has(u)) { let e32 = o.get(u); d = this._createVirtualFDtree(e32, s); } else d = this._createFDtree(i, t2, e31, a3, n, s); let f = this._dependencyManagerService.getFormulaDependency(i, t2, e31, a3); f == null ? (this._dependencyManagerService.addFormulaDependency(i, t2, e31, a3, d), this._dependencyManagerService.addFormulaDependencyByDefinedName(d)) : (d.treeId = f, d.isCache = true, this._dependencyManagerService.updateDependencyTreeDirtyState(f, false)), r.push(d); }), o.clear(); } } } _createFDtree(e29, t, n, r, i, a) { let { f: o, x: s = 0, y: c = 0 } = a, l = new rs2(as2(this._dependencyManagerService)), u = i[e29][t]; return l.node = so2(e29, o, this._lexer, this._astTreeBuilder, this._currentConfigService), l.formula = o, l.unitId = e29, l.subUnitId = t, l.row = n, l.column = r, l.rowCount = u.rowCount, l.columnCount = u.columnCount, l; } _createVirtualFDtree(e29, t) { let { x: n = 0, y: r = 0 } = t, i = new ns2(); return i.treeId = as2(this._dependencyManagerService), i.refTree = e29, i.refOffsetX = n, i.refOffsetY = r, i; } _updateRangeFlatten() { let e29 = this._currentConfigService.isForceCalculate(), t = this._currentConfigService.getDirtyRanges(); if (!e29) { this._updateRangeFlattenCache.clear(); for (let e30 = 0; e30 < t.length; e30++) { let n = t[e30], r = n.range, i = n.sheetId, a = n.unitId; this._addFlattenCache(a, i, r); } } } _addFlattenCache(e29, t, n) { let r = this._updateRangeFlattenCache.get(e29); r == null && (r = /* @__PURE__ */ new Map(), this._updateRangeFlattenCache.set(e29, r)); let i = r.get(t); i == null && (i = [], r.set(t, i)), i.push(n); } _isPreCalculateNode(e29) { return e29.nodeType === H3.UNION || e29.nodeType === H3.PREFIX && e29.getToken() === Ye.AT || e29.nodeType === H3.SUFFIX && e29.getToken() === qe2.POUND; } _nodeTraversalRef(e29, t) { let n = e29.getChildren(), r = n.length; for (let e30 = 0; e30 < r; e30++) { let r2 = n[e30]; if (this._isPreCalculateNode(r2)) { if (t.push(r2), r2.nodeType === H3.UNION) for (let e31 of r2.getChildren()) e31.nodeType === H3.FUNCTION && e31.isAddress() && this._nodeTraversalRef(e31, t); continue; } else r2.nodeType === H3.REFERENCE && t.push(r2); this._nodeTraversalRef(r2, t); } } _nodeTraversalReferenceFunction(e29, t) { let n = e29.getChildren(), r = n.length; for (let e30 = 0; e30 < r; e30++) { let r2 = n[e30]; if (r2.nodeType === H3.FUNCTION && r2.isAddress()) { t.push(r2); continue; } this._nodeTraversalReferenceFunction(r2, t); } } async _executeNode(e29, t = 0, n = 0) { let r, i = { node: e29, refOffsetX: t, refOffsetY: n }; return r = this._interpreter.checkAsyncNode(e29) ? await this._interpreter.executeAsync(i) : this._interpreter.execute(i), r; } async _getRangeListByNode(e29) { let t = [], n = e29.refOffsetX, r = e29.refOffsetY, i = e29.node; if (i == null) return []; this._nodeTraversalRef(i, t); let a = []; for (let e30 = 0, i2 = t.length; e30 < i2; e30++) { let i3 = t[e30], o = (await this._executeNode(i3, n, r)).toUnitRange(); a.push(o), i3.setValue(null); } return a; } _getAddressFunctionNodeList(e29) { let t = []; return e29 == null ? [] : (this._nodeTraversalReferenceFunction(e29, t), t); } _getTreeNode(e29) { return e29.node; } async _buildDirtyRangesByAddressFunction(e29, t) { let n = t.addressFunctionNodes; if (n.length === 0) return; let r = t.refOffsetX, i = t.refOffsetY, a = await this._getRangeListByFunctionRefNode(n, r, i); t.addressFunctionNodes = [], this._addDependencyTreeByAddressFunction(t, a); let o = e29.bulkSearch(a), s = this._buildTreeNodeById(o); s.length !== 0 && await this._calculateAddressFunctionRuntimeData(e29, s); } async _calculateListByFunctionRefNode(e29) { let t = new dd(); for (let n = 0, r = e29.length; n < r; n++) { let r2 = e29[n]; t.insert({ unitId: r2.unitId, sheetId: r2.subUnitId, range: { startRow: r2.row, startColumn: r2.column, endRow: r2.row, endColumn: r2.column }, id: r2.treeId }); } this._executedAddressFunctionNodeIds.clear(); for (let n = 0, r = e29.length; n < r; n++) { let r2 = e29[n]; await this._calculateAddressFunction(t, r2); } } async _calculateAddressFunction(e29, t) { let n = t.addressFunctionNodes; if (n.length === 0) return; let r = t.refOffsetX, i = t.refOffsetY; this._runtimeService.setCurrent(t.row, t.column, t.rowCount, t.columnCount, t.subUnitId, t.unitId); let a = []; for (let e30 = 0, t2 = n.length; e30 < t2; e30++) { let t3 = await this._getRangeListByNode({ node: n[e30], refOffsetX: r, refOffsetY: i }); a.push(...t3); } let o = /* @__PURE__ */ new Set(); this._searchDependencyByAddressFunction(e29, a, o); let s = this._buildTreeNodeById(o); if (s.length === 0) { await this._buildDirtyRangesByAddressFunction(e29, t); return; } await this._calculateAddressFunctionRuntimeData(e29, s), await this._buildDirtyRangesByAddressFunction(e29, t); } async _calculateAddressFunctionRuntimeData(e29, t) { for (; t.length > 0; ) { let n = t.pop(), r = { node: this._getTreeNode(n), refOffsetX: n.refOffsetX, refOffsetY: n.refOffsetY }; await this._calculateAddressFunction(e29, n), this._runtimeService.setCurrent(n.row, n.column, n.rowCount, n.columnCount, n.subUnitId, n.unitId); let i; i = this._interpreter.checkAsyncNode(r.node) ? await this._interpreter.executeAsync(r) : this._interpreter.execute(r), n.formulaId == null ? this._runtimeService.setRuntimeData(i) : this._runtimeService.setRuntimeOtherData(n.formulaId, n.refOffsetX, n.refOffsetY, i); } } _buildTreeNodeById(e29) { let t = []; for (let n of e29) { let e30 = this._getTreeById(n); !e30 || this._executedAddressFunctionNodeIds.has(n) || (this._executedAddressFunctionNodeIds.add(n), t.push(e30)); } return t; } _searchDependencyByAddressFunction(e29, t, n) { let r = e29.bulkSearch(t), i = this._dependencyRTreeCacheForAddressFunction.bulkSearch(t); for (let e30 of i) n.has(e30) || n.add(e30); let a = []; for (let e30 of r) { let t2 = this._getTreeById(e30); t2 && !n.has(e30) && (a.push(...t2.rangeList), n.add(e30)); } return a.length > 0 && this._searchDependencyByAddressFunction(e29, a, n), n; } _getTreeById(e29) { return this._dependencyManagerService.getTreeById(e29); } _addDependencyTreeByAddressFunction(e29, t) { let n = []; for (let r = 0; r < t.length; r++) { let { unitId: i, sheetId: a, range: o } = t[r]; n.push({ unitId: i, sheetId: a, range: o, id: e29.treeId }); } this._dependencyRTreeCacheForAddressFunction.bulkInsert(n); } async _getRangeListByFunctionRefNode(e29, t, n) { let r = []; for (let i = 0, a = e29.length; i < a; i++) { let a2 = e29[i], o = (await this._executeNode(a2, t, n)).toUnitRange(); r.push(o), a2.setValue(null); } return r; } _getUpdateTreeListAndMakeDependency(e29) { let t = [], n = /* @__PURE__ */ new Set(), r = this._currentConfigService.isForceCalculate(), i = this._currentConfigService.getDirtyRanges(), a = this._dependencyManagerService.searchDependency(i), o = this._dependencyRTreeCacheForAddressFunction.bulkSearch(i); for (let e30 of o) a.add(e30); let s = this._dependencyManagerService.buildDependencyTree(e29); for (let e30 of s) { let i2 = e30.treeId; (r || e30.isDirty || e30.dependencySheetName(this._currentConfigService.getDirtyNameMap()) || a.has(i2) && !e30.isExcludeRange(this._currentConfigService.getExcludedRange())) && !n.has(i2) && (t.push(e30), n.add(i2)); } return t; } _includeTreeFeature(e29) { let t = e29.unitId, n = e29.subUnitId, r = e29.featureId; if (r != null) { var i; let e30 = this._currentConfigService.getDirtyUnitFeatureMap(); if ((e30 == null || (i = e30[t]) == null || (i = i[n]) == null ? void 0 : i[r]) != null) return true; } return false; } _includeOtherFormula(e29) { let t = e29.unitId, n = e29.subUnitId, r = e29.formulaId; if (r != null) { var i; let e30 = this._currentConfigService.getDirtyUnitOtherFormulaMap(); if ((e30 == null || (i = e30[t]) == null || (i = i[n]) == null ? void 0 : i[r]) != null) return true; } return false; } _detectForcedRecalculationNode(e29, t) { return t == null ? false : this._detectForcedRecalculationNodeRecursion(t); } _detectForcedRecalculationNodeRecursion(e29) { if (e29.isForcedCalculateFunction()) return true; let t = e29.getChildren(); for (let e30 = 0, n = t.length; e30 < n; e30++) { let n2 = t[e30]; if (this._detectForcedRecalculationNodeRecursion(n2)) return true; } return false; } _includeTree(e29, t) { var n, r; let i = e29.unitId, a = e29.subUnitId; if (this._detectForcedRecalculationNode(e29, t) === true || this._includeTreeFeature(e29) === true || this._includeOtherFormula(e29) === true || lo2(e29, t, this._currentConfigService) === true) return true; let o = (n = this._currentConfigService.getExcludedRange()) == null || (n = n[i]) == null ? void 0 : n[a]; if ((o == null ? void 0 : o.getValue(e29.row, e29.column)) != null) return false; if (((r = this._currentConfigService.getDirtyNameMap()[i]) == null ? void 0 : r[a]) != null) return true; if (!this._updateRangeFlattenCache.has(i)) return false; let s = this._updateRangeFlattenCache.get(i); if (!s.has(a)) return false; let c = s.get(a); for (let t2 of c) if (e29.inRangeData(t2)) return true; return false; } _calculateRunList(e29) { e29.length; let t = e29, n = [], r = []; for (; t.length > 0; ) { let e30 = t.pop(); if (e30 === void 0 || e30.isSkip()) continue; if (e30.isAdded()) { n.push(e30), e30.setSkip(); continue; } r.length = 0; for (let t2 of e30.parents) { let n2 = this._dependencyManagerService.getTreeById(t2); if (!n2) { console.error(`Dependency tree not found for treeId:`, t2); continue; } n2.isAdded() || e30.isSkip() || r.push(n2); } let i = this._dependencyRTreeCacheForAddressFunction.bulkSearch(e30.toRTreeItem()); for (let t2 of i) { let n2 = this._dependencyManagerService.getTreeById(t2); if (!n2) { console.error(`Dependency tree not found for treeId:`, t2); continue; } n2.isAdded() || e30.isSkip() || r.push(n2); } r.length === 0 ? (n.push(e30), e30.setSkip()) : (e30.setAdded(), t.push(e30, ...r)); } return n; } async _initializeGenerateTreeList() { let e29 = this._currentConfigService.getFormulaData(), t = this._otherFormulaManagerService.getOtherFormulaData(), n = this._currentConfigService.getUnitData(); return await this._generateTreeList(e29, t, n); } async _getAllTreeList() { let e29 = await this._initializeGenerateTreeList(); return this._dependencyManagerService.buildDependencyTree(e29); } _getTreeModel(e29) { let t = this._formulaDependencyTreeModel.get(e29); if (!t) { let n = this._getTreeById(e29); if (!n) { console.error(`FormulaDependencyTree is null for treeId:`, e29); return; } t = new is2(n), this._formulaDependencyTreeModel.set(e29, t); } return t; } _getDependencyTreeParenIds(e29) { return e29.parents; } _getDependencyTreeChildrenIds(e29) { return e29.children; } _getFormulaDependencyTreeModel(e29) { let t = this._getTreeModel(e29.treeId), n = this._getDependencyTreeParenIds(e29); if (!t) return new is2(e29); for (let e30 of n) { let n2 = this._getTreeModel(e30); n2 && (t.addParent(n2), n2.addChild(t)); } return t; } _endFormulaDependencyTreeModel() { this._formulaDependencyTreeModel.clear(); } _startFormulaDependencyTreeModel() { } _getAllDependencyJson(e29) { this._startFormulaDependencyTreeModel(); let t = []; for (let n2 of e29) { let e30 = n2.type; if (n2.isVirtual && (e30 === es2.FEATURE_FORMULA || e30 === es2.OTHER_FORMULA)) continue; let r = this._getFormulaDependencyTreeModel(n2); t.push(r); } let n = []; for (let e30 of t) n.push(e30.toJson()); return this._endFormulaDependencyTreeModel(), n; } async getAllDependencyJson() { let e29 = await this._getAllTreeList(); return this._getAllDependencyJson(e29); } _setRealFormulaString(e29) { if (e29.refTreeId == null) return; let t = this._getTreeById(e29.refTreeId); t && (e29.formula = this._lexerTreeBuilder.moveFormulaRefOffset(t.formula, e29.refOffsetX, e29.refOffsetY)); } async getCellDependencyJson(e29, t, n, r) { await this._initializeGenerateTreeList(); let i = this._dependencyManagerService.getFormulaDependency(e29, t, n, r); if (i == null) return; let a = this._getTreeById(i); if (!a) return; this._startFormulaDependencyTreeModel(); let o = this._getFormulaDependencyTreeModel(a); this._setRealFormulaString(o); let s = this._getDependencyTreeChildrenIds(a); for (let e30 of s) { let t2 = this._getTreeModel(e30); t2 && (this._setRealFormulaString(t2), o.addChild(t2)); } for (let e30 of o.parents) this._setRealFormulaString(e30); return this._endFormulaDependencyTreeModel(), o.toFullJson(); } _getRangeDependents(e29) { let t = this._dependencyManagerService.searchDependency(e29), n = []; for (let e30 of t) { let t2 = this._getTreeById(e30); if (!t2) continue; let r2 = this._getFormulaDependencyTreeModel(t2); this._setRealFormulaString(r2), n.push(r2); } let r = []; for (let e30 of n) e30 && r.push(e30.toJson()); return r; } async getRangeDependents(e29) { await this._initializeGenerateTreeList(), this._startFormulaDependencyTreeModel(); let t = this._getRangeDependents(e29); return this._endFormulaDependencyTreeModel(), t; } _getInRangeFormulas(e29, t) { let n = []; for (let r2 of t) for (let t2 of e29) { let e30 = t2.unitId, i2 = t2.sheetId; if (!(r2.unitId !== e30 || r2.subUnitId !== i2) && (t2.range, r2.inRangeData(t2.range))) { n.push(r2); break; } } let r = []; for (let e30 of n) { let t2 = this._getFormulaDependencyTreeModel(e30); this._setRealFormulaString(t2), r[e30.treeId] = t2; } let i = []; for (let e30 of r) e30 && i.push(e30.toJson()); return i; } async getInRangeFormulas(e29) { let t = await this._getAllTreeList(); this._startFormulaDependencyTreeModel(); let n = this._getInRangeFormulas(e29, t); return this._endFormulaDependencyTreeModel(), n; } async getRangeDependentsAndInRangeFormulas(e29) { let t = await this._getAllTreeList(); this._startFormulaDependencyTreeModel(); let n = this._getRangeDependents(e29), r = this._getInRangeFormulas(e29, t); return this._endFormulaDependencyTreeModel(), { dependents: n, inRanges: r }; } }; ss2 = dr2([P5(0, fi2), P5(1, qa2), P5(2, Qo2), P5(3, Xo2), P5(4, Inject(Mu)), P5(5, Inject(bo2)), P5(6, Inject(Go)), P5(7, Inject(pi)), P5(8, Jo2), P5(9, Inject(ni))], ss2); var ls2 = createIdentifier(`engine-formula.calculate-formula.service`); var us2 = class extends E { constructor(e29, n, r, i, a, o, s) { super(), this._configService = e29, this._lexer = n, this._currentConfigService = r, this._runtimeService = i, this._formulaDependencyGenerator = a, this._interpreter = o, this._astTreeBuilder = s, E3(this, `_executionInProgressListener$`, new Subject()), E3(this, `executionInProgressListener$`, this._executionInProgressListener$.asObservable()), E3(this, `_executionCompleteListener$`, new Subject()), E3(this, `executionCompleteListener$`, this._executionCompleteListener$.asObservable()), E3(this, `_executeLock`, new import_async_lock.default()), E3(this, `_isCalculateTreeModel`, false); } dispose() { super.dispose(), this._executionInProgressListener$.complete(), this._executionCompleteListener$.complete(), va2.clear(), ci2.clear(), Ze2.clear(), sa.clear(); } stopFormulaExecution() { this._runtimeService.stopExecution(); } setRuntimeFeatureCellData(e29, t) { this._runtimeService.setRuntimeFeatureCellData(e29, t); } setRuntimeFeatureRange(e29, t) { this._runtimeService.setRuntimeFeatureRange(e29, t); } async execute(e29) { this._runtimeService.setFormulaExecuteStage(Wa.START), this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()), this._currentConfigService.load(e29), this._runtimeService.reset(); let t = e29.maxIteration || 1; this._isCalculateTreeModel = e29.isCalculateTreeModel || false, this._executeLock.acquire(`FORMULA_EXECUTION_LOCK`, async () => { for (let e30 = 0; e30 < t && (this._runtimeService.setFormulaCycleIndex(e30), await this._executeStep(), va2.clear(), this._runtimeService.isCycleDependency()); e30++) ; this._runtimeService.setFormulaExecuteStage(Wa.CALCULATION_COMPLETED), this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()), this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()), ci2.clear(), this._runtimeService.reset(); }); } async _executeStep() { let e29 = await this._apply(); if (e29 == null) return; let { arrayFormulaRange: t, runtimeFeatureRange: n } = e29, { dirtyRanges: r, excludedCell: i } = this._getArrayFormulaDirtyRangeAndExcludedRange(t, n); return r == null || r.length === 0 ? true : (va2.clear(), this._currentConfigService.loadDirtyRangesAndExcludedCell(r, i), await this._apply(true), true); } _getArrayFormulaDirtyRangeAndExcludedRange(e29, t) { let n = [], r = {}; return Object.keys(e29).forEach((t2) => { let i = e29[t2]; if (i == null) return true; Object.keys(i).forEach((e30) => { let a = new Sa(i[e30]); if (a == null) return true; let o = new Sa(); a.forValue((r2, i2, a2) => { o.setValue(r2, i2, true), n.push({ unitId: t2, sheetId: e30, range: a2 }); }), r[t2] == null && (r[t2] = {}), r[t2][e30] = o; }); }), Object.keys(t).forEach((e30) => { let r2 = t[e30]; Object.keys(r2).forEach((e31) => { let t2 = r2[e31]; if (t2 == null) return true; Object.keys(t2).forEach((r3) => { let i = t2[r3]; if (i == null) return true; for (let t3 of i) n.push({ unitId: e31, sheetId: r3, range: t3 }); }); }); }), { dirtyRanges: n, excludedCell: r }; } async _apply(e29 = false) { e29 ? this._runtimeService.setFormulaExecuteStage(Wa.START_DEPENDENCY_ARRAY_FORMULA) : this._runtimeService.setFormulaExecuteStage(Wa.START_DEPENDENCY), this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()); let t = (await this._formulaDependencyGenerator.generate(this._isCalculateTreeModel)).reverse(), n = this._interpreter; e29 ? (this._runtimeService.setFormulaExecuteStage(Wa.START_CALCULATION_ARRAY_FORMULA), this._runtimeService.setTotalArrayFormulasToCalculate(t.length)) : (this._runtimeService.setFormulaExecuteStage(Wa.START_CALCULATION), this._runtimeService.setTotalFormulasToCalculate(t.length)), this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()); let r = [], i = this._configService.getConfig(Ur2), a = (i == null ? void 0 : i.intervalCount) || 500, o = t.length; for (let i2 = 0; i2 < o; i2++) { var s; let o2 = t[i2], c = o2.nodeData, l = o2.getDirtyData; if (i2 % a === 0 && (await new Promise((e30) => { let t2 = an(e30); r.push(t2); }), e29 ? (this._runtimeService.setFormulaExecuteStage(Wa.CURRENTLY_CALCULATING_ARRAY_FORMULA), this._runtimeService.setCompletedArrayFormulasCount(i2 + 1)) : (this._runtimeService.setFormulaExecuteStage(Wa.CURRENTLY_CALCULATING), this._runtimeService.setCompletedFormulasCount(i2 + 1)), this._executionInProgressListener$.next(this._runtimeService.getRuntimeState()), this._runtimeService.isStopExecution() || c == null && l == null)) { this._runtimeService.setFormulaExecuteStage(Wa.IDLE), this._runtimeService.markedAsStopFunctionsExecuted(), this._executionCompleteListener$.next(this._runtimeService.getAllRuntimeData()); return; } this._runtimeService.setCurrent(o2.row, o2.column, o2.rowCount, o2.columnCount, o2.subUnitId, o2.unitId); let u; if (l != null && o2.featureId != null) { let { runtimeCellData: e30, dirtyRanges: t2 } = l(this._currentConfigService.getDirtyData(), this._runtimeService.getAllRuntimeData()); this._runtimeService.setRuntimeFeatureCellData(o2.featureId, e30), this._runtimeService.setRuntimeFeatureRange(o2.featureId, t2); } else c != null && (u = n.checkAsyncNode(c.node) ? await n.executeAsync(c) : n.execute(c), o2.formulaId == null ? this._runtimeService.setRuntimeData(u) : this._runtimeService.setRuntimeOtherData(o2.formulaId, o2.refOffsetX, o2.refOffsetY, u)); (s = c.node) == null || s.resetCalculationState(); } return r.forEach((e30) => e30()), r = [], o > 0 ? this._runtimeService.markedAsSuccessfullyExecuted() : e29 || this._runtimeService.markedAsNoFunctionsExecuted(), this._runtimeService.getAllRuntimeData(); } async executeFormulas(e29, t) { this._currentConfigService.loadDataLite(t); let n = this._currentConfigService.getUnitData(); this._runtimeService.reset(); let r = {}; for (let t2 of Object.keys(e29)) { let a = e29[t2]; if (a != null) { r[t2] = {}; for (let e30 of Object.keys(a)) { var i; let o = a[e30]; if (o == null) continue; let s = (i = n[t2]) == null ? void 0 : i[e30]; if (s != null) { r[t2][e30] = {}; for (let n2 of Object.keys(o)) { let i2 = Number.parseInt(n2); r[t2][e30][i2] = {}; let a2 = o[i2]; if (a2) for (let n3 of Object.keys(a2)) { let o2 = Number.parseInt(n3), c = a2[o2]; if (!c) continue; let l = s.rowCount || 0, u = s.columnCount || 0; this._runtimeService.setCurrent(i2, o2, l, u, e30, t2); let d = []; for (let e31 of c) { let t3 = await this.calculate(e31); if (!t3) { d.push({ value: null, formula: e31 }); continue; } t3.isReferenceObject() && (t3 = t3.toArrayValueObject()); let n4 = t3; if (n4.isArray()) { let t4 = n4; if (t4.getRowCount() === 1 && t4.getColumnCount() === 1) { d.push({ value: t4.getFirstCell().getValue(), formula: e31 }); continue; } d.push({ value: t4.toValue(), formula: e31 }); continue; } d.push({ value: n4.getValue(), formula: e31 }); } r[t2][e30][i2][o2] = d; } } } } } } return r; } async calculate(e29) { let t = this._lexer.treeBuilder(e29); if (Object.values(D3).includes(t)) return; let n = this._astTreeBuilder.parse(t), r = this._interpreter; if (n == null) return; let i = { node: n, refOffsetX: 0, refOffsetY: 0 }; return r.checkAsyncNode(n) ? await r.executeAsync(i) : r.execute(i); } async getAllDependencyJson() { return this._currentConfigService.loadDataLite(), this._formulaDependencyGenerator.getAllDependencyJson(); } async getCellDependencyJson(e29, t, n, r) { return this._currentConfigService.loadDataLite(), this._formulaDependencyGenerator.getCellDependencyJson(e29, t, n, r); } async getRangeDependents(e29) { return this._currentConfigService.loadDataLite(), this._formulaDependencyGenerator.getRangeDependents(e29); } async getInRangeFormulas(e29) { return this._currentConfigService.loadDataLite(), this._formulaDependencyGenerator.getInRangeFormulas(e29); } async getDependentsAndInRangeFormulas(e29) { return this._currentConfigService.loadDataLite(), this._formulaDependencyGenerator.getRangeDependentsAndInRangeFormulas(e29); } }; us2 = dr2([P5(0, Yr), P5(1, Inject(pi)), P5(2, fi2), P5(3, qa2), P5(4, os2), P5(5, Inject(bo2)), P5(6, Inject(Go))], us2); var ds2 = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._calculateFormulaService = t, this._formulaDataModel = n, this._initialize(); } _initialize() { this._commandExecutedListener(), this._initialExecuteFormulaListener(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === Cr2.id) this._calculateFormulaService.stopFormulaExecution(); else if (e29.id === yr2.id) this._calculate(e29.params); else if (e29.id === zn2.id) { let t = e29.params; if (t == null) return; let { arrayFormulaRange: n, arrayFormulaCellData: r } = t; this._formulaDataModel.setArrayFormulaRange(n), this._formulaDataModel.setArrayFormulaCellData(r); } else if (e29.id === xr2.id) this._calculateFormulaString(e29.params); else if (e29.id === Er2.id) this._generateAllDependencyTreeJson(); else if (e29.id === Or2.id) this._generateCellDependencyTreeJson(e29.params); else if (e29.id === Ar2.id) { let t = e29.params; this._queryFormulaDependencyJson(t); } else if (e29.id === Mr2.id) { let t = e29.params; this._queryFormulaDependencyAllJson(t); } })); } async _calculate(e29) { let { forceCalculation: t = false, dirtyRanges: n = [], dirtyNameMap: r = {}, dirtyDefinedNameMap: i = {}, dirtyUnitFeatureMap: a = {}, dirtyUnitOtherFormulaMap: o = {}, clearDependencyTreeCache: s = {}, maxIteration: c = 1, rowData: l, isCalculateTreeModel: u = false } = e29, d = this._formulaDataModel.getFormulaData(), f = this._formulaDataModel.getArrayFormulaCellData(), p = this._formulaDataModel.getArrayFormulaRange(); this._calculateFormulaService.execute({ formulaData: d, arrayFormulaCellData: f, arrayFormulaRange: p, forceCalculate: t, dirtyRanges: n, dirtyNameMap: r, dirtyDefinedNameMap: i, dirtyUnitFeatureMap: a, dirtyUnitOtherFormulaMap: o, clearDependencyTreeCache: s, maxIteration: c, isCalculateTreeModel: u, rowData: l }); } async _queryFormulaDependencyJson(e29) { let { unitRanges: t, isInRange: n } = e29, r = []; r = n ? await this._calculateFormulaService.getInRangeFormulas(t) : await this._calculateFormulaService.getRangeDependents(t), this._commandService.executeCommand(jr2.id, { result: r }, { onlyLocal: true }); } async _queryFormulaDependencyAllJson(e29) { let { unitRanges: t } = e29, n = await this._calculateFormulaService.getDependentsAndInRangeFormulas(t); this._commandService.executeCommand(Nr2.id, { result: n }, { onlyLocal: true }); } async _generateAllDependencyTreeJson() { let e29 = await this._calculateFormulaService.getAllDependencyJson(); this._commandService.executeCommand(Dr2.id, { result: e29 }, { onlyLocal: true }); } async _generateCellDependencyTreeJson(e29) { let { unitId: t, sheetId: n, row: r, column: i } = e29, a = await this._calculateFormulaService.getCellDependencyJson(t, n, r, i); this._commandService.executeCommand(kr2.id, { result: a }, { onlyLocal: true }); } async _calculateFormulaString(e29) { let { formulas: t } = e29, n = await this._calculateFormulaService.executeFormulas(t); this._commandService.executeCommand(Sr2.id, { result: n }, { onlyLocal: true }); } _initialExecuteFormulaListener() { this._calculateFormulaService.executionCompleteListener$.subscribe((e29) => { let t = e29.functionsExecutedState; switch (t) { case Ga.NOT_EXECUTED: this._applyTreeResult(e29); break; case Ga.STOP_EXECUTION: break; case Ga.SUCCESS: this._applyResult(e29); break; case Ga.INITIAL: break; } this._commandService.executeCommand(wr2.id, { functionsExecutedState: t }, { onlyLocal: true }); }), this._calculateFormulaService.executionInProgressListener$.subscribe((e29) => { this._commandService.executeCommand(wr2.id, { stageInfo: e29 }, { onlyLocal: true }); }); } async _applyTreeResult(e29) { let { dependencyTreeModelData: t } = e29; t.length > 0 && this._commandService.executeCommand(Dr2.id, { result: t }, { onlyLocal: true }); } async _applyResult(e29) { let { unitData: t, unitOtherData: n, arrayFormulaRange: r, arrayFormulaCellData: i, clearArrayFormulaCellData: a, arrayFormulaEmbedded: o, imageFormulaData: s, dependencyTreeModelData: c } = e29; if (!t) { this._applyTreeResult(e29), console.error(`No sheetData from Formula Engine!`); return; } (r || o) && (this._formulaDataModel.clearPreviousArrayFormulaCellData(a), this._formulaDataModel.mergeArrayFormulaCellData(i), this._formulaDataModel.mergeArrayFormulaRange(r), this._commandService.executeCommand(zn2.id, { arrayFormulaRange: this._formulaDataModel.getArrayFormulaRange(), arrayFormulaCellData: this._formulaDataModel.getArrayFormulaCellData(), arrayFormulaEmbedded: o }, { onlyLocal: true })), s && s.length > 0 && this._commandService.executeCommand(Fr2.id, { imageFormulaData: s }, { onlyLocal: true }), this._applyTreeResult(e29), this._commandService.executeCommand(Tr2.id, { unitData: kn2(t), unitOtherData: n }, { onlyLocal: true }); } }; ds2 = dr2([P5(0, ii), P5(1, ls2), P5(2, Inject(ai2))], ds2); var fs2 = /[\[\]]/g; function ps2(e29, t) { return fs2.test(e29) ? t + Number(e29.replace(fs2, ``)) : Number(e29) - 1; } function ms2(t, n = 0, r = 0) { t = t.toLocaleUpperCase(); let i = t.split(/[RC]/), a = i[1], o = i[2]; return { row: ps2(a, n), column: ps2(o, r), absoluteRefType: V.NONE }; } function hs2(e29, t = 0, n = 0) { let { refBody: r, sheetName: i, unitId: a } = Xn2(e29), o = r.indexOf(`:`); if (o === -1) { let e30 = ms2(r, t, n), o2 = e30.row, s2 = e30.column, c2 = e30.absoluteRefType; return { unitId: a, sheetName: i, range: { startRow: o2, startColumn: s2, endRow: o2, endColumn: s2, startAbsoluteRefType: c2, endAbsoluteRefType: c2 } }; } let s = r.substring(0, o), c = r.substring(o + 1), l = ms2(s, t, n), u = ms2(c, t, n); return { unitId: a, sheetName: i, range: { startRow: l.row, startColumn: l.column, endRow: u.row, endColumn: u.column, startAbsoluteRefType: l.absoluteRefType, endAbsoluteRefType: u.absoluteRefType } }; } function gs2(e29) { let t = _s2(e29.startRow, e29.startAbsoluteRefType, true), n = _s2(e29.startColumn, e29.startAbsoluteRefType, false), r = _s2(e29.endRow, e29.endAbsoluteRefType, true), i = _s2(e29.endColumn, e29.endAbsoluteRefType, false); return t === r && n === i ? `R${t}C${n}` : `R${t}C${n}:R${r}C${i}`; } function _s2(t, n = V.ALL, r) { switch (t += 1, n) { case V.ALL: return `${t}`; case V.ROW: return r ? `${t}` : `[${t}]`; case V.COLUMN: return r ? `[${t}]` : `${t}`; case V.NONE: return `[${t}]`; } } function vs2(e29) { let t = e29; if (e29.isArray()) { let n = e29.getRowCount(), r = e29.getColumnCount(); if (n > 1 || r > 1) return j3.create(D3.VALUE); t = e29.get(0, 0); } return t.isError(), t; } function ys2(...e29) { for (let t = 0; t < e29.length; t++) { let n = vs2(e29[t]); if (n.isError()) return { isError: true, errorObject: n }; e29[t] = n; } return { isError: false, variants: e29 }; } function Y3(...e29) { for (let t = 0; t < e29.length; t++) { let n = vs2(e29[t]); if (n.isError()) return { isError: true, errorObject: n }; if (n.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE) }; e29[t] = n; } return { isError: false, variants: e29 }; } function bs2(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; if (n.isError()) return { isError: true, errorObject: n }; if (n.isNull()) return { isError: true, errorObject: j3.create(D3.NA) }; if (n = vs2(e29[t]), n.isError()) return { isError: true, errorObject: n }; if (n.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE) }; e29[t] = n; } return { isError: false, variants: e29 }; } function X3(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return { isError: true, errorObject: n }; e29[t] = n; } return { isError: false, variants: e29 }; } var Z3 = class { constructor(e29) { this._name = e29, E3(this, `_unitId`, void 0), E3(this, `_subUnitId`, void 0), E3(this, `_row`, -1), E3(this, `_column`, -1), E3(this, `_definedNames`, void 0), E3(this, `_locale`, void 0), E3(this, `_sheetOrder`, void 0), E3(this, `_sheetNameMap`, void 0), E3(this, `_formulaDataModel`, void 0), E3(this, `_rowCount`, -1), E3(this, `_columnCount`, -1), E3(this, `needsExpandParams`, false), E3(this, `needsReferenceObject`, false), E3(this, `needsLocale`, false), E3(this, `needsSheetsInfo`, false), E3(this, `needsFormulaDataModel`, false), E3(this, `needsSheetRowColumnCount`, false), E3(this, `needsFilteredOutRows`, false), E3(this, `minParams`, -1), E3(this, `maxParams`, -1); } get name() { return this._name; } get unitId() { return this._unitId; } get subUnitId() { return this._subUnitId; } get row() { return this._row; } get column() { return this._column; } dispose() { } getDefinedName(e29) { var t; let n = this._definedNames; return n == null ? null : (t = Array.from(Object.values(n)).filter((t2) => t2.name === e29)) == null ? void 0 : t[0]; } setDefinedNames(e29) { this._definedNames = e29; } getLocale() { return this._locale; } setLocale(e29) { this._locale = e29; } getSheetsInfo() { return { sheetOrder: this._sheetOrder, sheetNameMap: this._sheetNameMap }; } setSheetsInfo({ sheetOrder: e29, sheetNameMap: t }) { this._sheetOrder = e29, this._sheetNameMap = t; } setFormulaDataModel(e29) { this._formulaDataModel = e29; } setSheetRowColumnCount(e29, t) { this._rowCount = e29, this._columnCount = t; } isAsync() { return false; } isAddress() { return false; } isCustom() { return false; } isArgumentsIgnoreNumberPattern() { return false; } setRefInfo(e29, t, n, r) { this._unitId = e29, this._subUnitId = t, this._row = n, this._column = r; } calculateCustom(...e29) { return null; } calculate(...e29) { return j3.create(D3.VALUE); } checkArrayType(e29) { return e29.isReferenceObject() || e29.isValueObject() && e29.isArray(); } getIndexNumValue(e29, t = 1) { let n = e29; if (n.isArray() && (n = n.getFirstCell()), n.isBoolean()) return n.getValue() === false ? j3.create(D3.VALUE) : t; if (n.isString()) { let e30 = Number(n.getValue()); return Number.isNaN(e30) ? j3.create(D3.REF) : e30; } else if (n.isNumber()) return n.getValue(); return j3.create(D3.VALUE); } getZeroOrOneByOneDefault(e29) { if (e29 == null) return 1; let t = 1; if (e29.isArray() && (e29 = e29.getFirstCell()), e29.isBoolean()) e29.getValue() === false && (t = 0); else if (e29.isString()) return; else e29.isNumber() && e29.getValue() === 0 && (t = 0); return t; } getMatchTypeValue(e29) { if (e29 == null) return 1; let t = 1; if (e29.isArray() && (e29 = e29.getFirstCell()), e29.isBoolean()) e29.getValue() === false && (t = 0); else if (e29.isString()) return; else if (e29.isNumber()) { let n = e29.getValue(); n <= 0 && (t = n); } return t; } binarySearch(e29, t, n, r, i) { let a = t.binarySearch(e29, r, i); if (a == null) return j3.create(D3.NA); let o; return o = n.getRowCount() === 1 ? n.get(0, a) || I3.create() : n.get(a, 0) || I3.create(), o.isNull() ? R4.create(0) : o; } _getOneFirstByRaw(e29) { return e29.length === 0 ? j3.create(D3.NA) : e29[0][0] || j3.create(D3.NA); } _getOneLastByRaw(e29) { return e29.length === 0 ? j3.create(D3.NA) : e29[e29.length - 1][e29[0].length - 1] || j3.create(D3.NA); } equalSearch(e29, t, n, r = true) { let i = n.pickRaw(t.isEqual(e29)); return r ? this._getOneFirstByRaw(i) : this._getOneLastByRaw(i); } fuzzySearch(e29, t, n, r = true) { let i = n.pickRaw(t.compare(e29, k3.EQUALS)); return r ? this._getOneFirstByRaw(i) : this._getOneLastByRaw(i); } orderSearch(e29, t, n, r = yi2.MIN, i = false) { let a = t.orderSearch(e29, r, i); if (a == null) return j3.create(D3.NA); let o = n.get(a.row, a.column) || I3.create(); return o.isNull() ? j3.create(D3.NA) : o; } binarySearchExpand(e29, t, n, r = 0, i, a) { let o = t.binarySearch(e29, i, a); return o == null ? j3.create(D3.NA) : r === 0 ? n.slice([o, o + 1]) : n.slice(void 0, [o, o + 1]); } equalSearchExpand(e29, t, n, r = true, i = 0) { let a = t.isEqual(e29), o; return o = r ? a.getFirstTruePosition() : a.getLastTruePosition(), o == null ? j3.create(D3.NA) : i === 0 ? n.slice([o.row, o.row + 1]) : n.slice(void 0, [o.column, o.column + 1]); } fuzzySearchExpand(e29, t, n, r = true, i = 0) { let a = t.compare(e29, k3.EQUALS), o; return o = r ? a.getFirstTruePosition() : a.getLastTruePosition(), o == null ? j3.create(D3.NA) : i === 0 ? n.slice([o.row, o.row + 1]) : n.slice(void 0, [o.column, o.column + 1]); } orderSearchExpand(e29, t, n, r = yi2.MIN, i = false, a = 0) { let o = t.orderSearch(e29, r, i); return o == null ? j3.create(D3.NA) : a === 0 ? n.slice([o.row, o.row + 1]) : n.slice(void 0, [o.column, o.column + 1]); } flattenArray(e29, t = true) { let n = []; n[0] = []; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if ((i.isString() || i.isBoolean() || i.isNull()) && (i = i.convertToNumberObjectValue()), i.isError()) return i; if (i.isArray()) { let e30; if (i.iterator((r2) => { if (r2 == null || r2.isNull() || t && (r2.isString() || r2.isBoolean())) return true; if (r2 = this._includingLogicalValuesAndText(r2), r2.isError()) return e30 = r2, false; n[0].push(r2); }), e30 != null && e30.isError()) return e30; } else n[0].push(i); } return Ea2(n, 1, n[0].length); } _includingLogicalValuesAndText(e29) { if (e29.isBoolean() && (e29 = Aa2(e29)), e29.isString()) { let t = Number(e29.getValue()); e29 = R4.create(Number.isNaN(t) ? 0 : t); } return e29; } createReferenceObject(e29, t) { let n = e29.getForcedUnitId() || e29.getDefaultUnitId() || ``, r = e29.getForcedSheetId() || e29.getDefaultUnitId() || ``, i = Jn2({ unitId: n, sheetName: e29.getForcedSheetName(), range: t }), a; return a = gn2(i) ? new Ca(i) : bn(i) ? new Ta(i) : xn2(i) ? new wa(i) : new Sa2(t, r, n), this._setReferenceDefault(e29, a); } _setReferenceDefault(e29, t) { if (this.unitId == null || this.subUnitId == null) return j3.create(D3.REF); t.setDefaultUnitId(this.unitId), t.setDefaultSheetId(this.subUnitId); let n = e29.getUnitId(); n != null && t.setForcedUnitIdDirect(n); let r = e29.getForcedSheetId(); return r != null && t.setForcedSheetIdDirect(r), t.setForcedSheetName(e29.getForcedSheetName()), t.setUnitData(e29.getUnitData()), t.setRuntimeData(e29.getRuntimeData()), t.setArrayFormulaCellData(e29.getArrayFormulaCellData()), t.setUnitStylesData(e29.getUnitStylesData()), t; } }; var xs2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { if (e29.isError()) return e29; let { isError: r, errorObject: i, variants: a } = ys2(t, n); if (r) return i; let { isError: o, errorObject: s, variants: c } = X3(...a); if (o) return s; let [l, u] = c, d = Math.floor(+l.getValue()), f = Math.floor(+u.getValue()); if (d < 0 || f < 0) return j3.create(D3.NUM); if (d === 0 || f === 0) return j3.create(D3.REF); let p = e29.isArray() ? e29.getRowCount() : 1, m = e29.isArray() ? e29.getColumnCount() : 1; if (p === 1 && m === 1) return e29.isArray() ? e29.get(0, 0) : e29; let h = d > p ? p : d, g2 = f > m ? m : f; return e29.slice([0, h], [0, g2]); } }; var Ss2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n], i = r.isArray() ? r.getRowCount() : 1, a = r.isArray() ? r.getColumnCount() : 1; for (let e30 = 0; e30 < i; e30++) for (let n2 = 0; n2 < a; n2++) { let i2 = r.isArray() ? r.get(e30, n2) : r; t.push([i2]); } } return B3.create({ calculateValueList: t, rowCount: t.length, columnCount: 1, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var Cs2 = (function(e29) { return e29.ARRAY_CONSTRAIN = `ARRAY_CONSTRAIN`, e29.FLATTEN = `FLATTEN`, e29; })({}); var ws2 = [[xs2, Cs2.ARRAY_CONSTRAIN], [Ss2, Cs2.FLATTEN]]; var Ts2; (function(e29) { let t = 0.636619772; function n(e30, t2) { let n2 = 0; for (let r2 = 0; r2 < e30.length; ++r2) n2 = t2 * n2 + e30[r2]; return n2; } function r(e30, t2, n2, r2, i2) { if (t2 === 0) return n2; if (t2 === 1) return r2; let a2 = 2 / e30, o2 = n2, s = r2, c = r2; for (let e31 = 1; e31 < t2; ++e31) c = s * e31 * a2 + i2 * o2, o2 = s, s = c; return c; } function i(e30, t2, n2, i2) { return function(a2, o2) { if (n2) { if (a2 === 0) return n2 === 1 ? -1 / 0 : 1 / 0; if (a2 < 0) return NaN; } return o2 === 0 ? e30(a2) : o2 === 1 ? t2(a2) : o2 < 0 ? NaN : r(a2, o2 | 0, e30(a2), t2(a2), i2); }; } let a = e29.besselj = /* @__PURE__ */ (() => { let e30 = [-184.9052456, 77392.33017, -1121442418e-2, 6516196407e-1, -13362590354, 57568490574], i2 = [1, 267.8532712, 59272.64853, 9494680718e-3, 1029532985, 57568490411], a2 = [2093887211e-16, -2073370639e-15, 2734510407e-14, -0.001098628627, 1], o2 = [-934935152e-16, 7621095161e-16, -6911147651e-15, 1430488765e-13, -0.01562499995]; function s(r2) { let s2 = 0, c2 = 0, l2 = 0, u2 = r2 * r2; if (r2 < 8) c2 = n(e30, u2), l2 = n(i2, u2), s2 = c2 / l2; else { let e31 = r2 - 0.785398164; u2 = 64 / u2, c2 = n(a2, u2), l2 = n(o2, u2), s2 = Math.sqrt(t / r2) * (Math.cos(e31) * c2 - Math.sin(e31) * l2 * 8 / r2); } return s2; } let c = [-30.16036606, 15704.4826, -2972611439e-3, 2423968531e-1, -7895059235, 72362614232], l = [1, 376.9991397, 99447.43394, 1858330474e-2, 2300535178, 144725228442], u = [-240337019e-15, 2457520174e-15, -3516396496e-14, 183105e-8, 1], d = [105787412e-15, -88228987e-14, 8449199096e-15, -2002690873e-13, 0.04687499995]; function f(e31) { let r2 = 0, i3 = 0, a3 = 0, o3 = e31 * e31, s2 = Math.abs(e31) - 2.356194491; return Math.abs(e31) < 8 ? (i3 = e31 * n(c, o3), a3 = n(l, o3), r2 = i3 / a3) : (o3 = 64 / o3, i3 = n(u, o3), a3 = n(d, o3), r2 = Math.sqrt(t / Math.abs(e31)) * (Math.cos(s2) * i3 - Math.sin(s2) * a3 * 8 / Math.abs(e31)), e31 < 0 && (r2 = -r2)), r2; } return function e31(t2, n2) { let i3 = Math.round(n2); if (!Number.isFinite(t2)) return Number.isNaN(t2) ? t2 : 0; if (i3 < 0) return (i3 % 2 ? -1 : 1) * e31(t2, -i3); if (t2 < 0) return (i3 % 2 ? -1 : 1) * e31(-t2, i3); if (i3 === 0) return s(t2); if (i3 === 1) return f(t2); if (t2 === 0) return 0; let a3 = 0; if (t2 > i3) a3 = r(t2, i3, s(t2), f(t2), -1); else { let e32 = 2 * Math.floor((i3 + Math.floor(Math.sqrt(40 * i3))) / 2), n3 = false, r2 = 0, o3 = 0, s2 = 1, c2 = 0, l2 = 2 / t2; for (let t3 = e32; t3 > 0; t3--) if (c2 = t3 * l2 * s2 - r2, r2 = s2, s2 = c2, Math.abs(s2) > 1e10 && (s2 *= 1e-10, r2 *= 1e-10, a3 *= 1e-10, o3 *= 1e-10), n3 && (o3 += s2), n3 = !n3, t3 === i3 && (a3 = r2), e32 - t3 > 100 && a3 === 0) return NaN; o3 = 2 * o3 - s2, a3 /= o3; } return a3; }; })(); e29.bessely = (() => { let e30 = [228.4622733, -86327.92757, 1087988129e-2, -5123598036e-1, 7062834065, -2957821389], r2 = [1, 226.1030244, 47447.2647, 7189466438e-3, 7452499648e-1, 40076544269], o2 = [2093887211e-16, -2073370639e-15, 2734510407e-14, -0.001098628627, 1], s = [-934945152e-16, 7621095161e-16, -6911147651e-15, 1430488765e-13, -0.01562499995]; function c(i2) { let c2 = 0, l2 = 0, u2 = 0, d2 = i2 * i2, f2 = i2 - 0.785398164; return i2 < 8 ? (l2 = n(e30, d2), u2 = n(r2, d2), c2 = l2 / u2 + t * a(i2, 0) * Math.log(i2)) : (d2 = 64 / d2, l2 = n(o2, d2), u2 = n(s, d2), c2 = Math.sqrt(t / i2) * (Math.sin(f2) * l2 + Math.cos(f2) * u2 * 8 / i2)), c2; } let l = [8511.937935, -4237922726e-3, 7349264551e-1, -51534381390, 127527439e4, -4900604943e3], u = [1, 354.9632885, 102042.605, 2245904002e-2, 3733650367, 424441966400, 249958057e5], d = [-240337019e-15, 2457520174e-15, -3516396496e-14, 183105e-8, 1], f = [105787412e-15, -88228987e-14, 8449199096e-15, -2002690873e-13, 0.04687499995]; function p(e31) { let r3 = 0, i2 = 0, o3 = 0, s2 = e31 * e31, c2 = e31 - 2.356194491; return e31 < 8 ? (i2 = e31 * n(l, s2), o3 = n(u, s2), r3 = i2 / o3 + t * (a(e31, 1) * Math.log(e31) - 1 / e31)) : (s2 = 64 / s2, i2 = n(d, s2), o3 = n(f, s2), r3 = Math.sqrt(t / e31) * (Math.sin(c2) * i2 + Math.cos(c2) * o3 * 8 / e31)), r3; } return i(c, p, 1, -1); })(); let o = e29.besseli = /* @__PURE__ */ (() => { let e30 = [45813e-7, 0.0360768, 0.2659732, 1.2067492, 3.0899424, 3.5156229, 1], t2 = [392377e-8, -0.01647633, 0.02635537, -0.02057706, 916281e-8, -157565e-8, 225319e-8, 0.01328592, 0.39894228]; function r2(r3) { return r3 <= 3.75 ? n(e30, r3 * r3 / (3.75 * 3.75)) : Math.exp(Math.abs(r3)) / Math.sqrt(Math.abs(r3)) * n(t2, 3.75 / Math.abs(r3)); } let i2 = [32411e-8, 301532e-8, 0.02658733, 0.15084934, 0.51498869, 0.87890594, 0.5], a2 = [-420059e-8, 0.01787654, -0.02895312, 0.02282967, -0.01031555, 163801e-8, -362018e-8, -0.03988024, 0.39894228]; function o2(e31) { return e31 < 3.75 ? e31 * n(i2, e31 * e31 / (3.75 * 3.75)) : (e31 < 0 ? -1 : 1) * Math.exp(Math.abs(e31)) / Math.sqrt(Math.abs(e31)) * n(a2, 3.75 / Math.abs(e31)); } return function e31(t3, n2) { let i3 = Math.round(n2); if (i3 === 0) return r2(t3); if (i3 === 1) return o2(t3); if (i3 < 0) return NaN; if (Math.abs(t3) === 0) return 0; if (t3 === 1 / 0) return 1 / 0; let a3 = 0, s, c = 2 / Math.abs(t3), l = 0, u = 1, d = 0, f = 2 * Math.round((i3 + Math.round(Math.sqrt(40 * i3))) / 2); for (s = f; s > 0; s--) if (d = s * c * u + l, l = u, u = d, Math.abs(u) > 1e10 && (u *= 1e-10, l *= 1e-10, a3 *= 1e-10), s === i3 && (a3 = l), f - s > 100 && a3 === 0) return NaN; return a3 *= e31(t3, 0) / u, t3 < 0 && i3 % 2 ? -a3 : a3; }; })(); e29.besselk = (() => { let e30 = [74e-7, 1075e-7, 262698e-8, 0.0348859, 0.23069756, 0.4227842, -0.57721566], t2 = [53208e-8, -25154e-7, 587872e-8, -0.01062446, 0.02189568, -0.07832358, 1.25331414]; function r2(r3) { return r3 <= 2 ? -Math.log(r3 / 2) * o(r3, 0) + n(e30, r3 * r3 / 4) : Math.exp(-r3) / Math.sqrt(r3) * n(t2, 2 / r3); } let a2 = [-4686e-8, -110404e-8, -0.01919402, -0.18156897, -0.67278579, 0.15443144, 1], s = [-68245e-8, 325614e-8, -780353e-8, 0.01504268, -0.0365562, 0.23498619, 1.25331414]; function c(e31) { return e31 <= 2 ? Math.log(e31 / 2) * o(e31, 1) + 1 / e31 * n(a2, e31 * e31 / 4) : Math.exp(-e31) / Math.sqrt(e31) * n(s, 2 / e31); } return i(r2, c, 2, 1); })(); })(Ts2 || (Ts2 = {})); function Es2(e29) { return /^[01]{1,10}$/.test(e29); } function Ds2(e29) { return /^[0-7]{1,10}$/.test(e29); } function Os2(e29) { return /^[0-9A-Fa-f]{1,10}$/.test(e29); } function ks2(e29) { if (e29 === 0) return 0; let t = [-1.3026537197817094, 0.6419697923564902, 0.019476473204185836, -0.00956151478680863, -946595344482036e-18, 366839497852761e-18, 42523324806907e-18, -20278578112534e-18, -1624290004647e-18, 130365583558e-17, 15626441722e-18, -85238095915e-18, 6529054439e-18, 5059343495e-18, -991364156e-18, -227365122e-18, 96467911e-18, 2394038e-18, -6886027e-18, 894487e-18, 313092e-18, -112708e-18, 381e-18, 7106e-18, -1523e-18, -94e-18, 121e-18, -28e-18], n = e29, r = false; n < 0 && (n = -n, r = true); let i = 2 / (2 + n), a = 4 * i - 2, o = 0, s = 0, c; for (let e30 = t.length - 1; e30 > 0; e30--) c = o, o = a * o - s + t[e30], s = c; let l = i * Math.exp(-n * n + 0.5 * (t[0] + a * o) - s); return r ? l - 1 : 1 - l; } function As2(e29) { return 1 - ks2(e29); } function js2(e29) { if (e29 >= 2) return -100; if (e29 <= 0) return 100; let t = e29 < 1 ? e29 : 2 - e29, n = Math.sqrt(-2 * Math.log(t / 2)), r = -0.70711 * ((2.30753 + n * 0.27061) / (1 + n * (0.99229 + n * 0.04481)) - n); for (let e30 = 0; e30 < 2; e30++) { let e31 = As2(r) - t; r += e31 / (1.1283791670955126 * Math.exp(-r * r) - r * e31); } return e29 < 1 ? r : -r; } function Ms2(e29, t = 1) { let n = Math.floor(e29); if (e29 < 0) return NaN; let r = 1; for (; n > 1 && Number.isFinite(r); ) r *= n, n -= t; return r; } function Ns2(e29, t) { let n = Math.min(e29 - t, t), r = 1; for (let t2 = 1; t2 <= n && Number.isFinite(r); t2++) r *= e29 - t2 + 1, r /= t2; return r; } function Ps2(e29, t) { let n = Math.floor(e29), r = Math.floor(t); for (; r !== 0; ) { let e30 = r; r = n % r, n = e30; } return n; } function Fs2(e29, t) { let n = Ps2(e29, t); return n === 0 ? 0 : Math.abs(e29 * t) / n; } function Is2(e29) { let t = e29.length; if (t === 1) return e29[0][0]; if (t === 2) return e29[0][0] * e29[1][1] - e29[0][1] * e29[1][0]; let { rowSwap: n, smallPivotDetected: r, luMatrix: i, permutation: a } = Us2(e29); if (r) return 0; let o = n ? 1 : -1; for (let e30 = 0; e30 < a.length; e30++) o *= i[e30][e30]; return o === 0 ? 0 : o; } function Ls2(e29) { let t = Is2(e29); return t === 0 ? null : e29.length === 1 ? [[1 / t]] : zs2(e29).map((e30) => e30.map((e31) => e31 / t)); } function Rs(e29, t, n) { return e29.filter((e30, n2) => n2 !== t).map((e30) => e30.filter((e31, t2) => t2 !== n)); } function zs2(e29) { let t = e29.length, n = Array.from({ length: t }, () => Array(t).fill(0)); for (let r = 0; r < t; r++) for (let i = 0; i < t; i++) { let t2 = ((r + i) % 2 == 0 ? 1 : -1) * Is2(Rs(e29, r, i)); n[i][r] = t2 === 0 ? 0 : t2; } return n; } function Bs2(e29, t) { return e29.map((e30) => t[0].map((n, r) => e30.reduce((e31, n2, i) => e31 + n2 * t[i][r], 0))); } function Vs(e29) { return e29[0].map((t, n) => e29.map((e30) => e30[n])); } function Hs2(e29) { let { smallPivotDetected: t, luMatrix: n, permutation: r } = Us2(e29); return t ? null : Ws2(n, r); } function Us2(e29) { let t = Vs(e29), n = t.length, r = t[0].length, i = true, a = false, o = Gs2(n, r, 0), s = Array(r).fill(0).map((e30, t2) => t2); for (let e30 = 0; e30 < r; e30++) { for (let n2 = 0; n2 < e30; n2++) { let r3 = t[n2][e30]; for (let t2 = 0; t2 < n2; t2++) r3 -= o[n2][t2] * o[t2][e30]; o[n2][e30] = r3; } let r2 = -1 / 0, c = e30; for (let i2 = e30; i2 < n; i2++) { let n2 = t[i2][e30]; for (let t2 = 0; t2 < e30; t2++) n2 -= o[i2][t2] * o[t2][e30]; o[i2][e30] = n2; let a2 = Math.abs(n2); a2 > r2 && (r2 = a2, c = i2); } if (Math.abs(o[c][e30]) < 1e-11) { a = true; break; } c !== e30 && ([o[e30], o[c]] = [o[c], o[e30]], [t[e30], t[c]] = [t[c], t[e30]], [s[e30], s[c]] = [s[c], s[e30]], i = !i); let l = o[e30][e30]; for (let t2 = e30 + 1; t2 < n; t2++) o[t2][e30] /= l; } return { rowSwap: i, smallPivotDetected: a, luMatrix: o, permutation: s }; } function Ws2(e29, t) { let n = t.length, r = Gs2(n, n, 0); for (let e30 = 0; e30 < n; e30++) r[e30][e30] = 1; let i = Gs2(n, n, 0); for (let e30 = 0; e30 < n; e30++) { let a = t[e30]; for (let t2 = 0; t2 < n; t2++) i[e30][t2] = r[a][t2]; } for (let t2 = 0; t2 < n; t2++) { let r2 = i[t2]; for (let a = t2 + 1; a < n; a++) { let o = e29[a][t2]; for (let e30 = 0; e30 < n; e30++) i[a][e30] -= r2[e30] * o; } } for (let t2 = n - 1; t2 >= 0; t2--) { let r2 = i[t2], a = e29[t2][t2]; for (let e30 = 0; e30 < n; e30++) r2[e30] /= a; for (let a2 = 0; a2 < t2; a2++) { let o = e29[a2][t2]; for (let e30 = 0; e30 < n; e30++) i[a2][e30] -= r2[e30] * o; } } return i; } function Gs2(e29, t, n) { let r = []; for (let i = 0; i < e29; i++) { r[i] = []; for (let e30 = 0; e30 < t; e30++) r[i].push(n); } return r; } function Ks2(e29) { let t = qs2(e29); if (!t) return null; let { matrixU: n, matrixS: r, matrixV: i } = t, a = Vs(n), o = Array.from({ length: r.length }, () => Array(e29[0].length).fill(0)), s = Math.max(e29.length, e29[0].length) * 2 ** -52 * r[0]; for (let e30 = 0; e30 < r.length; e30++) Math.abs(r[e30]) > s && (o[e30][e30] = 1 / r[e30]); return Bs2(i, Bs2(o, a)); } function qs2(e29) { let t = Vs(e29), n = t.length, r = t[0].length; if (n < r) return null; let i = Array(r).fill(0), a = Array(r).fill(0), o = Array.from({ length: r }, () => Array(r).fill(0)), s = 2 ** -52, c = 0, l = 0, u = 0; for (let e30 = 0; e30 < r; e30++) { if (i[e30] = c, l = Ys2(t, e30, n, e30, e30), l <= 1e-64 / s) c = 0; else { c = Math.sqrt(l), t[e30][e30] >= 0 && (c = -c); let i2 = t[e30][e30] * c - l; t[e30][e30] -= c; for (let a2 = e30 + 1; a2 < r; a2++) { l = Ys2(t, e30, n, e30, a2); for (let r2 = e30; r2 < n; r2++) t[r2][a2] += l / i2 * t[r2][e30]; } } if (a[e30] = c, l = Xs2(t, e30 + 1, r, e30, e30), l <= 1e-64 / s) c = 0; else { c = Math.sqrt(l), t[e30][e30 + 1] >= 0 && (c = -c); let a2 = t[e30][e30 + 1] * c - l; t[e30][e30 + 1] -= c; for (let n2 = e30 + 1; n2 < r; n2++) i[n2] = t[e30][n2] / a2; for (let a3 = e30 + 1; a3 < n; a3++) { l = Xs2(t, e30 + 1, r, a3, e30); for (let n2 = e30 + 1; n2 < r; n2++) t[a3][n2] += l * i[n2]; } } let o2 = Math.abs(a[e30]) + Math.abs(i[e30]); o2 > u && (u = o2); } let d = 0; for (let e30 = r - 1; e30 >= 0; e30--) { if (c !== 0) { for (let n2 = d; n2 < r; n2++) o[n2][e30] = t[e30][n2] / (c * t[e30][e30 + 1]); for (let n2 = d; n2 < r; n2++) { l = 0; for (let i2 = d; i2 < r; i2++) l += t[e30][i2] * o[i2][n2]; for (let t2 = d; t2 < r; t2++) o[t2][n2] += l * o[t2][e30]; } } for (let t2 = d; t2 < r; t2++) o[e30][t2] = 0, o[t2][e30] = 0; o[e30][e30] = 1, c = i[e30], d = e30; } for (let e30 = r - 1; e30 >= 0; e30--) { c = a[e30]; for (let n2 = e30 + 1; n2 < r; n2++) t[e30][n2] = 0; if (c !== 0) { for (let i2 = e30 + 1; i2 < r; i2++) { l = Ys2(t, e30 + 1, n, e30, i2); for (let r2 = e30; r2 < n; r2++) t[r2][i2] += l / (t[e30][e30] * c) * t[r2][e30]; } for (let r2 = e30; r2 < n; r2++) t[r2][e30] /= c; } else for (let r2 = e30; r2 < n; r2++) t[r2][e30] = 0; t[e30][e30] += 1; } s *= u; let f = 0, p = 0, m = 0; for (let e30 = r - 1; e30 >= 0; e30--) for (let c2 = 0; c2 < 50; c2++) { let l2 = false, u2 = e30; for (; u2 >= 0; u2--) { if (Math.abs(i[u2]) <= s) { l2 = true; break; } if (Math.abs(a[u2 - 1]) <= s) break; } if (!l2) { let r2 = 0, o2 = 1; for (let c3 = u2; c3 < e30 + 1 && (f = o2 * i[c3], p = a[c3], i[c3] *= r2, !(Math.abs(f) <= s)); c3++) { m = Js2(f, p), a[c3] = m, r2 = p / m, o2 = -f / m; for (let e31 = 0; e31 < n; e31++) { let n2 = t[e31][u2 - 1], i2 = t[e31][c3]; t[e31][u2 - 1] = n2 * r2 + i2 * o2, t[e31][c3] = -n2 * o2 + i2 * r2; } } } if (u2 === e30) { if (a[e30] < 0) { a[e30] = -a[e30]; for (let t2 = 0; t2 < r; t2++) o[t2][e30] = -o[t2][e30]; } break; } if (c2 >= 49) return null; let d2 = a[u2]; f = ((a[e30 - 1] - a[e30]) * (a[e30 - 1] + a[e30]) + (i[e30 - 1] - i[e30]) * (i[e30 - 1] + i[e30])) / (2 * i[e30] * a[e30 - 1]), m = Js2(f, 1), f = f < 0 ? ((d2 - a[e30]) * (d2 + a[e30]) + i[e30] * (a[e30 - 1] / (f - m) - i[e30])) / d2 : ((d2 - a[e30]) * (d2 + a[e30]) + i[e30] * (a[e30 - 1] / (f + m) - i[e30])) / d2; let h = 1, g2 = 1; for (let s2 = u2 + 1; s2 < e30 + 1; s2++) { let e31 = i[s2], c3 = a[s2]; p = g2 * e31, e31 *= h, m = Js2(f, p), i[s2 - 1] = m, h = f / m, g2 = p / m, f = d2 * h + e31 * g2, p = c3 * g2, e31 = -d2 * g2 + e31 * h, c3 *= h; for (let e32 = 0; e32 < r; e32++) { let t2 = o[e32][s2 - 1], n2 = o[e32][s2]; o[e32][s2 - 1] = t2 * h + n2 * g2, o[e32][s2] = -t2 * g2 + n2 * h; } m = Js2(f, p), a[s2 - 1] = m, h = f / m, g2 = p / m, f = h * e31 + g2 * c3, d2 = -g2 * e31 + h * c3; for (let e32 = 0; e32 < n; e32++) { let n2 = t[e32][s2 - 1], r2 = t[e32][s2]; t[e32][s2 - 1] = n2 * h + r2 * g2, t[e32][s2] = -n2 * g2 + r2 * h; } } i[u2] = 0, i[e30] = f, a[e30] = d2; } for (let e30 = 0; e30 < a.length; e30++) a[e30] < s && (a[e30] = 0); for (let e30 = 0; e30 < r; e30++) for (let n2 = e30 - 1; n2 >= 0; n2--) if (a[n2] < a[e30]) { let r2 = a[n2]; a[n2] = a[e30], a[e30] = r2; for (let r3 = 0; r3 < t.length; r3++) { let i2 = t[r3][e30]; t[r3][e30] = t[r3][n2], t[r3][n2] = i2; } for (let t2 = 0; t2 < o.length; t2++) { let r3 = o[t2][e30]; o[t2][e30] = o[t2][n2], o[t2][n2] = r3; } e30 = n2; } return { matrixU: t, matrixS: a, matrixV: o }; } function Js2(e29, t) { let n = 0; return Math.abs(e29) > Math.abs(t) ? (n = t / e29, Math.abs(e29) * Math.sqrt(1 + n * n)) : t === 0 ? 0 : (n = e29 / t, Math.abs(t) * Math.sqrt(1 + n * n)); } function Ys2(e29, t, n, r, i) { let a = 0; for (let o = t; o < n; o++) a += e29[o][r] * e29[o][i]; return a; } function Xs2(e29, t, n, r, i) { let a = 0; for (let o = t; o < n; o++) a += e29[r][o] * e29[i][o]; return a; } var Zs2 = /* @__PURE__ */ new Map([[`I`, 1], [`V`, 5], [`X`, 10], [`L`, 50], [`C`, 100], [`D`, 500], [`M`, 1e3]]); var Qs2 = /* @__PURE__ */ new Map([[1, `I`], [4, `IV`], [5, `V`], [9, `IX`], [10, `X`], [40, `XL`], [45, `VL`], [49, `IL`], [50, `L`], [90, `XC`], [95, `VC`], [99, `IC`], [100, `C`], [400, `CD`], [450, `LD`], [490, `XD`], [495, `VD`], [499, `ID`], [500, `D`], [900, `CM`], [950, `LM`], [990, `XM`], [995, `VM`], [999, `IM`], [1e3, `M`]]); var $s2 = [[1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1e3, 4e3], [1, 4, 5, 9, 10, 40, 45, 50, 90, 95, 100, 400, 450, 500, 900, 950, 1e3, 4e3], [1, 4, 5, 9, 10, 40, 45, 49, 50, 90, 95, 99, 100, 400, 450, 490, 500, 900, 950, 990, 1e3, 4e3], [1, 4, 5, 9, 10, 40, 45, 49, 50, 90, 95, 99, 100, 400, 450, 490, 495, 500, 900, 950, 990, 995, 1e3, 4e3], [1, 4, 5, 9, 10, 40, 45, 49, 50, 90, 95, 99, 100, 400, 450, 490, 495, 499, 500, 900, 950, 990, 995, 999, 1e3, 4e3]]; function ec2(e29, t, n) { return e29 <= 0 ? 0 : e29 >= 1 ? 1 : rc2(e29, t, n); } function tc2(e29, t, n) { return e29 <= 0 || e29 >= 1 ? 0 : t === 1 && n === 1 ? 1 : t < 512 && n < 512 ? e29 ** (t - 1) * (1 - e29) ** (n - 1) / ac2(t, n) : Math.exp((t - 1) * Math.log(e29) + (n - 1) * Math.log(1 - e29) - oc2(t, n)); } function nc2(e29, t, n) { if (e29 <= 0) return 0; if (e29 >= 1) return 1; let r; if (t >= 1 && n >= 1) { let i2 = e29 < 0.5 ? e29 : 1 - e29, a2 = Math.sqrt(-2 * Math.log(i2)); r = (2.30753 + a2 * 0.27061) / (1 + a2 * (0.99229 + a2 * 0.04481)) - a2, e29 < 0.5 && (r = -r); let o2 = (r * r - 3) / 6, s2 = 2 / (1 / (2 * t - 1) + 1 / (2 * n - 1)), c = r * Math.sqrt(o2 + s2) / s2 - (1 / (2 * n - 1) - 1 / (2 * t - 1)) * (o2 + 5 / 6 - 2 / (3 * s2)); r = t / (t + n * Math.exp(2 * c)); } else { let i2 = Math.exp(t * Math.log(t / (t + n))) / t, a2 = i2 + Math.exp(n * Math.log(n / (t + n))) / n; r = e29 < i2 / a2 ? (t * a2 * e29) ** (1 / t) : 1 - (n * a2 * (1 - e29)) ** (1 / n); } let i = -oc2(t, n), a, o, s; for (let c = 0; c < 10; c++) { if (r === 0 || r === 1) return r; if (a = rc2(r, t, n) - e29, o = Math.exp((t - 1) * Math.log(r) + (n - 1) * Math.log(1 - r) + i), s = a / o, r -= o = s / (1 - 0.5 * Math.min(1, s * ((t - 1) / r - (n - 1) / (1 - r)))), r <= 0 && (r = 0.5 * (r + o)), r >= 1 && (r = 0.5 * (r + o + 1)), Math.abs(o) < 1e-8 * r && c > 0) break; } return r; } function rc2(e29, t, n) { let r = e29 === 0 || e29 === 1 ? 0 : Math.exp(Sc2(t + n) - Sc2(t) - Sc2(n) + t * Math.log(e29) + n * Math.log(1 - e29)); return e29 < (t + 1) / (t + n + 2) ? r * ic2(e29, t, n) / t : 1 - r * ic2(1 - e29, n, t) / n; } function ic2(e29, t, n) { let r = 1e-8, i = 1 - (t + n) * e29 / (t + 1); Math.abs(i) < r && (i = r), i = 1 / i; let a = 1, o = i; for (let s = 1; s <= 100; s++) { let c = s * (n - s) * e29 / ((t - 1 + s * 2) * (t + s * 2)); if (i = 1 + c * i, Math.abs(i) < r && (i = r), a = 1 + c / a, Math.abs(a) < r && (a = r), i = 1 / i, o *= i * a, c = -(t + s) * (t + n + s) * e29 / ((t + s * 2) * (t + 1 + s * 2)), i = 1 + c * i, Math.abs(i) < r && (i = r), a = 1 + c / a, Math.abs(a) < r && (a = r), i = 1 / i, o *= i * a, Math.abs(i * a - 1) < r) break; } return o; } function ac2(e29, t) { return e29 + t > 170 ? Math.exp(oc2(e29, t)) : vc2(e29) * vc2(t) / vc2(e29 + t); } function oc2(e29, t) { return Sc2(e29) + Sc2(t) - Sc2(e29 + t); } function sc2(e29, t, n) { if (e29 < 0) return 0; if (e29 >= t) return 1; if (n < 0 || n > 1 || t <= 0) return NaN; let r = 0; for (let i = 0; i <= e29; i++) r += cc2(i, t, n); return r; } function cc2(e29, t, n) { return n === 0 || n === 1 ? t * n === e29 ? 1 : 0 : Ns2(t, e29) * n ** e29 * (1 - n) ** (t - e29); } function lc2(e29, t) { return e29 <= 0 ? 0 : Cc2(t / 2, e29 / 2); } function uc(e29, t) { return e29 < 0 ? 0 : e29 === 0 && t === 2 ? 0.5 : Math.exp((t / 2 - 1) * Math.log(e29) - e29 / 2 - t / 2 * Math.log(2) - Sc2(t / 2)); } function dc2(e29, t) { return e29 <= 0 ? 0 : e29 >= 1 ? 1 / 0 : 2 * wc2(e29, t / 2); } function fc2(e29, t, n) { return e29 < 0 ? 0 : rc2(t * e29 / (t * e29 + n), t / 2, n / 2); } function pc2(e29, t, n) { if (e29 < 0) return 0; if (e29 === 0 && t < 2) return 1 / 0; if (e29 === 0 && t === 2) return 1; let r = 1 / ac2(t / 2, n / 2); return r *= (t / n) ** (t / 2), r *= e29 ** (t / 2 - 1), r *= (1 + t / n * e29) ** (-(t + n) / 2), r; } function mc2(e29, t, n) { return e29 <= 0 ? 0 : e29 >= 1 ? 1 / 0 : n / (t * (1 / nc2(e29, t / 2, n / 2) - 1)); } function hc2(e29, t) { return e29 < 0 ? 0 : 1 - Math.exp(-t * e29); } function gc2(e29, t) { return e29 < 0 ? 0 : t * Math.exp(-t * e29); } function _c2(e29, t, n) { let r = t.length, i = 0, a = 0; for (let e30 = 0; e30 < r; e30++) i += t[e30], a += n[e30]; let o = i / r, s = a / r, c = 0, l = 0; for (let e30 = 0; e30 < r; e30++) c += (t[e30] - o) * (n[e30] - s), l += (n[e30] - s) ** 2; if (l === 0) return 1 / 0; let u = c / l; return o - u * s + u * e29; } function vc2(e29) { let t = [-1.716185138865495, 24.76565080557592, -379.80425647094563, 629.3311553128184, 866.9662027904133, -31451.272968848367, -36144.413418691176, 66456.14382024054], n = [-30.8402300119739, 315.35062697960416, -1015.1563674902192, -3107.771671572311, 22538.11842098015, 4755.846277527881, -134659.9598649693, -115132.2596755535], r = 0, i = e29; if (e29 > 171.6243769536076) return 1 / 0; if (i <= 0) { let e30 = i % 1 + 36e-17; if (e30) r = (i & 1 ? -1 : 1) * Math.PI / Math.sin(Math.PI * e30), i = 1 - i; else return 1 / 0; } let a = i, o = 0, s; s = i < 1 ? i++ : (i -= o = (i | 0) - 1) - 1; let c = 0, l = 0; for (let e30 = 0; e30 < 8; ++e30) c = (c + t[e30]) * s, l = l * s + n[e30]; let u = c / l + 1; if (a < i) u /= a; else if (a > i) for (let e30 = 0; e30 < o; ++e30) u *= i, i++; return r && (u = r / u), u; } function yc2(e29, t, n) { return e29 <= 0 ? 0 : Cc2(t, e29 / n); } function bc2(e29, t, n) { return e29 < 0 ? 0 : e29 === 0 && t === 1 ? 1 / n : Math.exp((t - 1) * Math.log(e29) - e29 / n - Sc2(t) - t * Math.log(n)); } function xc2(e29, t, n) { return e29 <= 0 ? 0 : e29 >= 1 ? 1 / 0 : n * wc2(e29, t); } function Sc2(e29) { let t = [76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.001208650973866179, -5395239384953e-18], n = e29, r = e29 + 5.5; r -= (e29 + 0.5) * Math.log(r); let i = 1.000000000190015; for (let e30 = 0; e30 < 6; e30++) i += t[e30] / ++n; return -r + Math.log(2.5066282746310007 * i / e29); } function Cc2(e29, t) { if (t < 0 || e29 <= 0) return NaN; let n = 1e-30, r = -~(Math.log(e29 >= 1 ? e29 : 1 / e29) * 8.5 + e29 * 0.4 + 17), i = Sc2(e29), a = Math.exp(-t + e29 * Math.log(t) - i), o = e29, s = 1 / e29, c = s; if (t < e29 + 1) { if (a === 0) return 0; for (let e30 = 1; e30 <= r && (s += c *= t / ++o, !(Math.abs(c) < Math.abs(s) * n)); e30++) ; return s * a; } if (a === 0) return 1; let l = t + 1 - e29, u = 1 / n, d = 1 / l, f = d; for (let t2 = 1; t2 <= r; t2++) { let r2 = -t2 * (t2 - e29); if (l += 2, d = r2 * d + l, Math.abs(d) < n && (d = n), u = l + r2 / u, Math.abs(u) < n && (u = n), d = 1 / d, f *= d * u, Math.abs(d * u - 1) < n) break; } return 1 - f * a; } function wc2(e29, t) { if (e29 <= 0) return 0; if (e29 >= 1) return Math.max(100, t + 100 * Math.sqrt(t)); let n; if (t > 1) { let r2 = e29 < 0.5 ? e29 : 1 - e29, i2 = Math.sqrt(-2 * Math.log(r2)); n = (2.30753 + i2 * 0.27061) / (1 + i2 * (0.99229 + i2 * 0.04481)) - i2, e29 < 0.5 && (n = -n), n = Math.max(1e-3, t * (1 - 1 / (9 * t) - n / (3 * Math.sqrt(t))) ** 3); } else { let r2 = 1 - t * (0.253 + t * 0.12); n = e29 < r2 ? (e29 / r2) ** (1 / t) : 1 - Math.log(1 - (e29 - r2) / (1 - r2)); } let r = Sc2(t), i, a; for (let o = 0; o < 12; o++) { if (n <= 0) return 0; if (i = Cc2(t, n) - e29, a = t > 1 ? Math.exp((t - 1) * (Math.log(t - 1) - 1) - r) * Math.exp(-(n - (t - 1)) + (t - 1) * (Math.log(n) - Math.log(t - 1))) : Math.exp(-n + (t - 1) * Math.log(n) - r), a !== 0 && (a = i / a / (1 - 0.5 * Math.min(1, i / a * ((t - 1) / n - 1)))), n -= a, n <= 0 && (n = 0.5 * (n + a)), Math.abs(a) < 1e-8 * n) break; } return n; } function Tc2(e29, t, n, r) { let i = 0; for (let a = 0; a <= e29; a++) i += Ec2(a, t, n, r); return i; } function Ec2(e29, t, n, r) { return t - e29 > r - n ? 0 : Ns2(n, e29) * Ns2(r - n, t - e29) / Ns2(r, t); } function Dc2(e29, t, n) { return e29 < 0 ? 0 : 0.5 + 0.5 * ks2((Math.log(e29) - t) / Math.sqrt(2 * n * n)); } function Oc2(e29, t, n) { return e29 <= 0 ? 0 : Math.exp(-Math.log(e29) - 0.5 * Math.log(2 * Math.PI) - Math.log(n) - (Math.log(e29) - t) ** 2 / (2 * n * n)); } function kc2(e29, t, n) { return Math.exp(Pc2(e29, t, n)); } function Ac2(e29, t, n) { if (e29 < 0) return 0; let r = 0; for (let i = 0; i <= e29; i++) r += jc2(i, t, n); return r; } function jc2(e29, t, n) { return e29 < 0 ? 0 : Ns2(e29 + t - 1, t - 1) * n ** t * (1 - n) ** e29; } function Mc2(e29, t, n) { return 0.5 * (1 + ks2((e29 - t) / Math.sqrt(2 * n * n))); } function Nc2(e29, t, n) { return Math.exp(-0.5 * Math.log(2 * Math.PI) - Math.log(n) - (e29 - t) ** 2 / (2 * n * n)); } function Pc2(e29, t, n) { return -1.4142135623730951 * n * js2(2 * e29) + t; } function Fc2(e29, t) { let n = 0; for (let r = 0; r <= e29; r++) n += Ic2(r, t); return n; } function Ic2(e29, t) { return Math.exp(-t) * t ** e29 / Ms2(e29); } function Lc2(e29, t) { let n = 0.5 * rc2(t / (e29 ** 2 + t), t / 2, 0.5); return e29 < 0 ? n : 1 - n; } function Rc2(e29, t) { let n = (1 + e29 ** 2 / t) ** (-(t + 1) / 2); return 1 / (Math.sqrt(t) * ac2(0.5, t / 2)) * n; } function zc2(e29, t) { let n = nc2(2 * Math.min(e29, 1 - e29), 0.5 * t, 0.5); return n = Math.sqrt(t * (1 - n) / n), e29 > 0.5 ? n : -n; } function Bc2(e29, t, n, r, i) { let a = [], o = [], s = true; for (let c = 0; c < n; c++) { let n2 = Math.floor(c / r), l = c % r, u = Math.floor(c / i), d = c % i, f = e29.isArray() ? e29.get(n2, l) : e29, p = t.isArray() ? t.get(u, d) : t; if (f.isError()) return { isError: true, errorObject: f, array1Values: a, array2Values: o, noCalculate: s }; if (p.isError()) return { isError: true, errorObject: p, array1Values: a, array2Values: o, noCalculate: s }; if (f.isNull() || p.isNull() || f.isBoolean() || p.isBoolean()) continue; let m = f.getValue(), h = p.getValue(); !Ja(m) || !Ja(h) || (a.push(+m), o.push(+h), s = false); } return { isError: false, errorObject: null, array1Values: a, array2Values: o, noCalculate: s }; } function Vc2(e29, t, n) { let r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1, a = r, o = i; if (t && !t.isNull() && (a = t.isArray() ? t.getRowCount() : 1, o = t.isArray() ? t.getColumnCount() : 1, r === 1 && o !== i || i === 1 && a !== r || r !== 1 && i !== 1 && (a !== r || o !== i))) return { isError: true, errorObject: j3.create(D3.REF) }; if (n && !n.isNull()) { let e30 = n.isArray() ? n.getRowCount() : 1, t2 = n.isArray() ? n.getColumnCount() : 1; if (r === 1 && a > 1 && e30 !== a || i === 1 && o > 1 && t2 !== o) return { isError: true, errorObject: j3.create(D3.REF) }; } return { isError: false, errorObject: null }; } function Hc2(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i = 0; i < t; i++) { r[i] = []; for (let t2 = 0; t2 < n; t2++) { let n2 = e29.isArray() ? e29.get(i, t2) : e29; if (n2.isError() || n2.isNull() || n2.isBoolean() || n2.isString()) return j3.create(D3.VALUE); r[i].push(+n2.getValue()); } } return r; } function Uc2(e29, t) { let n = [], r = 1; for (let i = 0; i < e29; i++) { n[i] = []; for (let e30 = 0; e30 < t; e30++) n[i].push(r++); } return n; } function Wc2(e29, t, n, r) { let i = t; r && (i = t.map((e30) => Math.log(e30))); let a, o; return n ? { slope: a, intercept: o } = Gc2(e29, i) : { slope: a, intercept: o } = Kc2(e29, i), r && (a = Math.exp(a), o = Math.exp(o)), Number.isNaN(a) && !n && (a = 0), { slope: a, intercept: o, Y: i }; } function Gc2(e29, t) { let n = t.length, r = 0, i = 0, a = 0, o = 0; for (let s2 = 0; s2 < n; s2++) r += e29[s2], i += t[s2], a += e29[s2] * e29[s2], o += e29[s2] * t[s2]; let s = (n * o - r * i) / (n * a - r * r); return { slope: s, intercept: 1 / n * i - 1 / n * s * r }; } function Kc2(e29, t) { let n = [[...e29]], r = [...t], i = n.length, a = n[0].length, o = Math.min(i, a), s = Array(o).fill(0); for (let e30 = 0; e30 < o; e30++) { let t2 = n[e30], r2 = 0; for (let e31 = 0; e31 < a; e31++) r2 += t2[e31] ** 2; let o2 = t2[e30] < 0 ? Math.sqrt(r2) : -Math.sqrt(r2); if (s[e30] = o2, o2 !== 0) { t2[e30] -= o2; for (let r3 = e30 + 1; r3 < i; r3++) { let i2 = 0; for (let o3 = e30; o3 < a; o3++) i2 -= n[r3][o3] * t2[o3]; i2 /= o2 * t2[e30]; for (let o3 = e30; o3 < a; o3++) n[r3][o3] -= i2 * t2[o3]; } } } i = n.length, a = n[0].length, o = Math.min(i, a); let c = Array(i).fill(0); for (let e30 = 0; e30 < o; e30++) { let t2 = n[e30], i2 = 0; for (let e31 = 0; e31 < a; e31++) i2 += r[e31] * t2[e31]; i2 /= s[e30] * t2[e30]; for (let e31 = 0; e31 < a; e31++) r[e31] += i2 * t2[e31]; } for (let e30 = s.length - 1; e30 >= 0; e30--) { r[e30] /= s[e30]; let t2 = r[e30], i2 = n[e30]; c[e30] = t2; for (let n2 = 0; n2 < e30; n2++) r[n2] -= t2 * i2[n2]; } return { slope: c[0], intercept: 0 }; } function qc2(e29, t, n, r, i) { let a = e29.length === 1 && e29[0].length > 1, o = e29; i && (o = e29.map((e30) => e30.map((e31) => Math.log(e31)))); let s = t, c = n; a && (o = Vs(o), s = Vs(s), c = Vs(c)), r && (s = s.map((e30) => [...e30, 1])); let l = Vs(s), u = Bs2(l, s), d = Bs2(l, o), f = Hs2(u); if (!f && (f = Ks2(u), !f)) return j3.create(D3.NA); let p = Bs2(f, d); r || p.push([0]), p = Vs(p); let m = p[0].pop(); if (p[0].reverse(), p[0].push(m), i) for (let e30 = 0; e30 < p[0].length; e30++) p[0][e30] = Math.exp(p[0][e30]); return { coefficients: p, Y: o, X: s, newX: c, XTXInverse: f }; } function Jc2(e29) { let t = [], n = [], r = false; for (let i = 0; i < e29.length; i++) { let a = e29[i]; if (a.isReferenceObject()) a.isMultiArea() ? t.push(a) : n.push(a); else { r = true; break; } } return { isError: r, multiAreaRefs: t, normalRefs: n }; } var Q3 = (function(e29) { return e29.AVERAGE = `AVERAGE`, e29.COUNT = `COUNT`, e29.COUNTA = `COUNTA`, e29.MAX = `MAX`, e29.MIN = `MIN`, e29.PRODUCT = `PRODUCT`, e29.STDEV = `STDEV`, e29.STDEV_S = `STDEV.S`, e29.STDEVP = `STDEVP`, e29.STDEV_P = `STDEV.P`, e29.SUM = `SUM`, e29.VAR = `VAR`, e29.VAR_S = `VAR.S`, e29.VARP = `VARP`, e29.VAR_P = `VAR.P`, e29.MEDIAN = `MEDIAN`, e29.MODE_SNGL = `MODE.SNGL`, e29; })({}); function Yc(e29, t) { let r = e29[t]; return r ? r.hd === A.TRUE : false; } function Xc2(e29, t, n, r, i, a) { let o = e29.getValue(t, n); if (o != null && o.f || o != null && o.si) { let e30 = a.getFormulaStringByCell(t, n, r, i); if (e30 && (e30.indexOf(`${K3.SUBTOTAL}(`) > -1 || e30.indexOf(`${K3.AGGREGATE}(`) > -1)) return true; } return false; } function Zc2(e29, t) { let n = Object.entries(e29).filter(([e30, { count: n2 }]) => n2 === t).sort((e30, t2) => e30[1].order - t2[1].order).map(([e30]) => +e30); return R4.create(n[0]); } function Qc2(e29, t) { let { type: n, ignoreRowHidden: r, ignoreErrorValues: i, ignoreNested: a, formulaDataModel: o } = e29, s = [], c = 0, l = 0, u = 0, d = 0, f = 0, p = 0, m = 1, h = {}, g2 = 1, _2 = 0; for (let e30 = 0; e30 < t.length; e30++) { var v; let y = t[e30], b = y.getFilteredOutRows(), x2 = y.getRowData(), S4 = y.getUnitId(), C3 = y.getSheetId(), ee = (v = y.getUnitData()[S4]) == null || (v = v[C3]) == null ? void 0 : v.cellData, te; if (y.iterator((e31, t2, v2) => { if (b.includes(t2) || r && Yc(x2, t2) || a && Xc2(ee, t2, v2, C3, S4, o)) return true; if (n === Q3.COUNT) return e31 != null && e31.isNumber() && c++, true; if (n === Q3.COUNTA) return e31 != null && !e31.isNull() && l++, true; if (e31 != null && e31.isError()) return i ? true : (te = e31, false); if (!e31 || e31.isNull() || e31.isBoolean() || e31.isString()) return true; let y2 = e31.getValue(); if (!Ja(y2)) return true; if (y2 = +y2, d++, n === Q3.MAX) return f = d === 1 ? y2 : Math.max(f, y2), true; if (n === Q3.MIN) return p = d === 1 ? y2 : Math.min(p, y2), true; if (n === Q3.MODE_SNGL) return h[y2] ? (h[y2].count++, h[y2].count > g2 && (g2 = h[y2].count)) : h[y2] = { count: 1, order: _2++ }, true; u += y2, m *= y2, s.push(e31); }), te != null && te.isError()) return te; } switch (n) { case Q3.AVERAGE: return d === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(u / d); case Q3.COUNT: return R4.create(c); case Q3.COUNTA: return R4.create(l); case Q3.MAX: return R4.create(f); case Q3.MIN: return R4.create(p); case Q3.PRODUCT: return R4.create(d === 0 ? 0 : m); case Q3.STDEV: case Q3.STDEV_S: return d < 2 ? j3.create(D3.DIV_BY_ZERO) : Ea2([s], 1, d).std(1); case Q3.STDEVP: case Q3.STDEV_P: return d === 0 ? j3.create(D3.DIV_BY_ZERO) : Ea2([s], 1, d).std(); case Q3.SUM: return R4.create(u); case Q3.VAR: case Q3.VAR_S: return d < 2 ? j3.create(D3.DIV_BY_ZERO) : Ea2([s], 1, d).var(1); case Q3.VARP: case Q3.VAR_P: return d === 0 ? j3.create(D3.DIV_BY_ZERO) : Ea2([s], 1, d).var(); case Q3.MEDIAN: return d === 0 ? j3.create(D3.NUM) : el2(s.map((e30) => +e30.getValue())); case Q3.MODE_SNGL: return _2 === 0 || g2 === 1 ? j3.create(D3.NA) : Zc2(h, g2); default: return j3.create(D3.VALUE); } } function $c2(e29, t, n) { let { ignoreRowHidden: r = false, ignoreErrorValues: i = false, ignoreNested: a = false } = t == null ? {} : t, o = []; if (e29.isReferenceObject()) { var s; let t2 = e29.getFilteredOutRows(), c = e29.getRowData(), l = e29.getUnitId(), u = e29.getSheetId(), d = (s = e29.getUnitData()[l]) == null || (s = s[u]) == null ? void 0 : s.cellData, f; if (e29.iterator((e30, s2, p) => { if (t2.includes(s2) || r && Yc(c, s2)) return true; if (e30 != null && e30.isError()) return i ? true : (f = e30, false); if (a && n && Xc2(d, s2, p, u, l, n) || !e30 || e30.isNull() || e30.isBoolean() || e30.isString()) return true; let m = e30.getValue(); if (!Ja(m)) return true; o.push(+m); }), f) return f; } else { let t2 = e29.isArray() ? e29.getRowCount() : 1, n2 = e29.isArray() ? e29.getColumnCount() : 1; for (let r2 = 0; r2 < t2; r2++) for (let t3 = 0; t3 < n2; t3++) { let n3 = e29.isArray() ? e29.get(r2, t3) : e29; if (n3.isError()) { if (i) continue; return n3; } if (!n3 || n3.isNull() || n3.isBoolean() || n3.isString()) continue; let a2 = n3.getValue(); Ja(a2) && o.push(+a2); } } return o.length === 0 ? j3.create(D3.NUM) : o; } function el2(e29) { let t = e29.length; e29.sort((e30, t2) => e30 - t2); let n; if (t % 2 == 0) { let r = t / 2; n = (e29[r - 1] + e29[r]) / 2; } else n = e29[Math.floor(t / 2)]; return R4.create(n); } function tl2(e29, t) { if (t < 1 || t > e29.length) return j3.create(D3.NUM); e29.sort((e30, t2) => t2 - e30); let n = Math.ceil(t); return R4.create(e29[n - 1]); } function nl2(e29, t) { if (t < 1 || t > e29.length) return j3.create(D3.NUM); e29.sort((e30, t2) => e30 - t2); let n = Math.floor(t); return R4.create(e29[n - 1]); } function rl2(e29, t) { let n = e29.length; if (t < 0 || t > 1) return j3.create(D3.NUM); e29.sort((e30, t2) => e30 - t2); let r = t * (n - 1), i = Math.floor(r), a = r - i; if (a === 0) return R4.create(e29[i]); let o = e29[i] + a * (e29[i + 1] - e29[i]); return R4.create(o); } function il2(e29, t) { let n = e29.length; if (t < 1 / (n + 1) || t > 1 - 1 / (n + 1)) return j3.create(D3.NUM); e29.sort((e30, t2) => e30 - t2); let r = t * (n + 1) - 1, i = Math.floor(r), a = r - i; if (a === 0) return R4.create(e29[i]); let o = e29[i] + a * (e29[i + 1] - e29[i]); return R4.create(o); } function al(e29, t) { let n = e29.length; if (t < 0 || t > 4) return j3.create(D3.NUM); e29.sort((e30, t2) => e30 - t2); let r = t / 4 * (n - 1), i = Math.floor(r), a = r - i; if (a === 0) return R4.create(e29[i]); let o = e29[i] + a * (e29[i + 1] - e29[i]); return R4.create(o); } function ol(e29, t) { let n = e29.length; if (t <= 0 || t >= 4) return j3.create(D3.NUM); e29.sort((e30, t2) => e30 - t2); let r = t / 4; if (r < 1 / (n + 1) || r > 1 - 1 / (n + 1)) return j3.create(D3.NUM); let i = r * (n + 1) - 1, a = Math.floor(i), o = i - a; if (o === 0) return R4.create(e29[a]); let s = e29[a] + o * (e29[a + 1] - e29[a]); return R4.create(s); } var sl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(1) : i; a.isNull() && (a = R4.create(0)), o.isNull() && (o = R4.create(1)); let s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.mapValue((e30, t2, n2) => { let r2 = u.get(t2, n2), i2 = d.get(t2, n2), a2 = f.get(t2, n2), o2 = p.get(t2, n2); return this._handleSingleObject(e30, r2, i2, a2, o2); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } _handleSingleObject(e29, t, n, r, i) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; if (r.isError()) return r; if (i.isError()) return i; let { isError: a, errorObject: o, variants: s } = X3(e29, t, n, r, i); if (a) return o; let [c, l, u, d, f] = s, p = +c.getValue(), m = +l.getValue(), h = +u.getValue(), g2 = +d.getValue(), _2 = +f.getValue(); if (m <= 0 || h <= 0 || p <= 0 || p >= 1 || g2 >= _2) return j3.create(D3.NUM); let v = nc2(p, m, h) * (_2 - g2) + g2; return R4.create(v); } }; var cl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = Math.floor(+s.getValue()), f = Math.floor(+c.getValue()), p = +l.getValue(), m = +u.getValue(); if (d < 0 || d > f || p < 0 || p > 1) return j3.create(D3.NUM); let h; return h = m ? sc2(d, f, p) : cc2(d, f, p), R4.create(h); } }; var ll2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = Math.floor(+o.getValue()), u = +s.getValue(), d = +c.getValue(); if (l < 0 || u <= 0 || u >= 1 || d <= 0 || d >= 1) return j3.create(D3.NUM); let f = 0; for (; f <= l && !(sc2(f, l, u) >= d); ) f++; return R4.create(f); } }; var ul2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s < 0 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = 1 - lc2(s, c); return R4.create(l); } }; var dl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s < 0 || s > 1 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = dc2(1 - s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var fl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if (n * r === 1 || i * a === 1) return o.isNull() || s.isNull() ? j3.create(D3.VALUE) : j3.create(D3.NA); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d, n, r); } _getResult(e29, t, n, r) { let i = 0; for (let n2 = 0; n2 < e29.length; n2++) { if (t[n2] === 0) return j3.create(D3.DIV_BY_ZERO); i += (e29[n2] - t[n2]) ** 2 / t[n2]; } let a = (n - 1) * (r - 1); n === 1 ? a = r - 1 : r === 1 && (a = n - 1); let o = 1 - lc2(i, a); return R4.create(o); } }; var pl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; if (i2.isError()) return i2; let { isError: a2, errorObject: c2, variants: l } = X3(e30, r2, i2); if (a2) return c2; let [u, d, f] = l, p = +u.getValue(), m = +d.getValue(), h = Math.floor(+f.getValue()); if (p <= 0 || p >= 1 || m <= 0 || h < 1) return j3.create(D3.NUM); let g2 = Math.abs(Pc2(p / 2, 0, 1) * m / Math.sqrt(h)); return R4.create(g2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var ml2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return j3.create(D3.VALUE); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { if (e29.length === 0) return j3.create(D3.DIV_BY_ZERO); let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0; for (let r2 = 0; r2 < n; r2++) { let n2 = e29[r2] - a, i2 = t[r2] - o; s += n2 * i2; } return R4.create(s / n); } }; var hl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (l < 0 || u <= 0) return j3.create(D3.NUM); let f; return f = d ? hc2(l, u) : gc2(l, u), R4.create(f); } }; var gl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = Math.floor(+c.getValue()); if (l < 0 || u < 1 || u > 10 ** 10 || d < 1 || d > 10 ** 10) return j3.create(D3.NUM); let f = 1 - fc2(l, u, d); return R4.create(f); } }; var _l = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = Math.floor(+c.getValue()); if (l < 0 || l > 1 || u < 1 || u > 10 ** 10 || d < 1 || d > 10 ** 10) return j3.create(D3.NUM); let f = mc2(1 - l, u, d); return Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var vl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variance: i, ns1: a } = this._getValues(e29); if (n) return r; let { isError: o, errorObject: s, variance: c, ns1: l } = this._getValues(t); if (o) return s; let u = 2 * (1 - fc2(i / c, a, l)); return u > 1 && (u = 2 - u), R4.create(u); } _getValues(e29) { let t = 0, n = 0, r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1; if (r === 1 && i === 1) { let r2 = e29.isArray() ? e29.get(0, 0) : e29; return r2.isError() ? { isError: true, errorObject: r2, variance: t, ns1: n } : r2.isNull() ? { isError: true, errorObject: j3.create(D3.VALUE), variance: t, ns1: n } : { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), variance: t, ns1: n }; } let a = [], o = 0; for (let s2 = 0; s2 < r; s2++) for (let r2 = 0; r2 < i; r2++) { let i2 = e29.isArray() ? e29.get(s2, r2) : e29; if (i2.isError()) return { isError: true, errorObject: i2, variance: t, ns1: n }; if (i2.isNull() || i2.isBoolean()) continue; let c2 = i2.getValue(); Ja(c2) && (a.push(+c2), o += +c2); } if (a.length <= 1) return { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), variance: t, ns1: n }; let s = o / a.length, c = 0; for (let e30 = 0; e30 < a.length; e30++) c += (a[e30] - s) ** 2; return n = a.length - 1, t = c / n, t === 0 ? { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), variance: t, ns1: n } : { isError: false, errorObject: null, variance: t, ns1: n }; } }; var yl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = +s.getValue(), f = +c.getValue(), p = +l.getValue(), m = +u.getValue(); if (d < 0 || f <= 0 || p <= 0) return j3.create(D3.NUM); let h; return h = m ? yc2(d, f, p) : bc2(d, f, p), R4.create(h); } }; var bl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (l < 0 || l > 1 || u <= 0 || d <= 0) return j3.create(D3.NUM); let f = xc2(l, u, d); return Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var xl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (l <= 0 || l >= 1 || d <= 0) return j3.create(D3.NUM); let f = kc2(l, u, d); return Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var Sl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = {}, n = 0, r = 1; for (let i = 0; i < e29.length; i++) { let a = e29[i]; if (a.isError()) return a; if (a.isString()) { let e30 = a.convertToNumberObjectValue(); if (e30.isError()) return e30; } let o = a.isArray() ? a.getRowCount() : 1, s = a.isArray() ? a.getColumnCount() : 1; for (let e30 = 0; e30 < o; e30++) for (let i2 = 0; i2 < s; i2++) { let o2 = a.isArray() ? a.get(e30, i2) : a; if (o2.isError()) return o2; if (o2.isNull() || o2.isBoolean() || o2.isString()) continue; let s2 = o2.getValue(); Ja(s2) && (t[+s2] ? (t[+s2].count++, t[+s2].count > r && (r = t[+s2].count)) : t[+s2] = { count: 1, order: n++ }); } } return n === 0 || r === 1 ? new j3(D3.NA) : Zc2(t, r); } }; var Cl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = +s.getValue(), f = +c.getValue(), p = +l.getValue(), m = +u.getValue(); if (p <= 0) return j3.create(D3.NUM); let h; return h = m ? Mc2(d, f, p) : Nc2(d, f, p), R4.create(h); } }; var wl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (l <= 0 || l >= 1 || d <= 0) return j3.create(D3.NUM); let f = Pc2(l, u, d); return R4.create(f); } }; var Tl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return e29.getRowCount() === 1 && e29.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (a <= 0 || a >= 1) return j3.create(D3.NUM); let o = Pc2(a, 0, 1); return R4.create(o); } }; var El = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return rl2(e29, +a.getValue()); } }; var Dl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = this._getValues(e29), i = n == null ? R4.create(3) : n; i.isNull() && (i = R4.create(3)); let a = Math.max(t.isArray() ? t.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(t.isArray() ? t.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, t, j3.create(D3.NA)), c = V3(a, o, i, j3.create(D3.NA)), l = s.mapValue((e30, t2, n2) => { let i2 = c.get(t2, n2); return e30.isError() ? e30 : i2.isError() ? i2 : this._handleSingleObject(r, e30, i2); }); return a === 1 && o === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { if (e29 instanceof j3) return e29; let { isError: r, errorObject: i, variants: a } = X3(t, n); if (r) return i; let [o, s] = a, c = +o.getValue(), l = Math.floor(+s.getValue()), u = e29.length; if (u === 0 || c < e29[0] || c > e29[u - 1]) return j3.create(D3.NA); if (u === 1) return c === e29[0] ? R4.create(1) : j3.create(D3.NA); let d = 0, f = false, p = 0; for (; !f && p < u; ) c === e29[p] ? (d = p / (u - 1), f = true) : c > e29[p] && p + 1 < u && c < e29[p + 1] && (d = (p + (c - e29[p]) / (e29[p + 1] - e29[p])) / (u - 1), f = true), p++; return f ? l < 1 ? j3.create(D3.NUM) : (d = Ki2(d, l), R4.create(d)) : j3.create(D3.NA); } _getValues(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i = 0; i < t; i++) for (let t2 = 0; t2 < n; t2++) { let n2 = e29.isArray() ? e29.get(i, t2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) continue; let a = n2.getValue(); Ja(a) && r.push(+a); } return r.sort((e30, t2) => e30 - t2); } }; var Ol = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = Math.floor(+o.getValue()), u = +s.getValue(), d = +c.getValue(); if (l < 0 || u < 0) return j3.create(D3.NUM); let f; return f = d ? Fc2(l, u) : Ic2(l, u), R4.create(f); } }; var kl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return al(e29, Math.floor(+a.getValue())); } }; var Al = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29); return t.isError() ? t : t.std(); } }; var jl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29); return t.isError() ? t : t.std(1); } }; var Ml = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s <= 0 || s > 1 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = Math.abs(zc2(s / 2, c)); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Nl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, array1Values: o, array2Values: s } = this._handleArray1AndArray2(e29, t), c = this._getArrayValues(e29), l = this._getArrayValues(t), u = Math.max(n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), d = Math.max(n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), f = V3(u, d, n, j3.create(D3.NA)), p = V3(u, d, r, j3.create(D3.NA)), m = f.mapValue((n2, r2, u2) => { let d2 = p.get(r2, u2); if (e29.isError()) return e29; if (t.isError()) return t; if (n2.isError()) return n2; if (d2.isError()) return d2; let { isError: f2, errorObject: m2, variants: h } = X3(n2, d2); if (f2) return m2; let [g2, _2] = h, v = Math.floor(+g2.getValue()), y = Math.floor(+_2.getValue()); return ![1, 2].includes(v) || ![1, 2, 3].includes(y) ? j3.create(D3.NUM) : y === 1 && i ? a : y !== 1 && c instanceof j3 ? c : y !== 1 && l instanceof j3 ? l : this._handleSingleObject(y === 1 ? o : c, y === 1 ? s : l, v, y); }); return u === 1 && d === 1 ? m.get(0, 0) : m; } _handleSingleObject(e29, t, n, r) { if (e29.length < 2 || t.length < 2) return j3.create(D3.DIV_BY_ZERO); let { isError: i, errorObject: a, x: o, degFreedom: s } = this._getTDistParamByArrayValues(e29, t, r); if (i) return a; let c = Lc2(-o, s); return n === 2 && (c *= 2), Number.isNaN(c) || !Number.isFinite(c) ? j3.create(D3.NUM) : R4.create(c); } _getArrayValues(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i = 0; i < t; i++) for (let a = 0; a < n; a++) { let o = e29.isArray() ? e29.get(i, a) : e29; if (o.isError()) return o; if (o.isNull()) { if (t * n === 1) return j3.create(D3.VALUE); continue; } o.isBoolean() || o.isString() || r.push(+o.getValue()); } return r; } _handleArray1AndArray2(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return { isError: true, errorObject: o, array1Values: [], array2Values: [] }; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return { isError: true, errorObject: s, array1Values: [], array2Values: [] }; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return { isError: true, errorObject: j3.create(D3.VALUE), array1Values: [], array2Values: [] }; if (n * r !== i * a) return { isError: true, errorObject: j3.create(D3.NA), array1Values: [], array2Values: [] }; let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? { isError: true, errorObject: l, array1Values: [], array2Values: [] } : f || u.length < 2 ? { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), array1Values: [], array2Values: [] } : { isError: false, errorObject: null, array1Values: u, array2Values: d }; } _getTDistParamByArrayValues(e29, t, n) { return n === 1 ? this._getTDistParamByType1(e29, t) : n === 2 ? this._getTDistParamByType2(e29, t) : this._getTDistParamByType3(e29, t); } _getTDistParamByType1(e29, t) { let n = e29.length, r = 0, i = 0, a = 0; for (let o2 = 0; o2 < n; o2++) r += e29[o2], i += t[o2], a += (e29[o2] - t[o2]) ** 2; let o = r - i, s = n * a - o ** 2, c = n - 1; return s === 0 ? { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), x: 0, degFreedom: c } : { isError: false, errorObject: null, x: Math.abs(o) * Math.sqrt(c / s), degFreedom: c }; } _getTDistParamByType2(e29, t) { let n = e29.length, r = t.length, i = 0, a = 0; for (let t2 = 0; t2 < n; t2++) i += e29[t2], a += e29[t2] ** 2; let o = 0, s = 0; for (let e30 = 0; e30 < r; e30++) o += t[e30], s += t[e30] ** 2; let c = a - i ** 2 / n, l = s - o ** 2 / r, u = Math.sqrt(c + l); if (u === 0) return { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), x: 0, degFreedom: 0 }; let d = n - 1 + r - 1, f = Math.sqrt(n * r * d / (n + r)); return { isError: false, errorObject: null, x: Math.abs(i / n - o / r) / u * f, degFreedom: d }; } _getTDistParamByType3(e29, t) { let n = e29.length, r = t.length, i = 0, a = 0; for (let t2 = 0; t2 < n; t2++) i += e29[t2], a += e29[t2] ** 2; let o = 0, s = 0; for (let e30 = 0; e30 < r; e30++) o += t[e30], s += t[e30] ** 2; let c = (a - i ** 2 / n) / (n * (n - 1)), l = (s - o ** 2 / r) / (r * (r - 1)); if (c + l === 0) return { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), x: 0, degFreedom: 0 }; let u = c / (c + l); return { isError: false, errorObject: null, x: Math.abs(i / n - o / r) / Math.sqrt(c + l), degFreedom: 1 / (u ** 2 / (n - 1) + (1 - u) ** 2 / (r - 1)) }; } }; var Pl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29); return t.isError() ? t : t.var(); } }; var Fl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29); return t.isError() ? t : t.var(1); } }; var Il2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = +s.getValue(), f = +c.getValue(), p = +l.getValue(), m = +u.getValue(); if (d < 0 || f <= 0 || p <= 0) return j3.create(D3.NUM); let h = Math.exp(-((d / p) ** f)), g2; return g2 = m ? 1 - h : f / p ** f * d ** (f - 1) * h, Number.isNaN(g2) || !Number.isFinite(g2) ? j3.create(D3.NUM) : R4.create(g2); } }; var Ll2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = this._getArrayValues(e29), i = Math.max(t.isArray() ? t.getRowCount() : 1, n != null && n.isArray() ? n.getRowCount() : 1), a = Math.max(t.isArray() ? t.getColumnCount() : 1, n != null && n.isArray() ? n.getColumnCount() : 1), o = V3(i, a, t, j3.create(D3.NA)), s = n ? V3(i, a, n, j3.create(D3.NA)) : void 0, c = o.mapValue((e30, t2, i2) => { if (r instanceof j3) return r; if (e30.isError()) return e30; let a2 = n ? s.get(t2, i2) : void 0; return a2 != null && a2.isError() ? a2 : r.length === 0 ? j3.create(D3.NA) : r.length === 1 ? j3.create(D3.DIV_BY_ZERO) : this._handleSingleObject(r, e30, a2); }); return i === 1 && a === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = +o.getValue(), c = e29.length, l = 0, u = 0; for (let t2 = 0; t2 < c; t2++) l += e29[t2], u += e29[t2] ** 2; let d = 0; if (n !== void 0) { let { isError: e30, errorObject: t2, variants: r2 } = X3(n); if (e30) return t2; let [i2] = r2; d = +i2.getValue(); } else { let e30 = l / c; d = Math.sqrt((u - 2 * e30 * l + c * e30 ** 2) / (c - 1)); } if (d <= 0) return j3.create(D3.NUM); let f = 1 - Mc2((l / c - s) / (d / Math.sqrt(c)), 0, 1); return Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } _getArrayValues(e29) { let t = [], n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1; for (let i = 0; i < n; i++) for (let n2 = 0; n2 < r; n2++) { let r2 = e29.isArray() ? e29.get(i, n2) : e29; if (r2.isError()) return r2; if (r2.isNull() || r2.isBoolean() || r2.isString()) continue; let a = r2.getValue(); Ja(a) && t.push(+a); } return t; } }; var Rl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(1) : i; a.isNull() && (a = R4.create(0)), o.isNull() && (o = R4.create(1)); let s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.mapValue((e30, t2, n2) => { let r2 = u.get(t2, n2), i2 = d.get(t2, n2), a2 = f.get(t2, n2), o2 = p.get(t2, n2); return this._handleSingleObject(e30, r2, i2, a2, o2); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } _handleSingleObject(e29, t, n, r, i) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; if (r.isError()) return r; if (i.isError()) return i; let { isError: a, errorObject: o, variants: s } = X3(e29, t, n, r, i); if (a) return o; let [c, l, u, d, f] = s, p = +c.getValue(), m = +l.getValue(), h = +u.getValue(), g2 = +d.getValue(), _2 = +f.getValue(); if (m <= 0 || h <= 0 || p < g2 || p > _2 || g2 === _2) return j3.create(D3.NUM); let v = ec2((p - g2) / (_2 - g2), m, h); return R4.create(v); } }; var zl2 = (function(e29) { return e29.BETADIST = `BETADIST`, e29.BETAINV = `BETAINV`, e29.BINOMDIST = `BINOMDIST`, e29.CHIDIST = `CHIDIST`, e29.CHIINV = `CHIINV`, e29.CHITEST = `CHITEST`, e29.CONFIDENCE = `CONFIDENCE`, e29.COVAR = `COVAR`, e29.CRITBINOM = `CRITBINOM`, e29.EXPONDIST = `EXPONDIST`, e29.FDIST = `FDIST`, e29.FINV = `FINV`, e29.FTEST = `FTEST`, e29.GAMMADIST = `GAMMADIST`, e29.GAMMAINV = `GAMMAINV`, e29.HYPGEOMDIST = `HYPGEOMDIST`, e29.LOGINV = `LOGINV`, e29.LOGNORMDIST = `LOGNORMDIST`, e29.MODE = `MODE`, e29.NEGBINOMDIST = `NEGBINOMDIST`, e29.NORMDIST = `NORMDIST`, e29.NORMINV = `NORMINV`, e29.NORMSDIST = `NORMSDIST`, e29.NORMSINV = `NORMSINV`, e29.PERCENTILE = `PERCENTILE`, e29.PERCENTRANK = `PERCENTRANK`, e29.POISSON = `POISSON`, e29.QUARTILE = `QUARTILE`, e29.RANK = `RANK`, e29.STDEV = `STDEV`, e29.STDEVP = `STDEVP`, e29.TDIST = `TDIST`, e29.TINV = `TINV`, e29.TTEST = `TTEST`, e29.VAR = `VAR`, e29.VARP = `VARP`, e29.WEIBULL = `WEIBULL`, e29.ZTEST = `ZTEST`, e29; })({}); var Bl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = Math.floor(+s.getValue()), f = Math.floor(+c.getValue()), p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (d < 0 || d > f || d > p || d < f - m + p || f <= 0 || f > m || p <= 0 || p > m || m <= 0) return j3.create(D3.NUM); let h = Ec2(d, f, p, m); return Number.isNaN(h) && (h = 0), R4.create(h); } }; var Vl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (l <= 0 || d <= 0) return j3.create(D3.NUM); let f = Dc2(l, u, d); return R4.create(f); } }; var Hl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = Math.floor(+o.getValue()), u = Math.floor(+s.getValue()), d = +c.getValue(); if (l < 0 || u < 1 || d <= 0 || d >= 1) return j3.create(D3.NUM); let f = jc2(l, u, d); return R4.create(f); } }; var Ul = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return e29.getRowCount() === 1 && e29.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = Mc2(+i.getValue(), 0, 1); return R4.create(a); } }; var Wl = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { let r = e29; r.isReferenceObject() && (r = r.toArrayValueObject()); let { refHasError: i, refErrorObject: a, refNumbers: o } = this._checkRefReferenceObject(t), s = n == null ? R4.create(0) : n; s.isReferenceObject() && (s = s.toArrayValueObject()); let c = Math.max(r.isArray() ? r.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(r.isArray() ? r.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, r, j3.create(D3.NA)), d = V3(c, l, s, j3.create(D3.NA)), f = u.map((t2, n2, r2) => { let s2 = d.get(n2, r2); if (!e29.isReferenceObject() && e29.isNull()) return j3.create(D3.NA); if (i) return a; if (s2.isError()) return s2; let c2 = +t2.getValue(), l2 = +s2.getValue(); if (Number.isNaN(c2) || Number.isNaN(l2)) return j3.create(D3.VALUE); let u2 = o.sort((e30, t3) => l2 ? e30 - t3 : t3 - e30).indexOf(c2); return u2 === -1 ? j3.create(D3.NA) : R4.create(u2 + 1); }); return c === 1 && l === 1 ? f.get(0, 0) : f; } _checkRefReferenceObject(e29) { let t = false, n = j3.create(D3.NA), r = []; return e29.isReferenceObject() ? (e29.toArrayValueObject().iterator((e30) => { let i = e30; if (i.isError()) return t = true, n = i, false; if (i.isNull() || i.isBoolean()) return true; let a = +i.getValue(); if (Number.isNaN(a)) return true; r.push(a); }), { refHasError: t, refErrorObject: n, refNumbers: r }) : { refHasError: true, refErrorObject: n, refNumbers: r }; } }; var Gl2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = Math.floor(+c.getValue()); if (l < 0 || u < 1 || u > 10 ** 10 || d < 1 || d > 2) return j3.create(D3.NUM); let f = Lc2(-l, u); return d === 2 && (f *= 2), Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var Kl2 = [[Rl2, zl2.BETADIST], [sl, zl2.BETAINV], [cl, zl2.BINOMDIST], [ul2, zl2.CHIDIST], [dl2, zl2.CHIINV], [fl2, zl2.CHITEST], [pl2, zl2.CONFIDENCE], [ml2, zl2.COVAR], [ll2, zl2.CRITBINOM], [hl2, zl2.EXPONDIST], [gl2, zl2.FDIST], [_l, zl2.FINV], [vl2, zl2.FTEST], [yl2, zl2.GAMMADIST], [bl2, zl2.GAMMAINV], [Bl2, zl2.HYPGEOMDIST], [Vl2, zl2.LOGNORMDIST], [xl2, zl2.LOGINV], [Sl, zl2.MODE], [Hl2, zl2.NEGBINOMDIST], [Cl2, zl2.NORMDIST], [wl, zl2.NORMINV], [Ul, zl2.NORMSDIST], [Tl2, zl2.NORMSINV], [El, zl2.PERCENTILE], [Dl, zl2.PERCENTRANK], [Ol, zl2.POISSON], [kl, zl2.QUARTILE], [Wl, zl2.RANK], [jl, zl2.STDEV], [Al, zl2.STDEVP], [Gl2, zl2.TDIST], [Ml, zl2.TINV], [Nl, zl2.TTEST], [Fl2, zl2.VAR], [Pl2, zl2.VARP], [Il2, zl2.WEIBULL], [Ll2, zl2.ZTEST]]; var ql2 = []; var Jl2 = (function(e29) { return e29.CUBEKPIMEMBER = `CUBEKPIMEMBER`, e29.CUBEMEMBER = `CUBEMEMBER`, e29.CUBEMEMBERPROPERTY = `CUBEMEMBERPROPERTY`, e29.CUBERANKEDMEMBER = `CUBERANKEDMEMBER`, e29.CUBESET = `CUBESET`, e29.CUBESETCOUNT = `CUBESETCOUNT`, e29.CUBEVALUE = `CUBEVALUE`, e29; })({}); var Yl2 = class extends Z3 { isCustom() { return true; } }; var Xl2 = class extends Yl2 { isAsync() { return true; } }; function Zl2(e29) { let t = []; if (e29.isError()) return { isError: true, errorObject: e29, databaseValues: t }; let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1; if (n < 2) return { isError: true, errorObject: j3.create(D3.VALUE), databaseValues: t }; for (let i = 0; i < n; i++) { let n2 = []; for (let t2 = 0; t2 < r; t2++) { let r2 = e29.get(i, t2); if (r2.isNull()) { n2.push(null); continue; } let a = `${r2.getValue()}`; if (r2.isBoolean() && (a = a.toLocaleUpperCase()), r2.isNumber() || Ja(a)) { n2.push(+a); continue; } n2.push(a); } t.push(n2); } return { isError: false, errorObject: null, databaseValues: t }; } function Ql(e29, t) { let n = -1; if (e29.isError()) return { isError: true, errorObject: e29, fieldIndex: n }; let r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1; if (r > 1 || i > 1) return { isError: true, errorObject: j3.create(D3.VALUE), fieldIndex: n }; let a = e29.isArray() ? e29.get(0, 0) : e29, o = `${a.getValue()}`; if (a.isNull() ? o = 0 : a.isBoolean() ? o = a.getValue() ? 1 : 0 : (a.isNumber() || Ja(o)) && (o = Math.floor(+o)), typeof o == `number`) { if (o < 1 || o > t[0].length) return { isError: true, errorObject: j3.create(D3.VALUE), fieldIndex: n }; n = o - 1; } else if (n = t[0].findIndex((e30) => e30 === null ? false : `${e30}`.toLocaleLowerCase() === o.toLocaleLowerCase()), n === -1) return { isError: true, errorObject: j3.create(D3.VALUE), fieldIndex: n }; return { isError: false, errorObject: null, fieldIndex: n }; } function $l2(e29) { let t = []; if (e29.isError()) return { isError: true, errorObject: e29, criteriaValues: t }; let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1; if (n < 2) return { isError: true, errorObject: j3.create(D3.VALUE), criteriaValues: t }; for (let i = 0; i < n; i++) { let n2 = []; for (let t2 = 0; t2 < r; t2++) { let r2 = e29.get(i, t2); if (r2.isNull()) { n2.push(null); continue; } let a = `${r2.getValue()}`; if (r2.isBoolean()) { n2.push(r2.getValue() ? 1 : 0); continue; } if (r2.isNumber() || Ja(a)) { n2.push(+a); continue; } n2.push(a); } t.push(n2); } return { isError: false, errorObject: null, criteriaValues: t }; } function eu2(e29, t, n) { let r = e29.length, i = e29[0].length, a = {}, o = false; for (let s = 1; s < r; s++) { let r2 = true; for (let o2 = 0; o2 < i; o2++) { let i2 = e29[s][o2]; if (i2 === null) continue; let c = a[o2]; if (c === void 0) { let n2 = e29[0][o2]; c = t[0].findIndex((e30) => e30 === null || n2 === null ? false : `${e30}`.toLocaleLowerCase() === `${n2}`.toLocaleLowerCase()), a[o2] = c; } if (c === -1 && (typeof i2 == `string` || i2 === 0)) { r2 = false; break; } else if (c > -1) { let e30 = t[n][c]; if (e30 === null) { r2 = false; break; } let [a2, o3] = Da2(`${i2}`); if (!ga2.create(`${e30}`).compare(o3, a2).getValue()) { r2 = false; break; } } } if (r2) { o = true; break; } } return o; } var tu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 0, p = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f += t2, p++); } return p === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(f / p); } }; var nu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 0; for (let e30 = 1; e30 < a.length; e30++) typeof a[e30][c] == `number` && eu2(d, a, e30) && f++; return R4.create(f); } }; var ru = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 0; for (let e30 = 1; e30 < a.length; e30++) a[e30][c] != null && eu2(d, a, e30) && f++; return R4.create(f); } }; var iu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 0, p = 0; for (let e30 = 1; e30 < a.length; e30++) a[e30][c] != null && eu2(d, a, e30) && (f++, p = e30); return f === 0 ? j3.create(D3.VALUE) : f > 1 ? j3.create(D3.NUM) : e29.get(p, c); } }; var au2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = -1 / 0, p = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f = Math.max(f, t2), p++); } return p === 0 ? R4.create(0) : R4.create(f); } }; var ou2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 1 / 0, p = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f = Math.min(f, t2), p++); } return p === 0 ? R4.create(0) : R4.create(f); } }; var su2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 1, p = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f *= t2, p++); } return p === 0 ? R4.create(0) : R4.create(f); } }; var cu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = [], p = 0, m = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f.push(t2), p += t2, m++); } if (m <= 1) return j3.create(D3.DIV_BY_ZERO); let h = p / m, g2 = 0; for (let e30 = 0; e30 < m; e30++) g2 += (f[e30] - h) ** 2; let _2 = Math.sqrt(g2 / (m - 1)); return R4.create(_2); } }; var lu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = [], p = 0, m = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f.push(t2), p += t2, m++); } if (m === 0) return j3.create(D3.DIV_BY_ZERO); let h = p / m, g2 = 0; for (let e30 = 0; e30 < m; e30++) g2 += (f[e30] - h) ** 2; let _2 = Math.sqrt(g2 / m); return R4.create(_2); } }; var uu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f += t2); } return R4.create(f); } }; var du2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = [], p = 0, m = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f.push(t2), p += t2, m++); } if (m <= 1) return j3.create(D3.DIV_BY_ZERO); let h = p / m, g2 = 0; for (let e30 = 0; e30 < m; e30++) g2 += (f[e30] - h) ** 2; let _2 = g2 / (m - 1); return R4.create(_2); } }; var fu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, databaseValues: a } = Zl2(e29); if (r) return i; let { isError: o, errorObject: s, fieldIndex: c } = Ql(t, a); if (o) return s; let { isError: l, errorObject: u, criteriaValues: d } = $l2(n); if (l) return u; let f = [], p = 0, m = 0; for (let e30 = 1; e30 < a.length; e30++) { let t2 = a[e30][c]; typeof t2 == `number` && eu2(d, a, e30) && (f.push(t2), p += t2, m++); } if (m === 0) return j3.create(D3.DIV_BY_ZERO); let h = p / m, g2 = 0; for (let e30 = 0; e30 < m; e30++) g2 += (f[e30] - h) ** 2; let _2 = g2 / m; return R4.create(_2); } }; var pu = (function(e29) { return e29.DAVERAGE = `DAVERAGE`, e29.DCOUNT = `DCOUNT`, e29.DCOUNTA = `DCOUNTA`, e29.DGET = `DGET`, e29.DMAX = `DMAX`, e29.DMIN = `DMIN`, e29.DPRODUCT = `DPRODUCT`, e29.DSTDEV = `DSTDEV`, e29.DSTDEVP = `DSTDEVP`, e29.DSUM = `DSUM`, e29.DVAR = `DVAR`, e29.DVARP = `DVARP`, e29; })({}); var mu = [[tu2, pu.DAVERAGE], [nu2, pu.DCOUNT], [ru, pu.DCOUNTA], [iu2, pu.DGET], [au2, pu.DMAX], [ou2, pu.DMIN], [su2, pu.DPRODUCT], [cu2, pu.DSTDEV], [lu2, pu.DSTDEVP], [uu, pu.DSUM], [du2, pu.DVAR], [fu, pu.DVARP]]; var hu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; if (i2.isError()) return i2; let { isError: a2, errorObject: c2, variants: l } = X3(e30, r2, i2); if (a2) return c2; let [u, d, f] = l, p = Math.floor(+u.getValue()), m = Math.floor(+d.getValue()), h = Math.floor(+f.getValue()); if (p < 0 || p > 9999) return j3.create(D3.NUM); p >= 0 && p < 1899 && (p += 1900); let g2 = et2(new Date(Date.UTC(p, m - 1, h))); return g2 < 0 ? j3.create(D3.NUM) : R4.create(g2, Qe2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var gu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = e29, i = t, a = n; if (r.isArray() && (r = r.get(0, 0)), i.isArray() && (i = i.get(0, 0)), a.isArray() && (a = a.get(0, 0)), r.isError()) return r; if (i.isError()) return i; if (a.isError()) return a; let o = N3(r); if (typeof o != `number`) return o; let s = N3(i); return typeof s == `number` ? s < o || !a.isString() ? j3.create(D3.NUM) : this._getResultByUnit(o, s, a) : s; } _getResultByUnit(e29, t, n) { let r = M3(e29), i = r.getUTCFullYear(), a = r.getUTCMonth() + 1, o = r.getUTCDate(), s = M3(t), c = s.getUTCFullYear(), l = s.getUTCMonth() + 1, u = s.getUTCDate(), d = `${n.getValue()}`.toLocaleUpperCase(), f = 0, p; switch (d) { case `Y`: f = c - i, (l < a || l === a && u < o) && --f; break; case `M`: f = (c - i) * 12 + l - a, u < o && --f; break; case `D`: f = Math.floor(t) - Math.floor(e29); break; case `MD`: f = u - o, u < o && (p = new Date(Date.UTC(c, l - 1, 0)), f += xt2(p.getUTCFullYear(), p.getUTCMonth())); break; case `YM`: f = l - a, (l < a || l === a && u < o) && (f += 12), u < o && --f; break; case `YD`: p = new Date(Date.UTC(i, l - 1, u)), (l < a || l === a && u < o) && (p = new Date(Date.UTC(i + 1, l - 1, u))), f = Math.floor(et2(p)) - Math.floor(e29); break; default: return j3.create(D3.NUM); } return R4.create(f); } }; var _u = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } isArgumentsIgnoreNumberPattern() { return true; } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isString()) { let t = `${e29.getValue()}`, n = it2(t); if (n === null && (n = at(t)), n) { let { v: e30, z: t2 } = n; if (t2 && ot(t2)) return e30 instanceof Date && (e30 = tt2(e30)), R4.create(Math.trunc(+e30)); } } return j3.create(D3.VALUE); } }; var vu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t, n = e29.getValue(); if (e29.isString()) { if (!rt(`${n}`)) return j3.create(D3.VALUE); t = /* @__PURE__ */ new Date(`${n}`); } else { let n2 = +e29.getValue(); if (n2 < 0) return j3.create(D3.NUM); if (n2 === 0) return R4.create(0); t = M3(n2); } let r = t.getUTCDate(); return R4.create(r); } }; var yu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29), a = V3(n, r, t), o = i.map((e30, t2, n2) => { let r2 = a.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; let i2 = N3(e30); if (typeof i2 != `number`) return i2; let o2 = N3(r2); if (typeof o2 != `number`) return o2; let s = Math.floor(i2) - Math.floor(o2); return R4.create(s); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var bu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? L3.create(false) : n; if (e29.isError()) return e29; if (t.isError()) return t; if (r.isError()) return r; let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.map((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); if (e30.isError()) return e30; let a2 = N3(e30); if (typeof a2 != `number`) return a2; if (r2.isError()) return r2; let o2 = N3(r2); if (typeof o2 != `number`) return o2; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let { days: l2 } = pt2(a2, o2, +i2.getValue() ? 4 : 0), u = o2 >= a2 ? l2 : -l2; return R4.create(u); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } }; var xu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29), a = V3(n, r, t); return i.map((e30, t2, n2) => { let r2 = a.get(t2, n2) || I3.create(); if (e30.isError()) return e30; if (r2.isError()) return r2; if (e30.isString() || e30.isBoolean() || r2.isString() || r2.isBoolean()) return j3.create(D3.VALUE); let i2 = +e30.getValue(); if (i2 < 0) return j3.create(D3.NUM); let o = Math.floor(+r2.getValue()), s = M3(i2), c = s.getUTCFullYear(), l = s.getUTCMonth() + o, u = s.getUTCDate(), d = et2(new Date(Date.UTC(c, l, u))); return R4.create(d, Qe2); }); } }; var Su2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29, r = t; if (n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); n = n.get(0, 0); } if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (n.isError()) return n; if (r.isError()) return r; let i = N3(n); if (typeof i != `number`) return i; if (r.isBoolean()) return j3.create(D3.VALUE); let a = M3(i), o = i > 0 ? a.getUTCFullYear() : 1900, s = i > 0 ? a.getUTCMonth() : 0, c = Math.floor(+r.getValue()); if (Number.isNaN(c)) return j3.create(D3.VALUE); let l = et2(new Date(Date.UTC(o, s + c + 1, 0))); return R4.create(l); } }; var Cu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2), E3(this, `needsReferenceObject`, true); } calculate(e29, t) { let n = t == null ? R4.create(1) : t, { isError: r, errorObject: i, timestampIsReferenceObject: a, timestampObject: o, unitObject: s } = this._checkVariants(e29, n); if (r) return i; if (o.isNull() || o.isBoolean() || o.isString() || !a && o.isNumber() && o.getPattern() !== ``) return j3.create(D3.VALUE); let c = +o.getValue(), { isError: l, errorObject: u, variants: d } = X3(s); if (l) return u; let [f] = d, p = Math.floor(+f.getValue()); if (c < 0 || p < 1 || p > 3) return j3.create(D3.NUM); p === 1 && (c *= 1e3), p === 3 && (c /= 1e3); let m = new Date(Date.UTC(1970, 0, 1, 0, 0, 0, 0) + c); if (Number.isNaN(m.getTime())) { let e30 = 25569 + c / 864e5; return R4.create(e30); } else { let e30 = tt2(m); return R4.create(e30, `yyyy-MM-dd AM/PM hh:mm:ss`); } } _checkVariants(e29, t) { let n = e29.isReferenceObject(), r = t.isReferenceObject(), i = e29; if (n && (i = e29.toArrayValueObject()), i.isArray()) { let e30 = i.getRowCount(), t2 = i.getColumnCount(); if (e30 > 1 || t2 > 1) return { isError: true, errorObject: j3.create(D3.VALUE) }; i = i.get(0, 0); } if (i.isError()) return { isError: true, errorObject: i }; let a = t; if (r && (a = t.toArrayValueObject()), a.isArray()) { let e30 = a.getRowCount(), t2 = a.getColumnCount(); if (e30 > 1 || t2 > 1) return { isError: true, errorObject: j3.create(D3.VALUE) }; a = a.get(0, 0); } return a.isError() ? { isError: true, errorObject: a } : { isError: false, errorObject: null, timestampIsReferenceObject: n, timestampObject: i, unitIsReferenceObject: r, unitObject: a }; } }; var wu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.isArray() ? e29.map((e30) => e30.isError() ? e30 : this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = N3(e29); if (typeof t != `number`) return t; if (t === 0) return R4.create(0); let n = nt(t).getUTCHours(); return R4.create(n); } }; var Tu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.isArray() ? e29.map((e30) => e30.isError() ? e30 : this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = N3(e29); if (typeof t != `number`) return t; let n = M3(t), r = t > 0 ? n.getUTCFullYear() : 1900, i = new Date(Date.UTC(r, 0, 1)), a = et2(i), o = ft2(a), s; s = o < 1 ? a + 1 : o <= 4 ? a - (o - 1) : a + (11 - o), t < s && (i = new Date(Date.UTC(r - 1, 0, 1)), a = et2(i), o = ft2(a), s = o < 1 ? a + 1 : o <= 4 ? a - (o - 1) : a + (11 - o)); let c = Math.ceil((t - s + 1) / 7); return R4.create(c); } }; var Eu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.isArray() ? e29.map((e30) => e30.isError() ? e30 : this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = N3(e29); if (typeof t != `number`) return t; if (t === 0) return R4.create(0); let n = nt(t).getUTCMinutes(); return R4.create(n); } }; var Du2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; let t, n = e29.getValue(); if (e29.isString()) { if (!rt(`${n}`)) return j3.create(D3.VALUE); t = /* @__PURE__ */ new Date(`${n}`); } else { let n2 = +e29.getValue(); if (n2 < 0) return j3.create(D3.NUM); if (n2 === 0) return R4.create(1); t = M3(n2); } let r = t.getUTCMonth() + 1; return R4.create(r); } }; var Ou = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = e29, i = t; if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (r.isError()) return r; if (i.isArray()) { let e30 = i.getRowCount(), t2 = i.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); i = i.get(0, 0); } if (i.isError()) return i; if (n != null && n.isError()) return n; if (r.isBoolean() || i.isBoolean()) return j3.create(D3.VALUE); let a = N3(r); if (typeof a != `number`) return a; let o = N3(i); if (typeof o != `number`) return o; if (n) return this._getResultByHolidays(a, o, n); let s = ut2(a, o); return R4.create(s); } _getResultByHolidays(e29, t, n) { let r = []; if (n != null && n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); for (let i2 = 0; i2 < e30; i2++) for (let e31 = 0; e31 < t2; e31++) { let t3 = n.get(i2, e31); if (t3.isBoolean()) return j3.create(D3.VALUE); let a = N3(t3); if (typeof a != `number`) return a; r.push(a); } } else { if (n.isBoolean()) return j3.create(D3.VALUE); let e30 = N3(n); if (typeof e30 != `number`) return e30; r.push(e30); } let i = ut2(e29, t, 1, r); return R4.create(i); } }; var ku = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { return e29.isError() ? e29 : t.isError() ? t : n != null && n.isError() ? n : r != null && r.isError() ? r : n != null && n.isArray() ? n.map((n2) => this._handleSingleObject(e29, t, n2, r)) : this._handleSingleObject(e29, t, n, r); } _handleSingleObject(e29, t, n, r) { let i = e29, a = t; if (i.isArray()) { let e30 = i.getRowCount(), t2 = i.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); i = i.get(0, 0); } if (i.isError()) return i; if (a.isArray()) { let e30 = a.getRowCount(), t2 = a.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); a = a.get(0, 0); } if (a.isError()) return a; let o = 1; if (n) { if (o = n.getValue(), n.isBoolean() && (o = +o), n.isString() && !ct2(o)) return j3.create(D3.VALUE); if (!ct2(o)) return j3.create(D3.NUM); } if (i.isBoolean() || a.isBoolean()) return j3.create(D3.VALUE); let s = N3(i); if (typeof s != `number`) return s; let c = N3(a); if (typeof c != `number`) return c; if (r) return this._getResultByHolidays(s, c, o, r); let l = ut2(s, c, o); return R4.create(l); } _getResultByHolidays(e29, t, n, r) { let i = []; if (r != null && r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); for (let n2 = 0; n2 < e30; n2++) for (let e31 = 0; e31 < t2; e31++) { let t3 = r.get(n2, e31); if (t3.isBoolean()) return j3.create(D3.VALUE); let a2 = N3(t3); if (typeof a2 != `number`) return a2; i.push(a2); } } else { if (r.isBoolean()) return j3.create(D3.VALUE); let e30 = N3(r); if (typeof e30 != `number`) return e30; i.push(e30); } let a = ut2(e29, t, n, i); return R4.create(a); } }; var Au2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { let e29 = /* @__PURE__ */ new Date(), t = tt2(new Date(Date.UTC(e29.getFullYear(), e29.getMonth(), e29.getDate(), e29.getHours(), e29.getMinutes(), e29.getSeconds()))); return R4.create(t, `yyyy/mm/dd hh:mm`); } }; var ju2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.isArray() ? e29.map((e30) => e30.isError() ? e30 : this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = N3(e29); if (typeof t != `number`) return t; if (t === 0) return R4.create(0); let n = nt(t).getUTCSeconds(); return R4.create(n); } }; var Mu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29), o = V3(r, i, t), s = V3(r, i, n); return a.map((e30, t2, n2) => this._calculateTime(e30, o, s, t2, n2)); } _calculateTime(e29, t, n, r, i) { let a = e29, o = t.get(r, i) || I3.create(), s = n.get(r, i) || I3.create(); if ((a.isString() || a.isBoolean()) && (a = a.convertToNumberObjectValue()), (o.isString() || o.isBoolean()) && (o = o.convertToNumberObjectValue()), (s.isString() || s.isBoolean()) && (s = s.convertToNumberObjectValue()), a.isError()) return a; if (o.isError()) return o; if (s.isError()) return s; let c = Math.floor(+a.getValue()), l = Math.floor(+o.getValue()), u = Math.floor(+s.getValue()); if (c < 0 || l < 0 || u < 0 || c > 32767 || l > 32767 || u > 32767) return j3.create(D3.NUM); l += Math.floor(u / 60), u %= 60, c += Math.floor(l / 60), l %= 60, c %= 24; let d = (c * 3600 + l * 60 + u) / 86400; return R4.create(d, `h:mm A/P`); } }; var Nu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } isArgumentsIgnoreNumberPattern() { return true; } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isString()) { let t = da(`${e29.getValue()}`); if (t) { let { v: e30, z: n } = t; if (n && ot(n)) return e30 instanceof Date && (e30 = tt2(e30)), R4.create(oa2(+e30)); } } return j3.create(D3.VALUE); } }; var Pu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true); } calculate(e29) { let t = e29.isReferenceObject(), n = e29; if (t && (n = e29.toArrayValueObject()), n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); n = n.get(0, 0); } if (n.isError() || n.isNull() || n.isBoolean() || n.isString() || !t && n.isNumber() && n.getPattern() !== ``) return n; let r = +n.getValue(); return R4.create(r, `yyyy-MM-dd hh:mm:ss AM/PM`); } }; var Fu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { let e29 = /* @__PURE__ */ new Date(), t = et2(new Date(Date.UTC(e29.getUTCFullYear(), e29.getUTCMonth(), e29.getUTCDate()))); return R4.create(t, Qe2); } }; var Iu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2), E3(this, `_returnTypeMap`, { 1: [1, 2, 3, 4, 5, 6, 7], 2: [7, 1, 2, 3, 4, 5, 6], 3: [6, 0, 1, 2, 3, 4, 5], 11: [7, 1, 2, 3, 4, 5, 6], 12: [6, 7, 1, 2, 3, 4, 5], 13: [5, 6, 7, 1, 2, 3, 4], 14: [4, 5, 6, 7, 1, 2, 3], 15: [3, 4, 5, 6, 7, 1, 2], 16: [2, 3, 4, 5, 6, 7, 1], 17: [1, 2, 3, 4, 5, 6, 7] }); } calculate(e29, t) { let n = t == null ? R4.create(1) : t; if (e29.isError()) return e29; if (n.isError()) return n; let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2); return this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let n = t; if (e29.isError()) return e29; if (n.isError()) return n; let r = N3(e29); if (typeof r != `number`) return r; if (n.isString() && (n = n.convertToNumberObjectValue(), n.isError())) return n; let i = Math.floor(+n.getValue()); if (!this._returnTypeMap[i]) return j3.create(D3.NUM); let a = ft2(r), o = this._returnTypeMap[i][a]; return R4.create(o); } }; var Lu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2), E3(this, `_returnTypeMap`, { 1: 0, 2: 1, 11: 1, 12: 2, 13: 3, 14: 4, 15: 5, 16: 6, 17: 0, 21: 4 }); } calculate(e29, t) { let n = e29, r = t == null ? R4.create(1) : t; if (n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); n = n.get(0, 0); } if (n.isError()) return n; if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (r.isError()) return r; if (n.isBoolean()) return j3.create(D3.VALUE); let i = N3(n); if (typeof i != `number`) return i; if (r.isBoolean()) return j3.create(D3.VALUE); let a = Math.floor(+r.getValue()); return Number.isNaN(a) ? j3.create(D3.VALUE) : a in this._returnTypeMap ? this._getResult(i, a) : j3.create(D3.NUM); } _getResult(e29, t) { let n = M3(e29), r = e29 > 0 ? n.getUTCFullYear() : 1900, i = new Date(Date.UTC(r, 0, 1)), a = et2(i), o = ft2(a), s; if (t === 21) s = o < 1 ? a + 1 : o <= 4 ? a - (o - 1) : a + (11 - o), e29 < s && (i = new Date(Date.UTC(r - 1, 0, 1)), a = et2(i), o = ft2(a), s = o < 1 ? a + 1 : o <= 4 ? a - (o - 1) : a + (11 - o)); else { let e30 = this._returnTypeMap[t]; s = o < e30 ? a - (o + 7 - e30) : a - (o - e30); } let c = Math.ceil((e29 - s + 1) / 7); return R4.create(c); } }; var Ru2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = e29, i = t; if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (r.isError()) return r; if (i.isArray()) { let e30 = i.getRowCount(), t2 = i.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); i = i.get(0, 0); } if (i.isError()) return i; if (n != null && n.isError()) return n; if (r.isBoolean() || i.isBoolean()) return j3.create(D3.VALUE); let a = N3(r); if (typeof a != `number`) return a; let o = +i.getValue(); if (Number.isNaN(o)) return j3.create(D3.VALUE); if (n) return this._getResultByHolidays(a, o, n); let s = dt2(a, o); return typeof s == `number` ? R4.create(s) : s; } _getResultByHolidays(e29, t, n) { let r = []; if (n != null && n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); for (let i2 = 0; i2 < e30; i2++) for (let e31 = 0; e31 < t2; e31++) { let t3 = n.get(i2, e31); if (t3.isBoolean()) return j3.create(D3.VALUE); let a = N3(t3); if (typeof a != `number`) return a; r.push(a); } } else { if (n.isBoolean()) return j3.create(D3.VALUE); let e30 = N3(n); if (typeof e30 != `number`) return e30; r.push(e30); } let i = dt2(e29, t, 1, r); return typeof i == `number` ? R4.create(i) : i; } }; var zu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { return e29.isError() ? e29 : t.isError() ? t : n != null && n.isError() ? n : r != null && r.isError() ? r : n != null && n.isArray() ? n.map((n2) => this._handleSingleObject(e29, t, n2, r)) : this._handleSingleObject(e29, t, n, r); } _handleSingleObject(e29, t, n, r) { let i = n == null ? R4.create(1) : n, a = this._checkArrayError(e29); if (a.isError()) return a; let o = this._checkArrayError(t); if (o.isError()) return o; if (a.isBoolean() || o.isBoolean()) return j3.create(D3.VALUE); let s = N3(e29); if (typeof s != `number`) return s; let c = +t.getValue(); if (Number.isNaN(c)) return j3.create(D3.VALUE); let l = i.getValue(); if (i.isBoolean() && (l = +l), i.isString() && (!ct2(l) || l === `1111111`)) return j3.create(D3.VALUE); if (!ct2(l)) return j3.create(D3.NUM); if (r) return this._getResultByHolidays(s, c, l, r); let u = dt2(s, c, l); return typeof u == `number` ? R4.create(u) : u; } _checkArrayError(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n = t.getColumnCount(); if (e30 > 1 || n > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } return t.isError(), t; } _getResultByHolidays(e29, t, n, r) { let i = []; if (r != null && r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); for (let n2 = 0; n2 < e30; n2++) for (let e31 = 0; e31 < t2; e31++) { let t3 = r.get(n2, e31); if (t3.isBoolean()) return j3.create(D3.VALUE); let a2 = N3(t3); if (typeof a2 != `number`) return a2; i.push(a2); } } else { if (r.isBoolean()) return j3.create(D3.VALUE); let e30 = N3(r); if (typeof e30 != `number`) return e30; i.push(e30); } let a = dt2(e29, t, n, i); return typeof a == `number` ? R4.create(a) : a; } }; var Bu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; let t, n = e29.getValue(); if (e29.isString()) { if (!rt(`${n}`)) return j3.create(D3.VALUE); t = /* @__PURE__ */ new Date(`${n}`); } else { let e30 = +n; if (e30 < 0) return j3.create(D3.NUM); if (e30 === 0) return R4.create(1900); t = M3(e30); } let r = t.getUTCFullYear(); return R4.create(r); } }; var Vu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(0) : n, i = vs2(e29); if (i.isError()) return i; let a = vs2(t); if (a.isError()) return a; if (r = vs2(r), r.isError()) return r; if (i.isBoolean() || a.isBoolean() || r.isBoolean()) return j3.create(D3.VALUE); let o = N3(i); if (typeof o != `number`) return o; let s = N3(a); if (typeof s != `number`) return s; let c = Math.floor(+r.getValue()); if (Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0 || c > 4) return j3.create(D3.NUM); let { days: l, yearDays: u } = pt2(o, s, c), d = l / u; return R4.create(d); } }; var Hu2 = [[hu, eo2.DATE], [gu, eo2.DATEDIF], [_u, eo2.DATEVALUE], [vu, eo2.DAY], [yu, eo2.DAYS], [bu, eo2.DAYS360], [xu, eo2.EDATE], [Su2, eo2.EOMONTH], [Cu2, eo2.EPOCHTODATE], [wu2, eo2.HOUR], [Tu2, eo2.ISOWEEKNUM], [Eu2, eo2.MINUTE], [Du2, eo2.MONTH], [Ou, eo2.NETWORKDAYS], [ku, eo2.NETWORKDAYS_INTL], [Au2, eo2.NOW], [ju2, eo2.SECOND], [Mu2, eo2.TIME], [Nu2, eo2.TIMEVALUE], [Pu2, eo2.TO_DATE], [Fu2, eo2.TODAY], [Iu2, eo2.WEEKDAY], [Lu2, eo2.WEEKNUM], [Ru2, eo2.WORKDAY], [zu2, eo2.WORKDAY_INTL], [Bu2, eo2.YEAR], [Vu2, eo2.YEARFRAC]]; var Uu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); let l = Ts2.besseli(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Wu = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); let l = Ts2.besselj(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Gu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); let l = Ts2.besselk(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Ku2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); let l = Ts2.bessely(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var qu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = `${i.getValue()}`; if (!Es2(a)) return j3.create(D3.NUM); let o; return o = a.length === 10 && a.substring(0, 1) === `1` ? Number.parseInt(a.substring(1), 2) - 512 : Number.parseInt(a, 2), R4.create(o); } }; var Ju2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Es2(s)) return j3.create(D3.NUM); let c; if (s.length === 10 && s.substring(0, 1) === `1`) c = (1099511627264 + Number.parseInt(s.substring(1), 2)).toString(16); else if (c = Number.parseInt(s, 2).toString(16), t) { if (n < c.length) return j3.create(D3.NUM); c = `0`.repeat(n - c.length) + c; } return z3.create(c.toLocaleUpperCase()); } }; var Yu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Es2(s)) return j3.create(D3.NUM); let c; if (s.length === 10 && s.substring(0, 1) === `1`) c = (1073741312 + Number.parseInt(s.substring(1), 2)).toString(8); else if (c = Number.parseInt(s, 2).toString(8), t) { if (n < c.length) return j3.create(D3.NUM); c = `0`.repeat(n - c.length) + c; } return z3.create(c); } }; var Xu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = a.get(t2, n2); if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 < 0 || s < 0 || Math.floor(o2) !== o2 || Math.floor(s) !== s || o2 > 281474976710655 || s > 281474976710655) return j3.create(D3.NUM); let c = o2 & s; return R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var Zu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = a.get(t2, n2); if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 < 0 || Math.floor(o2) !== o2 || o2 > 281474976710655 || Math.abs(s) > 53) return j3.create(D3.NUM); s = Math.trunc(s); let c = Number(s >= 0 ? BigInt(o2) << BigInt(s) : BigInt(o2) >> BigInt(-s)); return c > 281474976710655 ? j3.create(D3.NUM) : R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var Qu2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = a.get(t2, n2); if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 < 0 || s < 0 || Math.floor(o2) !== o2 || Math.floor(s) !== s || o2 > 281474976710655 || s > 281474976710655) return j3.create(D3.NUM); let c = Number(BigInt(o2) | BigInt(s)); return R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var $u = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = a.get(t2, n2); if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 < 0 || Math.floor(o2) !== o2 || o2 > 281474976710655 || Math.abs(s) > 53) return j3.create(D3.NUM); s = Math.trunc(s); let c = Number(s >= 0 ? BigInt(o2) >> BigInt(s) : BigInt(o2) << BigInt(-s)); return c > 281474976710655 ? j3.create(D3.NUM) : R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var ed2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = a.get(t2, n2); if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 < 0 || s < 0 || Math.floor(o2) !== o2 || Math.floor(s) !== s || o2 > 281474976710655 || s > 281474976710655) return j3.create(D3.NUM); let c = o2 ^ s; return R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; decimal_default.prototype.cos = function() { let e29 = this.toNumber(); return new decimal_default(Math.cos(e29)); }; var td2 = class e27 { static getComplex(e29, t, n) { let r = new decimal_default(e29).toSignificantDigits(15).toNumber(), i = new decimal_default(t).toSignificantDigits(15).toNumber(), a = n === `` ? `i` : n, o; return o = r === 0 && i === 0 ? 0 : r === 0 ? i === 1 ? a : `${i}${a}` : i === 0 ? r : `${r}${i > 0 ? `+` : ``}${i === 1 ? a : `${i}${a}`}`, o; } static createByComplexStr(t, n, r) { return new e27(e27.getComplex(t, n, r)); } constructor(e29) { if (E3(this, `_inumber`, ``), E3(this, `_realNum`, 0), E3(this, `_iNum`, 0), E3(this, `_suffix`, ``), E3(this, `_isError`, false), `${e29}`.trim() === ``) { this._isError = true; return; } this._inumber = e29, this._getImReal(), this._getImAginary(), this._getImSuffix(); } _getImReal() { if (this._inumber === 0 || this._inumber === `0`) { this._realNum = 0; return; } let e29 = `${this._inumber}`; if ([`i`, `+i`, `1i`, `+1i`, `-i`, `-1i`, `j`, `+j`, `1j`, `+1j`, `-j`, `-1j`].indexOf(e29) >= 0) { this._realNum = 0; return; } let t = e29.indexOf(`+`), n = e29.indexOf(`-`); t === 0 && (t = e29.indexOf(`+`, 1)), n === 0 && (n = e29.indexOf(`-`, 1)); let r = e29.substring(e29.length - 1, e29.length), i = r === `i` || r === `j`; if (t >= 0 || n >= 0) { if (!i) { this._isError = true; return; } t >= 0 ? Number.isNaN(+e29.substring(0, t)) || Number.isNaN(+e29.substring(t + 1, e29.length - 1)) ? this._isError = true : this._realNum = +e29.substring(0, t) : Number.isNaN(+e29.substring(0, n)) || Number.isNaN(+e29.substring(n + 1, e29.length - 1)) ? this._isError = true : this._realNum = +e29.substring(0, n); } else i ? Number.isNaN(+e29.substring(0, e29.length - 1)) ? this._isError = true : this._realNum = 0 : Number.isNaN(+e29) ? this._isError = true : this._realNum = +e29; } _getImAginary() { if (this._isError) return; if (this._inumber === 0 || this._inumber === `0`) { this._iNum = 0; return; } let e29 = `${this._inumber}`; if ([`i`, `j`].indexOf(e29) >= 0) { this._iNum = 1; return; } e29 = e29.replace(`+i`, `+1i`).replace(`-i`, `-1i`).replace(`+j`, `+1j`).replace(`-j`, `-1j`); let t = e29.indexOf(`+`), n = e29.indexOf(`-`); t === 0 && (t = e29.indexOf(`+`, 1)), n === 0 && (n = e29.indexOf(`-`, 1)); let r = e29.substring(e29.length - 1, e29.length), i = r === `i` || r === `j`; if (t >= 0 || n >= 0) { if (!i) { this._isError = true; return; } t >= 0 ? Number.isNaN(+e29.substring(0, t)) || Number.isNaN(+e29.substring(t + 1, e29.length - 1)) ? this._isError = true : this._iNum = +e29.substring(t + 1, e29.length - 1) : Number.isNaN(+e29.substring(0, n)) || Number.isNaN(+e29.substring(n + 1, e29.length - 1)) ? this._isError = true : this._iNum = -+e29.substring(n + 1, e29.length - 1); } else i ? Number.isNaN(+e29.substring(0, e29.length - 1)) ? this._isError = true : this._iNum = +e29.substring(0, e29.length - 1) : Number.isNaN(+e29) ? this._isError = true : this._iNum = 0; } _getImSuffix() { let e29 = `${this._inumber}`, t = e29.substring(e29.length - 1); this._suffix = t === `i` || t === `j` ? t : ``; } getRealNum() { return this._realNum; } getINum() { return this._iNum; } getSuffix() { return this._suffix; } isError() { return this._isError; } toString() { return e27.getComplex(this._realNum, this._iNum, this._suffix); } isDifferentSuffixes(e29) { let t = e29.getSuffix(); return this._suffix === `` || t === `` ? false : this._suffix !== t; } Abs() { return decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))).toSignificantDigits(16).toNumber(); } Argument() { let e29 = decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))), t = decimal_default.acos(new decimal_default(this._realNum).div(e29)).toSignificantDigits(16).toNumber(); return this._iNum < 0 && (t = -t), t; } Conjugate() { return e27.getComplex(this._realNum, -this._iNum, this._suffix); } Cos() { if (this._iNum) { let t = decimal_default.cos(this._realNum).mul(decimal_default.cosh(this._iNum)).toNumber(), n = decimal_default.sin(this._realNum).mul(decimal_default.sinh(this._iNum)).negated().toNumber(); return e27.getComplex(t, n, this._suffix); } else { let t = decimal_default.cos(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Cosh() { if (!Number.isFinite(Math.sinh(this._realNum)) || !Number.isFinite(Math.cosh(this._realNum))) return this._isError = true, ``; if (this._iNum) { let t = decimal_default.cosh(this._realNum).mul(decimal_default.cos(this._iNum)).toNumber(), n = decimal_default.sinh(this._realNum).mul(decimal_default.sin(this._iNum)).toNumber(); return e27.getComplex(t, n, this._suffix); } else { let t = decimal_default.cosh(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Cot() { if (this._iNum) { let t = decimal_default.cosh(this._iNum * 2).sub(decimal_default.cos(this._realNum * 2)), n = decimal_default.sin(this._realNum * 2).div(t).toNumber(), r = decimal_default.sinh(this._iNum * 2).div(t).negated().toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.tan(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Coth() { if (!Number.isFinite(Math.sinh(this._realNum)) || !Number.isFinite(Math.cosh(this._realNum))) return this._isError = true, ``; if (this._iNum) { let t = decimal_default.cosh(this._realNum * 2).sub(decimal_default.cos(this._iNum * 2)), n = decimal_default.sinh(this._realNum * 2).div(t).toNumber(), r = decimal_default.sin(this._iNum * 2).div(t).negated().toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.tanh(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Csc() { if (this._iNum) { let t = decimal_default.cosh(this._iNum * 2).sub(decimal_default.cos(this._realNum * 2)), n = decimal_default.sin(this._realNum).mul(decimal_default.cosh(this._iNum)).mul(2).div(t).toNumber(), r = decimal_default.cos(this._realNum).mul(decimal_default.sinh(this._iNum)).mul(-2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.sin(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Csch() { if (!Number.isFinite(Math.sinh(this._realNum)) || !Number.isFinite(Math.cosh(this._realNum))) return e27.getComplex(0, 0, this._suffix); if (this._iNum) { let t = decimal_default.cosh(this._realNum * 2).sub(decimal_default.cos(this._iNum * 2)), n = decimal_default.sinh(this._realNum).mul(decimal_default.cos(this._iNum)).mul(2).div(t).toNumber(), r = decimal_default.cosh(this._realNum).mul(decimal_default.sin(this._iNum)).mul(-2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.sinh(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Div(t) { let n = new decimal_default(this._realNum), r = new decimal_default(this._iNum), i = new decimal_default(t.getRealNum()), a = new decimal_default(t.getINum()), o = i.mul(i).add(a.mul(a)), s = n.mul(i).add(r.mul(a)).div(o).toNumber(), c = r.mul(i).sub(n.mul(a)).div(o).toNumber(), l = this._suffix === `` ? t.getSuffix() : this._suffix; return e27.getComplex(s, c, l); } Exp() { if (!Number.isFinite(Math.exp(this._realNum))) return this._isError = true, ``; let t = decimal_default.exp(this._realNum).mul(decimal_default.cos(this._iNum)).toNumber(), n = decimal_default.exp(this._realNum).mul(decimal_default.sin(this._iNum)).toNumber(); return e27.getComplex(t, n, this._suffix); } Ln() { let t = decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))), n = decimal_default.ln(t).toNumber(), r = decimal_default.acos(new decimal_default(this._realNum).div(t)).toNumber(); return e27.getComplex(n, r, this._suffix); } Log(t) { let n = decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))), r = decimal_default.ln(n), i = decimal_default.acos(new decimal_default(this._realNum).div(n)); this._iNum < 0 && (i = i.negated()); let a = decimal_default.ln(t), o = new decimal_default(0), s = a.mul(a).add(o.mul(o)); if (s.eq(0)) return this._isError = true, ``; let c = r.mul(a).add(i.mul(o)).div(s).toNumber(), l = i.mul(a).sub(r.mul(o)).div(s).toNumber(); return e27.getComplex(c, l, this._suffix); } Power(t) { if (this._realNum === 0 && this._iNum === 0) return t > 0 ? e27.getComplex(this._realNum, this._iNum, this._suffix) : (this._isError = true, ``); let n = decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))), r = decimal_default.acos(new decimal_default(this._realNum).div(n)); this._iNum < 0 && (r = r.negated()), n = decimal_default.pow(n, t), r = r.mul(t); let i = decimal_default.cos(r).mul(n).toNumber(), a = decimal_default.sin(r).mul(n).toNumber(); return !Number.isFinite(i) || !Number.isFinite(a) ? (this._isError = true, ``) : e27.getComplex(i, a, this._suffix); } Product(t) { let n = new decimal_default(this._realNum), r = new decimal_default(this._iNum), i = new decimal_default(t.getRealNum()), a = new decimal_default(t.getINum()), o = n.mul(i).sub(r.mul(a)).toNumber(), s = n.mul(a).add(r.mul(i)).toNumber(), c = this._suffix === `` ? t.getSuffix() : this._suffix; return e27.getComplex(o, s, c); } Sec() { if (this._iNum) { let t = decimal_default.cosh(this._iNum * 2).add(decimal_default.cos(this._realNum * 2)), n = decimal_default.cos(this._realNum).mul(decimal_default.cosh(this._iNum)).mul(2).div(t).toNumber(), r = decimal_default.sin(this._realNum).mul(decimal_default.sinh(this._iNum)).mul(2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.cos(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Sech() { if (!Number.isFinite(Math.sinh(this._realNum * 2)) || !Number.isFinite(Math.cosh(this._realNum * 2))) return e27.getComplex(0, 0, this._suffix); if (this._iNum) { let t = decimal_default.cosh(this._realNum * 2).add(decimal_default.cos(this._iNum * 2)), n = decimal_default.cosh(this._realNum).mul(decimal_default.cos(this._iNum)).mul(2).div(t).toNumber(), r = decimal_default.sinh(this._realNum).mul(decimal_default.sin(this._iNum)).mul(-2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = new decimal_default(1).div(decimal_default.cosh(this._realNum)).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Sin() { if (this._iNum) { let t = decimal_default.sin(this._realNum).mul(decimal_default.cosh(this._iNum)).toNumber(), n = decimal_default.cos(this._realNum).mul(decimal_default.sinh(this._iNum)).toNumber(); return e27.getComplex(t, n, this._suffix); } else { let t = decimal_default.sin(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Sinh() { if (!Number.isFinite(Math.sinh(this._realNum)) || !Number.isFinite(Math.cosh(this._realNum))) return this._isError = true, ``; if (this._iNum) { let t = decimal_default.sinh(this._realNum).mul(decimal_default.cos(this._iNum)).toNumber(), n = decimal_default.cosh(this._realNum).mul(decimal_default.sin(this._iNum)).toNumber(); return e27.getComplex(t, n, this._suffix); } else { let t = decimal_default.sinh(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Sqrt() { let t = decimal_default.sqrt(decimal_default.pow(this._realNum, 2).add(decimal_default.pow(this._iNum, 2))), n = decimal_default.sqrt(t), r = decimal_default.acos(new decimal_default(this._realNum).div(t)); this._iNum < 0 && (r = r.negated()); let i = n.mul(decimal_default.cos(r.div(2).toNumber())).toNumber(), a = n.mul(decimal_default.sin(r.div(2))).toNumber(); return e27.getComplex(i, a, this._suffix); } Sub(t) { let n = new decimal_default(this._realNum), r = new decimal_default(this._iNum), i = new decimal_default(t.getRealNum()), a = new decimal_default(t.getINum()), o = n.sub(i).toNumber(), s = r.sub(a).toNumber(), c = this._suffix === `` ? t.getSuffix() : this._suffix; return e27.getComplex(o, s, c); } Sum(t) { let n = new decimal_default(this._realNum), r = new decimal_default(this._iNum), i = new decimal_default(t.getRealNum()), a = new decimal_default(t.getINum()), o = n.add(i).toNumber(), s = r.add(a).toNumber(), c = this._suffix === `` ? t.getSuffix() : this._suffix; return e27.getComplex(o, s, c); } Tan() { if (this._iNum) { let t = decimal_default.cos(this._realNum * 2).add(decimal_default.cosh(this._iNum * 2)), n = decimal_default.sin(this._realNum * 2).div(t).toNumber(), r = decimal_default.sinh(this._iNum * 2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = decimal_default.tan(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } Tanh() { if (!Number.isFinite(Math.sinh(this._realNum)) || !Number.isFinite(Math.cosh(this._realNum))) return this._isError = true, ``; if (this._iNum) { let t = decimal_default.cosh(this._realNum * 2).add(decimal_default.cos(this._iNum * 2)), n = decimal_default.sinh(this._realNum * 2).div(t).toNumber(), r = decimal_default.sin(this._iNum * 2).div(t).toNumber(); return e27.getComplex(n, r, this._suffix); } else { let t = decimal_default.tanh(this._realNum).toNumber(); return e27.getComplex(t, this._iNum, this._suffix); } } }; var nd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = Y3(e29, t, n == null ? z3.create(`i`) : n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = `${c.getValue()}`; if (Number.isNaN(l) || Number.isNaN(u) || d !== `i` && d !== `j`) return j3.create(D3.VALUE); let f = td2.getComplex(l, u, d); return typeof f == `number` ? R4.create(f) : z3.create(f); } }; var rd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3), E3(this, `_units`, [[`a.u. of action`, `?`, null, `action`, false, false, 105457168181818e-48], [`a.u. of charge`, `e`, null, `electric_charge`, false, false, 160217653141414e-33], [`a.u. of energy`, `Eh`, null, `energy`, false, false, 435974417757576e-32], [`a.u. of length`, `a?`, null, `length`, false, false, 529177210818182e-25], [`a.u. of mass`, `m?`, null, `mass`, false, false, 910938261616162e-45], [`a.u. of time`, `?/Eh`, null, `time`, false, false, 241888432650516e-31], [`admiralty knot`, `admkn`, null, `speed`, false, true, 0.514773333], [`ampere`, `A`, null, `electric_current`, true, false, 1], [`ampere per meter`, `A/m`, null, `magnetic_field_intensity`, true, false, 1], [`\xE5ngstr\xF6m`, `\xC5`, [`ang`], `length`, false, true, 1e-10], [`are`, `ar`, null, `area`, false, true, 100], [`astronomical unit`, `ua`, null, `length`, false, false, 149597870691667e-25], [`bar`, `bar`, null, `pressure`, false, false, 1e5], [`barn`, `b`, null, `area`, false, false, 1e-28], [`becquerel`, `Bq`, null, `radioactivity`, true, false, 1], [`bit`, `bit`, [`b`], `information`, false, true, 1], [`btu`, `BTU`, [`btu`], `energy`, false, true, 1055.05585262], [`byte`, `byte`, null, `information`, false, true, 8], [`candela`, `cd`, null, `luminous_intensity`, true, false, 1], [`candela per square metre`, `cd/m?`, null, `luminance`, true, false, 1], [`centigrade`, `C`, [`cel`], `temperature`, true, false, 1], [`cubic \xE5ngstr\xF6m`, `ang3`, [`ang^3`], `volume`, false, true, 1e-30], [`cubic foot`, `ft3`, [`ft^3`], `volume`, false, true, 0.028316846592], [`cubic inch`, `in3`, [`in^3`], `volume`, false, true, 16387064e-12], [`cubic light-year`, `ly3`, [`ly^3`], `volume`, false, true, 846786664623715e-61], [`cubic metre`, `m3`, [`m^3`], `volume`, true, true, 1], [`cubic mile`, `mi3`, [`mi^3`], `volume`, false, true, 416818182544058e-5], [`cubic nautical mile`, `Nmi3`, [`Nmi^3`], `volume`, false, true, 6352182208], [`cubic Pica`, `Pica3`, [`Picapt3`, `Pica^3`, `Picapt^3`], `volume`, false, true, 758660370370369e-22], [`cubic yard`, `yd3`, [`yd^3`], `volume`, false, true, 0.764554857984], [`cup`, `cup`, null, `volume`, false, true, 2365882365e-13], [`dalton`, `Da`, [`u`], `mass`, false, false, 166053886282828e-41], [`day`, `d`, [`day`], `time`, false, true, 86400], [`degree`, `\xB0`, null, `angle`, false, false, 0.0174532925199433], [`dyne`, `dyn`, [`dy`], `force`, false, true, 1e-5], [`electronvolt`, `eV`, [`ev`], `energy`, false, true, 1.60217656514141], [`ell`, `ell`, null, `length`, false, true, 1.143], [`erg`, `erg`, [`e`], `energy`, false, true, 1e-7], [`fahrenheit`, `F`, [`fah`], `temperature`, true, false, 1], [`fluid ounce`, `oz`, null, `volume`, false, true, 295735295625e-16], [`foot`, `ft`, null, `length`, false, true, 0.3048], [`foot-pound`, `flb`, null, `energy`, false, true, 1.3558179483314], [`gal`, `Gal`, null, `acceleration`, false, false, 0.01], [`gallon`, `gal`, null, `volume`, false, true, 0.003785411784], [`gauss`, `G`, [`ga`], `magnetic_flux_density`, false, true, 1], [`grain`, `grain`, null, `mass`, false, true, 647989e-10], [`gram`, `g`, null, `mass`, false, true, 1e-3], [`gray`, `Gy`, null, `absorbed_dose`, true, false, 1], [`gross registered ton`, `GRT`, [`regton`], `volume`, false, true, 2.8316846592], [`hectare`, `ha`, null, `area`, false, true, 1e4], [`henry`, `H`, null, `inductance`, true, false, 1], [`hertz`, `Hz`, null, `frequency`, true, false, 1], [`horsepower`, `HP`, [`h`], `power`, false, true, 745.69987158227], [`horsepower-hour`, `HPh`, [`hh`, `hph`], `energy`, false, true, 2684519538e-3], [`hour`, `h`, [`hr`], `time`, false, true, 3600], [`imperial gallon (U.K.)`, `uk_gal`, null, `volume`, false, true, 454609e-8], [`imperial hundredweight`, `lcwt`, [`uk_cwt`, `hweight`], `mass`, false, true, 50.802345], [`imperial quart (U.K)`, `uk_qt`, null, `volume`, false, true, 0.0011365225], [`imperial ton`, `brton`, [`uk_ton`, `LTON`], `mass`, false, true, 1016.046909], [`inch`, `in`, null, `length`, false, true, 0.0254], [`international acre`, `uk_acre`, null, `area`, false, true, 4046.8564224], [`IT calorie`, `cal`, null, `energy`, false, true, 4.1868], [`joule`, `J`, null, `energy`, true, true, 1], [`katal`, `kat`, null, `catalytic_activity`, true, false, 1], [`kelvin`, `K`, [`kel`], `temperature`, true, true, 1], [`kilogram`, `kg`, null, `mass`, true, true, 1], [`knot`, `kn`, null, `speed`, false, true, 0.514444444444444], [`light-year`, `ly`, null, `length`, false, true, 9460730472580800], [`litre`, `L`, [`l`, `lt`], `volume`, false, true, 1e-3], [`lumen`, `lm`, null, `luminous_flux`, true, false, 1], [`lux`, `lx`, null, `illuminance`, true, false, 1], [`maxwell`, `Mx`, null, `magnetic_flux`, false, false, 1e-18], [`measurement ton`, `MTON`, null, `volume`, false, true, 1.13267386368], [`meter per hour`, `m/h`, [`m/hr`], `speed`, false, true, 27777777777778e-17], [`meter per second`, `m/s`, [`m/sec`], `speed`, true, true, 1], [`meter per second squared`, `m?s??`, null, `acceleration`, true, false, 1], [`parsec`, `pc`, [`parsec`], `length`, false, true, 30856775814671900], [`meter squared per second`, `m?/s`, null, `kinematic_viscosity`, true, false, 1], [`metre`, `m`, null, `length`, true, true, 1], [`miles per hour`, `mph`, null, `speed`, false, true, 0.44704], [`millimetre of mercury`, `mmHg`, null, `pressure`, false, false, 133.322], [`minute`, `?`, null, `angle`, false, false, 290888208665722e-18], [`minute`, `min`, [`mn`], `time`, false, true, 60], [`modern teaspoon`, `tspm`, null, `volume`, false, true, 5e-6], [`mole`, `mol`, null, `amount_of_substance`, true, false, 1], [`morgen`, `Morgen`, null, `area`, false, true, 2500], [`n.u. of action`, `?`, null, `action`, false, false, 105457168181818e-48], [`n.u. of mass`, `m?`, null, `mass`, false, false, 910938261616162e-45], [`n.u. of speed`, `c?`, null, `speed`, false, false, 299792458], [`n.u. of time`, `?/(me?c??)`, null, `time`, false, false, 128808866778687e-35], [`nautical mile`, `M`, [`Nmi`], `length`, false, true, 1852], [`newton`, `N`, null, `force`, true, true, 1], [`\u0153rsted`, `Oe `, null, `magnetic_field_intensity`, false, false, 79.5774715459477], [`ohm`, `\u03A9`, null, `electric_resistance`, true, false, 1], [`ounce mass`, `ozm`, null, `mass`, false, true, 0.028349523125], [`pascal`, `Pa`, null, `pressure`, true, false, 1], [`pascal second`, `Pa?s`, null, `dynamic_viscosity`, true, false, 1], [`pferdest\xE4rke`, `PS`, null, `power`, false, true, 735.49875], [`phot`, `ph`, null, `illuminance`, false, false, 1e-4], [`pica (1/6 inch)`, `pica`, null, `length`, false, true, 35277777777778e-17], [`pica (1/72 inch)`, `Pica`, [`Picapt`], `length`, false, true, 0.00423333333333333], [`poise`, `P`, null, `dynamic_viscosity`, false, false, 0.1], [`pond`, `pond`, null, `force`, false, true, 980665e-8], [`pound force`, `lbf`, null, `force`, false, true, 4.4482216152605], [`pound mass`, `lbm`, null, `mass`, false, true, 0.45359237], [`quart`, `qt`, null, `volume`, false, true, 946352946e-12], [`radian`, `rad`, null, `angle`, true, false, 1], [`rankine`, `Rank`, null, `temperature`, false, true, 1], [`reaumur`, `Reau`, null, `temperature`, false, true, 1], [`second`, `?`, null, `angle`, false, false, 484813681109536e-20], [`second`, `s`, [`sec`], `time`, true, true, 1], [`short hundredweight`, `cwt`, [`shweight`], `mass`, false, true, 45.359237], [`siemens`, `S`, null, `electrical_conductance`, true, false, 1], [`sievert`, `Sv`, null, `equivalent_dose`, true, false, 1], [`slug`, `sg`, null, `mass`, false, true, 14.59390294], [`square \xE5ngstr\xF6m`, `ang2`, [`ang^2`], `area`, false, true, 1e-20], [`square foot`, `ft2`, [`ft^2`], `area`, false, true, 0.09290304], [`square inch`, `in2`, [`in^2`], `area`, false, true, 64516e-8], [`square light-year`, `ly2`, [`ly^2`], `area`, false, true, 895054210748189e17], [`square meter`, `m?`, null, `area`, true, true, 1], [`square mile`, `mi2`, [`mi^2`], `area`, false, true, 2589988110336e-6], [`square nautical mile`, `Nmi2`, [`Nmi^2`], `area`, false, true, 3429904], [`square Pica`, `Pica2`, [`Picapt2`, `Pica^2`, `Picapt^2`], `area`, false, true, 1792111111111e-17], [`square yard`, `yd2`, [`yd^2`], `area`, false, true, 0.83612736], [`statute mile`, `mi`, null, `length`, false, true, 1609.344], [`steradian`, `sr`, null, `solid_angle`, true, false, 1], [`stilb`, `sb`, null, `luminance`, false, false, 1e-4], [`stokes`, `St`, null, `kinematic_viscosity`, false, false, 1e-4], [`stone`, `stone`, null, `mass`, false, true, 6.35029318], [`tablespoon`, `tbs`, null, `volume`, false, true, 147868e-10], [`teaspoon`, `tsp`, null, `volume`, false, true, 492892e-11], [`tesla`, `T`, null, `magnetic_flux_density`, true, true, 1], [`thermodynamic calorie`, `c`, null, `energy`, false, true, 4.184], [`ton`, `ton`, null, `mass`, false, true, 907.18474], [`tonne`, `t`, null, `mass`, false, false, 1e3], [`U.K. pint`, `uk_pt`, null, `volume`, false, true, 56826125e-11], [`U.S. bushel`, `bushel`, null, `volume`, false, true, 0.03523907], [`U.S. oil barrel`, `barrel`, null, `volume`, false, true, 0.158987295], [`U.S. pint`, `pt`, [`us_pt`], `volume`, false, true, 473176473e-12], [`U.S. survey mile`, `survey_mi`, null, `length`, false, true, 1609.347219], [`U.S. survey/statute acre`, `us_acre`, null, `area`, false, true, 4046.87261], [`volt`, `V`, null, `voltage`, true, false, 1], [`watt`, `W`, null, `power`, true, true, 1], [`watt-hour`, `Wh`, [`wh`], `energy`, false, true, 3600], [`weber`, `Wb`, null, `magnetic_flux`, true, false, 1], [`yard`, `yd`, null, `length`, false, true, 0.9144], [`year`, `yr`, null, `time`, false, true, 31557600]]), E3(this, `_binaryPrefixes`, { Yi: [`yobi`, 80, 12089258196146292e8, `Yi`, `yotta`], Zi: [`zebi`, 70, 11805916207174113e5, `Zi`, `zetta`], Ei: [`exbi`, 60, 1152921504606847e3, `Ei`, `exa`], Pi: [`pebi`, 50, 1125899906842624, `Pi`, `peta`], Ti: [`tebi`, 40, 1099511627776, `Ti`, `tera`], Gi: [`gibi`, 30, 1073741824, `Gi`, `giga`], Mi: [`mebi`, 20, 1048576, `Mi`, `mega`], ki: [`kibi`, 10, 1024, `ki`, `kilo`] }), E3(this, `_unitPrefixes`, { Y: [`yotta`, 1e24, `Y`], Z: [`zetta`, 1e21, `Z`], E: [`exa`, 1e18, `E`], P: [`peta`, 1e15, `P`], T: [`tera`, 1e12, `T`], G: [`giga`, 1e9, `G`], M: [`mega`, 1e6, `M`], k: [`kilo`, 1e3, `k`], h: [`hecto`, 100, `h`], e: [`dekao`, 10, `e`], d: [`deci`, 0.1, `d`], c: [`centi`, 0.01, `c`], m: [`milli`, 1e-3, `m`], u: [`micro`, 1e-6, `u`], n: [`nano`, 1e-9, `n`], p: [`pico`, 1e-12, `p`], f: [`femto`, 1e-15, `f`], a: [`atto`, 1e-18, `a`], z: [`zepto`, 1e-21, `z`], y: [`yocto`, 1e-24, `y`] }); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = Y3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = `${s.getValue()}`, d = `${c.getValue()}`; if (Number.isNaN(l)) return j3.create(D3.VALUE); let f, p = 1, m, h = 1, { _from: g2, _to: _2 } = this._lookupFromAndToUnits(u, d); if (f = g2, m = _2, f === null) { let { _from: e30, _fromMultiplier: t2 } = this._lookupFromPrefix(u); f = e30, p = t2; } if (m === null) { let { _to: e30, _toMultiplier: t2 } = this._lookupToPrefix(d); m = e30, h = t2; } if (f === null || m === null || f[3] !== m[3]) return j3.create(D3.NA); let v; return f[3] === `temperature` ? (v = this._getTemperatureConversion(l, f[1], m[1]), v = +v.toFixed(2)) : v = l * f[6] * p / (m[6] * h), R4.create(v); } _lookupFromAndToUnits(e29, t) { let n = null, r = null, i; for (let a = 0; a < this._units.length; a++) i = this._units[a][2] === null ? [] : this._units[a][2], (this._units[a][1] === e29 || i.indexOf(e29) >= 0) && (n = this._units[a]), (this._units[a][1] === t || i.indexOf(t) >= 0) && (r = this._units[a]); return { _from: n, _to: r }; } _lookupFromPrefix(e29) { let t = null, n = 1, r = e29, i, a = this._binaryPrefixes[e29.substring(0, 2)], o = this._unitPrefixes[e29.substring(0, 1)]; e29.substring(0, 2) === `da` && (o = [`dekao`, 10, `da`]), a ? (n = a[2], r = e29.substring(2)) : o && (n = o[1], r = e29.substring(o[2].length)); for (let e30 = 0; e30 < this._units.length; e30++) i = this._units[e30][2] === null ? [] : this._units[e30][2], (this._units[e30][1] === r || i.indexOf(r) >= 0) && (t = this._units[e30]); return { _from: t, _fromMultiplier: n }; } _lookupToPrefix(e29) { let t = null, n = 1, r = e29, i, a = this._binaryPrefixes[e29.substring(0, 2)], o = this._unitPrefixes[e29.substring(0, 1)]; e29.substring(0, 2) === `da` && (o = [`dekao`, 10, `da`]), a ? (n = a[2], r = e29.substring(2)) : o && (n = o[1], r = e29.substring(o[2].length)); for (let e30 = 0; e30 < this._units.length; e30++) i = this._units[e30][2] === null ? [] : this._units[e30][2], (this._units[e30][1] === r || i.indexOf(r) >= 0) && (t = this._units[e30]); return { _to: t, _toMultiplier: n }; } _getTemperatureConversion(e29, t, n) { switch (t) { case `C`: return this._centigradeConversion(e29, n); case `F`: return this._fahrenheitConversion(e29, n); case `K`: return this._kelvinConversion(e29, n); case `Rank`: return this._rankineConversion(e29, n); case `Reau`: return this._reaumurConversion(e29, n); default: return e29; } } _centigradeConversion(e29, t) { switch (t) { case `F`: return e29 * 9 / 5 + 32; case `K`: return e29 + 273.15; case `Rank`: return (e29 + 273.15) * 9 / 5; case `Reau`: return e29 * 4 / 5; default: return e29; } } _fahrenheitConversion(e29, t) { switch (t) { case `C`: return (e29 - 32) * 5 / 9; case `K`: return (e29 - 32) * 5 / 9 + 273.15; case `Rank`: return e29 + 459.67; case `Reau`: return (e29 - 32) * 4 / 9; default: return e29; } } _kelvinConversion(e29, t) { switch (t) { case `C`: return e29 - 273.15; case `F`: return (e29 - 273.15) * 9 / 5 + 32; case `Rank`: return e29 * 9 / 5; case `Reau`: return (e29 - 273.15) * 4 / 5; default: return e29; } } _rankineConversion(e29, t) { switch (t) { case `C`: return (e29 - 491.67) * 5 / 9; case `F`: return e29 - 459.67; case `K`: return e29 * 5 / 9; case `Reau`: return (e29 - 491.67) * 4 / 9; default: return e29; } } _reaumurConversion(e29, t) { switch (t) { case `C`: return e29 * 5 / 4; case `F`: return e29 * 9 / 4 + 32; case `K`: return e29 * 5 / 4 + 273.15; case `Rank`: return e29 * 9 / 4 + 491.67; default: return e29; } } }; var id2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = Math.trunc(+o.getValue()); if (Number.isNaN(s)) return j3.create(D3.VALUE); if (!/^-?[0-9]{1,3}$/.test(`${s}`) || s < -512 || s > 511) return j3.create(D3.NUM); let c; if (s < 0) { let e30 = (512 + s).toString(2); c = `1${`0`.repeat(9 - e30.length)}${e30}`; } else if (c = Number.parseInt(`${s}`, 10).toString(2), t) { if (n < c.length) return j3.create(D3.NUM); c = `0`.repeat(n - c.length) + c; } return z3.create(c); } }; var ad2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = Math.trunc(+o.getValue()); if (Number.isNaN(s)) return j3.create(D3.VALUE); if (!/^-?[0-9]{1,12}$/.test(`${s}`) || s < -549755813888 || s > 549755813887) return j3.create(D3.NUM); let c; if (s < 0) c = (1099511627776 + s).toString(16); else if (c = Number.parseInt(`${s}`, 10).toString(16), t) { if (n < c.length) return j3.create(D3.NUM); c = `0`.repeat(n - c.length) + c; } return z3.create(c.toLocaleUpperCase()); } }; var od2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = Math.trunc(+o.getValue()); if (Number.isNaN(s)) return j3.create(D3.VALUE); if (!/^-?[0-9]{1,9}$/.test(`${s}`) || s < -536870912 || s > 536870911) return j3.create(D3.NUM); let c; if (s < 0) c = (1073741824 + s).toString(8); else if (c = Number.parseInt(`${s}`, 10).toString(8), t) { if (n < c.length) return j3.create(D3.NUM); c = `0`.repeat(n - c.length) + c; } return z3.create(c); } }; var sd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t == null ? R4.create(0) : t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = +o.getValue(); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); let l = s === c ? 1 : 0; return R4.create(l); } }; var cd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n; if (t) { let { isError: r, errorObject: i, variants: a } = Y3(e29, t); if (r) return i; let [o, s] = a, c = +o.getValue(), l = +s.getValue(); if (Number.isNaN(c) || Number.isNaN(l)) return j3.create(D3.VALUE); n = ks2(l) - ks2(c); } else { let { isError: t2, errorObject: r, variants: i } = Y3(e29); if (t2) return r; let [a] = i, o = +a.getValue(); if (Number.isNaN(o)) return j3.create(D3.VALUE); n = ks2(o); } return R4.create(n); } }; var ld = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (Number.isNaN(a)) return j3.create(D3.VALUE); let o = ks2(a); return R4.create(o); } }; var ud = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (Number.isNaN(a)) return j3.create(D3.VALUE); let o = As2(a); return R4.create(o); } }; var dd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (Number.isNaN(a)) return j3.create(D3.VALUE); let o = As2(a); return R4.create(o); } }; var fd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t == null ? R4.create(0) : t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = +o.getValue(); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); let l = s >= c ? 1 : 0; return R4.create(l); } }; var pd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Os2(s)) return j3.create(D3.NUM); let c = s.length === 10 && s.substring(0, 1).toLocaleUpperCase() === `F`, l = c ? Number.parseInt(s, 16) - 1099511627776 : Number.parseInt(s, 16); if (l < -512 || l > 511) return j3.create(D3.NUM); let u; if (c) { let e30 = (512 + l).toString(2); u = `1${`0`.repeat(9 - e30.length)}${e30}`; } else if (u = l.toString(2), t) { if (n < u.length) return j3.create(D3.NUM); u = `0`.repeat(n - u.length) + u; } return z3.create(u); } }; var md2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = `${i.getValue()}`; if (!Os2(a)) return j3.create(D3.NUM); let o = Number.parseInt(a, 16); return o >= 549755813888 && (o -= 1099511627776), R4.create(o); } }; var hd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Os2(s)) return j3.create(D3.NUM); let c = Number.parseInt(s, 16); if (c > 536870911 && c < 1098974756864) return j3.create(D3.NUM); let l; if (c >= 1098974756864) l = (c - 1098437885952).toString(8); else if (l = c.toString(8), t) { if (n < l.length) return j3.create(D3.NUM); l = `0`.repeat(n - l.length) + l; } return z3.create(l); } }; var gd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Abs(); return R4.create(o); } }; var _d = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.getINum(); return R4.create(o); } }; var vd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); if (a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.DIV_BY_ZERO); let o = a.Argument(); return R4.create(o); } }; var yd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Conjugate(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var bd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Cos(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var xd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Cosh(); return a.isError() ? j3.create(D3.NUM) : typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Sd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Cot(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Cd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Coth(); return a.isError() ? j3.create(D3.NUM) : typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var wd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Csc(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Td2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Csch(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Ed2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = `${a.getValue()}`, c = `${o.getValue()}`, l = new td2(s), u = new td2(c); if (l.isError() || u.isError() || l.isDifferentSuffixes(u) || u.getRealNum() === 0 && u.getINum() === 0) return j3.create(D3.NUM); let d = l.Div(u); return typeof d == `number` || Ja(d) ? R4.create(+d) : z3.create(d); } }; var Dd2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Exp(); return a.isError() ? j3.create(D3.NUM) : typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Od2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Ln(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var kd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29); if (n) return r; let [a] = i, o = t == null ? R4.create(10) : t; if (o.isArray()) { let e30 = o.getRowCount(), t2 = o.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); o = o.get(0, 0); } let { isError: s, errorObject: c, variants: l } = X3(o); if (s) return c; let [u] = l, d = `${a.getValue()}`, f = +u.getValue(), p = new td2(d); if (p.isError() || p.getRealNum() === 0 && p.getINum() === 0 || f <= 0) return j3.create(D3.NUM); let m = p.Log(f); return p.isError() ? j3.create(D3.NUM) : typeof m == `number` || Ja(m) ? R4.create(+m) : z3.create(m); } }; var Ad = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Log(2); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var jd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError() || a.getRealNum() === 0 && a.getINum() === 0) return j3.create(D3.NUM); let o = a.Log(10); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Md = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = new td2(`${a.getValue()}`); if (s.isError()) return j3.create(D3.NUM); let c = +o.getValue(); if (Number.isNaN(c)) return j3.create(D3.VALUE); let l = s.Power(c); return s.isError() ? j3.create(D3.NUM) : typeof l == `number` || Ja(l) ? R4.create(+l) : z3.create(l); } }; var Nd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = ``; for (let n = 0; n < e29.length; n++) { if (t instanceof j3) return t; let r = e29[n]; if (r.isArray()) { let e30 = false, n2; if (r.iterator((r2) => { if (t = this._handleSingleObject(r2, t), t instanceof j3) return e30 = true, n2 = t, false; }), e30) return n2; } else t = this._handleSingleObject(r, t); } return t instanceof j3 ? t : typeof t == `number` || Ja(t) ? R4.create(+t) : z3.create(t); } _handleSingleObject(e29, t) { let n = t; if (e29.isError()) return e29; if (e29.isBoolean()) return j3.create(D3.VALUE); let r = `${e29.getValue()}`; if (typeof t != `number` && !t) { let e30 = new td2(r); if (e30.isError()) return j3.create(D3.NUM); n = e30.toString(); } else { let e30 = new td2(t), i = new td2(r); if (e30.isError() || i.isError()) return j3.create(D3.NUM); if (e30.isDifferentSuffixes(i)) return j3.create(D3.VALUE); n = e30.Product(i); } return n; } }; var Pd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.getRealNum(); return R4.create(o); } }; var Fd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Sec(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Id = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Sech(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Ld = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Sin(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Rd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Sinh(); return a.isError() ? j3.create(D3.NUM) : typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var zd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); if (a.getRealNum() === 0 && a.getINum() === 0) return R4.create(0); let o = a.Sqrt(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Bd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = `${a.getValue()}`, c = `${o.getValue()}`, l = new td2(s), u = new td2(c); if (l.isError() || u.isError() || l.isDifferentSuffixes(u)) return j3.create(D3.NUM); let d = l.Sub(u); return typeof d == `number` || Ja(d) ? R4.create(+d) : z3.create(d); } }; var Vd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = ``; for (let n = 0; n < e29.length; n++) { if (t instanceof j3) return t; let r = e29[n]; if (r.isArray()) { let e30 = false, n2; if (r.iterator((r2) => { if (t = this._handleSingleObject(r2, t), t instanceof j3) return e30 = true, n2 = t, false; }), e30) return n2; } else t = this._handleSingleObject(r, t); } return t instanceof j3 ? t : typeof t == `number` || Ja(t) ? R4.create(+t) : z3.create(t); } _handleSingleObject(e29, t) { let n = t; if (e29.isError()) return e29; if (e29.isBoolean()) return j3.create(D3.VALUE); let r = `${e29.getValue()}`; if (typeof t != `number` && !t) { let e30 = new td2(r); if (e30.isError()) return j3.create(D3.NUM); n = e30.toString(); } else { let e30 = new td2(t), i = new td2(r); if (e30.isError() || i.isError()) return j3.create(D3.NUM); if (e30.isDifferentSuffixes(i)) return j3.create(D3.VALUE); n = e30.Sum(i); } return n; } }; var Hd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Tan(); return typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Ud = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = new td2(`${i.getValue()}`); if (a.isError()) return j3.create(D3.NUM); let o = a.Tanh(); return a.isError() ? j3.create(D3.NUM) : typeof o == `number` || Ja(o) ? R4.create(+o) : z3.create(o); } }; var Wd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Ds2(s)) return j3.create(D3.NUM); let c = s.length === 10 && s.substring(0, 1) === `7`, l = c ? Number.parseInt(s, 8) - 1073741824 : Number.parseInt(s, 8); if (l < -512 || l > 511) return j3.create(D3.NUM); let u; if (c) { let e30 = (512 + l).toString(2); u = `1${`0`.repeat(9 - e30.length)}${e30}`; } else if (u = l.toString(2), t) { if (n < u.length) return j3.create(D3.NUM); u = `0`.repeat(n - u.length) + u; } return z3.create(u); } }; var Gd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let { isError: t, errorObject: n, variants: r } = Y3(e29); if (t) return n; let [i] = r, a = `${i.getValue()}`; if (!Ds2(a)) return j3.create(D3.NUM); let o = Number.parseInt(a, 8); return o >= 536870912 && (o -= 1073741824), R4.create(o); } }; var Kd = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isNull()) return j3.create(D3.NA); let n = 0; if (t) { let { isError: e30, errorObject: r2, variants: i2 } = Y3(t); if (e30) return r2; let [a2] = i2; if (n = Math.floor(+a2.getValue()), Number.isNaN(n)) return j3.create(D3.VALUE); if (n < 0 || n > 10) return j3.create(D3.NUM); } let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = `${o.getValue()}`; if (!Ds2(s)) return j3.create(D3.NUM); let c = Number.parseInt(s, 8), l; if (c >= 536870912) l = `ff${(c + 3221225472).toString(16)}`; else if (l = c.toString(16), t) { if (n < l.length) return j3.create(D3.NUM); l = `0`.repeat(n - l.length) + l; } return z3.create(l.toLocaleUpperCase()); } }; var qd = [[Uu2, U3.BESSELI], [Wu, U3.BESSELJ], [Gu2, U3.BESSELK], [Ku2, U3.BESSELY], [qu2, U3.BIN2DEC], [Ju2, U3.BIN2HEX], [Yu2, U3.BIN2OCT], [Xu2, U3.BITAND], [Zu2, U3.BITLSHIFT], [Qu2, U3.BITOR], [$u, U3.BITRSHIFT], [ed2, U3.BITXOR], [nd2, U3.COMPLEX], [rd2, U3.CONVERT], [id2, U3.DEC2BIN], [ad2, U3.DEC2HEX], [od2, U3.DEC2OCT], [sd2, U3.DELTA], [cd2, U3.ERF], [ld, U3.ERF_PRECISE], [ud, U3.ERFC], [dd2, U3.ERFC_PRECISE], [fd, U3.GESTEP], [pd, U3.HEX2BIN], [md2, U3.HEX2DEC], [hd2, U3.HEX2OCT], [gd2, U3.IMABS], [_d, U3.IMAGINARY], [vd2, U3.IMARGUMENT], [yd2, U3.IMCONJUGATE], [bd2, U3.IMCOS], [xd, U3.IMCOSH], [Sd2, U3.IMCOT], [Cd2, U3.IMCOTH], [wd2, U3.IMCSC], [Td2, U3.IMCSCH], [Ed2, U3.IMDIV], [Dd2, U3.IMEXP], [Od2, U3.IMLN], [kd, U3.IMLOG], [jd, U3.IMLOG10], [Ad, U3.IMLOG2], [Md, U3.IMPOWER], [Nd, U3.IMPRODUCT], [Pd, U3.IMREAL], [Fd, U3.IMSEC], [Id, U3.IMSECH], [Ld, U3.IMSIN], [Rd, U3.IMSINH], [zd, U3.IMSQRT], [Bd, U3.IMSUB], [Vd, U3.IMSUM], [Hd, U3.IMTAN], [Ud, U3.IMTANH], [Wd, U3.OCT2BIN], [Gd, U3.OCT2DEC], [Kd, U3.OCT2HEX]]; function Jd(e29, t, n, r) { let { days: i } = pt2(Qd(e29, t, n), e29, r); return i; } function Yd(e29, t, n, r) { let i; if (r === 1) { let r2 = Qd(e29, t, n), a = M3(r2); a = Tt(a, 12 / n); let o = et2(a); i = r2 < 0 && n === 1 ? 365 : o - r2; } else i = r === 3 ? 365 / n : 360 / n; return i; } function Xd(e29, t, n) { let r = M3(e29), i = M3(t); for (i.setUTCFullYear(r.getUTCFullYear()), i < r && i.setUTCFullYear(i.getUTCFullYear() + 1); i > r; ) i = Tt(i, -12 / n); return i = Tt(i, 12 / n), et2(i); } function Zd(e29, t, n) { let r = 0, i = M3(e29), a = M3(t); for (; a > i; ) a = Tt(a, -12 / n), r++; return r; } function Qd(e29, t, n) { let r = M3(e29), i = M3(t); for (i.setUTCFullYear(r.getUTCFullYear()), i < r && i.setUTCFullYear(i.getUTCFullYear() + 1); i > r; ) i = Tt(i, -12 / n); return et2(i); } function $d(e29, t, n, r, i, a) { let o = Jd(e29, t, i, a), s = Yd(e29, t, i, a), c = Zd(e29, t, i), l = (s - o) / s - 1, u = r / i + 1, d = n * 100 / i, f = 0, p = 0; for (let e30 = 1; e30 <= c; e30++) { let t2 = e30 + l, n2 = d / u ** t2; f += t2 * n2, p += n2; } let m = c + l, h = 100 / u ** m; return f += m * h, p += h, f / p / i; } function ef(e29, t, n, r, i) { let a; if (e29 === 0) a = (n + r) / t; else { let o = (1 + e29) ** t; a = i === 1 ? (r * e29 / (o - 1) + n * e29 / (1 - 1 / o)) / (1 + e29) : r * e29 / (o - 1) + n * e29 / (1 - 1 / o); } return -a; } function tf(e29, t, n, r, i) { let a; if (e29 === 0) a = r + n * t; else { if (e29 === -1 && t === 0) return NaN; let o = (1 + e29) ** t; a = i === 1 ? r * o + n * (1 + e29) * (o - 1) / e29 : r * o + n * (o - 1) / e29; } return -a; } function nf(e29, t, n, r, i, a) { let o = ef(e29, n, r, i, a); return (t === 1 ? a === 1 ? 0 : -r : a === 1 ? tf(e29, t - 2, o, r, 1) - o : tf(e29, t - 1, o, r, 0)) * e29; } function rf(e29, t) { let n = 0; for (let r = 1; r <= t.length; r++) n += t[r - 1] / (1 + e29) ** r; return n; } function af(e29, t, n, r, i, a, o, s, c) { let l = cf(n, r, c), u = Yd(e29, r, s, c); return l < u ? of2(e29, t, n, r, i, a, o, s, c, l, u) : sf(e29, t, n, r, i, a, o, s, c, u); } function of2(e29, t, n, r, i, a, o, s, c, l, u) { let d = 0, f = Zd(e29, t, s), p = cf(e29, r, c); d += o / (1 + a / s) ** (f - 1 + p / u), d += 100 * i / s * l / u / (1 + a / s) ** (p / u); for (let e30 = 2; e30 <= f; e30++) d += 100 * i / s / (1 + a / s) ** (e30 - 1 + p / u); let m = cf(n, e29, c); return d -= 100 * i / s * m / u, d; } function sf(e29, t, n, r, i, a, o, s, c, l) { let u = 0, d = Zd(r, t, s), f = ff(r, e29, 12 / s, true), p; if (c === 2 || c === 3) p = cf(e29, Xd(e29, r, s), c); else { let { days: t2 } = pt2(Qd(e29, r, s), e29, c); p = l - t2; } u += o / (1 + a / s) ** (d + f + p / l); let m = Zd(n, r, s), h = r, g2 = 0, _2 = 0; for (let t2 = m; t2 >= 1; t2--) { let r2 = df(h, -12 / s, false), i2 = c === 1 ? cf(r2, h, c) : l, a2 = t2 > 1 ? i2 : cf(n, h, c); g2 += a2 / i2; let o2 = cf(n > r2 ? n : r2, e29 < h ? e29 : h, c); _2 += o2 / i2, h = r2; } u += 100 * i / s * g2 / (1 + a / s) ** (f + p / l); for (let e30 = 1; e30 <= d; e30++) u += 100 * i / s / (1 + a / s) ** (e30 + f + p / l); return u -= 100 * i / s * _2, u; } function cf(e29, t, n) { let { days: r } = pt2(e29, t, n); return e29 < t ? r : 0; } function lf(e29, t, n) { let r = M3(e29), i = r.getUTCFullYear(), a = r.getUTCMonth(), o = r.getUTCDate(), s = wt2(i, a, o), c = M3(t), l = c.getUTCFullYear(), u = c.getUTCMonth(), d = c.getUTCDate(), f = wt2(l, u, d); return !(o !== d && !(s && f) || Math.abs((l - i) * 12 + (u - a)) % (12 / n) != 0); } function uf(e29, t, n) { return Qd(e29, t, n) >= 0; } function df(e29, t, n) { let r = M3(e29); if (r = Tt(r, t), n) { let e30 = xt2(r.getUTCFullYear(), r.getUTCMonth()); r.setUTCDate(e30); } return et2(r); } function ff(e29, t, n, r) { let i = M3(e29), a = M3(t), o = i.getUTCFullYear(), s = i.getUTCMonth(), c = i.getUTCDate(), l = a.getUTCFullYear(), u = a.getUTCMonth(), d = a.getUTCDate(), f = wt2(o, s, c), p = !f && s !== 1 && c > 28 && c < xt2(o, s) ? wt2(l, u, d) : f, m = df(t, 0, p), h = r - 0 + +(t < m), g2 = df(m, n, p); for (; !(n > 0 ? g2 >= t : g2 <= t); ) g2 = df(g2, n, p), h++; return h; } function pf(e29, t) { let n = 1e-7; n * 2; let r = 1, i = 0, a = e29, o; for (; r > n && i < 500; ) { let e30 = (t(a + n) - t(a - n)) / 2e-7; o = a - t(a) / e30, i++, r = Math.abs(o - a), a = o; } return Number.isNaN(a) || Math.abs(a) === 1 / 0 || i === 500 ? mf(e29, t) : a; } function mf(e29, t) { let n = 1e-7, r = Number.MAX_VALUE, i = 1.6, a = e29 - 0.01 <= -1 ? -1 + n : e29 - 0.01, o = e29 + 0.01 >= r ? r - n : e29 + 0.01, s, c, l = 0; if (e29 <= -1 || e29 >= r) return j3.create(D3.NUM); for (let e30 = 0; e30 < 60; e30++) { s = a <= -1 ? -1 + n : a, c = o >= r ? r - n : o; let l2 = t(s), u2 = t(c); if (l2 * u2 <= 0) break; if (l2 * u2 > 0) a = s + i * (s - c), o = c + i * (c - s); else return j3.create(D3.NUM); if (e30 === 59) return j3.create(D3.NUM); } s = s, c = c; let u = t(s), d = t(c), f, p; if (Math.abs(u) < n || Math.abs(d) < n) return j3.create(D3.NUM); do p = s + (c - s) / 2, f = t(p), u * f < 0 ? c = p : s = p, u = t(s), l++; while (Math.abs(f) > n && l < 60); return p; } function hf(e29, t, n, r, i, a, o) { let s = Zd(e29, t, a), c = Yd(e29, t, a, o), l = Jd(e29, t, a, o); if (s === 1) { let e30 = c - l, t2 = 100 * n / a + i, o2 = r / a * e30 / c + 1, s2 = 100 * n / a * l / c; return t2 / o2 - s2; } let u = c - l, d = i / (1 + r / a) ** (s - 1 + u / c); for (let e30 = 1; e30 <= s; e30++) d += 100 * n / a / (1 + r / a) ** (e30 - 1 + u / c); return d -= 100 * n / a * l / c, d; } function gf(e29, t, n, r, i) { let a = 0, o = i / n; o >= 1 ? (o = 1, a = r === 1 ? e29 : 0) : a = e29 * (1 - o) ** (r - 1); let s = e29 * (1 - o) ** r, c = 0; return c = s < t ? a - t : a - s, c < 0 && (c = 0), c; } var _f = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 8); } calculate(e29, t, n, r, i, a, o, s) { let c = o == null ? R4.create(0) : o, l = s == null ? L3.create(true) : s, { isError: u, errorObject: d, variants: f } = Y3(e29, t, n, r, i, a, c); if (u) return d; let [p, m, h, g2, _2, v, y] = f, b = N3(p); if (typeof b != `number`) return b; let x2 = N3(m); if (typeof x2 != `number`) return x2; let S4 = N3(h); if (typeof S4 != `number`) return S4; let C3 = +g2.getValue(), ee = +_2.getValue(), te = Math.floor(+v.getValue()), ne = Math.floor(+y.getValue()), re = +l.getValue(); return Number.isNaN(C3) || Number.isNaN(ee) || Number.isNaN(te) || Number.isNaN(ne) || Number.isNaN(re) ? j3.create(D3.VALUE) : C3 <= 0 || ee <= 0 || ![1, 2, 4].includes(te) || ne < 0 || ne > 4 || Math.floor(b) >= Math.floor(S4) ? j3.create(D3.NUM) : this._getResult(b, x2, S4, C3, ee, te, ne, re); } _getResult(e29, t, n, r, i, a, o, s) { let c = Qd(e29, t, a); if (c <= 0) return R4.create(0); c = Qd(n, t, a); let l = 12 / a, u = M3(t), d = wt2(u.getUTCFullYear(), u.getUTCMonth(), u.getUTCDate()), f = df(t, -l, d); if (n > t && s) for (f = t; f < n; ) f = df(f, l, d); let p = e29 > f ? e29 : f, { days: m } = pt2(p, n, o); if (c >= e29) { let { days: e30 } = pt2(p, n, o ? 4 : 0); m = e30; } n < p && (m = -m); let h = Yd(f, t, a, o), g2 = m / h, _2 = f, v = e29; for (; _2 > e29; ) { v = _2, _2 = df(_2, -l, d), p = e29 > _2 ? e29 : _2; let { days: t2 } = pt2(p, v, o); if (o === 0) m = v >= p || e29 <= _2 ? t2 : -t2, h = Yd(_2, v, a, o); else if (m = v < p ? -t2 : t2, o === 3) h = 365 / a; else { let { days: e30 } = pt2(_2, v, o); h = v < _2 ? -e30 : e30; } g2 += e29 <= _2 ? s ? 1 : 0 : m / h; } let y = i * r / a * g2; return R4.create(y); } }; var vf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let { isError: a, errorObject: o, variants: s } = Y3(e29, t, n, r, i == null ? R4.create(0) : i); if (a) return o; let [c, l, u, d, f] = s, p = N3(c); if (typeof p != `number`) return p; let m = N3(l); if (typeof m != `number`) return m; let h = +u.getValue(), g2 = +d.getValue(), _2 = Math.floor(+f.getValue()); if (Number.isNaN(h) || Number.isNaN(g2) || Number.isNaN(_2)) return j3.create(D3.VALUE); if (h <= 0 || g2 <= 0 || _2 < 0 || _2 > 4 || Math.floor(p) > Math.floor(m)) return j3.create(D3.NUM); if (Math.floor(p) === Math.floor(m)) return R4.create(0); let { days: v, yearDays: y } = pt2(p, m, _2), b = g2 * h * v / y; return R4.create(b); } }; var yf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 7); } calculate(e29, t, n, r, i, a, o) { let { isError: s, errorObject: c, variants: l } = Y3(e29, t, n, r, i, a, o == null ? R4.create(0) : o); if (s) return c; let [u, d, f, p, m, h, g2] = l, _2 = N3(d); if (typeof _2 != `number`) return _2; let v = N3(f); if (typeof v != `number`) return v; let y = +u.getValue(), b = +p.getValue(), x2 = +m.getValue(), S4 = +h.getValue(), C3 = Math.floor(+g2.getValue()); return Number.isNaN(y) || Number.isNaN(b) || Number.isNaN(x2) || Number.isNaN(S4) || Number.isNaN(C3) ? j3.create(D3.VALUE) : y <= 0 || b < 0 || y < b || Math.floor(_2) > Math.floor(v) || x2 < 0 || S4 <= 0 || ![0, 1, 3, 4].includes(C3) ? j3.create(D3.NUM) : (x2 = x2 > 1 ? Math.floor(x2) : Math.ceil(x2), this._getResult(y, _2, v, b, x2, S4, C3)); } _getResult(e29, t, n, r, i, a, o) { let s = e29 - r, c = e29 * a, { days: l, yearDays: u } = pt2(t, n, o), d = l / u, f = Math.ceil(s / c - d); if (f < 0) return R4.create(0); let p = c; return i === 0 ? p = c * d : i === f ? p = s - c * (d + i - 1) : i > f && (p = 0), R4.create(p); } }; var bf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f)) return j3.create(D3.NUM); let h = Jd(d, f, p, m); return R4.create(h); } }; var xf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f)) return j3.create(D3.NUM); let h = Yd(d, f, p, m); return R4.create(h); } }; var Sf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f)) return j3.create(D3.NUM); let h = M3(d), g2 = M3(f); for (g2.setUTCFullYear(h.getUTCFullYear()), g2 < h && g2.setUTCFullYear(g2.getUTCFullYear() + 1); g2 > h; ) g2.setUTCMonth(g2.getUTCMonth() - 12 / p); g2.setUTCMonth(g2.getUTCMonth() + 12 / p); let { days: _2 } = pt2(d, et2(g2), m); return R4.create(_2); } }; var Cf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f)) return j3.create(D3.NUM); let h = Xd(d, f, p); return R4.create(h); } }; var wf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f) || Qd(d, f, p) < 0) return j3.create(D3.NUM); let h = Zd(d, f, p); return R4.create(h); } }; var Tf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n, r == null ? R4.create(0) : r); if (i) return a; let [s, c, l, u] = o, d = N3(s); if (typeof d != `number`) return d; let f = N3(c); if (typeof f != `number`) return f; let p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (Number.isNaN(p) || Number.isNaN(m)) return j3.create(D3.VALUE); if (![1, 2, 4].includes(p) || m < 0 || m > 4 || Math.floor(d) >= Math.floor(f)) return j3.create(D3.NUM); let h = Qd(d, f, p); return h < 0 && (h = 0), R4.create(h); } }; var Ef = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let { isError: o, errorObject: s, variants: c } = Y3(e29, t, n, r, i, a); if (o) return s; let [l, u, d, f, p, m] = c, h = +l.getValue(), g2 = +u.getValue(), _2 = +d.getValue(), v = +f.getValue(), y = +p.getValue(), b = +m.getValue(); return Number.isNaN(h) || Number.isNaN(g2) || Number.isNaN(_2) || Number.isNaN(v) || Number.isNaN(y) || Number.isNaN(b) ? j3.create(D3.VALUE) : h <= 0 || g2 <= 0 || _2 <= 0 || v < 1 || y < 1 || v > y || v > g2 || y > g2 || ![0, 1].includes(b) ? j3.create(D3.NUM) : Math.trunc(v) !== v && Math.trunc(y) !== y && Math.trunc(v) === Math.trunc(y) ? R4.create(0) : this._getResult(h, g2, _2, v, y, b); } _getResult(e29, t, n, r, i, a) { let o = ef(e29, t, n, 0, a), s = 0, c = Math.ceil(r); c === 1 && (a === 0 && (s = -n), c++); let l = false; for (let t2 = c; t2 <= i; t2++) { let r2 = a === 1 ? tf(e29, t2 - 2, o, n, 1) : tf(e29, t2 - 1, o, n, 0); if (r2 === 0) { l = true; break; } s += a === 1 ? r2 - o : r2; } return s *= e29, (s < o * (i - r + 1) || l) && (s = o * (i - r + 1)), R4.create(s); } }; var Df = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let { isError: o, errorObject: s, variants: c } = Y3(e29, t, n, r, i, a); if (o) return s; let [l, u, d, f, p, m] = c, h = +l.getValue(), g2 = +u.getValue(), _2 = +d.getValue(), v = +f.getValue(), y = +p.getValue(), b = +m.getValue(); return Number.isNaN(h) || Number.isNaN(g2) || Number.isNaN(_2) || Number.isNaN(v) || Number.isNaN(y) || Number.isNaN(b) ? j3.create(D3.VALUE) : h <= 0 || g2 <= 0 || _2 <= 0 || v < 1 || y < 1 || v > y || ![0, 1].includes(b) ? j3.create(D3.NUM) : Math.trunc(v) !== v && Math.trunc(y) !== y && Math.trunc(v) === Math.trunc(y) ? R4.create(0) : this._getResult(h, g2, _2, v, y, b); } _getResult(e29, t, n, r, i, a) { let o = ef(e29, t, n, 0, a), s = 0, c = Math.ceil(r); c === 1 && (s = a === 0 ? o + n * e29 : o, c++); for (let t2 = c; t2 <= i; t2++) s += a === 1 ? o - (tf(e29, t2 - 2, o, n, 1) - o) * e29 : o - tf(e29, t2 - 1, o, n, 0) * e29; return R4.create(s); } }; var Of = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i) { let a = i == null ? R4.create(12) : i; a.isNull() && (a = R4.create(12)); let o = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1), s = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1), c = V3(o, s, e29, j3.create(D3.NA)), l = V3(o, s, t, j3.create(D3.NA)), u = V3(o, s, n, j3.create(D3.NA)), d = V3(o, s, r, j3.create(D3.NA)), f = V3(o, s, a, j3.create(D3.NA)), p = c.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, l.get(t2, n2), u.get(t2, n2), d.get(t2, n2), f.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, p2, m] = a2, h = +o2.getValue(), g2 = +s2.getValue(), _2 = +c2.getValue(), v = +p2.getValue(), y = Math.floor(+m.getValue()); return h < 0 || g2 < 0 || _2 <= 0 || v <= 0 || Math.floor(v) > Math.floor(_2) || y < 1 || y > 12 ? j3.create(D3.NUM) : (v < 1 && (v = 1), v = Math.floor(v), this._getResult(h, g2, _2, v, y, t2, n2)); }); return o === 1 && s === 1 ? p.get(0, 0) : p; } _getResult(e29, t, n, r, i, a, o) { let s = +(1 - (t / e29) ** (1 / n)).toFixed(3), c = e29 * s * i / 12, l = c, u = 0, d = r === n ? n - 1 : r; for (let t2 = 2; t2 <= d; t2++) u = (e29 - l) * s, l += u; let f; return f = r === 1 ? c : r === n ? (e29 - l) * s : u, Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : a === 0 && o === 0 ? R4.create(f, Pi(this.getLocale())) : R4.create(f); } }; var kf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i) { let a = i == null ? R4.create(2) : i; a.isNull() && (a = R4.create(2)); let o = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1), s = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1), c = V3(o, s, e29, j3.create(D3.NA)), l = V3(o, s, t, j3.create(D3.NA)), u = V3(o, s, n, j3.create(D3.NA)), d = V3(o, s, r, j3.create(D3.NA)), f = V3(o, s, a, j3.create(D3.NA)), p = c.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, l.get(t2, n2), u.get(t2, n2), d.get(t2, n2), f.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, p2, m] = a2, h = +o2.getValue(), g2 = +s2.getValue(), _2 = +c2.getValue(), v = +p2.getValue(), y = +m.getValue(); if (h < 0 || g2 < 0 || _2 <= 0 || v <= 0 || v > _2 || y <= 0) return j3.create(D3.NUM); let b = gf(h, g2, _2, v, y); return Number.isNaN(b) || !Number.isFinite(b) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(b, Pi(this.getLocale())) : R4.create(b); }); return o === 1 && s === 1 ? p.get(0, 0) : p; } }; var Af = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let { isError: a, errorObject: o, variants: s } = Y3(e29, t, n, r, i == null ? R4.create(0) : i); if (a) return o; let [c, l, u, d, f] = s, p = N3(c); if (typeof p != `number`) return p; let m = N3(l); if (typeof m != `number`) return m; let h = +u.getValue(), g2 = +d.getValue(), _2 = Math.floor(+f.getValue()); if (Number.isNaN(h) || Number.isNaN(g2) || Number.isNaN(_2)) return j3.create(D3.VALUE); if (h <= 0 || g2 <= 0 || _2 < 0 || _2 > 4 || Math.floor(p) >= Math.floor(m)) return j3.create(D3.NUM); let { days: v, yearDays: y } = pt2(p, m, _2), b = (g2 - h) / g2 * (y / v); return R4.create(b); } }; var jf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); if (c >= 0 && c < 1) return j3.create(D3.DIV_BY_ZERO); c = Number.parseInt(`${c}`, 10); let l = Number.parseInt(`${s}`, 10); l += s % 1 * 10 ** Math.ceil(Math.log(c) / Math.LN10) / c; let u = 10 ** (Math.ceil(Math.log(c) / Math.LN2) + 1); return l = Math.round(l * u) / u, R4.create(l); } }; var Mf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c < 0) return j3.create(D3.NUM); if (c >= 0 && c < 1) return j3.create(D3.DIV_BY_ZERO); c = Number.parseInt(`${c}`, 10); let l = Number.parseInt(`${s}`, 10); return l += s % 1 * 10 ** -Math.ceil(Math.log(c) / Math.LN10) * c, R4.create(l); } }; var Nf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = a == null ? R4.create(0) : a; o.isNull() && (o = R4.create(0)); let { isError: s, errorObject: c, variants: l } = bs2(e29, t, n, r, i, o); if (s) return c; let [u, d, f, p, m, h] = l, g2 = N3(u); if (typeof g2 != `number`) return g2; let _2 = N3(d); if (typeof _2 != `number`) return _2; let v = +f.getValue(), y = +p.getValue(), b = Math.floor(+m.getValue()), x2 = Math.floor(+h.getValue()); if (Number.isNaN(v) || Number.isNaN(y) || Number.isNaN(b) || Number.isNaN(x2)) return j3.create(D3.VALUE); if (v < 0 || y < 0 || ![1, 2, 4].includes(b) || x2 < 0 || x2 > 4 || Math.floor(g2) >= Math.floor(_2) || g2 <= 0 || _2 <= 366) return j3.create(D3.NUM); let S4 = $d(g2, _2, v, y, b, x2); return R4.create(S4); } }; var Pf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (s <= 0 || c < 1) return j3.create(D3.NUM); c = Number.parseInt(`${c}`, 10); let l = (1 + s / c) ** c - 1; return R4.create(l); } }; var Ff = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(0) : i, s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, u.get(t2, n2), d.get(t2, n2), f.get(t2, n2), p.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, m2] = a2, h = tf(+o2.getValue(), +s2.getValue(), +c2.getValue(), +l2.getValue(), +m2.getValue() ? 1 : 0); return Number.isNaN(h) || !Number.isFinite(h) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(h, Pi(this.getLocale())) : R4.create(h); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } }; var If = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29); if (n) return r; let [a] = i, o = +a.getValue(); if (Number.isNaN(o)) return j3.create(D3.VALUE); let s = o; if (t.isArray()) { let e30 = t.getArrayValue().flat(); for (let t2 = 0; t2 < e30.length; t2++) { let n2 = e30[t2]; if (n2.isBoolean()) return j3.create(D3.VALUE); let r2 = +n2.getValue(); if (Number.isNaN(r2)) return j3.create(D3.VALUE); s *= 1 + r2; } } else { if (t.isBoolean()) return j3.create(D3.VALUE); let e30 = +t.getValue(); if (Number.isNaN(e30)) return j3.create(D3.VALUE); s *= 1 + e30; } return R4.create(s); } }; var Lf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let { isError: a, errorObject: o, variants: s } = Y3(e29, t, n, r, i == null ? R4.create(0) : i); if (a) return o; let [c, l, u, d, f] = s, p = N3(c); if (typeof p != `number`) return p; let m = N3(l); if (typeof m != `number`) return m; let h = +u.getValue(), g2 = +d.getValue(), _2 = Math.floor(+f.getValue()); if (Number.isNaN(h) || Number.isNaN(g2) || Number.isNaN(_2)) return j3.create(D3.VALUE); if (h <= 0 || g2 <= 0 || _2 < 0 || _2 > 4 || Math.floor(p) >= Math.floor(m)) return j3.create(D3.NUM); let { days: v, yearDays: y } = pt2(p, m, _2), b = (g2 - h) / h * (y / v); return R4.create(b); } }; var Rf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 6), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i, a) { let o = i == null ? R4.create(0) : i, s = a == null ? R4.create(0) : a, c = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, e29, j3.create(D3.NA)), d = V3(c, l, t, j3.create(D3.NA)), f = V3(c, l, n, j3.create(D3.NA)), p = V3(c, l, r, j3.create(D3.NA)), m = V3(c, l, o, j3.create(D3.NA)), h = V3(c, l, s, j3.create(D3.NA)), g2 = u.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, d.get(t2, n2), f.get(t2, n2), p.get(t2, n2), m.get(t2, n2), h.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, u2, g3] = a2, _2 = +o2.getValue(), v = +s2.getValue(), y = +c2.getValue(), b = +l2.getValue(), x2 = +u2.getValue(), S4 = +g3.getValue(); if (v < 1 || Math.floor(v) > Math.ceil(y)) return j3.create(D3.NUM); let C3 = nf(_2, v, y, b, x2, S4 ? 1 : 0); return Number.isNaN(C3) || !Number.isFinite(C3) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(C3, Pi(this.getLocale())) : R4.create(C3); }); return c === 1 && l === 1 ? g2.get(0, 0) : g2; } }; var zf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(0.1) : t; return n.isNull() && (n = R4.create(0.1)), n.isArray() ? n.map((t2, n2, r) => this._handleSingleObject(e29, t2, n2, r)) : this._handleSingleObject(e29, n); } _handleSingleObject(e29, t, n = 0, r = 0) { if (e29.isError()) return e29; if (t.isError()) return t; if (e29.isNull()) return j3.create(D3.VALUE); if (!e29.isArray()) return j3.create(D3.NUM); let { _values: i, valuesHasError: a } = this._getValues(e29); if (a) return j3.create(D3.VALUE); let o = t; if (o.isString() && (o = o.convertToNumberObjectValue(), o.isError())) return o; let s = +o.getValue(), { positive: c, negative: l } = this._checkValues(i); if (!c || !l) return j3.create(D3.NUM); let u = pf(s, (e30) => rf(e30, i)); return typeof u == `number` ? n === 0 && r === 0 ? R4.create(u, `0%`) : R4.create(u) : u; } _getValues(e29) { let t = [], n = false; return e29.iterator((e30) => { let r = e30; if (r.isError()) return n = true, false; if (r.isNull() || r.isBoolean() || r.isString() && r.getValue() === ``) return true; let i = +r.getValue(); if (Number.isNaN(i)) return true; t.push(i); }), { _values: t, valuesHasError: n }; } _checkValues(e29) { let t = false, n = false; for (let r = 0; r < e29.length; r++) e29[r] > 0 && (t = true), e29[r] < 0 && (n = true); return { positive: t, negative: n }; } }; var Bf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, s.get(t2, n2), c.get(t2, n2), l.get(t2, n2)); if (r2) return i2; let [o2, u2, d, f] = a2, p = +o2.getValue(), m = +u2.getValue(), h = +d.getValue(), g2 = +f.getValue(); if (h === 0) return j3.create(D3.DIV_BY_ZERO); let _2 = g2 * p * (m / h - 1); return R4.create(_2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } }; var Vf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = a == null ? R4.create(0) : a; o.isNull() && (o = R4.create(0)); let { isError: s, errorObject: c, variants: l } = bs2(e29, t, n, r, i, o); if (s) return c; let [u, d, f, p, m, h] = l, g2 = N3(u); if (typeof g2 != `number`) return g2; let _2 = N3(d); if (typeof _2 != `number`) return _2; let v = +f.getValue(), y = +p.getValue(), b = Math.floor(+m.getValue()), x2 = Math.floor(+h.getValue()); if (Number.isNaN(v) || Number.isNaN(y) || Number.isNaN(b) || Number.isNaN(x2)) return j3.create(D3.VALUE); if (v < 0 || y < 0 || ![1, 2, 4].includes(b) || x2 < 0 || x2 > 4 || Math.floor(g2) >= Math.floor(_2)) return j3.create(D3.NUM); let S4 = $d(g2, _2, v, y, b, x2); return S4 /= 1 + y / b, R4.create(S4); } }; var Hf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { _values: r, numberValues: i, positive: a, negative: o } = this._getValues(e29), s = Math.max(t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), c = Math.max(t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), l = V3(s, c, t, j3.create(D3.NA)), u = V3(s, c, n, j3.create(D3.NA)), d = l.map((t2, n2, s2) => { let c2 = u.get(n2, s2); if (e29.isError()) return e29; if (c2.isError()) return c2; if (r.isError()) return r; if (!a || !o) return j3.create(D3.DIV_BY_ZERO); let l2 = +t2.getValue(), d2 = +c2.getValue(); if (Number.isNaN(l2) || Number.isNaN(d2)) return j3.create(D3.VALUE); if (d2 === -1) return j3.create(D3.DIV_BY_ZERO); let f = this._getResult(i, l2, d2); return n2 === 0 && s2 === 0 ? R4.create(f, `0%`) : R4.create(f); }); return s === 1 && c === 1 ? d.get(0, 0) : d; } _getValues(e29) { let t = e29, n = [], r = false, i = false; if (!e29.isError()) if (e29.isNull()) t = j3.create(D3.VALUE); else if (!e29.isArray()) t = j3.create(D3.DIV_BY_ZERO); else { let { numberValues: a, valuesHasError: o, errorObject: s, positive: c, negative: l } = this._checkValues(e29); o && (t = s), n = a, r = c, i = l; } return { _values: t, numberValues: n, positive: r, negative: i }; } _checkValues(e29) { let t = [], n = false, r = j3.create(D3.VALUE), i = false, a = false; return e29.iterator((e30) => { let o = e30; if (o.isError()) return n = true, r = o, false; if (o.isNull() || o.isBoolean() || o.isString() && o.getValue() === ``) return true; let s = +o.getValue(); if (Number.isNaN(s)) return true; s > 0 && (i = true), s < 0 && (a = true), t.push(s); }), { numberValues: t, valuesHasError: n, errorObject: r, positive: i, negative: a }; } _getResult(e29, t, n) { let r = e29.length, i = [], a = []; for (let t2 = 0; t2 < r; t2++) e29[t2] > 0 ? a.push(e29[t2]) : e29[t2] < 0 && i.push(e29[t2]); let o = this._npv(n, e29, `positive`), s = this._npv(t, e29, `negative`); return (-o * (1 + n) ** r / (s * (1 + t))) ** (1 / (r - 1)) - 1; } _npv(e29, t, n) { let r = 0; for (let i = 1; i <= t.length; i++) { let a = t[i - 1]; (n === `positive` && a > 0 || n === `negative` && a < 0) && (r += a / (1 + e29) ** i); } return r; } }; var Uf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (s <= 0 || c < 1) return j3.create(D3.NUM); c = Number.parseInt(`${c}`, 10); let l = ((s + 1) ** (1 / c) - 1) * c; return R4.create(l); } }; var Wf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(0) : i, s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, u.get(t2, n2), d.get(t2, n2), f.get(t2, n2), p.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, m2] = a2, h = +o2.getValue(), g2 = +s2.getValue(), _2 = +c2.getValue(), v = +l2.getValue(), y = +m2.getValue(); if (y = y ? 1 : 0, h === 0 && g2 === 0) return j3.create(D3.DIV_BY_ZERO); let b; if (h === 0) b = -(_2 + v) / g2; else { let e31 = g2 * (1 + h * y) - v * h, t3 = _2 * h + g2 * (1 + h * y); b = Math.log(e31 / t3) / Math.log(1 + h); } return Number.isNaN(b) || !Number.isFinite(b) ? j3.create(D3.NUM) : R4.create(b); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } }; var Gf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255), E3(this, `needsLocale`, true); } calculate(e29, ...t) { if (e29.isError()) return e29; let { isError: n, errorObject: r, values: i } = this._getValues(t); return e29.isArray() ? e29.map((e30, t2, a) => this._handleSingleObject(e30, n, r, i, t2, a)) : this._handleSingleObject(e29, n, r, i); } _handleSingleObject(e29, t, n, r, i = 0, a = 0) { let o = e29; if (o.isString() && (o = o.convertToNumberObjectValue()), o.isError()) return o; if (t) return n; let s = rf(+e29.getValue(), r); return Number.isNaN(s) || Math.abs(s) === 1 / 0 ? j3.create(D3.DIV_BY_ZERO) : i === 0 && a === 0 ? R4.create(s, Pi(this.getLocale())) : R4.create(s); } _getValues(e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isError()) return { isError: true, errorObject: r }; if (r.isArray()) { let e30 = false, n2 = j3.create(D3.VALUE); if (r.iterator((r2) => { let i = r2; if (i.isError()) return e30 = true, n2 = i, false; if (i.isNull() || i.isBoolean() || i.isString() && i.getValue() === ``) return true; let a = +i.getValue(); if (Number.isNaN(a)) return true; t.push(a); }), e30) return { isError: e30, errorObject: n2 }; } else { let e30 = +r.getValue(); if (Number.isNaN(e30)) return { isError: true, errorObject: j3.create(D3.VALUE) }; t.push(e30); } } return { isError: false, values: t }; } }; var Kf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 8), E3(this, `maxParams`, 9); } calculate(e29, t, n, r, i, a, o, s, c) { let l = c == null ? R4.create(0) : c; l.isNull() && (l = R4.create(0)); let { isError: u, errorObject: d, variants: f } = bs2(e29, t, n, r, i, a, o, s, l); if (u) return d; let [p, m, h, g2, _2, v, y, b, x2] = f, S4 = N3(p); if (typeof S4 != `number`) return S4; let C3 = N3(m); if (typeof C3 != `number`) return C3; let ee = N3(h); if (typeof ee != `number`) return ee; let te = N3(g2); if (typeof te != `number`) return te; let ne = +_2.getValue(), re = +v.getValue(), ie = +y.getValue(), ae = Math.floor(+b.getValue()), oe = Math.floor(+x2.getValue()); if (Number.isNaN(ne) || Number.isNaN(re) || Number.isNaN(ie) || Number.isNaN(ae) || Number.isNaN(oe)) return j3.create(D3.VALUE); if (ne < 0 || re < 0 || ie <= 0 || ![1, 2, 4].includes(ae) || oe < 0 || oe > 4 || !this._validDate(C3, te, S4, ee, ae)) return j3.create(D3.NUM); let se = af(S4, C3, ee, te, ne, re, ie, ae, oe); return R4.create(se); } _validDate(e29, t, n, r, i) { return this._getDateCorrectOrder(e29, t, n, r) && lf(e29, t, i) && uf(r, e29, i); } _getDateCorrectOrder(e29, t, n, r) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n) && Math.floor(n) > Math.floor(r); } }; var qf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 8), E3(this, `maxParams`, 9); } calculate(e29, t, n, r, i, a, o, s, c) { let l = c == null ? R4.create(0) : c; l.isNull() && (l = R4.create(0)); let { isError: u, errorObject: d, variants: f } = bs2(e29, t, n, r, i, a, o, s, l); if (u) return d; let [p, m, h, g2, _2, v, y, b, x2] = f, S4 = N3(p); if (typeof S4 != `number`) return S4; let C3 = N3(m); if (typeof C3 != `number`) return C3; let ee = N3(h); if (typeof ee != `number`) return ee; let te = N3(g2); if (typeof te != `number`) return te; let ne = +_2.getValue(), re = +v.getValue(), ie = +y.getValue(), ae = Math.floor(+b.getValue()), oe = Math.floor(+x2.getValue()); return Number.isNaN(ne) || Number.isNaN(re) || Number.isNaN(ie) || Number.isNaN(ae) || Number.isNaN(oe) ? j3.create(D3.VALUE) : ne < 0 || re <= 0 || ie <= 0 || ![1, 2, 4].includes(ae) || oe < 0 || oe > 4 || !this._validDate(C3, te, S4, ee, ae) ? j3.create(D3.NUM) : this._getResult(S4, C3, ee, te, ne, re, ie, ae, oe); } _validDate(e29, t, n, r, i) { return this._getDateCorrectOrder(e29, t, n, r) && lf(e29, t, i) && uf(r, e29, i); } _getDateCorrectOrder(e29, t, n, r) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n) && Math.floor(n) > Math.floor(r); } _getResult(e29, t, n, r, i, a, o, s, c) { let { days: l } = pt2(e29, t, c), u = (i * l * 100 - (a - 100)) / ((a - 100) * 0.25 * (1 + 2 * l) + l * 100); function d(l2) { return a - af(e29, t, n, r, i, l2, o, s, c); } let f = pf(u, (e30) => d(e30)); return typeof f == `number` ? R4.create(f) : f; } }; var Jf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 7), E3(this, `maxParams`, 8); } calculate(e29, t, n, r, i, a, o, s) { let c = s == null ? R4.create(0) : s; c.isNull() && (c = R4.create(0)); let { isError: l, errorObject: u, variants: d } = bs2(e29, t, n, r, i, a, o, c); if (l) return u; let [f, p, m, h, g2, _2, v, y] = d, b = N3(f); if (typeof b != `number`) return b; let x2 = N3(p); if (typeof x2 != `number`) return x2; let S4 = N3(m); if (typeof S4 != `number`) return S4; let C3 = +h.getValue(), ee = +g2.getValue(), te = +_2.getValue(), ne = Math.floor(+v.getValue()), re = Math.floor(+y.getValue()); if (Number.isNaN(C3) || Number.isNaN(ee) || Number.isNaN(te) || Number.isNaN(ne) || Number.isNaN(re)) return j3.create(D3.VALUE); if (C3 < 0 || ee < 0 || te <= 0 || ![1, 2, 4].includes(ne) || re < 0 || re > 4 || !this._validDate(x2, b, S4, ne)) return j3.create(D3.NUM); let ie = this._getResult(b, x2, S4, C3, ee, te, ne, re); return R4.create(ie); } _validDate(e29, t, n, r) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n) && uf(n, e29, r); } _getResult(e29, t, n, r, i, a, o, s) { let c = this._getCoupDate(t, n, o), l = this._getFrac(n, e29, c, o, s), u = this._getFrac(n, t, c, o, s), d = this._getFrac(e29, t, c, o, s); return (a * o + 100 * r * (u - l * (1 + i * d / o))) / (i * d + o); } _getCoupDate(e29, t, n) { let r = M3(e29), i = M3(t); for (i.setUTCFullYear(r.getUTCFullYear()), i > r && i.setUTCFullYear(i.getUTCFullYear() - 1); i < r; ) i.setUTCMonth(i.getUTCMonth() + 12 / n); return et2(i); } _getFrac(e29, t, n, r, i) { let a = M3(e29), o = M3(t), s = M3(n); for (s.setUTCFullYear(a.getUTCFullYear()), s < a && s.setUTCFullYear(s.getUTCFullYear() + 1); s > a; ) s.setUTCMonth(s.getUTCMonth() - 12 / r); let c = et2(s); s.setUTCMonth(s.getUTCMonth() + 12 / r); let l = et2(s); if (l >= t) { let { days: n2 } = pt2(e29, t, i); return n2 / Yd(c, l, r, i); } let { days: u } = pt2(e29, l, i), d = u / Yd(c, l, r, i), f = M3(l), p = M3(l); for (p.setUTCMonth(p.getUTCMonth() + 12 / r); p < o; ) f.setUTCMonth(f.getUTCMonth() + 12 / r), p.setUTCMonth(p.getUTCMonth() + 12 / r), d += 1; c = et2(f), l = et2(p); let { days: m } = pt2(c, t, i), h = Yd(c, l, r, i); return d += m / h, d; } }; var Yf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 8), E3(this, `maxParams`, 9); } calculate(e29, t, n, r, i, a, o, s) { let c = s == null ? R4.create(0) : s; c.isNull() && (c = R4.create(0)); let { isError: l, errorObject: u, variants: d } = bs2(e29, t, n, r, i, a, o, c); if (l) return u; let [f, p, m, h, g2, _2, v, y] = d, b = N3(f); if (typeof b != `number`) return b; let x2 = N3(p); if (typeof x2 != `number`) return x2; let S4 = N3(m); if (typeof S4 != `number`) return S4; let C3 = +h.getValue(), ee = +g2.getValue(), te = +_2.getValue(), ne = Math.floor(+v.getValue()), re = Math.floor(+y.getValue()); if (Number.isNaN(C3) || Number.isNaN(ee) || Number.isNaN(te) || Number.isNaN(ne) || Number.isNaN(re)) return j3.create(D3.VALUE); if (C3 < 0 || ee <= 0 || te <= 0 || ![1, 2, 4].includes(ne) || re < 0 || re > 4 || !this._validDate(x2, b, S4, ne)) return j3.create(D3.NUM); let ie = this._getResult(b, x2, S4, C3, ee, te, ne, re); return R4.create(ie); } _validDate(e29, t, n, r) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n) && uf(n, e29, r); } _getResult(e29, t, n, r, i, a, o, s) { let c = this._getCoupDate(t, n, o), l = this._getFrac(n, e29, c, o, s), u = this._getFrac(n, t, c, o, s), d = this._getFrac(e29, t, c, o, s); return (o * (a - i) + 100 * r * (u - l)) / (d * i + 100 * r * l * d / o); } _getCoupDate(e29, t, n) { let r = M3(e29), i = M3(t); for (i.setUTCFullYear(r.getUTCFullYear()), i > r && i.setUTCFullYear(i.getUTCFullYear() - 1); i < r; ) i.setUTCMonth(i.getUTCMonth() + 12 / n); return et2(i); } _getFrac(e29, t, n, r, i) { let a = M3(e29), o = M3(t), s = M3(n); for (s.setUTCFullYear(a.getUTCFullYear()), s < a && s.setUTCFullYear(s.getUTCFullYear() + 1); s > a; ) s.setUTCMonth(s.getUTCMonth() - 12 / r); let c = et2(s); s.setUTCMonth(s.getUTCMonth() + 12 / r); let l = et2(s); if (l >= t) { let { days: n2 } = pt2(e29, t, i); return n2 / Yd(c, l, r, i); } let { days: u } = pt2(e29, l, i), d = u / Yd(c, l, r, i), f = M3(l), p = M3(l); for (p.setUTCMonth(p.getUTCMonth() + 12 / r); p < o; ) f.setUTCMonth(f.getUTCMonth() + 12 / r), p.setUTCMonth(p.getUTCMonth() + 12 / r), d += 1; c = et2(f), l = et2(p); let { days: m } = pt2(c, t, i), h = Yd(c, l, r, i); return d += m / h, d; } }; var Xf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, o.get(t2, n2), s.get(t2, n2)); if (r2) return i2; let [c2, l, u] = a2, d = +c2.getValue(), f = +l.getValue(), p = +u.getValue(); if (d <= -1) return j3.create(D3.NUM); let m = (Math.log(p) - Math.log(f)) / Math.log(1 + d); return Number.isNaN(m) || !Number.isFinite(m) ? j3.create(D3.NUM) : R4.create(m); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var Zf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(0) : i, s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, u.get(t2, n2), d.get(t2, n2), f.get(t2, n2), p.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, m2] = a2, h = +o2.getValue(), g2 = +s2.getValue(), _2 = +c2.getValue(), v = +l2.getValue(), y = +m2.getValue(); if (h <= -1) return j3.create(D3.NUM); let b = ef(h, g2, _2, v, y ? 1 : 0); return Number.isNaN(b) || !Number.isFinite(b) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(b, Pi(this.getLocale())) : R4.create(b); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } }; var Qf = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 6), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i, a) { let o = i == null ? R4.create(0) : i, s = a == null ? R4.create(0) : a, c = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, e29, j3.create(D3.NA)), d = V3(c, l, t, j3.create(D3.NA)), f = V3(c, l, n, j3.create(D3.NA)), p = V3(c, l, r, j3.create(D3.NA)), m = V3(c, l, o, j3.create(D3.NA)), h = V3(c, l, s, j3.create(D3.NA)), g2 = u.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, d.get(t2, n2), f.get(t2, n2), p.get(t2, n2), m.get(t2, n2), h.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, u2, g3] = a2, _2 = +o2.getValue(), v = +s2.getValue(), y = +c2.getValue(), b = +l2.getValue(), x2 = +u2.getValue(), S4 = +g3.getValue(); if (v < 1 || Math.floor(v) > Math.ceil(y) || v - y >= 1) return j3.create(D3.NUM); let C3 = ef(_2, y, b, x2, S4 ? 1 : 0) - nf(_2, v, y, b, x2, S4 ? 1 : 0); return Number.isNaN(C3) || !Number.isFinite(C3) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(C3, Pi(this.getLocale())) : R4.create(C3); }); return c === 1 && l === 1 ? g2.get(0, 0) : g2; } }; var $f = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 7); } calculate(e29, t, n, r, i, a, o) { let s = o == null ? R4.create(0) : o; s.isNull() && (s = R4.create(0)); let { isError: c, errorObject: l, variants: u } = bs2(e29, t, n, r, i, a, s); if (c) return l; let [d, f, p, m, h, g2, _2] = u, v = N3(d); if (typeof v != `number`) return v; let y = N3(f); if (typeof y != `number`) return y; let b = +p.getValue(), x2 = +m.getValue(), S4 = +h.getValue(), C3 = Math.floor(+g2.getValue()), ee = Math.floor(+_2.getValue()); if (Number.isNaN(b) || Number.isNaN(x2) || Number.isNaN(S4) || Number.isNaN(C3) || Number.isNaN(ee)) return j3.create(D3.VALUE); if (b < 0 || x2 < 0 || S4 <= 0 || ![1, 2, 4].includes(C3) || ee < 0 || ee > 4 || v >= y || !uf(v, y, C3)) return j3.create(D3.NUM); let te = hf(v, y, b, x2, S4, C3, ee); return R4.create(te); } }; var ep = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = i == null ? R4.create(0) : i; a.isNull() && (a = R4.create(0)); let { isError: o, errorObject: s, variants: c } = bs2(e29, t, n, r, a); if (o) return s; let [l, u, d, f, p] = c, m = N3(l); if (typeof m != `number`) return m; let h = N3(u); if (typeof h != `number`) return h; let g2 = +d.getValue(), _2 = +f.getValue(), v = Math.floor(+p.getValue()); if (Number.isNaN(g2) || Number.isNaN(_2) || Number.isNaN(v)) return j3.create(D3.VALUE); if (g2 <= 0 || _2 <= 0 || v < 0 || v > 4 || m >= h) return j3.create(D3.NUM); let { days: y, yearDays: b } = pt2(m, h, v), x2 = _2 - g2 * _2 * y / b; return R4.create(x2); } }; var tp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = a == null ? R4.create(0) : a; o.isNull() && (o = R4.create(0)); let { isError: s, errorObject: c, variants: l } = bs2(e29, t, n, r, i, o); if (s) return c; let [u, d, f, p, m, h] = l, g2 = N3(u); if (typeof g2 != `number`) return g2; let _2 = N3(d); if (typeof _2 != `number`) return _2; let v = N3(f); if (typeof v != `number`) return v; let y = +p.getValue(), b = +m.getValue(), x2 = Math.floor(+h.getValue()); if (Number.isNaN(y) || Number.isNaN(b) || Number.isNaN(x2)) return j3.create(D3.VALUE); let S4 = this._getDateCorrectOrder(_2, g2, v); if (y < 0 || b < 0 || x2 < 0 || x2 > 4 || !S4) return j3.create(D3.NUM); let C3 = Ct2(g2, x2), { days: ee } = pt2(g2, _2, x2), { days: te } = pt2(v, _2, x2), { days: ne } = pt2(v, g2, x2), re = (100 + te / C3 * y * 100) / (1 + ee / C3 * b) - ne / C3 * y * 100; return R4.create(re); } _getDateCorrectOrder(e29, t, n) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n); } }; var np = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i) { let a = r == null ? R4.create(0) : r, o = i == null ? R4.create(0) : i, s = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, e29, j3.create(D3.NA)), u = V3(s, c, t, j3.create(D3.NA)), d = V3(s, c, n, j3.create(D3.NA)), f = V3(s, c, a, j3.create(D3.NA)), p = V3(s, c, o, j3.create(D3.NA)), m = l.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, u.get(t2, n2), d.get(t2, n2), f.get(t2, n2), p.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, m2] = a2, h = +o2.getValue(), g2 = +s2.getValue(), _2 = +c2.getValue(), v = +l2.getValue(), y = +m2.getValue(); y = y ? 1 : 0; let b = h === 0 ? -_2 * g2 - v : ((1 - (1 + h) ** g2) / h * _2 * (1 + h * y) - v) / (1 + h) ** g2; return Number.isNaN(b) || !Number.isFinite(b) ? j3.create(D3.NUM) : t2 === 0 && n2 === 0 ? R4.create(b, Pi(this.getLocale())) : R4.create(b); }); return s === 1 && c === 1 ? m.get(0, 0) : m; } }; var rp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = r == null ? R4.create(0) : r, s = i == null ? R4.create(0) : i, c = a == null ? R4.create(0.1) : a, l = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1, c.isArray() ? c.getRowCount() : 1), u = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1, c.isArray() ? c.getColumnCount() : 1), d = V3(l, u, e29, j3.create(D3.NA)), f = V3(l, u, t, j3.create(D3.NA)), p = V3(l, u, n, j3.create(D3.NA)), m = V3(l, u, o, j3.create(D3.NA)), h = V3(l, u, s, j3.create(D3.NA)), g2 = V3(l, u, c, j3.create(D3.NA)), _2 = d.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, f.get(t2, n2), p.get(t2, n2), m.get(t2, n2), h.get(t2, n2), g2.get(t2, n2)); if (r2) return i2; let [o2, s2, c2, l2, u2, d2] = a2, _3 = +o2.getValue(), v = +s2.getValue(), y = +c2.getValue(), b = +l2.getValue(), x2 = +u2.getValue(), S4 = +d2.getValue(); return x2 = x2 ? 1 : 0, _3 <= 0 || v >= 0 && y >= 0 && b >= 0 || v <= 0 && y <= 0 && b <= 0 ? j3.create(D3.NUM) : this._getResult(_3, v, y, b, x2, S4, t2, n2); }); return l === 1 && u === 1 ? _2.get(0, 0) : _2; } _getResult(e29, t, n, r, i, a, o, s) { let c = 1e-10; if (Math.abs(t) < 1e-14) return this._computeSimpleGrowthRate(e29, n, r, o, s); let l = a, u = 1 / 0; for (let a2 = 0; a2 < 100; a2++) { if (l <= -1) return j3.create(D3.NUM); let { value: a3, derivative: o2 } = this._evaluateRateFunction(l, e29, t, n, r, i, c), s2 = Math.abs(a3); if (s2 < c || Math.abs(o2) < 1e-14) break; let d = this._getAdaptiveDampedStep(a3, o2, s2, u); l -= d, u = s2; } return !Number.isFinite(l) || l <= -1 ? j3.create(D3.NUM) : R4.create(l, o === 0 && s === 0 ? `0%` : void 0); } _computeSimpleGrowthRate(e29, t, n, r, i) { if (Math.sign(t) === Math.sign(n)) return j3.create(D3.NUM); let a = (n / -t) ** (1 / e29) - 1; return R4.create(a, r === 0 && i === 0 ? `0%` : void 0); } _evaluateRateFunction(e29, t, n, r, i, a, o) { let s, c, l; if (Math.abs(e29) < o) s = r * (1 + t * e29) + n * (1 + e29 * a) * t + i, c = r * t + n * a * t; else { l = (1 + e29) ** t, s = r * l + n * (1 / e29 + a) * (l - 1) + i; let o2 = t * (1 + e29) ** (t - 1); c = r * o2 + n * (1 / e29 + a) * o2 + n * (-1 / (e29 * e29)) * (l - 1); } return { value: s, derivative: c }; } _getAdaptiveDampedStep(e29, t, n, r) { let i = e29 / t; return n > 1e-3 || n >= r * 0.9 ? Math.max(Math.min(i, 5), -5) : Math.max(Math.min(i, 0.5), -0.5); } }; var ip = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = i == null ? R4.create(0) : i; a.isNull() && (a = R4.create(0)); let { isError: o, errorObject: s, variants: c } = bs2(e29, t, n, r, a); if (o) return s; let [l, u, d, f, p] = c, m = N3(l); if (typeof m != `number`) return m; let h = N3(u); if (typeof h != `number`) return h; let g2 = +d.getValue(), _2 = +f.getValue(), v = Math.floor(+p.getValue()); if (Number.isNaN(g2) || Number.isNaN(_2) || Number.isNaN(v)) return j3.create(D3.VALUE); if (g2 <= 0 || _2 <= 0 || v < 0 || v > 4 || m >= h) return j3.create(D3.NUM); let { days: y, yearDays: b } = pt2(m, h, v), x2 = g2 / (1 - _2 * y / b); return x2 < 0 ? j3.create(D3.NUM) : R4.create(x2); } }; var ap = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 6); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.map((e30, t2, n2) => { let { isError: r2, errorObject: i2, variants: a2 } = X3(e30, o.get(t2, n2), s.get(t2, n2)); if (r2) return i2; let [c2, l, u] = a2, d = +c2.getValue(), f = +l.getValue(), p = +u.getValue(); if (d <= 0) return j3.create(D3.NUM); if (f === 0 && p === 0) return R4.create(0); let m = (p / f) ** (1 / d) - 1; return Number.isNaN(m) || !Number.isFinite(m) || p / f < 0 ? j3.create(D3.NUM) : R4.create(m); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var op = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3), E3(this, `needsLocale`, true); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); if (r2.isError()) return r2; if (i2.isError()) return i2; let a2 = +e30.getValue(), c2 = +r2.getValue(), l = +i2.getValue(); if (Number.isNaN(a2) || Number.isNaN(c2) || Number.isNaN(l)) return j3.create(D3.VALUE); if (l === 0) return j3.create(D3.DIV_BY_ZERO); let u = (a2 - c2) / l; return t2 === 0 && n2 === 0 ? R4.create(u, Pi(this.getLocale())) : R4.create(u); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var sp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4), E3(this, `needsLocale`, true); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.map((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); if (r2.isError()) return r2; if (i2.isError()) return i2; if (a2.isError()) return a2; let o2 = +e30.getValue(), u2 = +r2.getValue(), d = +i2.getValue(), f = +a2.getValue(); if (Number.isNaN(o2) || Number.isNaN(u2) || Number.isNaN(d) || Number.isNaN(f)) return j3.create(D3.VALUE); if (u2 < 0 || d <= 0 || f > d) return j3.create(D3.NUM); let p = (o2 - u2) * (d - f + 1) * 2 / (d * (d + 1)); return t2 === 0 && n2 === 0 ? R4.create(p, Pi(this.getLocale())) : R4.create(p); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } }; var cp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = bs2(e29, t, n); if (r) return i; let [o, s, c] = a, l = N3(o); if (typeof l != `number`) return l; let u = N3(s); if (typeof u != `number`) return u; let d = +c.getValue(); if (Number.isNaN(d)) return j3.create(D3.VALUE); if (d <= 0 || l >= u) return j3.create(D3.NUM); let f = Math.floor(u) - Math.floor(l); if (f > St2(M3(l).getUTCFullYear())) return j3.create(D3.NUM); let p = 365 * d / (360 - d * f); if (f > 182) { let e30 = 100 * (1 - d * f / 360), t2 = f / 365; if (p = (-t2 + Math.sqrt(t2 * t2 - (t2 * 2 - 1) * (1 - 100 / e30))) / (t2 - 0.5), Number.isNaN(p)) return j3.create(D3.NUM); } return p < 0 ? j3.create(D3.NUM) : R4.create(p); } }; var lp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3), E3(this, `needsLocale`, true); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = bs2(e29, t, n); if (r) return i; let [o, s, c] = a, l = N3(o); if (typeof l != `number`) return l; let u = N3(s); if (typeof u != `number`) return u; let d = +c.getValue(); if (Number.isNaN(d)) return j3.create(D3.VALUE); if (d <= 0 || l >= u) return j3.create(D3.NUM); let f = Math.floor(u) - Math.floor(l); if (f > St2(M3(l).getUTCFullYear())) return j3.create(D3.NUM); let p = 100 * (1 - d * f / 360); return p < 0 ? j3.create(D3.NUM) : R4.create(p, Pi(this.getLocale())); } }; var up = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = bs2(e29, t, n); if (r) return i; let [o, s, c] = a, l = N3(o); if (typeof l != `number`) return l; let u = N3(s); if (typeof u != `number`) return u; let d = +c.getValue(); if (Number.isNaN(d)) return j3.create(D3.VALUE); if (d <= 0 || l >= u) return j3.create(D3.NUM); let f = Math.floor(u) - Math.floor(l); if (f > St2(M3(l).getUTCFullYear())) return j3.create(D3.NUM); let p = (100 - d) / d * 360 / f; return R4.create(p); } }; var dp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 7), E3(this, `needsLocale`, true); } calculate(e29, t, n, r, i, a, o) { let s = a == null ? R4.create(2) : a; s.isNull() && (s = R4.create(2)); let c = o == null ? L3.create(false) : o; c.isNull() && (c = L3.create(false)); let l = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1, c.isArray() ? c.getRowCount() : 1), u = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1, c.isArray() ? c.getColumnCount() : 1), d = V3(l, u, e29, j3.create(D3.NA)), f = V3(l, u, t, j3.create(D3.NA)), p = V3(l, u, n, j3.create(D3.NA)), m = V3(l, u, r, j3.create(D3.NA)), h = V3(l, u, i, j3.create(D3.NA)), g2 = V3(l, u, s, j3.create(D3.NA)), _2 = V3(l, u, c, j3.create(D3.NA)); return this._getResultArray(d, f, p, m, h, g2, _2, l, u); } _getResultArray(e29, t, n, r, i, a, o, s, c) { let l = e29.map((e30, s2, c2) => { let { isError: l2, errorObject: u, variants: d } = X3(e30, t.get(s2, c2), n.get(s2, c2), r.get(s2, c2), i.get(s2, c2), a.get(s2, c2), o.get(s2, c2)); if (l2) return u; let [f, p, m, h, g2, _2, v] = d, y = +f.getValue(), b = +p.getValue(), x2 = +m.getValue(), S4 = +h.getValue(), C3 = +g2.getValue(), ee = +_2.getValue(), te = +v.getValue(); if (y < 0 || b < 0 || x2 < 0 || S4 < 0 || C3 < 0 || C3 > x2 || S4 > C3 || ee < 0) return j3.create(D3.NUM); if (x2 === 0 && S4 === 0 && C3 === 0) return j3.create(D3.DIV_BY_ZERO); let ne = this._getResult(y, b, x2, S4, C3, ee, te); return s2 === 0 && c2 === 0 ? R4.create(ne, Pi(this.getLocale())) : R4.create(ne); }); return s === 1 && c === 1 ? l.get(0, 0) : l; } _getResult(e29, t, n, r, i, a, o) { let s = Math.floor(r), c = Math.ceil(i), l = 0; if (e29 < t) { if (r >= 1 || o) return l; let n2 = Math.abs(e29 - t); return l = n2 * (i - r) > n2 ? n2 : n2 * (i - r), -l; } if (o) for (let o2 = s + 1; o2 <= c; o2++) { let u = gf(e29, t, n, o2, a); o2 === s + 1 ? u *= Math.min(i, s + 1) - r : o2 === c && (u *= i + 1 - c), l += u; } else { let o2 = e29 - this._getVdb(e29, t, n, n, r, a); l = this._getVdb(o2, t, n, n - r, i - r, a); } return l; } _getVdb(e29, t, n, r, i, a) { let o = Math.ceil(i), s = 0, c = e29 - t, l = 0, u = 0, d = false; for (let f = 1; f <= o; f++) { if (d) u = l; else { let i2 = gf(e29, t, n, f, a); l = c / (r - (f - 1)), l > i2 ? (u = l, d = true) : (u = i2, c -= i2); } f === o && (u *= i + 1 - o), s += u; } return s; } }; var fp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { if (e29.isNull() || t.isNull()) return j3.create(D3.NA); let { isError: r, errorObejct: i, _values: a, _dates: o } = this._checkErrors(e29, t); if (r) return i; let s = n == null ? R4.create(0.1) : n; s.isNull() && (s = R4.create(0.1)); let { isError: c, errorObject: l, variants: u } = Y3(s); if (c) return l; let [d] = u, f = +d.getValue(); if (Number.isNaN(f)) return j3.create(D3.VALUE); let { positive: p, negative: m } = this._checkValues(a); if (!p || !m || (a == null ? void 0 : a.length) !== (o == null ? void 0 : o.length) || f < 0) return j3.create(D3.NUM); let h = pf(f, (e30) => this._iterF(a, o, e30)); return typeof h == `number` ? R4.create(h) : h; } _checkErrors(e29, t) { if (e29.isError()) return { isError: true, errorObejct: e29 }; if (t.isError()) return { isError: true, errorObejct: t }; let { isError: n, errorObejct: r, _values: i } = this._checkErrorValues(e29); if (n) return { isError: n, errorObejct: r }; let { isError: a, errorObejct: o, _dates: s } = this._checkErrorDates(t); return a ? { isError: a, errorObejct: o } : { isError: false, _values: i, _dates: s }; } _checkErrorValues(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); return e29.iterator((e30) => { let i = e30; if (i.isError()) return n = true, r = i, false; if (i.isBoolean()) return n = true, r = j3.create(D3.VALUE), false; let a = +i.getValue(); if (Number.isNaN(a)) return n = true, r = j3.create(D3.VALUE), false; t.push(a); }), n ? { isError: n, errorObejct: r } : t.length <= 1 ? { isError: true, errorObejct: j3.create(D3.NA) } : { isError: n, _values: t }; } else { let t2 = e29.getValue(); return e29.isBoolean() || e29.isString() && !Ja(t2) ? { isError: true, errorObejct: j3.create(D3.VALUE) } : { isError: true, errorObejct: j3.create(D3.NA) }; } } _checkErrorDates(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); return e29.iterator((e30) => { if (e30 != null && e30.isError()) return n = true, r = e30, false; if (e30 != null && e30.isBoolean()) return n = true, r = j3.create(D3.VALUE), false; let i = +e30.getValue(); if (Number.isNaN(i)) return n = true, r = j3.create(D3.VALUE), false; if (i < 0) return n = true, r = j3.create(D3.NUM), false; t.push(Math.floor(i)); }), n ? { isError: n, errorObejct: r } : t.length <= 1 ? { isError: true, errorObejct: j3.create(D3.NA) } : { isError: n, _dates: t }; } else { let t2 = e29.getValue(); return e29.isBoolean() || e29.isString() && !Ja(t2) ? { isError: true, errorObejct: j3.create(D3.VALUE) } : +t2 < 0 ? { isError: true, errorObejct: j3.create(D3.NUM) } : { isError: true, errorObejct: j3.create(D3.NA) }; } } _checkValues(e29) { let t = false, n = false; for (let r = 0; r < e29.length; r++) e29[r] > 0 && (t = true), e29[r] < 0 && (n = true); return { positive: t, negative: n }; } _iterF(e29, t, n) { return e29.reduce((e30, r, i) => e30 + r / (1 + n) ** ((t[i] - t[0]) / 365), 0); } }; var pp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { if (e29.isNull() || t.isNull() || n.isNull()) return j3.create(D3.NA); let { isError: r, errorObject: i, variants: a } = Y3(e29); if (r) return i; let [o] = a, s = +o.getValue(); if (Number.isNaN(s)) return j3.create(D3.VALUE); let { isError: c, errorObejct: l, _values: u, _dates: d } = this._checkErrors(t, n); if (c) return l; if (u = u, d = d, s < 0 || u.length !== d.length) return j3.create(D3.NUM); let f = 0, p = d[0]; for (let e30 = 0; e30 < d.length; e30++) { let t2 = d[e30], n2 = u[e30]; f += n2 / (1 + s) ** ((t2 - p) / 365); } return R4.create(f); } _checkErrors(e29, t) { if (e29.isError()) return { isError: true, errorObejct: e29 }; if (t.isError()) return { isError: true, errorObejct: t }; let { isError: n, errorObejct: r, _values: i } = this._checkErrorValues(e29); if (n) return { isError: n, errorObejct: r }; let { isError: a, errorObejct: o, _dates: s } = this._checkErrorDates(t); return a ? { isError: a, errorObejct: o } : { isError: false, _values: i, _dates: s }; } _checkErrorValues(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); return e29.iterator((e30) => { let i = e30; if (i.isError()) return n = true, r = i, false; if (i.isNull() || i.isBoolean() || i.isString() && i.getValue() === ``) return n = true, r = j3.create(D3.VALUE), false; let a = +i.getValue(); if (Number.isNaN(a)) return n = true, r = j3.create(D3.VALUE), false; t.push(a); }), n ? { isError: n, errorObejct: r } : { isError: n, _values: t }; } else { if (e29.isError()) return { isError: true, errorObejct: e29 }; if (e29.isNull() || e29.isBoolean()) return { isError: true, errorObejct: j3.create(D3.VALUE) }; let t2 = +e29.getValue(); return Number.isNaN(t2) ? { isError: true, errorObejct: j3.create(D3.VALUE) } : { isError: false, _values: [t2] }; } } _checkErrorDates(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); return e29.iterator((e30) => { let i = e30; if (i.isError()) return n = true, r = i, false; if (i.isNull() || i.isBoolean()) return n = true, r = j3.create(D3.VALUE), false; let a = +i.getValue(); if (Number.isNaN(a)) return n = true, r = j3.create(D3.VALUE), false; if (a < 0) return n = true, r = j3.create(D3.NUM), false; t.push(Math.floor(a)); }), n ? { isError: n, errorObejct: r } : { isError: n, _dates: t }; } else { if (e29.isError()) return { isError: true, errorObejct: e29 }; if (e29.isNull() || e29.isBoolean()) return { isError: true, errorObejct: j3.create(D3.VALUE) }; let t2 = +e29.getValue(); return Number.isNaN(t2) ? { isError: true, errorObejct: j3.create(D3.VALUE) } : +t2 < 0 ? { isError: true, errorObejct: j3.create(D3.NUM) } : { isError: false, _dates: [Math.floor(t2)] }; } } }; var mp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 6), E3(this, `maxParams`, 7); } calculate(e29, t, n, r, i, a, o) { let s = o == null ? R4.create(0) : o; s.isNull() && (s = R4.create(0)); let { isError: c, errorObject: l, variants: u } = bs2(e29, t, n, r, i, a, s); if (c) return l; let [d, f, p, m, h, g2, _2] = u, v = N3(d); if (typeof v != `number`) return v; let y = N3(f); if (typeof y != `number`) return y; let b = +p.getValue(), x2 = +m.getValue(), S4 = +h.getValue(), C3 = Math.floor(+g2.getValue()), ee = Math.floor(+_2.getValue()); if (Number.isNaN(b) || Number.isNaN(x2) || Number.isNaN(S4) || Number.isNaN(C3) || Number.isNaN(ee)) return j3.create(D3.VALUE); if (b < 0 || x2 <= 0 || S4 <= 0 || ![1, 2, 4].includes(C3) || ee < 0 || ee > 4 || v >= y || !uf(v, y, C3)) return j3.create(D3.NUM); let te = this._getResult(v, y, b, x2, S4, C3, ee); return R4.create(te); } _getResult(e29, t, n, r, i, a, o) { if (Zd(e29, t, a) > 1) { let s2 = n || 0.01, c2 = hf(e29, t, n, s2, i, a, o), l2 = c2 - r; for (let u2 = 0; u2 < 100 && Math.abs(l2) > 1e-7; u2++) c2 = hf(e29, t, n, 1.01 * s2, i, a, o), s2 += -l2 / (c2 - r - l2) * s2 * 0.01, l2 = hf(e29, t, n, s2, i, a, o) - r; return s2; } let s = Jd(e29, t, a, o), c = Yd(e29, t, a, o), { days: l } = pt2(e29, t, o), u = r / 100 + s / c * n / a; return (i / 100 + n / a - u) / u * a * c / l; } }; var hp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = i == null ? R4.create(0) : i; a.isNull() && (a = R4.create(0)); let { isError: o, errorObject: s, variants: c } = bs2(e29, t, n, r, a); if (o) return s; let [l, u, d, f, p] = c, m = N3(l); if (typeof m != `number`) return m; let h = N3(u); if (typeof h != `number`) return h; let g2 = +d.getValue(), _2 = +f.getValue(), v = Math.floor(+p.getValue()); if (Number.isNaN(g2) || Number.isNaN(_2) || Number.isNaN(v)) return j3.create(D3.VALUE); if (g2 <= 0 || _2 <= 0 || v < 0 || v > 4 || m >= h) return j3.create(D3.NUM); let { days: y, yearDays: b } = pt2(m, h, v), x2 = (_2 / g2 - 1) / (y / b); return R4.create(x2); } }; var gp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = a == null ? R4.create(0) : a; o.isNull() && (o = R4.create(0)); let { isError: s, errorObject: c, variants: l } = bs2(e29, t, n, r, i, o); if (s) return c; let [u, d, f, p, m, h] = l, g2 = N3(u); if (typeof g2 != `number`) return g2; let _2 = N3(d); if (typeof _2 != `number`) return _2; let v = N3(f); if (typeof v != `number`) return v; let y = +p.getValue(), b = +m.getValue(), x2 = Math.floor(+h.getValue()); if (Number.isNaN(y) || Number.isNaN(b) || Number.isNaN(x2)) return j3.create(D3.VALUE); let S4 = this._getDateCorrectOrder(_2, g2, v); if (y < 0 || b <= 0 || x2 < 0 || x2 > 4 || !S4) return j3.create(D3.NUM); let C3 = Ct2(g2, x2), { days: ee } = pt2(g2, _2, x2), { days: te } = pt2(v, _2, x2), { days: ne } = pt2(v, g2, x2), re = ((1 + te / C3 * y) / (b / 100 + ne / C3 * y) - 1) / (ee / C3); return R4.create(re); } _getDateCorrectOrder(e29, t, n) { return Math.floor(e29) > Math.floor(t) && Math.floor(t) > Math.floor(n); } }; var _p = [[_f, W3.ACCRINT], [vf, W3.ACCRINTM], [yf, W3.AMORLINC], [bf, W3.COUPDAYBS], [xf, W3.COUPDAYS], [Sf, W3.COUPDAYSNC], [Cf, W3.COUPNCD], [wf, W3.COUPNUM], [Tf, W3.COUPPCD], [Ef, W3.CUMIPMT], [Df, W3.CUMPRINC], [Of, W3.DB], [kf, W3.DDB], [Af, W3.DISC], [jf, W3.DOLLARDE], [Mf, W3.DOLLARFR], [Nf, W3.DURATION], [Pf, W3.EFFECT], [Ff, W3.FV], [If, W3.FVSCHEDULE], [Lf, W3.INTRATE], [Rf, W3.IPMT], [zf, W3.IRR], [Bf, W3.ISPMT], [Vf, W3.MDURATION], [Hf, W3.MIRR], [Uf, W3.NOMINAL], [Wf, W3.NPER], [Gf, W3.NPV], [Kf, W3.ODDFPRICE], [qf, W3.ODDFYIELD], [Jf, W3.ODDLPRICE], [Yf, W3.ODDLYIELD], [Xf, W3.PDURATION], [Zf, W3.PMT], [Qf, W3.PPMT], [$f, W3.PRICE], [ep, W3.PRICEDISC], [tp, W3.PRICEMAT], [np, W3.PV], [rp, W3.RATE], [ip, W3.RECEIVED], [ap, W3.RRI], [op, W3.SLN], [sp, W3.SYD], [cp, W3.TBILLEQ], [lp, W3.TBILLPRICE], [up, W3.TBILLYIELD], [dp, W3.VDB], [fp, W3.XIRR], [pp, W3.XNPV], [mp, W3.YIELD], [hp, W3.YIELDDISC], [gp, W3.YIELDMAT]]; var vp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `needsReferenceObject`, true), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isError()) return n; if (n.isReferenceObject() && (n = n.toArrayValueObject()), n.isArray()) { let e30 = n.getRowCount(), r = n.getColumnCount(); if (e30 === 1 && r === 1) { let e31 = n.get(0, 0); return this._handleSingleObject(e31, t); } return n.map((e31) => e31.isError() ? e31 : this._handleSingleObject(e31, t, true)); } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t, n = false) { let r = t; if (r.isError()) return r; if (!r.isReferenceObject()) return j3.create(D3.NA); let { columnData: i, defaultColumnWidth: a } = r.getCurrentActiveSheetData(); r = r.toArrayValueObject(); let o = r.getCurrentRow(), s = r.getCurrentColumn(); r = r.getFirstCell(); let c = `${e29.getValue()}`, l; switch (c.toLocaleLowerCase()) { case `address`: return z3.create(`$${D.chatAtABC(s)}$${o + 1}`); case `col`: return R4.create(s + 1); case `color`: return R4.create(0); case `contents`: return r; case `filename`: return j3.create(D3.VALUE); case `format`: return z3.create(`G`); case `parentheses`: return R4.create(0); case `prefix`: return z3.create(``); case `protect`: return R4.create(1); case `row`: return R4.create(o + 1); case `type`: return l = `v`, r.isNull() && (l = `b`), r.isString() && (l = `l`), z3.create(l); case `width`: return this._getWidthResult(i, a, s, n); default: return j3.create(D3.VALUE); } } _getWidthResult(e29, t, n, r) { var i; let a = (i = e29[n]) == null ? void 0 : i.w; if (!a && a !== 0 && (a = t), r) return R4.create(a); let o = [[a, a === t]]; return B3.createByArray(o); } }; var yp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `_errorTypeValueMap`, /* @__PURE__ */ new Map([[D3.NULL, 1], [D3.DIV_BY_ZERO, 2], [D3.VALUE, 3], [D3.REF, 4], [D3.NAME, 5], [D3.NUM, 6], [D3.NA, 7], [D3.CONNECT, 8], [D3.CALC, 14]])); } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29.getValue(), n = this._errorTypeValueMap.get(t); return n ? R4.create(n) : j3.create(D3.NA); } }; var bp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let { isError: a, errorObject: o, variants: s } = ys2(e29, t, n, r == null ? L3.create(true) : r, i == null ? L3.create(true) : i); if (a) return o; let [c, l, u, d, f] = s; if (d.isString() || f.isString()) return j3.create(D3.VALUE); if (l.compare(u, `>`).getValue() === true) return j3.create(D3.NUM); let p = +d.getValue(), m = +f.getValue(), h = p ? `>=` : `>`, g2 = m ? `<=` : `<`; return c.compare(l, h).getValue() === false || c.compare(u, g2).getValue() === false ? L3.create(false) : L3.create(true); } }; var xp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isNull() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isNull() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Sp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n = t.getColumnCount(); if (e30 > 1 || n > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } return t.isError() ? t : t.isNumber() && t.getPattern() !== `` ? L3.create(ot(t.getPattern())) : t.isString() && (it2(`${t.getValue()}`) || at(`${t.getValue()}`)) ? L3.create(true) : L3.create(false); } }; var Cp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (e30 > 1 || n2 > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } if (t.isError()) return t; if (t.isNull() || t.isBoolean() || t.isNumber()) return L3.create(false); let n = `${t.getValue()}`; if (n.length > 254) return L3.create(false); let r = D.topLevelDomainCombiningString(), i = RegExp(`^(?:[\\w+-]+\\.)*[\\w+-]+@[a-z0-9_-]+(?:\\.[a-z0-9_-]+)*\\.(?:${r})$`, `i`); return L3.create(i.test(n)); } }; var wp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.getValue() === D3.NA ? L3.create(false) : e29.isError() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.getValue() === D3.NA ? L3.create(false) : e30.isError() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Tp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isError() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Ep = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (e30 > 1 || n2 > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } if (t.isError()) return t; if (t.isBoolean()) return j3.create(D3.VALUE); let n = Math.trunc(+t.getValue()); if (Number.isNaN(n)) return j3.create(D3.VALUE); let r = n % 2 == 0; return L3.create(r); } }; var Dp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true); } calculate(e29) { var t; if (e29.isError()) return e29; if (!e29.isReferenceObject()) return j3.create(D3.NA); let n = (t = e29.getCurrentActiveSheetData()) == null ? void 0 : t.cellData.getMatrix(), { startRow: r, startColumn: i } = e29.getRangePosition(), a = e29.toArrayValueObject(), o = a.mapValue((e30, t2, a2) => { var o2; let s = n == null || (o2 = n[r + t2]) == null ? void 0 : o2[i + a2]; return s != null && s.f || s != null && s.si ? L3.create(true) : L3.create(false); }); return a.getRowCount() === 1 && a.getColumnCount() === 1 ? o.get(0, 0) : o; } }; var Op = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isBoolean() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isBoolean() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var kp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.getValue() === D3.NA ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.getValue() === D3.NA ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Ap = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return !e29.isArray() && !e29.isString() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isString() ? L3.create(false) : L3.create(true)) : L3.create(false); } }; var jp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isNumber() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isNumber() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Mp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (e30 > 1 || n2 > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } if (t.isError()) return t; if (t.isBoolean()) return j3.create(D3.VALUE); let n = Math.trunc(+t.getValue()); if (Number.isNaN(n)) return j3.create(D3.VALUE); let r = n % 2 != 0; return L3.create(r); } }; var Np = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true); } calculate(e29) { return e29.isReferenceObject() ? L3.create(true) : L3.create(false); } }; var Pp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isString() ? L3.create(true) : e29.isArray() ? e29.mapValue((e30) => e30.isString() ? L3.create(true) : L3.create(false)) : L3.create(false); } }; var Fp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (e30 > 1 || n2 > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } if (t.isError()) return t; if (t.isNull() || t.isBoolean() || t.isNumber()) return L3.create(false); let n = `${t.getValue()}`.replace(/^\s+|\s+$/g, ``); if (n.length > 1e3) return L3.create(false); let r = D.topLevelDomainCombiningString(), i = RegExp(`^(?:(?:https?|s?ftp|ftps|nfs|ssh)://+[a-z0-9_-]+(?:\\.[a-z0-9_-]+)*(?::[0-9]+)?(?:/(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@]|%[A-Fa-f0-9]{2})*)*/?(?:[?#]\\S*)?|[a-z0-9_-]+(?:\\.[a-z0-9_-]+)*\\.(?:${r})(?::[0-9]+)?(?:/(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@]|%[A-Fa-f0-9]{2})*)*/?(?:[?#]\\S*)?|mailto:(?:[\\w+-]+\\.)*[\\w+-]+@[a-z0-9_-]+(?:\\.[a-z0-9_-]+)*\\.(?:${r})|(?:news|aim):[%a-z0-9$_\\.+!*(),;/?#:@&~=-]+)$`, `i`); return L3.create(i.test(n)); } }; var Ip = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (e29.isArray() && (t = e29.get(0, 0)), t.isError()) return t; if (t.isString()) return R4.create(0); let n = +t.getValue(); return R4.create(n); } }; var Lp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { return j3.create(D3.NA); } }; var Rp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true), E3(this, `needsSheetsInfo`, true); } calculate(e29) { var t; if (e29 != null && e29.isError()) return e29; let { sheetOrder: n, sheetNameMap: r } = this.getSheetsInfo(); if (!e29) { let e30 = n.findIndex((e31) => e31 === this.subUnitId); return R4.create(e30 + 1); } if (e29.isReferenceObject()) { let t2 = e29.getForcedSheetId(), r2 = e29.getDefaultSheetId(), i2 = n.findIndex((e30) => t2 ? e30 === t2 : e30 === r2); return R4.create(i2 + 1); } if (e29.isArray()) return j3.create(D3.NA); let i = `${e29.getValue()}`.toLocaleLowerCase(), a = (t = Object.entries(r).find(([e30, t2]) => t2.toLocaleLowerCase() === i)) == null ? void 0 : t[0]; if (!a) return j3.create(D3.NA); let o = n.findIndex((e30) => e30 === a); return R4.create(o + 1); } }; var zp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0), E3(this, `needsSheetsInfo`, true); } calculate() { let { sheetOrder: e29 } = this.getSheetsInfo(); return R4.create(e29.length); } }; var Bp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `needsReferenceObject`, true), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isReferenceObject()) { let t = e29.getRowCount(), n = e29.getColumnCount(); if (t === 1 && n === 1) { let t2 = e29.getFirstCell(); if (t2.isError()) return R4.create(16); if (t2.isBoolean()) return R4.create(4); if (t2.isString()) return R4.create(2); if (t2.isNumber() || t2.isNull()) return R4.create(1); } else return R4.create(64); } else { if (e29.isArray()) return R4.create(64); if (e29.isError()) return R4.create(16); if (e29.isBoolean()) return R4.create(4); if (e29.isString()) return R4.create(2); if (e29.isNumber() || e29.isNull()) return R4.create(1); } return R4.create(128); } }; var Vp = [[vp, to2.CELL], [yp, to2.ERROR_TYPE], [bp, to2.ISBETWEEN], [xp, to2.ISBLANK], [Sp, to2.ISDATE], [Cp, to2.ISEMAIL], [wp, to2.ISERR], [Tp, to2.ISERROR], [Ep, to2.ISEVEN], [Dp, to2.ISFORMULA], [Op, to2.ISLOGICAL], [kp, to2.ISNA], [Ap, to2.ISNONTEXT], [jp, to2.ISNUMBER], [Mp, to2.ISODD], [Np, to2.ISREF], [Pp, to2.ISTEXT], [Fp, to2.ISURL], [Ip, to2.N], [Lp, to2.NA], [Rp, to2.SHEET], [zp, to2.SHEETS], [Bp, to2.TYPE]]; var Hp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = true, n = true, r = null; for (let i of e29) { if (i.isError()) return i; if (i.isArray()) { if (i.iterator((e30) => { if (e30 != null && e30.isError()) return r = e30, false; (e30 != null && e30.isBoolean() || e30 != null && e30.isNumber()) && (t = t && !!e30.getValue(), n = false); }), r) return r; } else (i.isBoolean() || i.isNumber()) && (t = t && !!i.getValue(), n = false); } return n ? j3.create(D3.VALUE) : L3.create(t); } }; var Up = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2), E3(this, `needsReferenceObject`, true); } calculate(e29, t) { let n = e29, r = null; if (e29.isReferenceObject() && (n = e29.toArrayValueObject(), r = e29), n.isError()) return n; if (t.isError()) return t; if (!(t.isValueObject() && t.isLambda() && t.getLambdaPrivacyVarKeys().length === 1)) return j3.create(D3.VALUE); let i = t, a = n.isArray() ? n.getRowCount() : 1, o = n.isArray() ? n.getColumnCount() : 1; n = V3(a, o, n); let s = [[]]; for (let e30 = 0; e30 < o; e30++) { let t2 = []; for (let r2 = 0; r2 < a; r2++) { let i2 = n.get(r2, e30); t2.push([i2]); } let o2 = B3.create({ calculateValueList: t2, rowCount: a, columnCount: 1, unitId: ``, sheetId: ``, row: 0, column: 0 }); if (r) { let { startRow: t3, startColumn: n2 } = r.getRangePosition(), i2 = { startRow: t3, startColumn: n2 + e30, endRow: t3 + a - 1, endColumn: n2 + e30 }; o2 = this.createReferenceObject(r, i2); } let c = i.execute(o2); if (c.isArray()) { let e31 = c.getRowCount(), t3 = c.getColumnCount(); if (e31 > 1 || t3 > 1) return j3.create(D3.CALC); c = c.get(0, 0); } c.isNull() && (c = R4.create(0)), s[0].push(c); } return o === 1 ? s[0][0] : B3.create({ calculateValueList: s, rowCount: 1, columnCount: o, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var Wp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2), E3(this, `needsReferenceObject`, true); } calculate(e29, t) { let n = e29, r = null; if (e29.isReferenceObject() && (n = e29.toArrayValueObject(), r = e29), n.isError()) return n; if (t.isError()) return t; if (!(t.isValueObject() && t.isLambda() && t.getLambdaPrivacyVarKeys().length === 1)) return j3.create(D3.VALUE); let i = t, a = n.isArray() ? n.getRowCount() : 1, o = n.isArray() ? n.getColumnCount() : 1; n = V3(a, o, n); let s = []; for (let e30 = 0; e30 < a; e30++) { let t2 = [[]]; for (let r2 = 0; r2 < o; r2++) { let i2 = n.get(e30, r2); t2[0].push(i2); } let a2 = B3.create({ calculateValueList: t2, rowCount: 1, columnCount: o, unitId: ``, sheetId: ``, row: 0, column: 0 }); if (r) { let { startRow: t3, startColumn: n2 } = r.getRangePosition(), i2 = { startRow: t3 + e30, startColumn: n2, endRow: t3 + e30, endColumn: n2 + o - 1 }; a2 = this.createReferenceObject(r, i2); } let c = i.execute(a2); if (c.isArray()) { let e31 = c.getRowCount(), t3 = c.getColumnCount(); if (e31 > 1 || t3 > 1) return j3.create(D3.CALC); c = c.get(0, 0); } c.isNull() && (c = R4.create(0)), s.push([c]); } return a === 1 ? s[0][0] : B3.create({ calculateValueList: s, rowCount: a, columnCount: 1, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var Gp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { return L3.create(false); } }; var Kp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n = L3.create(false)) { let r = e29; if (e29.isArray()) { let t2 = e29.getRowCount(), n2 = e29.getColumnCount(); t2 === 1 && n2 === 1 && (r = e29.get(0, 0)); } if (!r.isArray()) return this._handleSingleObject(r, t, n); let i = Math.max(r.isArray() ? r.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), a = Math.max(r.isArray() ? r.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), o = V3(i, a, r, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)); return o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return this._handleSingleObject(e30, r2, i2); }); } _handleSingleObject(e29, t, n) { return e29.isError() ? e29 : e29.getValue() ? t : n; } }; var qp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (!e29.isArray()) return e29.isError() ? t : e29; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29), a = V3(n, r, t); return i.iterator((e30, t2, n2) => { e30 != null && e30.isError() && i.set(t2, n2, a.get(t2, n2)); }), i; } }; var Jp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError() && e29.getErrorType() !== D3.NA) return e29; if (t.isError()) return t; if (!e29.isArray()) return e29.isError() && e29.getErrorType() === D3.NA ? t : e29; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29), a = V3(n, r, t); return i.iterator((e30, t2, n2) => { e30 != null && e30.isError() && e30.getErrorType() === D3.NA && i.set(t2, n2, a.get(t2, n2)); }), i; } }; var Yp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255); } calculate(...e29) { if (e29.length % 2 != 0) return j3.create(D3.NA); for (let t2 = 0; t2 < e29.length; t2++) if (e29[t2].isError()) return e29[t2]; let t = Math.max(...e29.map((e30) => e30.isArray() ? e30.getRowCount() : 1)), n = Math.max(...e29.map((e30) => e30.isArray() ? e30.getColumnCount() : 1)), r = e29.map((e30) => V3(t, n, e30, j3.create(D3.NA))), i = r[0].map((e30, t2, n2) => { for (let e31 = 0; e31 < r.length; e31 += 2) { let i2 = r[e31].get(t2, n2) || I3.create(), a = r[e31 + 1].get(t2, n2) || I3.create(); if (i2.isNull()) continue; if (i2.isError()) return i2; let o = i2.getValue(); if (i2.isString()) { if (`${o}`.toLocaleUpperCase() === `TRUE`) return a; if (`${o}`.toLocaleUpperCase() === `FALSE`) continue; return j3.create(D3.VALUE); } if (+o) return a.isNull() ? j3.create(D3.NA) : a; } return j3.create(D3.NA); }); return t === 1 && n === 1 ? i.get(0, 0) : i; } }; var Xp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { return j3.create(D3.VALUE); } }; var Zp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255); } calculate(...e29) { return j3.create(D3.VALUE); } }; var Qp = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(...e29) { let t = this.getIndexNumValue(e29[0]); if (typeof t != `number`) return t; let n = this.getIndexNumValue(e29[1]); if (typeof n != `number`) return n; if (!(e29[2].isValueObject() && e29[2].isLambda())) return j3.create(D3.VALUE); let r = e29[2], i = []; for (let e30 = 0; e30 < t; e30++) { i[e30] == null && (i[e30] = []); for (let t2 = 0; t2 < n; t2++) { let n2 = r.execute(R4.create(e30 + 1), R4.create(t2 + 1)); n2.isArray() && (n2 = n2.get(0, 0)), i[e30][t2] = n2; } } return new xa2(i); } isAsync() { return true; } }; var $p = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(...e29) { let t = [], n = null, r = 0, i = 0; for (let a2 = 0; a2 < e29.length; a2++) { let o = e29[a2], s = o; if (s.isReferenceObject() && (s = o.toArrayValueObject()), s.isError()) return s; if (a2 === e29.length - 1) { if (!(o.isValueObject() && o.isLambda())) return j3.create(D3.VALUE); n = o; } else t.push(o), r = Math.max(r, s.isArray() ? s.getRowCount() : 1), i = Math.max(i, s.isArray() ? s.getColumnCount() : 1); } let a = this._getResultArray(t, n, r, i); return a instanceof j3 ? a : r === 1 && i === 1 ? a[0][0] : B3.create({ calculateValueList: a, rowCount: r, columnCount: i, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } _getResultArray(e29, t, n, r) { let i = []; for (let a = 0; a < n; a++) { let n2 = []; for (let i2 = 0; i2 < r; i2++) { let r2 = [], o = false; for (let t2 = 0; t2 < e29.length; t2++) { let s2 = e29[t2], c = null; if (s2.isReferenceObject() && (c = s2, s2 = s2.toArrayValueObject()), !s2.isArray()) if (a === 0 && i2 === 0) { r2.push(c || s2); continue; } else { n2.push(j3.create(D3.NA)), o = true; break; } let l = s2.get(a, i2); if (!l) { n2.push(j3.create(D3.NA)), o = true; break; } if (c) { let { startRow: e30, startColumn: t3 } = c.getRangePosition(), n3 = { startRow: e30 + a, startColumn: t3 + i2, endRow: e30 + a, endColumn: t3 + i2 }; l = this.createReferenceObject(c, n3); } r2.push(l); } if (o || r2.length === 0) continue; let s = t.execute(...r2); if (s.isArray()) { let e30 = s.getRowCount(), t2 = s.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.CALC); s = s.get(0, 0); } s.isNull() && (s = R4.create(0)), n2.push(s); } i.push(n2); } return i; } }; var em = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; let t = +e29.getValue(); return Number.isNaN(t) ? j3.create(D3.VALUE) : L3.create(!t); } }; var tm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = false, n = true, r = null; for (let i of e29) { if (i.isError()) return i; if (i.isArray()) { if (i.iterator((e30) => { if (e30 != null && e30.isError()) return r = e30, false; (e30 != null && e30.isBoolean() || e30 != null && e30.isNumber()) && (t = t || !!e30.getValue(), n = false); }), r) return r; } else (i.isBoolean() || i.isNumber()) && (t = t || !!i.getValue(), n = false); } return n ? new j3(D3.VALUE) : new L3(t); } }; var nm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { let r, i; e29.isReferenceObject() ? (r = e29.toArrayValueObject(), i = e29) : (r = e29, i = null); let a, o; return t.isReferenceObject() ? (a = t.toArrayValueObject(), o = t) : (a = t, o = null), r.isArray() ? r.mapValue((e30) => this._handleSingleValueObject(e30, a, n, i, o)) : this._handleSingleValueObject(r, a, n, i, o); } _handleSingleValueObject(e29, t, n, r, i) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; if (!(n.isValueObject() && n.isLambda() && n.getLambdaPrivacyVarKeys().length === 2)) return j3.create(D3.VALUE); let a = n, o = t.isArray() ? t.getRowCount() : 1, s = t.isArray() ? t.getColumnCount() : 1, c = e29; r && (c = r); for (let e30 = 0; e30 < o; e30++) for (let n2 = 0; n2 < s; n2++) { let r2 = t.isArray() ? t.get(e30, n2) : t; if (r2.isError()) return r2; if (i) { let { startRow: t2, startColumn: a2 } = i.getRangePosition(), o3 = { startRow: t2 + e30, startColumn: a2 + n2, endRow: t2 + e30, endColumn: a2 + n2 }; r2 = this.createReferenceObject(i, o3); } let o2 = a.execute(c, r2); if (o2.isError()) return o2; o2.isNull() && (o2 = R4.create(0)), c = o2; } return c.isReferenceObject() ? c.toArrayValueObject() : c; } }; var rm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { let r = e29, i = null; e29.isReferenceObject() && (r = e29.toArrayValueObject(), i = e29), r = r; let a = t, o = null; if (t.isReferenceObject() && (a = t.toArrayValueObject(), o = t), a = a, r.isError()) return r; if (a.isError()) return a; if (n.isError()) return n; if (!(n.isValueObject() && n.isLambda() && n.getLambdaPrivacyVarKeys().length === 2)) return j3.create(D3.VALUE); if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.CALC); r = r.get(0, 0); } return this._getResult(r, a, n, i, o); } _getResult(e29, t, n, r, i) { let a = [], o = t.isArray() ? t.getRowCount() : 1, s = t.isArray() ? t.getColumnCount() : 1, c = e29; r && (c = r); for (let e30 = 0; e30 < o; e30++) { let r2 = []; for (let a2 = 0; a2 < s; a2++) { if (c.isError()) { r2.push(c); continue; } let o2 = t.isArray() ? t.get(e30, a2) : t; if (o2.isError()) { c = o2, r2.push(o2); continue; } if (i) { let { startRow: t2, startColumn: n2 } = i.getRangePosition(), r3 = { startRow: t2 + e30, startColumn: n2 + a2, endRow: t2 + e30, endColumn: n2 + a2 }; o2 = this.createReferenceObject(i, r3); } let s2 = n.execute(c, o2); if (s2.isArray()) { let e31 = s2.getRowCount(), t2 = s2.getColumnCount(); if (e31 > 1 || t2 > 1) return j3.create(D3.CALC); s2 = s2.get(0, 0); } s2.isNull() && (s2 = R4.create(0)), c = s2, r2.push(s2); } a.push(r2); } return o === 1 && s === 1 ? a[0][0] : B3.create({ calculateValueList: a, rowCount: o, columnCount: s, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var im = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3); } calculate(e29, ...t) { if (e29.isError()) return e29; let n = t.length % 2 != 0, r = n ? t[t.length - 1] : I3.create(); return !e29.isArray() && !t.some((e30) => e30.isArray()) ? this._handleNonArrayInputs(e29, t, r, n) : this._handleArrayInputs(e29, t, r, n); } _handleNonArrayInputs(e29, t, n, r) { for (let n2 = 0; n2 < t.length - (r ? 1 : 0); n2 += 2) { let r2 = t[n2], i = t[n2 + 1]; if (!r2.isNull()) { if (r2.isError()) return r2; if (`${e29.getValue()}`.toLocaleLowerCase() === `${r2.getValue()}`.toLocaleLowerCase()) return i.isNull() ? j3.create(D3.NA) : i; } } return n.isNull() ? j3.create(D3.NA) : n; } _handleArrayInputs(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, ...t.map((e30) => e30.isArray() ? e30.getRowCount() : 1), n.isArray() ? n.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, ...t.map((e30) => e30.isArray() ? e30.getColumnCount() : 1), n.isArray() ? n.getColumnCount() : 1), o = V3(i, a, e29), s = t.map((e30) => V3(i, a, e30, j3.create(D3.NA))), c = V3(i, a, n, j3.create(D3.NA)); return o.map((e30, t2, n2) => { for (let i3 = 0; i3 < s.length - (r ? 1 : 0); i3 += 2) { let r2 = s[i3].get(t2, n2) || I3.create(), a2 = s[i3 + 1].get(t2, n2) || I3.create(); if (!r2.isNull()) { if (r2.isError() || e30.isError()) return r2.isError() ? r2 : e30; if (`${e30.getValue()}`.toLocaleLowerCase() === `${r2.getValue()}`.toLocaleLowerCase()) return a2.isNull() ? j3.create(D3.NA) : a2; } } let i2 = c.get(t2, n2) || I3.create(); return i2.isNull() ? j3.create(D3.NA) : i2; }); } }; var am = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { return L3.create(true); } }; var om = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 0, n = true, r = null; for (let i of e29) { if (i.isError()) return i; if (i.isArray()) { if (i.iterator((e30) => { if (e30 != null && e30.isError()) return r = e30, false; (e30 != null && e30.isBoolean() || e30 != null && e30.isNumber()) && (e30.getValue() && t++, n = false); }), r) return r; } else (i.isBoolean() || i.isNumber()) && (i.getValue() && t++, n = false); } return n ? j3.create(D3.VALUE) : L3.create(t % 2 == 1); } }; var sm = [[Hp, no2.AND], [Up, no2.BYCOL], [Wp, no2.BYROW], [Gp, no2.FALSE], [Kp, no2.IF], [qp, no2.IFERROR], [Jp, no2.IFNA], [Yp, no2.IFS], [Xp, no2.LAMBDA], [Zp, no2.LET], [Qp, no2.MAKEARRAY], [$p, no2.MAP], [em, no2.NOT], [tm, no2.OR], [nm, no2.REDUCE], [rm, no2.SCAN], [im, no2.SWITCH], [am, no2.TRUE], [om, no2.XOR]]; var cm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { if (e29.isError()) return e29; if (t.isError()) return t; if (n != null && n.isError()) return n; if (r != null && r.isError()) return r; if (i != null && i.isError()) return i; let a = n == null ? R4.create(1) : n, o = r == null ? L3.create(true) : r, s = i == null ? z3.create(``) : i, c = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, e29, j3.create(D3.NA)), d = V3(c, l, t, j3.create(D3.NA)), f = V3(c, l, a, j3.create(D3.NA)), p = V3(c, l, o, j3.create(D3.NA)), m = V3(c, l, s, j3.create(D3.NA)); return u.map((e30, t2, n2) => { let r2 = d.get(t2, n2) || j3.create(D3.NA), i2 = f.get(t2, n2) || j3.create(D3.NA), a2 = p.get(t2, n2) || j3.create(D3.NA), o2 = m.get(t2, n2) || j3.create(D3.NA); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : o2.isError() ? o2 : this._calculateSingleCell(e30, r2, i2, a2, o2); }); } _calculateSingleCell(e29, t, n, r, i) { let a = Number.parseInt(`${Number(e29.getValue()) - 1}`), o = Number.parseInt(`${Number(t.getValue()) - 1}`), s = Number.parseInt(`${Number(n.getValue())}`); if (Number.isNaN(a) || Number.isNaN(o) || Number.isNaN(s) || s < 1 || s > 4) return j3.create(D3.VALUE); let c = lm(s), l = this.getZeroOrOneByOneDefault(r), u = ir2(`${i.getValue()}`), d = { startRow: a, startColumn: o, endRow: a, endColumn: o, startAbsoluteRefType: c, endAbsoluteRefType: c }, f = r && !l ? gs2(d) : Gn2(d); return z3.create(u === `` ? f : `${u}!${f}`); } }; function lm(t) { switch (t) { case 1: return V.ALL; case 2: return V.ROW; case 3: return V.COLUMN; case 4: return V.NONE; default: return V.ALL; } } var um = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true); } calculate(e29) { return e29.isReferenceObject() ? R4.create(1) : j3.create(D3.VALUE); } }; var dm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(e29, ...t) { let n = e29; if (n.isError()) return n; if (n.isReferenceObject() && (n = n.toArrayValueObject()), !n.isArray()) { let e30 = n.convertToNumberObjectValue(); return e30.isError() ? e30 : t[Math.trunc(+e30.getValue()) - 1] || j3.create(D3.VALUE); } let r = n.isArray() ? n.getRowCount() : 1, i = n.isArray() ? n.getColumnCount() : 1; t.forEach((e30, t2) => { if (e30.isArray()) { let t3 = e30; r = Math.max(r, t3.getRowCount()), i = Math.max(i, t3.getColumnCount()); } else r = Math.max(r, 1), i = Math.max(i, 1); }); let a = V3(r, i, n, j3.create(D3.NA)), o = t.map((e30) => { let t2 = e30; return t2.isReferenceObject() && (t2 = t2.toArrayValueObject()), V3(r, i, t2, j3.create(D3.NA)); }); return a.map((e30, t2, n2) => { if (e30.isError()) return e30; let r2 = e30.convertToNumberObjectValue(); if (r2.isError()) return r2; let i2 = o[Math.trunc(+r2.getValue()) - 1], a2 = (i2 == null ? void 0 : i2.get(t2, n2)) || j3.create(D3.VALUE); return a2 != null && a2.isNull() && (a2 = R4.create(0)), a2; }); } }; var fm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255); } calculate(e29, ...t) { if (e29.isError()) return e29; let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = []; for (let a = 0; a < t.length; a++) { let o = t[a]; if (o.isArray()) { let e30 = o.getRowCount(), t2 = o.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); o = o.get(0, 0); } if (o.isString() && (o = o.convertToNumberObjectValue()), o.isError()) return o; let s = Math.trunc(+o.getValue()); if (s === 0 || Math.abs(s) > r) return j3.create(D3.VALUE); let c = e29; r > 1 && (c = s < 0 ? e29.slice(void 0, [s + r, s + 1 + r]) : e29.slice(void 0, [s - 1, s])); for (let t2 = 0; t2 < n; t2++) i[t2] || (i[t2] = []), e29.isArray() ? i[t2].push(c.get(t2, 0)) : i[t2].push(e29); } return B3.create({ calculateValueList: i, rowCount: i.length, columnCount: i[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var pm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255); } calculate(e29, ...t) { if (e29.isError()) return e29; let n = e29.isArray() ? e29.getRowCount() : 1, r = []; for (let i = 0; i < t.length; i++) { let a = t[i]; if (a.isArray()) { let e30 = a.getRowCount(), t2 = a.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); a = a.get(0, 0); } if (a.isString() && (a = a.convertToNumberObjectValue()), a.isError()) return a; let o = Math.trunc(+a.getValue()); if (o === 0 || Math.abs(o) > n) return j3.create(D3.VALUE); let s = e29; n > 1 && (s = o < 0 ? e29.slice([o + n, o + 1 + n]) : e29.slice([o - 1, o])), e29.isArray() ? r.push(s.getArrayValue()[0]) : r.push([e29]); } return B3.create({ calculateValueList: r, rowCount: r.length, columnCount: r[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var mm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 1); } calculate(e29) { if (e29 == null) return R4.create(this.column + 1); if (e29.isError()) return e29; if (!e29.isArray()) return j3.create(D3.NA); let t = e29.getCurrentColumn(), n = e29.getColumnCount(), r = []; for (let e30 = 0; e30 < n; e30++) r.push(R4.create(t + e30 + 1)); let i = { calculateValueList: [r], rowCount: 1, columnCount: n, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }; return B3.create(i); } }; var hm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isError()) return e29; if (e29.isString() || e29.isNumber() || e29.isBoolean()) return R4.create(1); if (!e29.isArray()) return j3.create(D3.NA); let t = e29.getColumnCount(); return R4.create(t); } }; var gm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(0) : n, i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = Math.max(t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), s = Math.max(t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), c = V3(o, s, t, j3.create(D3.NA)), l = V3(o, s, r, j3.create(D3.NA)); if (o > 1 || s > 1) return c.mapValue((t2, n2, r2) => { let o2 = l.get(n2, r2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let { isError: s2, errorObject: c2 } = this._checkRowsColumns(t2, o2, i, a); return s2 ? c2 : e29.isArray() ? j3.create(D3.VALUE) : e29; }); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let u = t.isArray() ? t.get(0, 0) : t, d = r.isArray() ? r.get(0, 0) : r, { isError: f, errorObject: p, rowsValue: m, columnsValue: h } = this._checkRowsColumns(u, d, i, a); return f ? p : this._getResultArray(e29, m, h, i, a); } _checkRowsColumns(e29, t, n, r) { if (e29.isError()) return { isError: true, errorObject: e29 }; if (t.isError()) return { isError: true, errorObject: t }; let i = Math.trunc(+e29.getValue()), a = Math.trunc(+t.getValue()); return Number.isNaN(i) || Number.isNaN(a) ? { isError: true, errorObject: j3.create(D3.VALUE) } : Math.abs(i) >= n || Math.abs(a) >= r ? { isError: true, errorObject: j3.create(D3.CALC) } : { isError: false, rowsValue: i, columnsValue: a }; } _getResultArray(e29, t, n, r, i) { let a = t >= 0 ? [t, r] : [0, r + t], o = n >= 0 ? [n, i] : [0, i + n], s; return s = t === 0 && n === 0 ? e29 : t === 0 ? e29.slice(void 0, o) : n === 0 ? e29.slice(a, void 0) : e29.slice(a, o), s = s.map((e30) => e30.isNull() ? R4.create(0) : e30), r - t === 1 && i - n === 1 ? s.get(0, 0) : s; } }; var _m = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = t, s = n == null ? R4.create(a) : n, c = r == null ? j3.create(D3.NA) : r; t.isNull() && (o = R4.create(i)), s.isNull() && (s = R4.create(a)); let l = Math.max(o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), u = Math.max(o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), d = V3(l, u, o, j3.create(D3.NA)), f = V3(l, u, s, j3.create(D3.NA)); if (l > 1 || u > 1) return d.mapValue((t2, n2, r2) => { let o2 = f.get(n2, r2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let { isError: s2, errorObject: l2 } = this._checkRowsColumnsPadWith(t2, o2, c, i, a); return s2 ? l2 : e29.isArray() ? e29.get(0, 0) : e29; }); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let p = o.isArray() ? o.get(0, 0) : o, m = s.isArray() ? s.get(0, 0) : s, { isError: h, errorObject: g2, rowsValue: _2, columnsValue: v, padWithObject: y } = this._checkRowsColumnsPadWith(p, m, c, i, a); return h ? g2 : this._getResultArray(e29, _2, v, y, i, a); } _checkRowsColumnsPadWith(e29, t, n, r, i) { if (e29.isError()) return { isError: true, errorObject: e29 }; if (t.isError()) return { isError: true, errorObject: t }; let a = Math.trunc(+e29.getValue()), o = Math.trunc(+t.getValue()); if (Number.isNaN(a) || Number.isNaN(o) || Math.abs(a) < r || Math.abs(o) < i) return { isError: true, errorObject: j3.create(D3.VALUE) }; let s = n; if (n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return { isError: true, errorObject: j3.create(D3.VALUE) }; s = n.get(0, 0); } return { isError: false, rowsValue: a, columnsValue: o, padWithObject: s }; } _getResultArray(e29, t, n, r, i, a) { let o = []; o = e29.isArray() ? e29.map((e30) => e30.isNull() ? R4.create(0) : e30).getArrayValue() : [[e29]]; let s = Math.max(0, t - i), c = Math.max(0, n - a); for (let e30 = 0; e30 < s; e30++) o.push(Array(a).fill(r)); for (let e30 = 0; e30 < c; e30++) o.forEach((e31) => { e31.push(r); }); return t === 1 && n === 1 ? o[0][0] : B3.create({ calculateValueList: o, rowCount: o.length, columnCount: o[0].length, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var vm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? j3.create(D3.CALC) : n; if (e29.isError()) return e29; if (t.isError()) return t; let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = t.isArray() ? t.getRowCount() : 1, s = t.isArray() ? t.getColumnCount() : 1; return o > 1 && s > 1 || o === 1 && s !== a || s === 1 && o !== i ? j3.create(D3.VALUE) : i === 1 && a === 1 ? this._getResultArrayByR1C1(e29, t, r) : o === 1 ? s === a ? this._getResultArrayByR1(i, a, e29, t, r) : j3.create(D3.VALUE) : s === 1 ? o === i ? this._getResultArrayByC1(i, a, e29, t, r) : j3.create(D3.VALUE) : r; } _getResultArrayByR1C1(e29, t, n) { let r = e29, i = t; return r.isArray() && (r = r.get(0, 0)), i.isArray() && (i = i.get(0, 0)), i.isString() && (i = i.convertToNumberObjectValue()), i.isError() ? i : +i.getValue() ? r : n; } _getResultArrayByR1(e29, t, n, r, i) { let a = []; for (let i2 = 0; i2 < t; i2++) { let t2 = r.get(0, i2); if (t2.isString() && (t2 = t2.convertToNumberObjectValue()), t2.isError()) return t2; if (+t2.getValue()) for (let t3 = 0; t3 < e29; t3++) { a[t3] || (a[t3] = []); let e30 = n.get(t3, i2); a[t3].push(e30); } } return a.length === 0 ? i : B3.create({ calculateValueList: a, rowCount: a.length, columnCount: a[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } _getResultArrayByC1(e29, t, n, r, i) { let a = []; for (let i2 = 0; i2 < e29; i2++) { let e30 = r.get(i2, 0); if (e30.isString() && (e30 = e30.convertToNumberObjectValue()), e30.isError()) return e30; if (!+e30.getValue()) continue; let o = []; for (let e31 = 0; e31 < t; e31++) { let t2 = n.get(i2, e31); o.push(t2); } a.push(o); } return a.length === 0 ? i : B3.create({ calculateValueList: a, rowCount: a.length, columnCount: a[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var ym = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true), E3(this, `needsFormulaDataModel`, true); } calculate(e29) { var t; if (!e29.isReferenceObject()) return j3.create(D3.NA); let n = e29.getUnitId(), r = e29.getSheetId(), i = (t = e29.getUnitData()[n]) == null || (t = t[r]) == null ? void 0 : t.cellData, { startRow: a, startColumn: o } = e29.getRangePosition(), s = e29.toArrayValueObject().mapValue((e30, t2, s2) => { let c = i.getValue(a + t2, o + s2); if (c != null && c.f || c != null && c.si) { let e31 = this._formulaDataModel.getFormulaStringByCell(a + t2, o + s2, r, n); return z3.create(e31); } return j3.create(D3.NA); }); return s.getRowCount() === 1 && s.getColumnCount() === 1 ? s.get(0, 0) : s; } }; var bm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { if (e29.isError()) return e29; if (t.isError()) return j3.create(D3.REF); if (!t.isArray() || n.isError() || r != null && r.isError()) return j3.create(D3.NA); let i = this.getZeroOrOneByOneDefault(r); if (i == null) return j3.create(D3.VALUE); let a = this.getIndexNumValue(n); if (a instanceof j3) return a; let o = t.slice([0, 1]), s = t.slice([a - 1, a]); return o == null || s == null ? j3.create(D3.REF) : e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30, o, s, i)) : this._handleSingleObject(e29, o, s, i); } _handleSingleObject(e29, t, n, r) { return r === 0 ? this.equalSearch(e29, t, n) : this.binarySearch(e29, t, n); } }; var xm2 = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = Math.max(...e29.map((e30) => e30.isArray() ? e30.getRowCount() : 1)), n = []; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; let a = i.isArray() ? i.getRowCount() : 1, o = i.isArray() ? i.getColumnCount() : 1; for (let e30 = 0; e30 < t; e30++) { n[e30] || (n[e30] = []); for (let t2 = 0; t2 < o; t2++) { let r2 = i; i.isArray() && (r2 = i.get(e30, t2)), e30 > a - 1 || !r2 ? n[e30].push(j3.create(D3.NA)) : n[e30].push(r2); } } } return B3.create({ calculateValueList: n, rowCount: n.length, columnCount: n[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var Sm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (e29.isArray() && (n = e29.get(0, 0)), n.isError()) return n; let r = t; if (t != null && t.isArray() && (r = t.get(0, 0)), r != null && r.isError()) return r; let i = `${n.getValue()}`; n.isNull() && (i = ``); let a = i; return r && (a = `${r.getValue()}`, r.isNull() ? a = `0` : r.isBoolean() && (a = a.toLocaleUpperCase())), z3.create(a, { isHyperlink: true, hyperlinkUrl: i }); } }; var Cm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, t != null && t.isArray() ? t.getRowCount() : 1, n != null && n.isArray() ? n.getRowCount() : 1, r != null && r.isArray() ? r.getRowCount() : 1, i != null && i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t != null && t.isArray() ? t.getColumnCount() : 1, n != null && n.isArray() ? n.getColumnCount() : 1, r != null && r.isArray() ? r.getColumnCount() : 1, i != null && i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = t ? V3(a, o, t, j3.create(D3.NA)) : void 0, l = n ? V3(a, o, n, j3.create(D3.NA)) : void 0, u = r ? V3(a, o, r, j3.create(D3.NA)) : void 0, d = i ? V3(a, o, i, j3.create(D3.NA)) : void 0, f = s.mapValue((e30, t2, n2) => { if (e30.isError()) return e30; let r2 = c ? c.get(t2, n2) : void 0; if (r2 != null && r2.isError()) return r2; let i2 = l ? l.get(t2, n2) : void 0; if (i2 != null && i2.isError()) return i2; let a2 = u ? u.get(t2, n2) : void 0; if (a2 != null && a2.isError()) return a2; let o2 = d ? d.get(t2, n2) : void 0; return o2 != null && o2.isError() ? o2 : this._handleSingleObject(e30, r2, i2, a2, o2); }); return a === 1 && o === 1 ? f.get(0, 0) : f; } _handleSingleObject(e29, t, n, r, i) { if (!e29.isString()) return j3.create(D3.VALUE); let a = e29.getValue(), o = ``; t && (t.isBoolean() ? o = t.getValue() ? `TRUE` : `FALSE` : t.isNull() || (o = `${t.getValue()}`)); let s = n == null ? R4.create(0) : n; if (s.isString() && (s = s.convertToNumberObjectValue()), s.isError()) return s; let c = Math.abs(Math.trunc(+s.getValue())); if (c < 0 || c > 3 || [0, 1, 2].includes(c) && (r || i)) return j3.create(D3.VALUE); let l = r == null ? R4.create(0) : r; if (l.isString() && (l = l.convertToNumberObjectValue()), l.isError()) return l; let u = Math.ceil(+l.getValue()), d = i == null ? R4.create(0) : i; if (d.isString() && (d = d.convertToNumberObjectValue()), d.isError()) return d; let f = Math.ceil(+d.getValue()); return c === 3 && u < 1 && f < 1 ? j3.create(D3.VALUE) : z3.create(``, { isImage: true, imageInfo: { source: a, altText: o, sizing: c, height: u, width: f } }); } }; var wm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 4), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n, r) { if (e29.isError()) return e29; let i = this._getReferenceCounts(e29), a = t; t.isReferenceObject() && (a = t.toArrayValueObject()); let o = n; o != null && o.isReferenceObject() && (o = n.toArrayValueObject()); let s = r == null ? R4.create(1) : r; s.isReferenceObject() && (s = r.toArrayValueObject()); let c = Math.max(a.isArray() ? a.getRowCount() : 1, o != null && o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(a.isArray() ? a.getColumnCount() : 1, o != null && o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1); if (c === 1 && l === 1) return this._handleSingleObject(e29, a.isArray() ? a.get(0, 0) : a, o ? o.isArray() ? o.get(0, 0) : o : void 0, s.isArray() ? s.get(0, 0) : s, i); { let t2 = V3(c, l, a, j3.create(D3.NA)), n2 = o ? V3(c, l, o, j3.create(D3.NA)) : [], r2 = V3(c, l, s, j3.create(D3.NA)); return t2.mapValue((t3, a2, s2) => { let c2 = o ? n2.get(a2, s2) : void 0, l2 = r2.get(a2, s2), u = this._handleSingleObject(e29, t3, c2, l2, i); return u.isReferenceObject() ? u.getCellByPosition() : u; }); } } _handleSingleObject(e29, t, n, r, i) { let a, o, s; if (n) { let { isError: e30, errorObject: i2, variants: c2 } = X3(t, n, r); if (e30) return i2; a = c2[0], o = c2[1], s = c2[2]; } else { let { isError: e30, errorObject: n2, variants: i2 } = X3(t, r); if (e30) return n2; a = i2[0], s = i2[1]; } let c = Math.floor(+s.getValue()); if (c < 0) return j3.create(D3.VALUE); if (c > i.length) return j3.create(D3.REF); let l = i[c - 1], u = 0, d = 0; if (l.rowCount === 1 && !n ? d = Math.floor(+a.getValue()) : (u = Math.floor(+a.getValue()), n && (d = Math.floor(+o.getValue()))), u < 0 || d < 0) return j3.create(D3.VALUE); if (u > l.rowCount || d > l.columnCount) return j3.create(D3.REF); let f = e29; return c > 1 && (f = e29.getCubeValues()[c - 1]), f.isReferenceObject() ? this._calculateReferenceObject(f, u, d) : this._calculateArrayObject(f, u, d); } _getReferenceCounts(e29) { let t = [{ rowCount: 1, columnCount: 1 }]; return e29.isReferenceObject() ? t = [{ rowCount: e29.getRowCount(), columnCount: e29.getColumnCount() }] : e29.isCube() ? t = e29.getCubeValues().map((e30) => ({ rowCount: e30.getRowCount(), columnCount: e30.getColumnCount() })) : e29.isArray() && (t = [{ rowCount: e29.getRowCount(), columnCount: e29.getColumnCount() }]), t; } _calculateReferenceObject(e29, t, n) { let { startRow: r, endRow: i, startColumn: a, endColumn: o } = e29.getRangePosition(), s = 0, c = 0, l = 0, u = 0; if (t === 0 ? (s = r, c = i) : s = c = r + t - 1, n === 0 ? (l = a, u = o) : l = u = a + n - 1, s > i || l > o) return j3.create(D3.REF); let d = { startRow: s, startColumn: l, endRow: c, endColumn: u }; return this.createReferenceObject(e29, d); } _calculateArrayObject(e29, t, n) { return !e29.isArray() || t === 0 && n === 0 ? e29 : t === 0 ? e29.slice(void 0, [n - 1, n]) : n === 0 ? e29.slice([t - 1, t], void 0) : e29.get(t - 1, n - 1); } }; var Tm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } isAddress() { return true; } calculate(e29, t) { if (e29.isError()) return e29; if (t != null && t.isError()) return t; let n = this.getZeroOrOneByOneDefault(t); n == null && (n = 1); let r = e29; if (e29.isArray()) { let t2 = e29.getRowCount(), n2 = e29.getColumnCount(); if (t2 > 1 || n2 > 1) return e29.map(() => j3.create(D3.VALUE)); r = e29.getFirstCell(); } return this._handleSingleObject(r, n); } _handleSingleObject(e29, t) { let n = `${e29.getValue()}`; if (n.trim() === ``) return j3.create(D3.REF); let r = this._convertToDefinedName(n); if (t === 0) { let { range: e30, sheetName: t2, unitId: n2 } = hs2(r), i2 = new Sa2(e30); return i2.setForcedUnitIdDirect(n2), i2.setForcedSheetName(t2), this._setDefault(i2); } if (gn2(r)) return this._setDefault(new Ca(r)); if (vn2(r)) return this._setDefault(new Ta(r)); if (yn2(r)) return this._setDefault(new wa(r)); let { range: i, sheetName: a, unitId: o } = Jr2(r); if (Number.isNaN(i.startRow) || i.endRow + 1 > uo || Number.isNaN(i.startColumn) || i.endColumn + 1 > fo) return j3.create(D3.REF); let s = new Sa2(i); return s.setForcedUnitIdDirect(o), s.setForcedSheetName(a), this._setDefault(s); } _setDefault(e29) { return this.unitId == null || this.subUnitId == null ? j3.create(D3.REF) : (e29.setDefaultUnitId(this.unitId), e29.setDefaultSheetId(this.subUnitId), e29); } _convertToDefinedName(e29) { let t = this.getDefinedName(e29); if (t == null) return e29; let n = t.formulaOrRefString; return n == null ? e29 : n.startsWith(O4.EQUALS) ? n.slice(1) : n; } }; var Em = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsExpandParams`, true); } calculate(e29, t, n) { return e29.isError() ? e29 : t.isError() ? j3.create(D3.REF) : t.isArray() ? n != null && n.isError() ? n : t.getColumnCount() === 1 || t.getRowCount() === 1 ? n != null && !n.isArray() ? j3.create(D3.REF) : this._handleVector(e29, t, n) : this._handleArray(e29, t) : j3.create(D3.VALUE); } _handleVector(e29, t, n) { let r = n; if (r == null) r = t; else if (r.getRowCount() !== t.getRowCount() || r.getColumnCount() !== t.getColumnCount()) return j3.create(D3.REF); return e29.isArray() ? e29.map((e30) => this.binarySearch(e30, t, r)) : this.binarySearch(e29, t, r); } _handleArray(e29, t) { let n = t.getRowCount(), r = t.getColumnCount(), i, a; return r > n ? (i = t.slice([0, 1]), a = t.slice([n - 1, n])) : (i = t.slice(void 0, [0, 1]), a = t.slice(void 0, [r - 1, r])), i == null || a == null ? j3.create(D3.VALUE) : e29.isArray() ? e29.map((e30) => this.binarySearch(e30, i, a)) : this.binarySearch(e29, i, a); } }; var Dm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { if (e29.isError()) return e29; if (t.isError()) return j3.create(D3.REF); if (!t.isArray()) return j3.create(D3.VALUE); let r = t.getRowCount(), i = t.getColumnCount(); if (r !== 1 && i !== 1 || n != null && n.isError()) return j3.create(D3.NA); let a = this.getMatchTypeValue(n); return a == null ? j3.create(D3.VALUE) : e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30, t, a)) : this._handleSingleObject(e29, t, a); } _handleSingleObject(e29, t, n) { let r = e29.isNull() ? R4.create(0) : e29, i = this._getSearchModeValue(n), a = t.orderSearch(r, i); if (a == null) return j3.create(D3.NA); if (a instanceof j3) return a; let o = t.getRowCount() === 1 ? a.column + 1 : a.row + 1; return R4.create(o); } _getSearchModeValue(e29) { switch (e29) { case 1: return yi2.MIN; case 0: return yi2.NORMAL; case -1: return yi2.MAX; } } }; var Om = class extends ya2 { constructor(e29, t = []) { super(e29), E3(this, `_areas`, []), this._areas = t; } dispose() { this._areas.forEach((e29) => { e29.forEach((e30) => e30.dispose()); }), this._areas = [], super.dispose(); } getAreas() { return this._areas; } setAreas(e29) { this._areas = e29; } addArea(e29) { Array.isArray(e29) ? this._areas.push(e29) : this._areas.push([e29]); } _flatAreas() { return this._areas.flat(); } isMultiArea() { return true; } isRange() { return false; } isCell() { return false; } isRow() { return false; } isColumn() { return false; } getRowCount() { let e29 = 0; for (let t of this._flatAreas()) t.isError() || (e29 += t.getRowCount()); return e29; } getColumnCount() { let e29 = 0; for (let t of this._flatAreas()) t.isError() || (e29 += t.getColumnCount()); return e29; } isExceedRange() { return this._flatAreas().some((e29) => e29.isError() ? false : e29.isExceedRange()); } setRefOffset(e29 = 0, t = 0) { super.setRefOffset(e29, t), this._flatAreas().forEach((n) => { n.isError() || n.setRefOffset(e29, t); }); } _getReferenceArea() { return this._flatAreas().find((e29) => !e29.isError()); } getUnitId() { var e29, t; return (e29 = (t = this._getReferenceArea()) == null ? void 0 : t.getUnitId()) == null ? super.getUnitId() : e29; } getSheetId() { var e29, t; return (e29 = (t = this._getReferenceArea()) == null ? void 0 : t.getSheetId()) == null ? super.getSheetId() : e29; } getActiveSheetRowCount() { var e29, t; return (e29 = (t = this._getReferenceArea()) == null ? void 0 : t.getActiveSheetRowCount()) == null ? 0 : e29; } getActiveSheetColumnCount() { var e29, t; return (e29 = (t = this._getReferenceArea()) == null ? void 0 : t.getActiveSheetColumnCount()) == null ? 0 : e29; } iterator(e29) { for (let t of this._areas) { let n = false; for (let r of t) { if (r.isError()) continue; let t2 = false; if (r.iterator((r2, i, a) => { let o = e29(r2, i, a); return o === false ? (t2 = true, n = true, false) : o; }), t2) break; } if (n) return; } } getFirstCell() { let e29 = this._getReferenceArea(); return e29 ? e29.getFirstCell() : super.getFirstCell(); } toArrayValueObject() { var e29, t; let n = this._areas.length; if (n === 0) return Ea2([], 0, 0); let r = (e29 = (t = this._areas[0]) == null ? void 0 : t.length) == null ? 0 : e29, i = []; for (let e30 = 0; e30 < n; e30++) { let t2 = this._areas[e30]; if (t2) { i[e30] = i[e30] || []; for (let n2 = 0; n2 < r; n2++) { let r2 = t2[n2]; if (!r2) continue; if (r2.isError()) { i[e30][n2] = r2; continue; } let a = null; r2.iterator((e31) => (a = e31 == null ? null : e31, false)), a != null && (i[e30][n2] = a), i[e30][n2] = I3.create(); } } } return Ea2(i, n, r); } getRangePosition() { let e29 = this._flatAreas(); if (!e29.length) return super.getRangePosition(); let t = 1 / 0, n = 1 / 0, r = -1 / 0, i = -1 / 0; for (let a of e29) { if (a.isError()) continue; let { startRow: e30, startColumn: o, endRow: s, endColumn: c } = a.getRangePosition(); !Number.isFinite(e30) || !Number.isFinite(o) || !Number.isFinite(s) || !Number.isFinite(c) || (e30 < t && (t = e30), o < n && (n = o), s > r && (r = s), c > i && (i = i < c ? c : i)); } return !Number.isFinite(t) || !Number.isFinite(n) || !Number.isFinite(r) || !Number.isFinite(i) ? super.getRangePosition() : { startRow: t, startColumn: n, endRow: r, endColumn: i }; } toUnitRange() { return { range: this.getRangePosition(), sheetId: this.getSheetId(), unitId: this.getUnitId() }; } getRangeData() { let e29 = this._flatAreas(); if (!e29.length) return super.getRangeData(); let t = 1 / 0, n = 1 / 0, r = -1 / 0, i = -1 / 0; for (let a of e29) { if (a.isError()) continue; let { startRow: e30, startColumn: o, endRow: s, endColumn: c } = a.getRangeData(); !Number.isFinite(e30) || !Number.isFinite(o) || !Number.isFinite(s) || !Number.isFinite(c) || (e30 < t && (t = e30), o < n && (n = o), s > r && (r = s), c > i && (i = c)); } return !Number.isFinite(t) || !Number.isFinite(n) || !Number.isFinite(r) || !Number.isFinite(i) ? super.getRangeData() : { startRow: t, startColumn: n, endRow: r, endColumn: i }; } }; var km = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 5), E3(this, `needsReferenceObject`, true); } isAddress() { return true; } calculate(e29, t, n, r, i) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; if (r != null && r.isError()) return r; if (i != null && i.isError()) return i; if (!e29.isReferenceObject()) return j3.create(D3.VALUE); let a = e29.getRowCount(), o = e29.getColumnCount(), s = t; s.isReferenceObject() && (s = s.toArrayValueObject()); let c = n; c.isReferenceObject() && (c = c.toArrayValueObject()); let l = r == null ? R4.create(a) : r; l.isReferenceObject() && (l = l.toArrayValueObject()), l.isNull() && (l = R4.create(a)); let u = i == null ? R4.create(o) : i; u.isReferenceObject() && (u = u.toArrayValueObject()), u.isNull() && (u = R4.create(o)); let d = Math.max(s.isArray() ? s.getRowCount() : 1, c.isArray() ? c.getRowCount() : 1, l.isArray() ? l.getRowCount() : 1, u.isArray() ? u.getRowCount() : 1), f = Math.max(s.isArray() ? s.getColumnCount() : 1, c.isArray() ? c.getColumnCount() : 1, l.isArray() ? l.getColumnCount() : 1, u.isArray() ? u.getColumnCount() : 1); if (s = s, c = c, l = l, u = u, d === 1 && f === 1) return s = s.isArray() ? s.get(0, 0) : s, c = c.isArray() ? c.get(0, 0) : c, l = l.isArray() ? l.get(0, 0) : l, u = u.isArray() ? u.get(0, 0) : u, this._handleSingleObject(e29, s, c, l, u); let p = V3(d, f, s, j3.create(D3.NA)), m = V3(d, f, c, j3.create(D3.NA)), h = V3(d, f, l, j3.create(D3.NA)), g2 = V3(d, f, u, j3.create(D3.NA)), _2 = []; return p.iterator((t2, n2, r2) => { let i2 = m.get(n2, r2), a2 = h.get(n2, r2), o2 = g2.get(n2, r2); if (_2[n2] = _2[n2] || [], t2 == null) { _2[n2][r2] = j3.create(D3.NA); return; } if (t2.isError()) { _2[n2][r2] = t2; return; } if (i2.isError()) { _2[n2][r2] = i2; return; } if (a2.isError()) { _2[n2][r2] = a2; return; } if (o2.isError()) { _2[n2][r2] = o2; return; } let s2 = this._handleSingleObject(e29, t2, i2, a2, o2); _2[n2][r2] = s2; }), new Om(``, _2); } _handleSingleObject(e29, t, n, r, i) { let { startRow: a, startColumn: o } = e29.getRangePosition(), s = t; if (s.isString() && (s = s.convertToNumberObjectValue()), s.isError()) return s; let c = n; if (c.isString() && (c = c.convertToNumberObjectValue()), c.isError()) return c; let l = +s.getValue(), u = +c.getValue(); if (typeof l != `number` || typeof u != `number`) return j3.create(D3.VALUE); let d = a + l, f = o + u; if (d < 0 || f < 0 || d >= uo || f >= fo) return j3.create(D3.REF); let p = this.getIndexNumValue(r), m = this.getIndexNumValue(i); if (typeof p != `number` || typeof m != `number`) return j3.create(D3.VALUE); if (p === 0 || m === 0) return j3.create(D3.REF); let h = p > 0 ? d + p - 1 : d + p + 1, g2 = m > 0 ? f + m - 1 : f + m + 1; if (h < 0 || g2 < 0 || h >= uo || g2 >= fo) return j3.create(D3.REF); let _2 = { startRow: d < h ? d : h, startColumn: f < g2 ? f : g2, endRow: d > h ? d : h, endColumn: f > g2 ? f : g2 }; return this.createReferenceObject(e29, _2); } }; var Am = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 1); } calculate(e29) { if (e29 == null) return R4.create(this.row + 1); if (e29.isError()) return e29; if (!e29.isArray()) return j3.create(D3.NA); let t = e29.getCurrentRow(), n = e29.getRowCount(), r = []; for (let e30 = 0; e30 < n; e30++) r.push([R4.create(t + e30 + 1)]); let i = { calculateValueList: r, rowCount: n, columnCount: 1, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }; return B3.create(i); } }; var jm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isError()) return e29; if (e29.isString() || e29.isNumber() || e29.isBoolean()) return R4.create(1); if (!e29.isArray()) return j3.create(D3.NA); let t = e29.getRowCount(); return R4.create(t); } }; var Mm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = t == null ? R4.create(1) : t, a = n == null ? R4.create(1) : n, o = r == null ? L3.create(false) : r; if (i.isNull() && (i = R4.create(1)), o.isArray()) { let t2 = o.getRowCount(), n2 = o.getColumnCount(); if (t2 === 1 && n2 === 1) { let t3 = o.get(0, 0); return this._handleSingleObject(e29, i, a, t3); } return o.map((t3) => { let n3 = this._handleSingleObject(e29, i, a, t3); return n3.isArray() ? n3.get(0, 0) : n3; }); } return this._handleSingleObject(e29, i, a, o); } _handleSingleObject(e29, t, n, r) { if (e29.isError()) return e29; let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = this._checkArrayError(t); if (o.isError()) return o; let s = Math.floor(+o.getValue()); if (s < 1) return j3.create(D3.VALUE); let c = this._checkArrayError(n); if (c.isError()) return c; let l = Math.floor(+c.getValue()); if (l !== -1 && l !== 1) return j3.create(D3.VALUE); let u = r; if (u.isString() && (u = u.convertToNumberObjectValue()), u.isError()) return u; if (!e29.isArray() || i === 1 && a === 1) return e29; let d = +u.getValue(); return this._getResult(e29, s, l, d, i, a); } _checkArrayError(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n = t.getColumnCount(); if (e30 > 1 || n > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } return t.isString() && (t = t.convertToNumberObjectValue()), t; } _getResult(e29, t, n, r, i, a) { if (r) { if (t > i) return j3.create(D3.VALUE); let r2 = e29.transpose().getArrayValue(); return r2.sort(this._sort(t - 1, n)), B3.create({ calculateValueList: r2, rowCount: r2.length, columnCount: r2[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }).transpose(); } else { if (t > a) return j3.create(D3.VALUE); let r2 = e29.getArrayValue(); return r2.sort(this._sort(t - 1, n)), B3.create({ calculateValueList: r2, rowCount: r2.length, columnCount: r2[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } } _sort(e29, t = 1) { let n = bi2(); return t === 1 ? this._sortAsc(e29, n) : this._sortDesc(e29, n); } _sortAsc(e29, t) { return (n, r) => { let i = n[e29], a = r[e29]; if (i == null || i.isNull()) return 1; if (a == null || a.isNull()) return -1; if (i.isError() && a.isError()) return 0; if (i.isError()) return 1; if (a.isError()) return -1; let o = i.getValue(), s = a.getValue(); return i.isBoolean() && o === true ? 1 : a.isBoolean() && s === true ? -1 : i.isBoolean() && o === false ? 1 : a.isBoolean() && s === false ? -1 : i.isNumber() && a.isNumber() ? o - +s : t(o, s); }; } _sortDesc(e29, t) { return (n, r) => { let i = n[e29], a = r[e29]; if (i == null || i.isNull()) return 1; if (a == null || a.isNull()) return -1; if (i.isError() && a.isError()) return 0; if (i.isError()) return -1; if (a.isError()) return 1; let o = i.getValue(), s = a.getValue(); return i.isBoolean() && o === true ? -1 : a.isBoolean() && s === true ? 1 : i.isBoolean() && o === false ? -1 : a.isBoolean() && s === false ? 1 : i.isNumber() && a.isNumber() ? s - +o : t(s, o); }; } }; var Nm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255); } calculate(e29, ...t) { t.length === 1 && t.push(R4.create(1)); let n = this._getVariantsError(e29, ...t), { maxRowLength: r, maxColumnLength: i } = Na(t); if (n.isError()) { let e30 = V3(r, i, n); return r === 1 && i === 1 ? e30.get(0, 0) : e30; } let a = t.map((e30, t2) => t2 % 2 == 0 ? e30 : V3(r, i, e30, j3.create(D3.NA))), o = this._getResultArray(e29, a, r, i); return r === 1 && i === 1 ? o[0][0] : B3.create({ calculateValueList: o, rowCount: o.length, columnCount: o[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } _getVariantsError(e29, ...t) { if (e29.isError()) return e29; for (let e30 = 0; e30 < t.length; e30++) { let n2 = t[e30]; if (n2.isError()) return n2; } if (t.length < 2 || t.length % 2 != 0) return j3.create(D3.VALUE); let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t[0].isArray() ? t[0].getRowCount() : 1, a = t[0].isArray() ? t[0].getColumnCount() : 1; if ((i > 1 || a > 1) && (i > 1 && a > 1 || i === 1 && a !== r || a === 1 && i !== n)) return j3.create(D3.VALUE); for (let e30 = 2; e30 < t.length; e30++) { if (e30 % 2 == 1) continue; let n2 = t[e30].isArray() ? t[e30].getRowCount() : 1, r2 = t[e30].isArray() ? t[e30].getColumnCount() : 1; if (n2 !== i || r2 !== a) return j3.create(D3.VALUE); } return L3.create(true); } _getResultArray(e29, t, n, r) { let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = t[0].isArray() ? t[0].getRowCount() : 1, s = t[0].isArray() ? t[0].getColumnCount() : 1, c = []; for (let l = 0; l < n; l++) { c[l] = []; for (let u = 0; u < r; u++) { let { isError: d, errorObject: f, byArrays: p, sortOrders: m } = this._getByArraysAndSortOrders(t, l, u, s); if (d) { c[l].push(f); continue; } if (!e29.isArray() || i === 1 && a === 1) { c[l].push(e29); continue; } let h = e29.getArrayValue(); o === 1 && s === 1 || (o === 1 ? (h = h.concat(p), h = this._transposeArray(h), h.sort(this._sort(i, m)), h = this._transposeArray(h).slice(0, i)) : s === 1 && (h = this._transposeArray(h), h = h.concat(p), h = this._transposeArray(h), h.sort(this._sort(a, m)), h = h.map((e30) => e30.slice(0, a)))); let g2 = B3.create({ calculateValueList: h, rowCount: h.length, columnCount: h[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); if (n > 1 || r > 1) { c[l].push(g2.get(0, 0)); continue; } c[l].push(g2); } } return c; } _getByArraysAndSortOrders(e29, t, n, r) { let i = [], a = [], o = false, s = null; for (let c = 0; c < e29.length; c++) { if (c % 2 == 1) continue; let l = e29[c], u = e29[c + 1].get(t, n); if (u.isString() && (u = u.convertToNumberObjectValue()), u.isError()) { o = true, s = u; break; } let d = Math.floor(+u.getValue()); if (d !== -1 && d !== 1) { o = true, s = j3.create(D3.VALUE); break; } if (a.push(d), l.isArray()) { let e30 = l.getArrayValue(); r === 1 && (e30 = this._transposeArray(e30)), i.push(e30[0]); } else i.push([l]); } return { isError: o, errorObject: s, byArrays: i, sortOrders: a }; } _transposeArray(e29) { let t = e29.length, n = e29[0].length, r = []; for (let i = 0; i < n; i++) { r[i] = []; for (let n2 = 0; n2 < t; n2++) r[i][n2] = e29[n2][i]; } return r; } _sort(e29, t) { let n = bi2(); return (r, i) => { let a = r[e29], o = i[e29], s = this._compare(a, o, t[0], n); if (s === 0 && t.length > 1) { for (let c = 1; c < t.length; c++) if (a = r[e29 + c], o = i[e29 + c], s = this._compare(a, o, t[c], n), s !== 0) return s; } return s; }; } _compare(e29, t, n, r) { return n === 1 ? this._asc(e29, t, r) : this._desc(e29, t, r); } _asc(e29, t, n) { if (e29 == null || e29.isNull()) return 1; if (t == null || t.isNull()) return -1; if (e29.isError() && t.isError()) return 0; if (e29.isError()) return 1; if (t.isError()) return -1; let r = e29.getValue(), i = t.getValue(); return e29.isBoolean() && r === true ? 1 : t.isBoolean() && i === true ? -1 : e29.isBoolean() && r === false ? 1 : t.isBoolean() && i === false ? -1 : e29.isNumber() && t.isNumber() ? r - +i : n(r, i); } _desc(e29, t, n) { if (e29 == null || e29.isNull()) return 1; if (t == null || t.isNull()) return -1; if (e29.isError() && t.isError()) return 0; if (e29.isError()) return -1; if (t.isError()) return 1; let r = e29.getValue(), i = t.getValue(); return e29.isBoolean() && r === true ? -1 : t.isBoolean() && i === true ? 1 : e29.isBoolean() && r === false ? -1 : t.isBoolean() && i === false ? 1 : e29.isNumber() && t.isNumber() ? i - +r : n(i, r); } }; var Pm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1, a = t, o = n == null ? R4.create(i) : n; t.isNull() && (a = R4.create(r)), o.isNull() && (o = R4.create(i)); let s = Math.max(a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1), c = Math.max(a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1), l = V3(s, c, a, j3.create(D3.NA)), u = V3(s, c, o, j3.create(D3.NA)); if (s > 1 || c > 1) return l.mapValue((t2, n2, a2) => { let o2 = u.get(n2, a2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let { isError: s2, errorObject: c2 } = this._checkRowsColumns(t2, o2, r, i); return s2 ? c2 : e29.isArray() ? j3.create(D3.VALUE) : e29; }); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let d = a.isArray() ? a.get(0, 0) : a, f = o.isArray() ? o.get(0, 0) : o, { isError: p, errorObject: m, rowsValue: h, columnsValue: g2 } = this._checkRowsColumns(d, f, r, i); return p ? m : this._getResultArray(e29, h, g2, r, i); } _checkRowsColumns(e29, t, n, r) { if (e29.isError()) return { isError: true, errorObject: e29 }; if (t.isError()) return { isError: true, errorObject: t }; let i = Math.trunc(+e29.getValue()), a = Math.trunc(+t.getValue()); return Number.isNaN(i) || Number.isNaN(a) ? { isError: true, errorObject: j3.create(D3.VALUE) } : Math.abs(i) === 0 || Math.abs(a) === 0 ? { isError: true, errorObject: j3.create(D3.CALC) } : (i > n && (i = n), a > r && (a = r), { isError: false, rowsValue: i, columnsValue: a }); } _getResultArray(e29, t, n, r, i) { if (!e29.isArray()) return e29; let a = t >= 0 ? [0, t] : [r + t, r], o = n >= 0 ? [0, n] : [i + n, i], s; return s = t === r && n === i ? e29 : t === r ? e29.slice(void 0, o) : n === i ? e29.slice(a, void 0) : e29.slice(a, o), s = s.map((e30) => e30.isNull() ? R4.create(0) : e30), t === 1 && n === 1 ? s.get(0, 0) : s; } }; var Fm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? R4.create(0) : t, i = n == null ? L3.create(false) : n, a = Math.max(r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, r, j3.create(D3.NA)), c = V3(a, o, i, j3.create(D3.NA)), l = s.mapValue((t2, n2, r2) => { let i2 = c.get(n2, r2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); if (t2.isError()) return t2; if (i2.isError()) return i2; let s2 = Math.trunc(+t2.getValue()), l2 = +i2.getValue(); if (Number.isNaN(s2) || s2 < 0 || s2 > 3 || Number.isNaN(l2)) return j3.create(D3.VALUE); if (!e29.isArray()) return e29; let u = []; return u = l2 ? this._getArrayValueByColumn(e29, s2) : this._getArrayValueByRow(e29, s2), u.length === 0 ? j3.create(D3.CALC) : a > 1 || o > 1 || u.length === 1 ? u[0] : B3.create({ calculateValueList: u.map((e30) => [e30]), rowCount: u.length, columnCount: 1, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); }); return a === 1 && o === 1 ? l.get(0, 0) : l; } _getArrayValueByColumn(e29, t) { let n = e29, r = n.getRowCount(), i = n.getColumnCount(), a = []; for (let e30 = 0; e30 < i; e30++) for (let i2 = 0; i2 < r; i2++) { let r2 = n.get(i2, e30); this._isIgnore(r2, t) || a.push(r2.isNull() ? R4.create(0) : r2); } return a; } _getArrayValueByRow(e29, t) { let n = e29, r = n.getRowCount(), i = n.getColumnCount(), a = []; for (let e30 = 0; e30 < r; e30++) for (let r2 = 0; r2 < i; r2++) { let i2 = n.get(e30, r2); this._isIgnore(i2, t) || a.push(i2.isNull() ? R4.create(0) : i2); } return a; } _isIgnore(e29, t) { switch (t) { case 0: return false; case 1: return e29.isNull(); case 2: return e29.isError(); case 3: return e29.isNull() || e29.isError(); default: return false; } } }; var Im = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? R4.create(0) : t, i = n == null ? L3.create(false) : n, a = Math.max(r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, r, j3.create(D3.NA)), c = V3(a, o, i, j3.create(D3.NA)), l = s.mapValue((t2, n2, r2) => { let i2 = c.get(n2, r2); if (e29.isError()) return e29; if (t2.isError()) return t2; if (i2.isError()) return i2; let s2 = Math.trunc(+t2.getValue()), l2 = +i2.getValue(); if (Number.isNaN(s2) || s2 < 0 || s2 > 3 || Number.isNaN(l2) || e29.isNull()) return j3.create(D3.VALUE); if (!e29.isArray()) return e29; let u = []; return u = l2 ? this._getArrayValueByColumn(e29, s2) : this._getArrayValueByRow(e29, s2), u.length === 0 ? j3.create(D3.CALC) : a > 1 || o > 1 || u.length === 1 ? u[0] : B3.create({ calculateValueList: [u], rowCount: 1, columnCount: u.length, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); }); return a === 1 && o === 1 ? l.get(0, 0) : l; } _getArrayValueByColumn(e29, t) { let n = e29, r = n.getRowCount(), i = n.getColumnCount(), a = []; for (let e30 = 0; e30 < i; e30++) for (let i2 = 0; i2 < r; i2++) { let r2 = n.get(i2, e30); this._isIgnore(r2, t) || a.push(r2.isNull() ? R4.create(0) : r2); } return a; } _getArrayValueByRow(e29, t) { let n = e29, r = n.getRowCount(), i = n.getColumnCount(), a = []; for (let e30 = 0; e30 < r; e30++) for (let r2 = 0; r2 < i; r2++) { let i2 = n.get(e30, r2); this._isIgnore(i2, t) || a.push(i2.isNull() ? R4.create(0) : i2); } return a; } _isIgnore(e29, t) { switch (t) { case 0: return false; case 1: return e29.isNull(); case 2: return e29.isError(); case 3: return e29.isNull() || e29.isError(); default: return false; } } }; var Lm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isError()) return e29; if (e29.isArray()) { let t = e29.getRowCount(), n = e29.getColumnCount(); return t === 1 && n === 1 ? e29.get(0, 0) : e29.transpose(); } return e29; } }; var Rm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? L3.create(false) : t, i = n == null ? L3.create(false) : n, a = e29.isArray() ? e29.getRowCount() : 1, o = e29.isArray() ? e29.getColumnCount() : 1, s = Math.max(r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), c = Math.max(r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), l = V3(s, c, r, j3.create(D3.NA)), u = V3(s, c, i, j3.create(D3.NA)), d = l.map((t2, n2, r2) => { let i2 = t2, l2 = u.get(n2, r2); if (e29.isError()) return e29; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (l2.isString() && (l2 = l2.convertToNumberObjectValue()), l2.isError()) return l2; let d2 = +i2.getValue(), f = +l2.getValue(), p; return p = !d2 && a === 1 || d2 && o === 1 ? e29 : this._getResult(e29, d2, f), (s > 1 || c > 1) && p != null && p.isArray() ? p.get(0, 0) : p; }); return s === 1 && c === 1 ? d.get(0, 0) : d; } _getResult(e29, t, n) { let r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1, a = e29.getArrayValue(), o = r, s = i; t && (a = this._transposeArray(a), o = i, s = r); let c = this._getRepeatRows(a, o, s); if (c.length > 0) { let e30 = []; c.forEach((t2) => { t2.forEach((t3, r2) => { (r2 !== 0 || n) && e30.push(t3); }); }), a = a.filter((t2, n2) => !e30.includes(n2)); } return a.length === 0 ? j3.create(D3.CALC) : (t && (a = this._transposeArray(a)), B3.create({ calculateValueList: a, rowCount: a.length, columnCount: a[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column })); } _getRepeatRows(e29, t, n) { let r = []; for (let i = 0; i < n; i++) if (i === 0) { let n2 = Array(t).fill(null).map((t2, n3) => ({ r: n3, valueObject: e29[n3][i] })); r = this._getRepeatRowsByObjects(n2); } else { if (r.length === 0) break; let t2 = []; r.forEach((n2) => { let r2 = n2.map((t3) => ({ r: t3, valueObject: e29[t3][i] })), a = this._getRepeatRowsByObjects(r2); t2 = t2.concat(a); }), r = t2; } return r; } _getRepeatRowsByObjects(e29) { let t = /* @__PURE__ */ new Map(); return e29.forEach((e30) => { let n = e30.r, r = e30.valueObject, i = r.getValue(); if (r.isNull() ? i = null : r.isString() && Ja(i) && (i = +i), !t.has(i)) t.set(i, [n]); else { let e31 = t.get(i); e31.push(n), t.set(i, e31); } }), Array.from(t.values()).filter((e30) => e30.length > 1); } _transposeArray(e29) { let t = e29.length, n = e29[0].length, r = []; for (let i = 0; i < n; i++) { r[i] = []; for (let n2 = 0; n2 < t; n2++) r[i][n2] = e29[n2][i]; } return r; } }; var zm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { if (e29.isError()) return e29; if (t.isError()) return t; if (!t.isArray()) return j3.create(D3.VALUE); if (n.isError()) return n; if (r != null && r.isError()) return r; let i = r == null ? L3.create(true) : r; return ja(e29) && ja(i) && n.isArray() ? this._handleArrayColIndexNum(e29, t, n, i) : this._handleNonArrayColIndexNum(e29, t, n, i); } _handleArrayColIndexNum(e29, t, n, r) { let i = e29.isArray() ? e29.getFirstCell() : e29, a = this.getZeroOrOneByOneDefault(r); if (a == null) return j3.create(D3.VALUE); let o, s = []; return n.iterator((e30, n2, r2) => { if (e30 == null) return o = j3.create(D3.VALUE), false; let c = this._handleTableArray(i, t, e30, a); if (c.isError()) return o = c, false; s[n2] === void 0 && (s[n2] = []), s[n2][r2] = c; }), o || Ea2(s, s.length, s[0].length, this.unitId || ``, this.subUnitId || ``); } _handleNonArrayColIndexNum(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29), s = V3(i, a, r); return o.map((e30, r2, i2) => { if (e30.isError()) return e30; let a2 = s.get(r2, i2); if (a2 == null) return j3.create(D3.VALUE); if (a2.isError()) return a2; let o2 = this.getZeroOrOneByOneDefault(a2); return o2 == null ? j3.create(D3.VALUE) : this._handleTableArray(e30, t, n, o2); }); } _handleTableArray(e29, t, n, r) { let i = this.getIndexNumValue(n); if (i instanceof j3) return i; if (i = Math.floor(i), i < 1) return j3.create(D3.VALUE); let a = t.slice(void 0, [0, 1]); if (a == null) return j3.create(D3.VALUE); let o = t.slice(void 0, [i - 1, i]); return o == null ? j3.create(D3.REF) : this._handleSingleObject(e29, a, o, r); } _handleSingleObject(e29, t, n, r) { return r === 0 ? this.equalSearch(e29, t, n) : this.binarySearch(e29, t, n); } }; var Bm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = Math.max(...e29.map((e30) => e30.isArray() ? e30.getColumnCount() : 1)), n = []; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; let a = i.isArray() ? i.getRowCount() : 1, o = i.isArray() ? i.getColumnCount() : 1; for (let e30 = 0; e30 < a; e30++) { let r2 = []; for (let n2 = 0; n2 < t; n2++) { let t2 = i; i.isArray() && (t2 = i.get(e30, n2)), n2 > o - 1 || !t2 ? r2.push(j3.create(D3.NA)) : r2.push(t2); } n.push(r2); } } return B3.create({ calculateValueList: n, rowCount: n.length, columnCount: n[0].length || 0, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); } }; var Vm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? j3.create(D3.NA) : n; r.isNull() && (r = j3.create(D3.NA)); let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = Math.max(t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), s = Math.max(t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), c = V3(o, s, t, j3.create(D3.NA)), l = V3(o, s, r, j3.create(D3.NA)), u = c.mapValue((t2, n2, r2) => { let c2 = l.get(n2, r2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); if (t2.isError()) return t2; let u2 = Math.trunc(+t2.getValue()); if (i > 1 && a > 1 || Number.isNaN(u2)) return j3.create(D3.VALUE); if (u2 < 1) return j3.create(D3.NUM); let d = e29.isArray() ? e29.getArrayValue().flat() : [e29], f = this._getWrapArray(d, u2, c2); return o > 1 || s > 1 || f.length === 1 && f[0].length === 1 ? f[0][0] : B3.create({ calculateValueList: f, rowCount: f.length, columnCount: f[0].length, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); }); return o === 1 && s === 1 ? u.get(0, 0) : u; } _getWrapArray(e29, t, n) { let r = Math.ceil(e29.length / t), i = r > 1 ? t : e29.length, a = []; for (let t2 = 0; t2 < r; t2++) for (let r2 = 0; r2 < i; r2++) { a[r2] || (a[r2] = []); let o = t2 * i + r2; o < e29.length ? a[r2].push(e29[o].isNull() ? R4.create(0) : e29[o]) : a[r2].push(n); } return a; } }; var Hm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? j3.create(D3.NA) : n; r.isNull() && (r = j3.create(D3.NA)); let i = e29.isArray() ? e29.getRowCount() : 1, a = e29.isArray() ? e29.getColumnCount() : 1, o = Math.max(t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), s = Math.max(t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), c = V3(o, s, t, j3.create(D3.NA)), l = V3(o, s, r, j3.create(D3.NA)), u = c.mapValue((t2, n2, r2) => { let c2 = l.get(n2, r2); if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); if (t2.isError()) return t2; let u2 = Math.trunc(+t2.getValue()); if (i > 1 && a > 1 || Number.isNaN(u2)) return j3.create(D3.VALUE); if (u2 < 1) return j3.create(D3.NUM); let d = e29.isArray() ? e29.getArrayValue().flat() : [e29], f = this._getWrapArray(d, u2, c2); return o > 1 || s > 1 || f.length === 1 && f[0].length === 1 ? f[0][0] : B3.create({ calculateValueList: f, rowCount: f.length, columnCount: f[0].length, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }); }); return o === 1 && s === 1 ? u.get(0, 0) : u; } _getWrapArray(e29, t, n) { let r = Math.ceil(e29.length / t), i = r > 1 ? t : e29.length, a = []; for (let t2 = 0; t2 < r; t2++) { let r2 = []; for (let a2 = 0; a2 < i; a2++) { let o = t2 * i + a2; o < e29.length ? r2.push(e29[o].isNull() ? R4.create(0) : e29[o]) : r2.push(n); } a.push(r2); } return a; } }; var Um = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = r == null ? j3.create(D3.NA) : r; r != null && r.isNull() && (o = j3.create(D3.NA)); let s = i == null ? R4.create(0) : i; i != null && i.isNull() && (s = R4.create(0)); let c = a == null ? R4.create(1) : a; if (a != null && a.isNull() && (c = R4.create(1)), e29.isError()) return e29; let l = t.isArray() ? t.getRowCount() : 1, u = t.isArray() ? t.getColumnCount() : 1, d = n.isArray() ? n.getRowCount() : 1, f = n.isArray() ? n.getColumnCount() : 1; if (l !== 1 && u !== 1 || l === 1 && u > 1 && u !== f || u === 1 && l > 1 && l !== d) return j3.create(D3.VALUE); if (s.isError()) return s; if (c.isError()) return c; let p = this.getIndexNumValue(s); if (p instanceof j3) return p; let m = this.getIndexNumValue(c); return m instanceof j3 ? m : this._getResult(e29, Fa2(t), Fa2(n), o, p, m, l, u, d, f); } _getResult(e29, t, n, r, i, a, o, s, c, l) { let u = e29.isArray() ? e29.getRowCount() : 1, d = e29.isArray() ? e29.getColumnCount() : 1; if (u > 1 || d > 1) { let s2; return s2 = o === 1 ? n.slice([0, 1]) : n.slice(void 0, [0, 1]), s2 == null ? j3.create(D3.NA) : e29.map((e30) => { let n2 = this._checkErrorCombination(i, a); if (n2) return n2; let o2 = this._handleSingleObject(e30, t, s2, i, a); return o2.isError() ? r : o2; }); } let f = e29.isArray() ? e29.get(0, 0) : e29; if (s === l && o === c) { let e30 = this._checkErrorCombination(i, a); if (e30) return e30; let o2 = this._handleSingleObject(f, t, n, i, a); return o2.isError() ? r : o2; } let p = 0; s === l && (p = 1); let m = this._handleExpandObject(f, t, n, i, a, p); return m == null ? j3.create(D3.NA) : m; } _handleExpandObject(e29, t, n, r, i, a = 0) { if ((i === 2 || i === -2) && r !== 2) { let o = Di(i), s = Ei(r); return this.binarySearchExpand(e29, t, n, a, o, s); } return r === 2 ? this.fuzzySearchExpand(e29, t, n, i !== -1, a) : r === -1 || r === 1 ? this.orderSearchExpand(e29, t, n, r === 1 ? yi2.MAX : yi2.MIN, i === -1, a) : this.equalSearchExpand(e29, t, n, i !== -1, a); } _handleSingleObject(e29, t, n, r, i) { if ((i === 2 || i === -2) && r !== 2) { let a = Di(i), o = Ei(r); return this.binarySearch(e29, t, n, a, o); } return r === 2 ? this.fuzzySearch(e29, t, n, i !== -1) : r === -1 || r === 1 ? this.orderSearch(e29, t, n, r === 1 ? yi2.MAX : yi2.MIN, i === -1) : this.equalSearch(e29, t, n, i !== -1); } _checkErrorCombination(e29, t) { return e29 === 2 && (t === -2 || t === 2) ? j3.create(D3.VALUE) : null; } }; var Wm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = R4.create(0); n && !n.isNull() && (i = n); let a = R4.create(1); r && !r.isNull() && (a = r); let o = Math.max(e29.isArray() ? e29.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1), s = Math.max(e29.isArray() ? e29.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1), c = V3(o, s, e29, j3.create(D3.NA)), l = V3(o, s, i, j3.create(D3.NA)), u = V3(o, s, a, j3.create(D3.NA)), d = c.mapValue((e30, n2, r2) => { if (e30.isError()) return e30; let i2 = l.get(n2, r2), a2 = u.get(n2, r2); return i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, t, i2, a2); }); return o === 1 && s === 1 ? d.get(0, 0) : d; } _handleSingleObject(e29, t, n, r) { let i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1; if (i !== 1 && a !== 1) return j3.create(D3.VALUE); let o = n; if ((n.isString() || n.isBoolean() || n.isNull()) && (o = n.convertToNumberObjectValue()), o.isError()) return o; let s = r; if ((r.isString() || r.isBoolean() || r.isNull()) && (s = r.convertToNumberObjectValue()), s.isError()) return s; let c = o.getValue(), l = s.getValue(); return ![-1, 0, 1, 2].includes(c) || ![-1, 1, 2].includes(l) ? j3.create(D3.VALUE) : this._getResult(e29, t, c, l); } _getResult(e29, t, n, r) { let i = Fa2(t), a; if ((r === 2 || r === -2) && n !== 2) { let t2 = Di(r), o = Ei(n); a = i.binarySearch(e29, t2, o); } else if (n === 2) { let t2 = i.compare(e29, k3.EQUALS), n2; if (n2 = r === -1 ? t2.getLastTruePosition() : t2.getFirstTruePosition(), n2 == null) return j3.create(D3.NA); a = i.getRowCount() === 1 ? n2.column : n2.row; } else if (n === -1 || n === 1) { let t2 = i.orderSearch(e29, n === 1 ? yi2.MAX : yi2.MIN, r === -1); if (t2 == null) return j3.create(D3.NA); if (t2 instanceof j3) return t2; a = i.getRowCount() === 1 ? t2.column : t2.row; } else { let t2 = i.isEqual(e29), n2; if (n2 = r === -1 ? t2.getLastTruePosition() : t2.getFirstTruePosition(), n2 == null) return j3.create(D3.NA); a = i.getRowCount() === 1 ? n2.column : n2.row; } return a == null ? j3.create(D3.NA) : R4.create(a + 1); } }; var Gm = [[cm, G3.ADDRESS], [um, G3.AREAS], [dm, G3.CHOOSE], [fm, G3.CHOOSECOLS], [pm, G3.CHOOSEROWS], [mm, G3.COLUMN], [hm, G3.COLUMNS], [gm, G3.DROP], [_m, G3.EXPAND], [vm, G3.FILTER], [ym, G3.FORMULATEXT], [bm, G3.HLOOKUP], [xm2, G3.HSTACK], [Sm, G3.HYPERLINK], [Cm, G3.IMAGE], [wm, G3.INDEX], [Tm, G3.INDIRECT], [Em, G3.LOOKUP], [Dm, G3.MATCH], [km, G3.OFFSET], [Am, G3.ROW], [jm, G3.ROWS], [Mm, G3.SORT], [Nm, G3.SORTBY], [Pm, G3.TAKE], [Fm, G3.TOCOL], [Im, G3.TOROW], [Lm, G3.TRANSPOSE], [Rm, G3.UNIQUE], [zm, G3.VLOOKUP], [Bm, G3.VSTACK], [Vm, G3.WRAPCOLS], [Hm, G3.WRAPROWS], [Um, G3.XLOOKUP], [Wm, G3.XMATCH]]; var Km = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.abs(); } }; var qm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.acos(); } }; var Jm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.acosh(); } }; var Ym = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.isArray() ? t.map((e30) => e30.isError() ? e30 : Xm(e30)) : Xm(t); } }; function Xm(e29) { let t = e29.getValue(); if (e29.isBoolean() && (t = t ? 1 : 0), !Number.isFinite(t)) return j3.create(D3.VALUE); t = Number(t); let n = Math.atan(1 / t); return t < 0 && (n += Math.PI), Number.isNaN(n) ? j3.create(D3.VALUE) : R4.create(n); } var Zm = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.isArray() ? t.map((e30) => e30.isError() ? e30 : Qm(e30)) : Qm(t); } }; function Qm(e29) { let t = e29.getValue(); if (e29.isBoolean() && (t = t ? 1 : 0), !Number.isFinite(t)) return j3.create(D3.VALUE); if (t = Number(t), Math.abs(t) <= 1) return j3.create(D3.NUM); let n = 1 / 2 * Math.log((t + 1) / (t - 1)); return Number.isNaN(n) ? j3.create(D3.VALUE) : R4.create(n); } var $m = { 1: Q3.AVERAGE, 2: Q3.COUNT, 3: Q3.COUNTA, 4: Q3.MAX, 5: Q3.MIN, 6: Q3.PRODUCT, 7: Q3.STDEV_S, 8: Q3.STDEV_P, 9: Q3.SUM, 10: Q3.VAR_S, 11: Q3.VAR_P, 12: Q3.MEDIAN, 13: Q3.MODE_SNGL }; var eh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true), E3(this, `needsFilteredOutRows`, true), E3(this, `needsFormulaDataModel`, true); } calculate(e29, t, ...n) { let { isError: r, multiAreaRefs: i, normalRefs: a } = Jc2(n), o; o = e29.isReferenceObject() ? e29.toArrayValueObject() : e29; let s; s = t.isReferenceObject() ? t.toArrayValueObject() : t; let c = Math.max(o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, o, j3.create(D3.NA)), d = V3(c, l, s, j3.create(D3.NA)), f = u.mapValue((e30, t2, o2) => { if (e30.isError()) return e30; let s2 = d.get(t2, o2); return s2.isError() ? s2 : i.length > 0 ? j3.create(D3.VALUE) : this._handleSingleObject(e30, s2, n, r, a); }); return f.getRowCount() === 1 && f.getColumnCount() === 1 ? f.get(0, 0) : f; } _handleSingleObject(e29, t, n, r, i) { let a = e29; if (e29.isString() && (a = e29.convertToNumberObjectValue()), a.isError()) return a; let o = Math.floor(+a.getValue()); if (o < 1 || o > 19 || o >= 1 && o <= 13 && r || o >= 14 && o <= 19 && n.length !== 2) return j3.create(D3.VALUE); let s = t; if (t.isString() && (s = t.convertToNumberObjectValue()), s.isError()) return s; let c = Math.floor(+s.getValue()); if (c < 0 || c > 7) return j3.create(D3.VALUE); let l = this._getAggregateOptions(c); return o >= 14 && o <= 19 ? this._handleLargeSmallPercentileQuartile(o, l, n[0], n[1]) : Qc2({ type: $m[o], ...l, formulaDataModel: this._formulaDataModel }, i); } _getAggregateOptions(e29) { switch (e29) { case 1: return { ignoreRowHidden: true, ignoreErrorValues: false, ignoreNested: true }; case 2: return { ignoreRowHidden: false, ignoreErrorValues: true, ignoreNested: true }; case 3: return { ignoreRowHidden: true, ignoreErrorValues: true, ignoreNested: true }; case 4: return { ignoreRowHidden: false, ignoreErrorValues: false, ignoreNested: false }; case 5: return { ignoreRowHidden: true, ignoreErrorValues: false, ignoreNested: false }; case 6: return { ignoreRowHidden: false, ignoreErrorValues: true, ignoreNested: false }; case 7: return { ignoreRowHidden: true, ignoreErrorValues: true, ignoreNested: false }; default: return { ignoreRowHidden: false, ignoreErrorValues: false, ignoreNested: true }; } } _handleLargeSmallPercentileQuartile(e29, t, n, r) { let i; if (i = r.isReferenceObject() ? r.toArrayValueObject() : r, i.isError()) return i; if (i.isArray()) { let e30 = i.getRowCount(), t2 = i.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); i = i.get(0, 0); } let a = $c2(n, t, this._formulaDataModel); if (!Array.isArray(a)) return a; let o = +i.getValue(); switch (e29) { case 14: return tl2(a, o); case 15: return nl2(a, o); case 16: return rl2(a, o); case 17: return al(a, o); case 18: return il2(a, o); case 19: return ol(a, o); default: return j3.create(D3.VALUE); } } }; var th = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return R4.create(0); if (e29.isBoolean() || e29.isNumber()) return j3.create(D3.VALUE); let t = e29.getValue().toLocaleString().toLocaleUpperCase(); if (t.length > 255) return j3.create(D3.VALUE); let n = t.startsWith(`-`); n && (t = t.slice(1)); let r = 0; for (let e30 = 0; e30 < t.length; e30++) { let n2 = Zs2.get(t[e30]) || 0, i = Zs2.get(t[e30 + 1]) || 0, a = Zs2.get(t[e30 + 2]) || 0, o = Zs2.get(t[e30 + 3]) || 0; if (!n2 || a >= i && a > n2 || n2 === i && n2 === a && n2 === o || n2 === i / 2) return j3.create(D3.VALUE); n2 < i ? r -= n2 : r += n2; } return R4.create(n ? -r : r); } }; var nh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.asin(); } }; var rh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.asinh(); } }; var ih = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.atan(); } }; var ah = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29, r = t; return n.isString() && (n = n.convertToNumberObjectValue()), n.isError() ? n : (r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : r.atan2(n)); } }; var oh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.atanh(); } }; var sh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(0) : n; if (e29.isError()) return e29; if (t.isError()) return t; if (r.isError()) return r; let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.map((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return this._handleSingleObject(e30, r2, i2); }); return l.getRowCount() === 1 && l.getColumnCount() === 1 ? l.getArrayValue()[0][0] : l; } _handleSingleObject(e29, t, n) { let r = e29; if (r.isString() && (r = r.convertToNumberObjectValue()), r.isError()) return r; let i = t; if (i.isString() && (i = i.convertToNumberObjectValue()), i.isError()) return i; let a = n; if (a.isString() && (a = a.convertToNumberObjectValue()), a.isError()) return a; let o = Math.floor(+r.getValue()), s = Math.floor(+i.getValue()), c = Math.floor(+a.getValue()); if (o < 0 || o >= 2 ** 53 || s < 2 || s > 36 || c < 0) return j3.create(D3.NUM); let l = o.toString(s); return l.length < c && (l = Array(c - l.length + 1).join(`0`) + l), z3.create(l.toLocaleUpperCase()); } }; var ch = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = e30, i2 = a.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; let o2 = +r2.getValue(), s = +i2.getValue(); if (o2 > 0 && s < 0) return j3.create(D3.NUM); if (o2 === 0 || s === 0) return R4.create(0); let c = qi(o2 / s, 0) * s; return R4.create(c); }); return o.getRowCount() === 1 && o.getColumnCount() === 1 ? o.getArrayValue()[0][0] : o; } }; var lh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? R4.create(1) : t, i = n == null ? R4.create(0) : n; if (e29.isError()) return e29; if (r.isError()) return r; if (i.isError()) return i; let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, r, j3.create(D3.NA)), l = V3(a, o, i, j3.create(D3.NA)), u = s.map((e30, t2, n2) => { let r2 = e30, i2 = c.get(t2, n2), a2 = l.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (a2.isString() && (a2 = a2.convertToNumberObjectValue()), a2.isError()) return a2; let o2 = +r2.getValue(), s2 = +i2.getValue(), u2 = +a2.getValue(); return o2 === 0 || s2 === 0 ? R4.create(0) : this._getResult(o2, s2, u2); }); return a === 1 && o === 1 ? u.get(0, 0) : u; } _getResult(e29, t, n) { let r; return r = e29 < 0 && n !== 0 ? (t < 0 ? qi(Math.abs(e29) / Math.abs(t), 0) : -qi(Math.abs(e29) / t, 0)) * t : (t < 0 ? -qi(e29 / Math.abs(t), 0) : qi(e29 / t, 0)) * t, R4.create(r); } }; var uh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t; if (e29.isError()) return e29; if (n.isError()) return n; let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = e30; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let a2 = +i2.getValue(), s2 = +r2.getValue(); if (a2 === 0 || s2 === 0) return R4.create(0); let c = (s2 < 0 ? -qi(a2 / Math.abs(s2), 0) : qi(a2 / s2, 0)) * s2; return R4.create(c); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } }; var dh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = e30, i2 = a.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), i2.isString() && (i2 = i2.convertToNumberObjectValue()), r2.isError()) return r2; if (i2.isError()) return i2; let o2 = Math.floor(+r2.getValue()), s = Math.floor(+i2.getValue()); if (o2 < 0 || s < 0 || o2 < s) return j3.create(D3.NUM); let c = Ns2(o2, s); return Number.isNaN(c) || !Number.isFinite(c) ? j3.create(D3.NUM) : R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var fh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = e30, i2 = a.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), i2.isString() && (i2 = i2.convertToNumberObjectValue()), r2.isError()) return r2; if (i2.isError()) return i2; let o2 = Math.floor(+r2.getValue()), s = Math.floor(+i2.getValue()); if (o2 < 0 || s < 0 || o2 === 0 && o2 < s) return j3.create(D3.NUM); let c = Ns2(o2 + s - 1, o2 - 1); return Number.isNaN(c) || !Number.isFinite(c) ? j3.create(D3.NUM) : R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var ph = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.cos(); } }; var mh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.cosh(); } }; var hh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); return Math.abs(n) >= 2 ** 27 ? j3.create(D3.NUM) : n === 0 ? j3.create(D3.DIV_BY_ZERO) : t.tan().getReciprocal(); } }; var gh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : +t.getValue() == 0 ? j3.create(D3.DIV_BY_ZERO) : t.tanh().getReciprocal(); } }; var _h = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); return Math.abs(n) >= 2 ** 27 ? j3.create(D3.NUM) : n === 0 ? j3.create(D3.DIV_BY_ZERO) : t.sin().getReciprocal(); } }; var vh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); return n === 0 ? j3.create(D3.DIV_BY_ZERO) : !Number.isNaN(n) && !Number.isFinite(Math.sinh(n)) ? R4.create(0) : t.sinh().getReciprocal(); } }; var yh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { if (e30.isError()) return e30; let r2 = a.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let i2 = `${e30.getValue()}`, o2 = Math.floor(+r2.getValue()); if (Ja(i2) && (+i2 < 0 || +i2 >= 2 ** 53 || !Number.isInteger(+i2)) || i2.toLocaleLowerCase() === `true` || i2.toLocaleLowerCase() === `false` || o2 < 2 || o2 > 36) return j3.create(D3.NUM); if (i2.replace(/\s/g, ``) === ``) return R4.create(0); if (!this._isValidCharForRadix(i2, o2)) return j3.create(D3.NUM); let s = Number.parseInt(i2, o2); return Number.isNaN(s) ? j3.create(D3.NUM) : R4.create(s); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _isValidCharForRadix(e29, t) { for (let n of e29) { let e30 = n.toUpperCase().charCodeAt(0); if (t <= 10 && !(e30 >= 48 && e30 < 48 + t) || t > 10 && !(e30 >= 48 && e30 < 58 || e30 >= 65 && e30 < 65 + t - 10)) return false; } return true; } }; var bh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); if (!Number.isFinite(n)) return j3.create(D3.VALUE); let r = n * (180 / Math.PI); return Number.isNaN(r) ? j3.create(D3.VALUE) : R4.create(r); } }; var xh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); if (!Number.isFinite(n)) return j3.create(D3.VALUE); let r = (n < 0 ? -qi(Math.abs(n) / 2, 0) : qi(n / 2, 0)) * 2; return Number.isNaN(r) ? j3.create(D3.VALUE) : r === 0 ? R4.create(0) : R4.create(r); } }; var Sh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.exp(); } }; var Ch = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = Ms2(Math.floor(+t.getValue())); return Number.isNaN(n) || !Number.isFinite(n) ? j3.create(D3.NUM) : R4.create(n); } }; var wh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (e29.isArray()) { let n = e29.getRowCount(), r = e29.getColumnCount(); if (n > 1 || r > 1) return j3.create(D3.VALUE); t = e29.get(0, 0); } return this._handleSingleObject(t); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = Ms2(Math.floor(+t.getValue()), 2); return Number.isNaN(n) || !Number.isFinite(n) ? j3.create(D3.NUM) : R4.create(n); } }; var Th = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = a.get(t2, n2), i2 = e30; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let o2 = +i2.getValue(), s = +r2.getValue(); if (o2 > 0 && s < 0) return j3.create(D3.NUM); if (o2 === 0) return R4.create(0); if (s === 0) return j3.create(D3.DIV_BY_ZERO); let c = Ki2(o2 / s, 0) * s; return R4.create(c); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var Eh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? R4.create(1) : t, i = n == null ? R4.create(0) : n, a = Math.max(e29.isArray() ? e29.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, r, j3.create(D3.NA)), l = V3(a, o, i, j3.create(D3.NA)), u = s.map((e30, t2, n2) => { let r2 = e30, i2 = c.get(t2, n2), a2 = l.get(t2, n2); if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (a2.isString() && (a2 = a2.convertToNumberObjectValue()), a2.isError()) return a2; let o2 = +r2.getValue(), s2 = +i2.getValue(), u2 = +a2.getValue(); if (o2 === 0 || s2 === 0) return R4.create(0); let d; return d = o2 < 0 && u2 !== 0 ? (s2 < 0 ? Ki2(Math.abs(o2) / Math.abs(s2), 0) : -Ki2(Math.abs(o2) / s2, 0)) * s2 : (s2 < 0 ? -Ki2(o2 / Math.abs(s2), 0) : Ki2(o2 / s2, 0)) * s2, R4.create(d); }); return a === 1 && o === 1 ? u.get(0, 0) : u; } }; var Dh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t; if (e29.isError()) return e29; if (n.isError()) return n; let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = e30; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let a2 = +i2.getValue(), s2 = +r2.getValue(); if (a2 === 0 || s2 === 0) return R4.create(0); let c = (s2 < 0 ? -Ki2(a2 / Math.abs(s2), 0) : Ki2(a2 / s2, 0)) * s2; return R4.create(c); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } }; var Oh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 0; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (!r.isNull()) if (r.isArray()) { let e30 = false, n2 = j3.create(D3.VALUE); if (r.iterator((r2) => { if (r2 != null && r2.isNull()) return true; let { isError: i, errorObject: a, number: o } = this._handleSingleObject(r2); if (i) return e30 = true, n2 = a, false; t = Ps2(t, o); }), e30) return n2; } else { let { isError: e30, errorObject: n2, number: i } = this._handleSingleObject(r); if (e30) return n2; t = Ps2(t, i); } } return R4.create(t); } _handleSingleObject(e29) { if (e29.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE), number: null }; let t = e29; if (e29.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return { isError: true, errorObject: t, number: null }; let n = Math.floor(+t.getValue()); return n < 0 || n >= 2 ** 53 ? { isError: true, errorObject: j3.create(D3.NUM), number: null } : { isError: false, errorObject: null, number: n }; } }; var kh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = Math.floor(+t.getValue()); return R4.create(n); } }; var Ah = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 1, n = true; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (!i.isNull()) if (i.isArray()) { let e30 = false, r2 = j3.create(D3.VALUE); if (i.iterator((i2) => { if (i2 != null && i2.isNull()) return true; let { isError: a, errorObject: o, number: s } = this._handleSingleObject(i2); if (a) return e30 = true, r2 = o, false; t = Fs2(t, s), n = false; }), e30) return r2; } else { let { isError: e30, errorObject: r2, number: a } = this._handleSingleObject(i); if (e30) return r2; t = Fs2(t, a), n = false; } } return n ? R4.create(0) : Number.isNaN(t) || !Number.isFinite(t) || t >= 2 ** 53 ? j3.create(D3.VALUE) : R4.create(t); } _handleSingleObject(e29) { if (e29.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE), number: null }; let t = e29; if (e29.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return { isError: true, errorObject: t, number: null }; let n = Math.floor(+t.getValue()); return n < 0 ? { isError: true, errorObject: j3.create(D3.NUM), number: null } : { isError: false, errorObject: null, number: n }; } }; var jh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.log(); } }; var Mh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(10) : t; if (e29.isError()) return e29; if (n.isError()) return n; let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = e30; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let a2 = +i2.getValue(), s2 = +r2.getValue(); if (a2 <= 0 || s2 <= 0) return j3.create(D3.NUM); let c = Math.log(s2); if (c === 0) return j3.create(D3.DIV_BY_ZERO); let l = Math.log(a2) / c; return R4.create(l); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } }; var Nh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.log10(); } }; var Ph = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i2 = 0; i2 < t; i2++) { let t2 = []; for (let r2 = 0; r2 < n; r2++) { let n2 = e29.isArray() ? e29.get(i2, r2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) return j3.create(D3.VALUE); if (n2.isString() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return n2; let a = +n2.getValue(); t2.push(a); } r.push(t2); } if (t !== n) return j3.create(D3.VALUE); let i = Is2(r); return R4.create(i); } }; var Fh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i2 = 0; i2 < t; i2++) { let t2 = []; for (let r2 = 0; r2 < n; r2++) { let n2 = e29.isArray() ? e29.get(i2, r2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) return j3.create(D3.VALUE); if (n2.isString() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return n2; let a = +n2.getValue(); t2.push(a); } r.push(t2); } if (t !== n) return j3.create(D3.VALUE); let i = Ls2(r); return i === null ? j3.create(D3.NUM) : B3.createByArray(i); } }; var Ih = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1; if (r !== i) return j3.create(D3.VALUE); let o = this._getMatrix(e29, n, r), s = this._getMatrix(t, i, a); if (o instanceof j3) return o; if (s instanceof j3) return s; let c = Bs2(o, s); return B3.createByArray(c); } _getMatrix(e29, t, n) { let r = []; for (let i = 0; i < t; i++) { let t2 = []; for (let r2 = 0; r2 < n; r2++) { let n2 = e29.isArray() ? e29.get(i, r2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) return j3.create(D3.VALUE); if (n2.isString() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return n2; let a = +n2.getValue(); t2.push(a); } r.push(t2); } return r; } }; var Lh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return n; let r = t; return r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : n.mod(r); } }; var Rh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); n = n.get(0, 0); } if (n.isError()) return n; let r = t; if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (r.isError()) return r; if (n.isBoolean() || r.isBoolean()) return j3.create(D3.VALUE); let i = +n.getValue(), a = +r.getValue(); if (Number.isNaN(i) || Number.isNaN(a)) return j3.create(D3.VALUE); if (a === 0) return R4.create(0); if (i > 0 && a < 0 || i < 0 && a > 0) return j3.create(D3.NUM); let o = Gi(i / a, 0) * a; return R4.create(o); } }; var zh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 0, n = 1; for (let r2 = 0; r2 < e29.length; r2++) { let i = e29[r2]; if (!i.isNull()) if (i.isArray()) { let e30 = false, r3 = j3.create(D3.VALUE); if (i.iterator((i2) => { if (i2 != null && i2.isNull()) return true; let { isError: a, errorObject: o, number: s } = this._handleSingleObject(i2); if (a) return e30 = true, r3 = o, false; if (t += s, t > 170) return e30 = true, r3 = j3.create(D3.NUM), false; n *= Ms2(s); }), e30) return r3; } else { let { isError: e30, errorObject: r3, number: a } = this._handleSingleObject(i); if (e30) return r3; if (t += a, t > 170) return j3.create(D3.NUM); n *= Ms2(a); } } let r = Ms2(t) / n; return R4.create(r); } _handleSingleObject(e29) { if (e29.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE), number: null }; let t = e29; if (e29.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return { isError: true, errorObject: t, number: null }; let n = Math.floor(+t.getValue()); return n < 0 ? { isError: true, errorObject: j3.create(D3.NUM), number: null } : { isError: false, errorObject: null, number: n }; } }; var Bh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.getRowCount(), n = e29.getColumnCount(), r = e29.mapValue((e30) => { let r2 = this._handleSingleObject(e30); return r2.isError() ? r2 : t > 1 || n > 1 ? r2.get(0, 0) : r2; }); return t === 1 && n === 1 ? r.get(0, 0) : r; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = Math.floor(+t.getValue()); if (n <= 0) return j3.create(D3.VALUE); let r = []; for (let e30 = 0; e30 < n; e30++) { r[e30] = []; for (let t2 = 0; t2 < n; t2++) r[e30][t2] = e30 === t2 ? 1 : 0; } return B3.createByArray(r); } }; var Vh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); if (!Number.isFinite(n)) return j3.create(D3.VALUE); let r = n < 0 ? -qi(Math.abs(n), 0) : qi(n, 0); return Number.isNaN(r) ? j3.create(D3.VALUE) : (Math.abs(r) % 2 == 0 && (n < 0 ? r-- : r++), R4.create(r)); } }; var Hh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { return R4.create(Math.PI); } }; var Uh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return n; let r = t; return r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : n.pow(r); } }; var Wh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(1), n = true; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; if (i.isArray()) { let e30 = false, r2 = null; if (i.iterator((i2) => { if (i2 != null && i2.isError()) return e30 = true, r2 = i2, false; if (!i2 || i2.isNull() || i2.isString() || i2.isBoolean()) return true; t = t.multiply(i2), n = false; }), e30) return r2; } else { if (i.isNull()) continue; if (i.isString() && (i = i.convertToNumberObjectValue()), i.isError()) return i; t = t.multiply(i), n = false; } if (t.isError()) return t; } return n ? R4.create(0) : t; } }; var Gh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = Y3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = +o.getValue(); if (Number.isNaN(s) || Number.isNaN(c)) return j3.create(D3.VALUE); if (c === 0) return j3.create(D3.DIV_BY_ZERO); let l = Math.trunc(s / c); return R4.create(l); } }; var Kh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); if (!Number.isFinite(n)) return j3.create(D3.VALUE); let r = n * (Math.PI / 180); return Number.isNaN(r) ? j3.create(D3.VALUE) : R4.create(r); } }; var qh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 0); } calculate() { return R4.create(Math.random()); } }; var Jh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 0), E3(this, `maxParams`, 5), E3(this, `needsSheetRowColumnCount`, true); } calculate(e29, t, n, r, i) { if (e29 != null && e29.isError()) return e29; if (t != null && t.isError()) return t; if (n != null && n.isError()) return n; if (r != null && r.isError()) return r; if (i != null && i.isError()) return i; let a = e29 == null ? R4.create(1) : e29, o = t == null ? R4.create(1) : t, s = n == null ? R4.create(0) : n, c = r == null ? R4.create(1) : r, l = i == null ? R4.create(0) : i; return this._calculateResult(a, o, s, c, l); } _calculateResult(e29, t, n, r, i) { let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1); if (a === 1 && o === 1) return this._calculateSingleCell(e29, t, n, r, i); let s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, t, j3.create(D3.NA)), l = V3(a, o, n, j3.create(D3.NA)), u = V3(a, o, r, j3.create(D3.NA)), d = V3(a, o, i, j3.create(D3.NA)); return s.map((e30, t2, n2) => { let r2 = c.get(t2, n2), i2 = l.get(t2, n2), a2 = u.get(t2, n2), o2 = d.get(t2, n2), s2 = this._handleError(e30, r2, i2, a2, o2); if (s2.errorObject) return s2.errorObject; let { minValue: f, maxValue: p, wholeNumberValue: m } = s2, h; return m ? (f = Math.ceil(f), p = Math.floor(p), h = Math.floor(Math.random() * (p - f + 1)) + f) : h = Math.random() * (p - f) + f, h < f || h > p ? j3.create(D3.VALUE) : R4.create(h); }); } _calculateSingleCell(e29, t, n, r, i) { let a = e29; a.isArray() && (a = a.get(0, 0)); let o = t; o.isArray() && (o = o.get(0, 0)); let s = n; s.isArray() && (s = s.get(0, 0)); let c = r; c.isArray() && (c = c.get(0, 0)); let l = i; l.isArray() && (l = l.get(0, 0)); let u = this._handleError(a, o, s, c, l); if (u.errorObject) return u.errorObject; let { rowsValue: d, columnsValue: f, minValue: p, maxValue: m, wholeNumberValue: h } = u; if (h && (p = Math.ceil(p), m = Math.floor(m), p > m)) return j3.create(D3.VALUE); let g2 = []; for (let e30 = 0; e30 < d; e30++) { let e31 = []; for (let t2 = 0; t2 < f; t2++) h ? e31.push(Math.floor(Math.random() * (m - p + 1)) + p) : e31.push(Math.random() * (m - p) + p); g2.push(e31); } return d === 1 && f === 1 ? R4.create(g2[0][0]) : B3.createByArray(g2); } _handleError(e29, t, n, r, i) { let a = e29; if (a.isString() && (a = a.convertToNumberObjectValue()), a.isError()) return { errorObject: a }; let o = t; if (o.isString() && (o = o.convertToNumberObjectValue()), o.isError()) return { errorObject: o }; let s = n; if (s.isString() && (s = s.convertToNumberObjectValue()), s.isError()) return { errorObject: s }; let c = r; if (c.isString() && (c = c.convertToNumberObjectValue()), c.isError()) return { errorObject: c }; let l = i; return l.isString() && (l = l.convertToNumberObjectValue()), l.isError() ? { errorObject: l } : this._getValue(a, o, s, c, l); } _getValue(e29, t, n, r, i) { let a = Math.floor(+e29.getValue()), o = Math.floor(+t.getValue()); if (a === 0 || o === 0) return { errorObject: j3.create(D3.CALC) }; let s = this._rowCount - this.row, c = this._columnCount - this.column; if (a < 0 || o < 0 || a * o > 10 ** 7) return { errorObject: j3.create(D3.VALUE) }; if (a > s || o > c) return { errorObject: j3.create(D3.REF) }; let l = +n.getValue(), u = +r.getValue(), d = +i.getValue(); return l > u || d && (!Number.isInteger(l) || !Number.isInteger(u)) ? { errorObject: j3.create(D3.VALUE) } : { rowsValue: a, columnsValue: o, minValue: l, maxValue: u, wholeNumberValue: d }; } }; var Yh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isArray()) { let e30 = n.getRowCount(), t2 = n.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); n = n.get(0, 0); } if (n.isError()) return n; let r = t; if (r.isArray()) { let e30 = r.getRowCount(), t2 = r.getColumnCount(); if (e30 > 1 || t2 > 1) return j3.create(D3.VALUE); r = r.get(0, 0); } if (r.isError()) return r; if (n.isBoolean() || r.isBoolean()) return j3.create(D3.VALUE); let i = +n.getValue(), a = +r.getValue(); if (Number.isNaN(i) || Number.isNaN(a)) return j3.create(D3.VALUE); if (i > a) return j3.create(D3.NUM); i = Math.ceil(i), a = Math.floor(a); let o = Math.floor(Math.random() * (a - i + 1)) + i; return R4.create(o); } }; var Xh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(0) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29); if (n) return r; let [a] = i, o = Math.floor(+a.getValue()), s = t; if (s.isString() && (s = s.convertToNumberObjectValue(), s.isError())) return s; let c = Math.floor(+s.getValue()); if (s.isBoolean() && (c = s.getValue() ? 0 : 4), o < 0 || o > 3999 || c < 0 || c > 4) return j3.create(D3.VALUE); let l = $s2[c], u = l.length - 1, d = ``; for (; o > 0; ) { u = this._binarySearch(o, 0, u, l); let e30 = l[u]; o -= e30, d += Qs2.get(e30); } return z3.create(d); } _binarySearch(e29, t, n, r) { let i = t, a = n; for (; a - i > 1; ) { let t2 = Math.floor((i + a) / 2), n2 = r[t2]; if (n2 === e29) return t2; n2 > e29 ? a = t2 : i = t2; } return i !== a && r[a] <= e29 ? a : i; } }; var Zh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return n; let r = t; return r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : n.round(r); } }; var Qh = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; let { isError: i2, errorObject: o2, variants: s } = X3(e30, r2); if (i2) return o2; let [c, l] = s, u = +c.getValue(), d = Math.trunc(+l.getValue()), f = this._roundBank(u, d); return R4.create(f); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _roundBank(e29, t) { if (t > 16) return e29; if (t < -16) return 0; let n = 1e-8, r = 10 ** t, i = +(e29 * r).toFixed(8), a = Math.floor(i), o = i - a, s = Math.round(i); return o > 0.5 - n && o < 0.5 + n && (s = a % 2 == 0 ? a : a + 1), t ? s / r : s; } }; var $h = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return n; let r = t; return r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : n.floor(r); } }; var eg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29; if (n.isString() && (n = n.convertToNumberObjectValue()), n.isError()) return n; let r = t; return r.isString() && (r = r.convertToNumberObjectValue()), r.isError() ? r : n.ceil(r); } }; var tg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); return Math.abs(n) >= 2 ** 27 ? j3.create(D3.NUM) : t.cos().getReciprocal(); } }; var ng = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.map((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let t = e29; if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); return Number.isFinite(Math.cosh(n)) ? Math.abs(n) >= 2 ** 27 ? j3.create(D3.NUM) : t.cosh().getReciprocal() : R4.create(0); } }; var rg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4), E3(this, `needsSheetRowColumnCount`, true); } calculate(e29, t, n, r) { let i = e29, a = t == null ? R4.create(1) : t, o = n == null ? R4.create(1) : n, s = r == null ? R4.create(1) : r; i.isNull() && (i = R4.create(1)), a.isNull() && (a = R4.create(1)), o.isNull() && (o = R4.create(1)), s.isNull() && (s = R4.create(1)); let c = Math.max(i.isArray() ? i.getRowCount() : 1, a.isArray() ? a.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(i.isArray() ? i.getColumnCount() : 1, a.isArray() ? a.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, i, j3.create(D3.NA)), d = V3(c, l, a, j3.create(D3.NA)), f = V3(c, l, o, j3.create(D3.NA)), p = V3(c, l, s, j3.create(D3.NA)), m = u.mapValue((e30, t2, n2) => { let r2 = d.get(t2, n2), i2 = f.get(t2, n2), a2 = p.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._getResult(e30, r2, i2, a2, c, l); }); return c === 1 && l === 1 ? m.get(0, 0) : m; } _getResult(e29, t, n, r, i, a) { let { isError: o, errorObject: s, variants: c } = X3(e29, t, n, r); if (o) return s; let [l, u, d, f] = c, p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()), h = +d.getValue(), g2 = +f.getValue(); if (p < 0 || m < 0 || p * m > 10 ** 7) return j3.create(D3.VALUE); if (p === 0 || m === 0) return j3.create(D3.CALC); let _2 = this._rowCount - this.row, v = this._columnCount - this.column; if (p > _2 || m > v) return j3.create(D3.REF); let y = []; for (let e30 = 0; e30 < p; e30++) { y[e30] = []; for (let t2 = 0; t2 < m; t2++) y[e30][t2] = h + (e30 * m + t2) * g2; } return i > 1 || a > 1 ? R4.create(y[0][0]) : B3.createByArray(y); } }; var ig = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { if (e29.isNull() || t.isNull() || n.isNull() || r.isNull()) return j3.create(D3.NA); let { isError: i, errorObject: a, variants: o } = Y3(e29, t, n); if (i) return a; let { isError: s, errorObject: c, variants: l } = X3(...o); if (s) return c; let [u, d, f] = l, p = +u.getValue(), m = +d.getValue(), h = +f.getValue(), g2 = []; if (r.isArray()) { let e30 = false, t2 = j3.create(D3.VALUE); if (r.iterator((n2) => { let { isError: r2, errorObject: i2, coefficientsObject: a2 } = this._handleSingleObject(n2); if (r2) return e30 = true, t2 = i2, false; let o2 = +a2.getValue(); g2.push(o2); }), e30) return t2; } else { let { isError: e30, errorObject: t2, coefficientsObject: n2 } = this._handleSingleObject(r); if (e30) return t2; let i2 = +n2.getValue(); g2.push(i2); } let _2 = 0; for (let e30 = 0; e30 < g2.length; e30++) _2 += g2[e30] * p ** (m + e30 * h); return Number.isNaN(_2) || !Number.isFinite(_2) ? j3.create(D3.NUM) : R4.create(_2); } _handleSingleObject(e29) { if (e29.isError()) return { isError: true, errorObject: e29, coefficientsObject: null }; if (e29 != null && e29.isBoolean()) return { isError: true, errorObject: j3.create(D3.VALUE), coefficientsObject: null }; let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? { isError: true, errorObject: t, coefficientsObject: null } : { isError: false, errorObject: null, coefficientsObject: t }; } }; var ag = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(); return a > 0 ? R4.create(1) : a < 0 ? R4.create(-1) : R4.create(0); } }; var og = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.sin(); } }; var sg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.sinh(); } }; var cg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.sqrt(); } }; var lg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; if (t.isArray()) { let e30 = t.getRowCount(), n2 = t.getColumnCount(); if (e30 > 1 || n2 > 1) return j3.create(D3.VALUE); t = t.get(0, 0); } if (t.isString() && (t = t.convertToNumberObjectValue()), t.isError()) return t; let n = +t.getValue(); if (n < 0) return j3.create(D3.NUM); let r = Math.sqrt(n * Math.PI); return R4.create(r); } }; var ug = { 1: Q3.AVERAGE, 2: Q3.COUNT, 3: Q3.COUNTA, 4: Q3.MAX, 5: Q3.MIN, 6: Q3.PRODUCT, 7: Q3.STDEV, 8: Q3.STDEVP, 9: Q3.SUM, 10: Q3.VAR, 11: Q3.VARP }; var dg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true), E3(this, `needsFilteredOutRows`, true), E3(this, `needsFormulaDataModel`, true); } calculate(e29, ...t) { let n; n = e29.isReferenceObject() ? e29.toArrayValueObject() : e29; let { isError: r, multiAreaRefs: i, normalRefs: a } = Jc2(t); if (!r && i.length > 0) return this._handleMultiAreaRefs(n, i, t); if (n.isArray()) { let e30 = n.mapValue((e31) => this._handleSingleObject(e31, { isError: r, refs: a })); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, { isError: r, refs: a }); } _handleSingleObject(e29, t) { let { isError: n = false, refs: r } = t, i = e29; if (e29.isString() && (i = e29.convertToNumberObjectValue()), i.isError()) return i; if (n) return j3.create(D3.VALUE); let a = Math.floor(+i.getValue()); if (a < 1 || a > 11 && a < 101 || a > 111) return j3.create(D3.VALUE); let o = false; return a >= 101 && (a -= 100, o = true), Qc2({ type: ug[a], ignoreRowHidden: o, ignoreErrorValues: false, ignoreNested: true, formulaDataModel: this._formulaDataModel }, r); } _handleMultiAreaRefs(e29, t, n) { let r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1, { multiAreaInfoMap: a, maxAreasLen: o } = this._getMultiAreaInfo(t), s = Math.max(r, o), c = []; for (let t2 = 0; t2 < s; t2++) { let o2 = t2 < r ? t2 : r - 1, s2 = []; for (let c2 = 0; c2 < i; c2++) { if (r > 1 && t2 >= r) { s2.push(j3.create(D3.NA)); continue; } let i2 = e29.isArray() ? e29.get(o2, c2) : e29, l = []; for (let e30 = 0; e30 < n.length; e30++) { let r2 = n[e30], i3 = a.get(r2); if (i3) { let e31 = t2 < i3.rowAreas.length ? t2 : i3.rowAreas.length - 1, n2 = i3.rowAreas[e31]; if (n2.isError()) { s2.push(n2); break; } l.push(n2); continue; } l.push(r2); } let u = this._handleSingleObject(i2, { isError: false, refs: l }); s2.push(u); } c.push(s2); } return c.length === 1 ? c[0][0] : Ea2(c, c.length, i); } _getMultiAreaInfo(e29) { let t = /* @__PURE__ */ new Map(), n = 1; return e29.forEach((e30) => { let r = e30.getAreas().map((t2) => { if (!t2 || t2.length === 0) return e30; let n2 = t2.find((e31) => !e31.isError()); return n2 == null ? t2[0] : n2; }); t.set(e30, { ref: e30, rowAreas: r }), n = Math.max(n, r.length || 1); }), { multiAreaInfoMap: t, maxAreasLen: n }; } }; var fg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isString() && (r = r.convertToNumberObjectValue()), r.isError() || (r.isArray() && (r = r.sum()), r.isError())) return r; if (t = t.plus(r), t.isError()) return t; } return t; } }; var pg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { if (!e29.isReferenceObject() || n && !n.isReferenceObject()) return j3.create(D3.VALUE); let r = t; if (t.isReferenceObject() && (r = t.toArrayValueObject()), r.isArray()) { let t2 = r.mapValue((t3) => this._handleSingleObject(e29, t3, n)); return t2.getRowCount() === 1 && t2.getColumnCount() === 1 ? t2.get(0, 0) : t2; } return this._handleSingleObject(e29, r, n); } _handleSingleObject(e29, t, n) { let r = e29.toArrayValueObject(), i = Oa(r, t); i = La(i, r, t); let a = r.getRowCount(), o = r.getColumnCount(), s = r; if (n) { s = n.toArrayValueObject(); let e30 = s.getRowCount(), t2 = s.getColumnCount(); if (a !== e30 || o !== t2) { let e31 = n.getRangeData(); e31.endRow = e31.startRow + a - 1, e31.endColumn = e31.startColumn + o - 1, n.setRangeData(e31), s = n.toArrayValueObject(); } } return s.pick(i).sum(); } }; var mg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(e29, ...t) { let { isError: n, errorObject: r, rangeIsDifferentSize: i, criteriaMaxRowLength: a, criteriaMaxColumnLength: o, targetRange: s, variants: c } = Pa(t, e29); if (n) return r; if (i) return a === 1 && o === 1 ? j3.create(D3.VALUE) : V3(a, o, j3.create(D3.VALUE)); let l = Ia2(c, { formulaName: `SUMIFS`, maxRowLength: a, maxColumnLength: o, isNumberSensitive: true, targetRange: s }); return l.length === 1 && l[0].length === 1 ? l[0][0] : B3.create({ calculateValueList: l, rowCount: l.length, columnCount: l[0].length, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }); } }; var hg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(e29, ...t) { if (e29.isError()) return e29; let n = this._initArray1(e29); if (t.length === 0) return n.sum(); let r = n.getRowCount(), i = n.getColumnCount(), a = this._getResultArrayByArray1(r, i, n); if (a instanceof j3) return a; let o = a; return this._validateVariants(t, r, i) || this._sumProduct(o, t, r, i); } _validateVariants(e29, t, n) { for (let r of e29) { if (r.isError()) return r; if (r.isArray()) { let e30 = r, i = e30.getRowCount(), a = e30.getColumnCount(); if (i !== t && a !== n) return j3.create(D3.VALUE); } } return null; } _sumProduct(e29, t, n, r) { let i = 0; for (let a = 0; a < n; a++) for (let n2 = 0; n2 < r; n2++) { let r2 = e29[a][n2]; for (let e30 = 0; e30 < t.length; e30++) { let i2 = t[e30], o = this._getVariantCell(i2, a, n2); if (!o) return j3.create(D3.VALUE); if (o.isError()) return o; o.isNumber() ? r2 *= o.getValue() : r2 = 0; } i += r2; } return R4.create(i); } _getVariantCell(e29, t, n) { if (!e29.isArray()) return e29; let r = e29.get(t, n); return r == null ? null : r; } _initArray1(e29) { let t = e29; return t.isArray() || (t = B3.create({ calculateValueList: [[t]], rowCount: 1, columnCount: 1, unitId: ``, sheetId: ``, row: 0, column: 0 })), t; } _getResultArrayByArray1(e29, t, n) { let r = []; for (let i = 0; i < e29; i++) { let e30 = []; for (let r2 = 0; r2 < t; r2++) { let t2 = n.get(i, r2); if (t2.isError()) return t2; t2.isNumber() ? e30.push(t2.getValue()) : e30.push(0); } r.push(e30); } return r; } }; var gg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0), n = R4.create(2); for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isString() && (i = i.convertToNumberObjectValue()), i.isError()) return i; if (i.isArray() ? i.iterator((e30) => { if (e30 == null || e30.isString() || e30.isBoolean() || e30.isNull()) return true; if (e30.isError()) return t = e30, false; t = t.plus(e30.pow(n)); }) : t = t.plus(i.pow(n)), t.isError()) return t; } return t; } }; var _g = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = (e29.isArray() ? e29.getRowCount() : 1) * (e29.isArray() ? e29.getColumnCount() : 1); if (n !== (t.isArray() ? t.getRowCount() : 1) * (t.isArray() ? t.getColumnCount() : 1)) return j3.create(D3.NA); if (n === 1) return this._calculateSingleCell(e29, t); { let n2 = e29.flatten(), r = t.flatten(), i = I3.create(), a = [], o = [], s = 0; return n2.iterator((e30, t2, n3) => { let c = r.get(t2, n3); if (e30 == null || e30.isString() || e30.isBoolean() || e30.isNull()) return true; if (e30 != null && e30.isError()) return i = e30, false; if (c == null || c.isString() || c.isBoolean() || c.isNull()) return true; if (c != null && c.isError()) return i = c, false; let l = +e30.getValue(), u = +c.getValue(); a.push(l), o.push(u), s += l ** 2 - u ** 2; }), i.isError() ? i : a.length === 0 || o.length === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(s); } } _calculateSingleCell(e29, t) { let n = e29; if (n.isArray() && (n = n.get(0, 0)), n.isError()) return n; let r = t; if (r.isArray() && (r = r.get(0, 0)), r.isError()) return r; if (n.isNull() || r.isNull()) return j3.create(D3.VALUE); let i = +n.getValue(), a = +r.getValue(); if (n.isString() && !Ja(i) || n.isBoolean() || r.isString() && !Ja(a) || r.isBoolean()) return j3.create(D3.DIV_BY_ZERO); let o = i ** 2 - a ** 2; return R4.create(o); } }; var vg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = (e29.isArray() ? e29.getRowCount() : 1) * (e29.isArray() ? e29.getColumnCount() : 1); if (n !== (t.isArray() ? t.getRowCount() : 1) * (t.isArray() ? t.getColumnCount() : 1)) return j3.create(D3.NA); if (n === 1) return this._calculateSingleCell(e29, t); { let n2 = e29.flatten(), r = t.flatten(), i = I3.create(), a = [], o = [], s = 0; return n2.iterator((e30, t2, n3) => { let c = r.get(t2, n3); if (e30 == null || e30.isString() || e30.isBoolean() || e30.isNull()) return true; if (e30 != null && e30.isError()) return i = e30, false; if (c == null || c.isString() || c.isBoolean() || c.isNull()) return true; if (c != null && c.isError()) return i = c, false; let l = +e30.getValue(), u = +c.getValue(); a.push(l), o.push(u), s += l ** 2 + u ** 2; }), i.isError() ? i : a.length === 0 || o.length === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(s); } } _calculateSingleCell(e29, t) { let n = e29; if (n.isArray() && (n = n.get(0, 0)), n.isError()) return n; let r = t; if (r.isArray() && (r = r.get(0, 0)), r.isError()) return r; if (n.isNull() || r.isNull()) return j3.create(D3.VALUE); let i = +n.getValue(), a = +r.getValue(); if (n.isString() && !Ja(i) || n.isBoolean() || r.isString() && !Ja(a) || r.isBoolean()) return j3.create(D3.DIV_BY_ZERO); let o = i ** 2 + a ** 2; return R4.create(o); } }; var yg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = (e29.isArray() ? e29.getRowCount() : 1) * (e29.isArray() ? e29.getColumnCount() : 1); if (n !== (t.isArray() ? t.getRowCount() : 1) * (t.isArray() ? t.getColumnCount() : 1)) return j3.create(D3.NA); if (n === 1) return this._calculateSingleCell(e29, t); { let n2 = e29.flatten(), r = t.flatten(), i = I3.create(), a = [], o = [], s = 0; return n2.iterator((e30, t2, n3) => { let c = r.get(t2, n3); if (e30 == null || e30.isString() || e30.isBoolean() || e30.isNull()) return true; if (e30 != null && e30.isError()) return i = e30, false; if (c == null || c.isString() || c.isBoolean() || c.isNull()) return true; if (c != null && c.isError()) return i = c, false; let l = +e30.getValue(), u = +c.getValue(); a.push(l), o.push(u), s += (l - u) ** 2; }), i.isError() ? i : a.length === 0 || o.length === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(s); } } _calculateSingleCell(e29, t) { let n = e29; if (n.isArray() && (n = n.get(0, 0)), n.isError()) return n; let r = t; if (r.isArray() && (r = r.get(0, 0)), r.isError()) return r; if (n.isNull() || r.isNull()) return j3.create(D3.VALUE); let i = +n.getValue(), a = +r.getValue(); if (n.isString() && !Ja(i) || n.isBoolean() || r.isString() && !Ja(a) || r.isBoolean()) return j3.create(D3.DIV_BY_ZERO); let o = (i - a) ** 2; return R4.create(o); } }; var bg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.tan(); } }; var xg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { let t = e29; return t.isString() && (t = t.convertToNumberObjectValue()), t.isError() ? t : t.tanh(); } }; var Sg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(0) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.map((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = e30; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let a2 = +i2.getValue(), s2 = +r2.getValue(), c = 10 ** Math.trunc(s2), l = Ji(a2, c), u = Math.trunc(Ui(a2, c) + l) / c; return R4.create(u); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } }; var Cg = [[Km, K3.ABS], [qm, K3.ACOS], [Jm, K3.ACOSH], [Ym, K3.ACOT], [Zm, K3.ACOTH], [eh, K3.AGGREGATE], [th, K3.ARABIC], [nh, K3.ASIN], [rh, K3.ASINH], [ih, K3.ATAN], [ah, K3.ATAN2], [oh, K3.ATANH], [sh, K3.BASE], [ch, K3.CEILING], [lh, K3.CEILING_MATH], [uh, K3.CEILING_PRECISE], [dh, K3.COMBIN], [fh, K3.COMBINA], [ph, K3.COS], [mh, K3.COSH], [hh, K3.COT], [gh, K3.COTH], [_h, K3.CSC], [vh, K3.CSCH], [yh, K3.DECIMAL], [bh, K3.DEGREES], [xh, K3.EVEN], [Sh, K3.EXP], [Ch, K3.FACT], [wh, K3.FACTDOUBLE], [Th, K3.FLOOR], [Eh, K3.FLOOR_MATH], [Dh, K3.FLOOR_PRECISE], [Oh, K3.GCD], [kh, K3.INT], [Ah, K3.LCM], [jh, K3.LN], [Mh, K3.LOG], [Nh, K3.LOG10], [Ph, K3.MDETERM], [Fh, K3.MINVERSE], [Ih, K3.MMULT], [Lh, K3.MOD], [Rh, K3.MROUND], [zh, K3.MULTINOMIAL], [Bh, K3.MUNIT], [Vh, K3.ODD], [Hh, K3.PI], [Uh, K3.POWER], [Wh, K3.PRODUCT], [Gh, K3.QUOTIENT], [Kh, K3.RADIANS], [qh, K3.RAND], [Jh, K3.RANDARRAY], [Yh, K3.RANDBETWEEN], [Xh, K3.ROMAN], [Zh, K3.ROUND], [Qh, K3.ROUNDBANK], [$h, K3.ROUNDDOWN], [eg, K3.ROUNDUP], [tg, K3.SEC], [ng, K3.SECH], [ig, K3.SERIESSUM], [rg, K3.SEQUENCE], [ag, K3.SIGN], [og, K3.SIN], [sg, K3.SINH], [cg, K3.SQRT], [lg, K3.SQRTPI], [dg, K3.SUBTOTAL], [fg, K3.SUM], [pg, K3.SUMIF], [mg, K3.SUMIFS], [hg, K3.SUMPRODUCT], [gg, K3.SUMSQ], [_g, K3.SUMX2MY2], [vg, K3.SUMX2PY2], [yg, K3.SUMXMY2], [bg, K3.TAN], [xg, K3.TANH], [Sg, K3.TRUNC]]; var wg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2), E3(this, `_compareType`, k3.EQUALS); } setCompareType(e29) { this._compareType = e29; } calculate(e29, t) { return e29.isError() ? e29 : t.isError() ? t : e29.compare(t, this._compareType); } }; var Tg = class e28 extends Xe2 { static create(t) { return new e28(t); } isCube() { return true; } constructor(e29) { super(``), E3(this, `_values`, []), this._values = e29; } dispose() { this._values.forEach((e29) => { e29.dispose(); }), this._values = []; } getCubeValues() { return this._values; } getCubeCount() { return this._values.length; } sum() { let e29 = R4.create(0); return this._values.forEach((t) => { e29.plus(t.sum()); }), e29; } max() { let e29 = R4.create(-1 / 0); return this._values.forEach((t) => { let n = t.max(); e29.isLessThan(n) && (e29 = n); }), e29; } min() { let e29 = R4.create(1 / 0); return this._values.forEach((t) => { let n = t.max(); e29.isGreaterThan(n) && (e29 = n); }), e29; } count() { let e29 = R4.create(0); return this._values.forEach((t) => { e29.plus(t.count()); }), e29; } countA() { let e29 = R4.create(0); return this._values.forEach((t) => { e29.plus(t.countA()); }), e29; } countBlank() { let e29 = R4.create(0); return this._values.forEach((t) => { e29.plus(t.countBlank()); }), e29; } }; var Eg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isError()) return r; if (!r.isArray()) return j3.create(D3.VALUE); t.push(r); } return Tg.create(t); } }; var Dg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { return e29.isError() ? e29 : t.isError() ? t : !t.isArray() && t.getValue() === 0 ? j3.create(D3.DIV_BY_ZERO) : e29.divided(t); } }; var Og = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { return e29.isError() ? e29 : t.isError() ? t : e29.minus(t); } }; var kg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { return e29.isError() ? e29 : t.isError() ? t : e29.multiply(t); } }; var Ag = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { return e29.isError() ? e29 : t.isError() ? t : e29.plus(t); } }; var jg = [[wg, po.COMPARE], [Dg, po.DIVIDED], [Og, po.MINUS], [kg, po.MULTIPLY], [Ag, po.PLUS], [Eg, po.CUBE]]; var Mg = /* @__PURE__ */ new Set([K3.ACOT, K3.ACOTH, K3.ARABIC, K3.BASE, K3.CEILING_MATH, K3.CEILING_PRECISE, K3.COMBINA, K3.COT, K3.COTH, K3.CSC, K3.CSCH, K3.DECIMAL, K3.FLOOR_MATH, K3.FLOOR_PRECISE, K3.MUNIT, K3.RANDARRAY, K3.SEC, K3.SECH, K3.SEQUENCE, G3.CHOOSECOLS, G3.CHOOSEROWS, G3.DROP, G3.EXPAND, G3.FILTER, G3.FORMULATEXT, G3.HSTACK, G3.SORT, G3.SORTBY, G3.TAKE, G3.TOCOL, G3.TOROW, G3.UNIQUE, G3.VSTACK, G3.WRAPCOLS, G3.WRAPROWS, G3.XLOOKUP, G3.XMATCH, U3.BITAND, U3.BITLSHIFT, U3.BITOR, U3.BITRSHIFT, U3.BITXOR, U3.ERF_PRECISE, U3.ERFC_PRECISE, U3.IMCOSH, U3.IMCOT, U3.IMCSC, U3.IMCSCH, U3.IMSEC, U3.IMSECH, U3.IMSINH, U3.IMTAN, to2.ISFORMULA, to2.SHEET, to2.SHEETS, no2.IFNA, no2.IFS, no2.SWITCH, no2.XOR, q3.BETA_DIST, q3.BETA_INV, q3.BINOM_DIST, q3.BINOM_DIST_RANGE, q3.BINOM_INV, q3.CHISQ_DIST, q3.CHISQ_DIST_RT, q3.CHISQ_INV, q3.CHISQ_INV_RT, q3.CHISQ_TEST, q3.CONFIDENCE_NORM, q3.CONFIDENCE_T, q3.COVARIANCE_P, q3.COVARIANCE_S, q3.EXPON_DIST, q3.F_DIST, q3.F_DIST_RT, q3.F_INV, q3.F_INV_RT, q3.F_TEST, q3.FORECAST_LINEAR, q3.GAMMA, q3.GAMMA_DIST, q3.GAMMA_INV, q3.GAMMALN_PRECISE, q3.GAUSS, q3.HYPGEOM_DIST, q3.LOGNORM_DIST, q3.LOGNORM_INV, q3.MAXIFS, q3.MINIFS, q3.MODE_MULT, q3.MODE_SNGL, q3.NEGBINOM_DIST, q3.NORM_DIST, q3.NORM_INV, q3.NORM_S_DIST, q3.NORM_S_INV, q3.PERCENTILE_EXC, q3.PERCENTILE_INC, q3.PERCENTRANK_EXC, q3.PERCENTRANK_INC, q3.PERMUTATIONA, q3.PHI, q3.POISSON_DIST, q3.QUARTILE_EXC, q3.QUARTILE_INC, q3.RANK_AVG, q3.RANK_EQ, q3.SKEW_P, q3.STDEV_P, q3.STDEV_S, q3.T_DIST, q3.T_DIST_2T, q3.T_DIST_RT, q3.T_INV, q3.T_INV_2T, q3.T_TEST, q3.VAR_P, q3.VAR_S, q3.WEIBULL_DIST, q3.Z_TEST, J3.ARRAYTOTEXT, ro2.ENCODEURL, J3.NUMBERVALUE, J3.TEXTAFTER, J3.TEXTBEFORE, J3.TEXTJOIN, J3.TEXTSPLIT, J3.UNICHAR, J3.UNICODE, J3.VALUETOTEXT, eo2.DAYS, eo2.ISOWEEKNUM, W3.PDURATION, W3.RRI, no2.BYCOL, no2.BYROW, no2.MAKEARRAY, no2.MAP, no2.REDUCE, no2.SCAN]); var Ng = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0), n = R4.create(0); for (let r2 = 0; r2 < e29.length; r2++) { let i2 = e29[r2]; if (i2.isString() && (i2 = i2.convertToNumberObjectValue()), i2.isError()) return i2; if (i2.isArray()) { if (i2 = Pg(i2), i2.isError()) return i2; if (e29[r2] = i2, t = t.plus(i2.sum()), t.isError()) return t; n = n.plus(i2.count()); } else i2.isNull() || (t = t.plus(i2), n = n.plus(R4.create(1))); } if (n.getValue() === 0) return j3.create(D3.NUM); let r = t.divided(n); if (r.isError()) return r; let i = R4.create(0); for (let t2 = 0; t2 < e29.length; t2++) { let n2 = e29[t2]; if (n2.isString() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return n2; if (n2.isArray()) { if (i = i.plus(n2.minus(r).abs().sum()), i.isError()) return i; } else n2.isNull() || (i = i.plus(n2.minus(r).abs())); } return i.divided(n); } }; function Pg(e29) { let t = []; t[0] = []; let n = null; return e29.iterator((e30, r, i) => { if (e30 != null && e30.isError()) return n = e30, false; e30 != null && e30.isNumber() && t[0].push(e30); }), n || Ea2(t, 1, t[0].length); } var Fg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0), n = R4.create(0); for (let r = 0; r < e29.length; r++) { let i = e29[r]; if ((i.isString() || i.isBoolean()) && (i = i.convertToNumberObjectValue()), i.isError()) return i; if (i.isArray()) { if (t = t.plus(i.sum()), t.isError()) return t; n = n.plus(i.count()); } else i.isNull() || (t = t.plus(i), n = n.plus(R4.create(1))); } return t.divided(n); } }; var Ig = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 254); } calculate(...e29) { let t = false, n; e29.length % 2 != 0 && (t = true, n = j3.create(D3.NA)); let r = [], i = []; for (let a = 0; a < e29.length; a += 2) { let o = e29[a], s = o.isArray() ? o.getRowCount() : 1, c = o.isArray() ? o.getColumnCount() : 1; for (let e30 = 0; e30 < s; e30++) for (let n2 = 0; n2 < c; n2++) { let i2 = o.isArray() ? o.get(e30, n2) : o; if (i2.isError()) return i2; if (t) continue; let a2 = i2.isNull() ? `` : i2.getValue(); r.push(a2); } if (a + 1 >= e29.length) continue; let l = e29[a + 1], u = l.isArray() ? l.getRowCount() : 1, d = l.isArray() ? l.getColumnCount() : 1; (u !== s || d !== c) && (t = true, n = j3.create(D3.VALUE)); for (let e30 = 0; e30 < u; e30++) for (let n2 = 0; n2 < d; n2++) { let r2 = l.isArray() ? l.get(e30, n2) : l; if (r2.isError()) return r2; if (t) continue; let a2 = r2.isNull() ? `` : r2.getValue(); i.push(a2); } } return t ? n : this._getResult(r, i); } _getResult(e29, t) { let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) { let n2 = e29[a2], o = t[a2]; if (!(typeof n2 != `number` && typeof o != `number`)) { if (typeof n2 != `number` || typeof o != `number` || o < 0) return j3.create(D3.VALUE); r += n2 * o, i += o; } } if (i === 0) return j3.create(D3.DIV_BY_ZERO); let a = r / i; return R4.create(a); } }; var Lg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0), n = R4.create(0); for (let r = 0; r < e29.length; r++) { let i = e29[r]; if ((i.isString() || i.isBoolean()) && (i = i.convertToNumberObjectValue()), i.isError()) return i; if (i.isArray()) { if (i.iterator((e30) => { if (e30 == null || e30.isNull()) return true; let r2 = e30; if (r2.isString() && (r2 = r2.convertToNumberObjectValue(), r2.isError() && (r2 = R4.create(0))), r2.isBoolean() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return t = r2, false; t = t.plus(r2), n = n.plus(R4.create(1)); }), t.isError()) return t; } else i.isNull() || (t = t.plus(i), n = n.plus(R4.create(1))); } return t.divided(n); } }; var Rg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { if (!e29.isReferenceObject() || n && !n.isReferenceObject()) return j3.create(D3.VALUE); let r = t; if (t.isReferenceObject() && (r = t.toArrayValueObject()), r.isArray()) { let t2 = r.mapValue((t3) => this._handleSingleObject(e29, t3, n)); return t2.getRowCount() === 1 && t2.getColumnCount() === 1 ? t2.get(0, 0) : t2; } return this._handleSingleObject(e29, r, n); } _handleSingleObject(e29, t, n) { let r = e29.toArrayValueObject(), i = Oa(r, t); i = La(i, r, t); let a = r.getRowCount(), o = r.getColumnCount(), s = r; if (n) { s = n.toArrayValueObject(); let e30 = s.getRowCount(), t2 = s.getColumnCount(); if (a !== e30 || o !== t2) { let e31 = n.getRangeData(); e31.endRow = e31.startRow + a - 1, e31.endColumn = e31.startColumn + o - 1, n.setRangeData(e31), s = n.toArrayValueObject(); } } let c = s.pick(i), l = c.sum(), u = c.count(); return l.divided(u); } }; var zg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(e29, ...t) { let { isError: n, errorObject: r, rangeIsDifferentSize: i, criteriaMaxRowLength: a, criteriaMaxColumnLength: o, targetRange: s, variants: c } = Pa(t, e29); if (n) return r; if (i) return a === 1 && o === 1 ? j3.create(D3.VALUE) : V3(a, o, j3.create(D3.VALUE)); let l = Ia2(c, { formulaName: `AVERAGEIFS`, maxRowLength: a, maxColumnLength: o, isNumberSensitive: true, targetRange: s }); return l.length === 1 && l[0].length === 1 ? l[0][0] : B3.create({ calculateValueList: l, rowCount: l.length, columnCount: l[0].length, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }); } }; var Bg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = i == null ? R4.create(0) : i, s = a == null ? R4.create(1) : a; o.isNull() && (o = R4.create(0)), s.isNull() && (s = R4.create(1)); let c = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, o.isArray() ? o.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, o.isArray() ? o.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, e29, j3.create(D3.NA)), d = V3(c, l, t, j3.create(D3.NA)), f = V3(c, l, n, j3.create(D3.NA)), p = V3(c, l, r, j3.create(D3.NA)), m = V3(c, l, o, j3.create(D3.NA)), h = V3(c, l, s, j3.create(D3.NA)), g2 = u.mapValue((e30, t2, n2) => { let r2 = d.get(t2, n2), i2 = f.get(t2, n2), a2 = p.get(t2, n2), o2 = m.get(t2, n2), s2 = h.get(t2, n2); return this._handleSingleObject(e30, r2, i2, a2, o2, s2); }); return c === 1 && l === 1 ? g2.get(0, 0) : g2; } _handleSingleObject(e29, t, n, r, i, a) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; if (r.isError()) return r; if (i.isError()) return i; if (a.isError()) return a; let { isError: o, errorObject: s, variants: c } = X3(e29, t, n, r, i, a); if (o) return s; let [l, u, d, f, p, m] = c, h = +l.getValue(), g2 = +u.getValue(), _2 = +d.getValue(), v = +f.getValue(), y = +p.getValue(), b = +m.getValue(); if (g2 <= 0 || _2 <= 0 || h < y || h > b || y === b) return j3.create(D3.NUM); let x2; return x2 = v ? ec2((h - y) / (b - y), g2, _2) : tc2((h - y) / (b - y), g2, _2) / (b - y), R4.create(x2); } }; var Vg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = r == null ? n : r; i.isNull() && (i = n); let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, t, j3.create(D3.NA)), l = V3(a, o, n, j3.create(D3.NA)), u = V3(a, o, i, j3.create(D3.NA)), d = s.mapValue((e30, t2, n2) => { let r2 = c.get(t2, n2), i2 = l.get(t2, n2), a2 = u.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return a === 1 && o === 1 ? d.get(0, 0) : d; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = Math.floor(+s.getValue()), f = +c.getValue(), p = Math.floor(+l.getValue()), m = Math.floor(+u.getValue()); if (d < 0 || f < 0 || f > 1 || p < 0 || p > d || m < 0 || m < p || m > d) return j3.create(D3.NUM); let h = 0; for (let e30 = p; e30 <= m; e30++) h += cc2(e30, d, f); return R4.create(h); } }; var Hg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = +c.getValue(); if (l < 0 || u < 1 || u > 10 ** 10) return j3.create(D3.NUM); let f; return f = d ? lc2(l, u) : uc(l, u), R4.create(f); } }; var Ug = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s < 0 || s > 1 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = dc2(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Wg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; if (i2.isError()) return i2; let { isError: a2, errorObject: c2, variants: l } = X3(e30, r2, i2); if (a2) return c2; let [u, d, f] = l, p = +u.getValue(), m = +d.getValue(), h = Math.floor(+f.getValue()); if (p <= 0 || p >= 1 || m <= 0 || h < 1) return j3.create(D3.NUM); if (h === 1) return j3.create(D3.DIV_BY_ZERO); let g2 = Math.abs(zc2(p / 2, h - 1) * m / Math.sqrt(h)); return R4.create(g2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } }; var Gg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if (n * r === 1 || i * a === 1) return o.isNull() || s.isNull() ? j3.create(D3.VALUE) : j3.create(D3.DIV_BY_ZERO); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0, c = 0, l = 0; for (let r2 = 0; r2 < n; r2++) { let n2 = e29[r2] - a, i2 = t[r2] - o; s += n2 * i2, c += n2 ** 2, l += i2 ** 2; } let u = Math.sqrt(c * l); return u === 0 ? j3.create(D3.DIV_BY_ZERO) : R4.create(s / u); } }; var Kg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; r.isError() || (r.isArray() ? t = t.plus(r.count()) : r.isString() ? r.convertToNumberObjectValue().isError() || (t = t.plus(R4.create(1))) : r.isNull() || (t = t.plus(R4.create(1)))); } return t; } }; var qg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isError()) { t = t.plus(R4.create(1)); continue; } r.isArray() ? (r = r.countA(), t = t.plus(r)) : r.isNull() || (t = t.plus(R4.create(1))); } return t; } }; var Jg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isError() ? e29 : e29.getValue() === `` || e29.isNull() ? R4.create(1) : e29.isArray() ? e29.countBlank() : R4.create(0); } }; var Yg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2), E3(this, `needsReferenceObject`, true); } calculate(e29, t) { if (!e29.isReferenceObject()) return j3.create(D3.VALUE); let n = t; if (t.isReferenceObject() && (n = t.toArrayValueObject()), n.isArray()) { let t2 = n.mapValue((t3) => this._handleSingleObject(e29, t3)); return t2.getRowCount() === 1 && t2.getColumnCount() === 1 ? t2.get(0, 0) : t2; } return this._handleSingleObject(e29, n); } _handleSingleObject(e29, t) { let n = e29.toArrayValueObject(), r = Oa(n, t); r = La(r, n, t); let i = n.pick(r); return this._countA(i); } _countA(e29) { let t = R4.create(0); return e29.iterator((e30) => { if (e30 == null) return true; t = t.plusBy(1); }), t; } }; var Xg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(...e29) { let { isError: t, errorObject: n, rangeIsDifferentSize: r, criteriaMaxRowLength: i, criteriaMaxColumnLength: a, variants: o } = Pa(e29); if (t) return n; if (r) return i === 1 && a === 1 ? j3.create(D3.VALUE) : V3(i, a, j3.create(D3.VALUE)); let s = Ia2(o, { formulaName: `COUNTIFS`, maxRowLength: i, maxColumnLength: a, isNumberSensitive: true }); return s.length === 1 && s[0].length === 1 ? s[0][0] : B3.create({ calculateValueList: s, rowCount: s.length, columnCount: s[0].length, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }); } }; var Zg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return j3.create(D3.VALUE); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { if (e29.length <= 1) return j3.create(D3.DIV_BY_ZERO); let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0; for (let r2 = 0; r2 < n; r2++) { let n2 = e29[r2] - a, i2 = t[r2] - o; s += n2 * i2; } return R4.create(s / (n - 1)); } }; var Qg = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = [], n = 0, r = true; for (let i2 = 0; i2 < e29.length; i2++) { let a2 = e29[i2]; if (a2.isArray()) { let e30 = false, i3 = j3.create(D3.VALUE); if (a2.iterator((a3) => { let o = this._handleSingleObject(a3); if (o.isError()) return e30 = true, i3 = o, false; if (o.isNull()) return true; let s = o.getValue(); t.push(s), n += s, r = false; }), e30) return i3; } else { let e30 = this._handleSingleObject(a2); if (e30.isError()) return e30; if (e30.isNull()) continue; let i3 = e30.getValue(); t.push(i3), n += i3, r = false; } } if (r) return j3.create(D3.NUM); let i = n / t.length, a = 0; for (let e30 = 0; e30 < t.length; e30++) a += (t[e30] - i) ** 2; return R4.create(a); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull() || e29.isBoolean()) return I3.create(); let t = e29.getValue(); return Ja(t) ? R4.create(+t) : I3.create(); } }; var $g = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = +s.getValue(), f = Math.floor(+c.getValue()), p = Math.floor(+l.getValue()), m = +u.getValue(); if (d < 0 || f < 1 || f > 10 ** 10 || p < 1 || p > 10 ** 10) return j3.create(D3.NUM); let h; return h = m ? fc2(d, f, p) : pc2(d, f, p), Number.isNaN(h) || !Number.isFinite(h) ? j3.create(D3.NUM) : R4.create(h); } }; var e_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = Math.floor(+c.getValue()); if (l < 0 || l > 1 || u < 1 || u > 10 ** 10 || d < 1 || d > 10 ** 10) return j3.create(D3.NUM); let f = mc2(l, u, d); return Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var t_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = i.getValue(); if (a <= -1 || a >= 1) return j3.create(D3.NUM); let o = Math.log((1 + a) / (1 - a)) / 2; return R4.create(o); } }; var n_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { return e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(), o = Math.exp(2 * a) - 1, s = Math.exp(2 * a) + 1; return !Number.isFinite(o) && o > 0 && !Number.isFinite(s) && s > 0 ? R4.create(1) : R4.create(o / s); } }; var r_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t.isArray() ? t.getRowCount() : 1, i = t.isArray() ? t.getColumnCount() : 1, a = n.isArray() ? n.getRowCount() : 1, o = n.isArray() ? n.getColumnCount() : 1, s = t; t.isArray() && r === 1 && i === 1 && (s = t.get(0, 0)); let c = n; return n.isArray() && a === 1 && o === 1 && (c = n.get(0, 0)), e29.isArray() ? e29.mapValue((e30) => this._handleSingleObject(e30, s, c, r, i, a, o)) : this._handleSingleObject(e29, s, c, r, i, a, o); } _handleSingleObject(e29, t, n, r, i, a, o) { if (e29.isError()) return e29; if (t.isError()) return t; if (n.isError()) return n; let s = e29; if (e29.isString() && (s = e29.convertToNumberObjectValue()), s.isError()) return s; let c = +s.getValue(); if ((r * i === 1 || a * o === 1) && (t.isNull() || n.isNull())) return j3.create(D3.VALUE); if (r * i !== a * o) return j3.create(D3.NA); let { isError: l, errorObject: u, array1Values: d, array2Values: f, noCalculate: p } = Bc2(t, n, r * i, i, o); if (l) return u; if (p) return j3.create(D3.DIV_BY_ZERO); let m = _c2(c, d, f); return Number.isFinite(m) ? R4.create(m) : j3.create(D3.DIV_BY_ZERO); } }; var i_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, values: i } = this._getValues(e29); if (n) return r; if (e29.isNull() || t.isNull()) return j3.create(D3.VALUE); let { values: a } = this._getValues(t, true); a.length === 0 && (a = [0]); let o = this._getNewBinsArrayValues(a), s = Array(o.length).fill(0); for (let e30 = 0; e30 < i.length; e30++) { let t2 = i[e30], n2 = o.findIndex((e31) => t2 > e31.start && t2 <= e31.end); s[n2]++; } return B3.createByArray(s.map((e30) => [e30])); } _getValues(e29, t = false) { let n = [], r = e29.isArray() ? e29.getRowCount() : 1, i = e29.isArray() ? e29.getColumnCount() : 1; for (let a = 0; a < r; a++) for (let r2 = 0; r2 < i; r2++) { let i2 = e29.isArray() ? e29.get(a, r2) : e29; if (i2.isError()) { if (!t) return { isError: true, errorObject: i2, values: n }; continue; } if (i2.isNull() || i2.isBoolean()) continue; let o = i2.getValue(); Ja(o) && n.push(+o); } return { isError: false, errorObject: null, values: n }; } _getNewBinsArrayValues(e29) { let t = e29.map((e30, t2) => ({ value: e30, index: t2 })).sort((e30, t2) => e30.value - t2.value), n = []; for (let e30 = 0; e30 < t.length; e30++) { let r = t[e30].index; if (e30 === 0) { n[r] = { start: -1 / 0, end: t[e30].value }; continue; } n[r] = { start: t[e30 - 1].value, end: t[e30].value }; } return n.push({ start: t[t.length - 1].value, end: 1 / 0 }), n; } }; var a_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (a === 0 || a < 0 && a % 1 == 0) return j3.create(D3.NUM); let o = vc2(a); return Number.isNaN(o) || !Number.isFinite(o) ? j3.create(D3.NUM) : R4.create(o); } }; var o_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(); if (a <= 0) return j3.create(D3.NUM); let o = Sc2(a); return Math.abs(o) < 1e-15 ? R4.create(0) : R4.create(o); } }; var s_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = Mc2(+i.getValue(), 0, 1) - 0.5; return R4.create(a); } }; var c_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 1, n = 0, r = false; for (let i2 = 0; i2 < e29.length; i2++) { let a = e29[i2]; if (a.isArray()) { let e30 = false, i3 = j3.create(D3.VALUE); if (a.iterator((a2) => { if (a2 != null && a2.isError()) return e30 = true, i3 = a2, false; if (a2 != null && a2.isNull() || a2 != null && a2.isBoolean()) return true; let o = a2.getValue(); if (!Ja(o)) return true; +o <= 0 && (r = true), t *= +o, n++; }), e30) return i3; } else { if (a.isError()) return a; if (a.isString()) { let e31 = a.convertToNumberObjectValue(); if (e31.isError()) return e31; } if (a.isNull() || a.isBoolean()) continue; let e30 = a.getValue(); if (!Ja(e30)) continue; +e30 <= 0 && (r = true), t *= +e30, n++; } } if (n === 0 || r) return j3.create(D3.NUM); let i = t ** (1 / n); return R4.create(i); } }; var l_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a } = Vc2(e29, t, n); if (i) return a; let o = Hc2(e29); if (o instanceof j3) return o; let s = this._getKnownXsValues(o, t); if (s instanceof j3) return s; let c = this._getNewXsValues(s, n); if (c instanceof j3) return c; let l = r == null ? L3.create(true) : r; if (l.isArray() && (l = l.get(0, 0)), l.isString() && (l = l.convertToNumberObjectValue()), l.isError()) return l; let u = +l.getValue(); return this._getResult(o, s, c, u); } _getResult(e29, t, n, r) { return e29.length === 1 && t.length > 1 || e29[0].length === 1 && t[0].length > 1 ? e29.length === 1 && t.length > 1 && (r ? t.length + 1 : t.length) > e29[0].length || e29[0].length === 1 && t[0].length > 1 && (r ? t[0].length + 1 : t[0].length) > e29.length ? j3.create(D3.NA) : this._getResultByMultipleVariables(e29, t, n, r) : this._getResultBySimpleVariables(e29, t, n, r); } _getResultByMultipleVariables(e29, t, n, r) { let i = e29.length === 1 && e29[0].length > 1, a = qc2(e29, t, n, r, true); if (a instanceof j3) return a; let { coefficients: o, newX: s } = a, c = o[0].length, l = o[0][c - 1], u = []; for (let e30 = 0; e30 < s.length; e30++) { u[e30] = []; let t2 = l; for (let n2 = c - 2; n2 >= 0; n2--) t2 *= o[0][c - 2 - n2] ** s[e30][n2]; u[e30].push(t2); } return i && (u = Vs(u)), B3.createByArray(u); } _getResultBySimpleVariables(e29, t, n, r) { let i = e29.flat(), { slope: a, intercept: o } = Wc2(t.flat(), i, r, true), s = n.map((e30) => e30.map((e31) => o * a ** e31)); return B3.createByArray(s); } _getKnownXsValues(e29, t) { return !t || t.isNull() ? Uc2(e29.length, e29[0].length) : Hc2(t); } _getNewXsValues(e29, t) { return !t || t.isNull() ? e29 : Hc2(t); } }; var u_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 0, n = 0, r = false; for (let i2 = 0; i2 < e29.length; i2++) { let a = e29[i2]; if (a.isArray()) { let e30 = false, i3 = j3.create(D3.VALUE); if (a.iterator((a2) => { if (a2 != null && a2.isError()) return e30 = true, i3 = a2, false; if (a2 != null && a2.isNull() || a2 != null && a2.isBoolean()) return true; let o = a2.getValue(); if (!Ja(o)) return true; +o <= 0 && (r = true), t += 1 / o, n++; }), e30) return i3; } else { if (a.isError()) return a; if (a.isString()) { let e31 = a.convertToNumberObjectValue(); if (e31.isError()) return e31; } if (a.isNull() || a.isBoolean()) continue; let e30 = a.getValue(); if (!Ja(e30)) continue; +e30 <= 0 && (r = true), t += 1 / e30, n++; } } if (n === 0) return j3.create(D3.NA); if (r) return j3.create(D3.NUM); let i = n / t; return R4.create(i); } }; var d_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 5), E3(this, `maxParams`, 5); } calculate(e29, t, n, r, i) { let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, t, j3.create(D3.NA)), l = V3(a, o, n, j3.create(D3.NA)), u = V3(a, o, r, j3.create(D3.NA)), d = V3(a, o, i, j3.create(D3.NA)), f = s.mapValue((e30, t2, n2) => { let r2 = c.get(t2, n2), i2 = l.get(t2, n2), a2 = u.get(t2, n2), o2 = d.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : o2.isError() ? o2 : this._handleSingleObject(e30, r2, i2, a2, o2); }); return a === 1 && o === 1 ? f.get(0, 0) : f; } _handleSingleObject(e29, t, n, r, i) { let { isError: a, errorObject: o, variants: s } = X3(e29, t, n, r, i); if (a) return o; let [c, l, u, d, f] = s, p = Math.floor(+c.getValue()), m = Math.floor(+l.getValue()), h = Math.floor(+u.getValue()), g2 = Math.floor(+d.getValue()), _2 = +f.getValue(); if (p < 0 || p > m || p > h || p < m - g2 + h || m <= 0 || m > g2 || h <= 0 || h > g2 || g2 <= 0) return j3.create(D3.NUM); let v; return v = _2 ? Tc2(p, m, h, g2) : Ec2(p, m, h, g2), Number.isNaN(v) && (v = 0), R4.create(v); } }; var f_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if (n * r === 1 || i * a === 1) return o.isNull() || s.isNull() ? j3.create(D3.VALUE) : j3.create(D3.DIV_BY_ZERO); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { let n = _c2(0, e29, t); return Number.isFinite(n) ? R4.create(n) : j3.create(D3.DIV_BY_ZERO); } }; var p_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = [], n = 0; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; if (i.isString()) { let e30 = i.convertToNumberObjectValue(); if (e30.isError()) return e30; } let a = i.isArray() ? i.getRowCount() : 1, o = i.isArray() ? i.getColumnCount() : 1; for (let e30 = 0; e30 < a; e30++) for (let r2 = 0; r2 < o; r2++) { let a2 = i.isArray() ? i.get(e30, r2) : i; if (a2.isError()) return a2; if (a2.isNull() || a2.isBoolean()) continue; let o2 = a2.getValue(); Ja(o2) && (t.push(+o2), n += +o2); } } return t.length <= 3 ? j3.create(D3.DIV_BY_ZERO) : this._getResult(t, n); } _getResult(e29, t) { let n = e29.length, r = t / n, i = 0; for (let t2 = 0; t2 < n; t2++) i += (e29[t2] - r) ** 2; let a = Math.sqrt(i / (n - 1)); if (a === 0) return j3.create(D3.DIV_BY_ZERO); let o = 0; for (let t2 = 0; t2 < n; t2++) o += ((e29[t2] - r) / a) ** 4; let s = n * (n + 1) / ((n - 1) * (n - 2) * (n - 3)) * o - 3 * (n - 1) ** 2 / ((n - 2) * (n - 3)); return R4.create(s); } }; var m_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return tl2(e29, +a.getValue()); } }; var h_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a } = Vc2(e29, t); if (i) return a; let o = Hc2(e29); if (o instanceof j3) return o; let s = this._getKnownXsValues(o, t); if (s instanceof j3) return s; let c = n == null ? L3.create(true) : n; c.isArray() && (c = c.get(0, 0)); let l = r == null ? L3.create(false) : r; l.isArray() && (l = l.get(0, 0)); let { isError: u, errorObject: d, variants: f } = X3(c, l); if (u) return d; let [p, m] = f; return this._getResult(o, s, +p.getValue(), +m.getValue()); } _getResult(e29, t, n, r) { return e29.length === 1 && t.length > 1 || e29[0].length === 1 && t[0].length > 1 ? e29.length === 1 && t.length > 1 && (n ? t.length + 1 : t.length) > e29[0].length || e29[0].length === 1 && t[0].length > 1 && (n ? t[0].length + 1 : t[0].length) > e29.length ? j3.create(D3.NA) : this._getResultByMultipleVariables(e29, t, n, r) : this._getResultBySimpleVariables(e29, t, n, r); } _getResultByMultipleVariables(e29, t, n, r) { let i = qc2(e29, t, t, n, false); if (i instanceof j3) return i; let { coefficients: a, X: o, XTXInverse: s } = i, c = []; if (r) { let t2 = e29.flat(), r2 = t2.length, i2 = n ? t2.reduce((e30, t3) => e30 + t3, 0) / r2 : 0, l = s.length, u = r2 - l, d = a[0].length, f = Array(d - 2).fill(D3.NA), p = a[0][d - 1], m = []; for (let e30 = 0; e30 < o.length; e30++) { let t3 = p; for (let n2 = d - 2; n2 >= 0; n2--) t3 += a[0][d - 2 - n2] * o[e30][n2]; m.push(t3); } let h = 0, g2 = 0; for (let e30 = 0; e30 < r2; e30++) h += (t2[e30] - i2) ** 2, g2 += (t2[e30] - m[e30]) ** 2; let _2 = h - g2, v = h === 0 ? 0 : _2 / h, y = []; for (let e30 = l - 1; e30 >= 0; e30--) { let t3 = u > 0 ? Math.sqrt(g2 / u * s[e30][e30]) : 0; y.push(t3); } if (n) { let e30 = y.shift(); y.push(e30); } else y.push(D3.NA); let b = u > 0 ? Math.sqrt(g2 / u) : 0, x2 = u > 0 ? _2 / (d - 1) / (g2 / u) : D3.NUM; c = [a[0], [...y], [v, b, ...f], [x2, u, ...f], [_2, g2, ...f]]; } else c = [a[0]]; return B3.createByArray(c); } _getResultBySimpleVariables(e29, t, n, r) { let i = e29.flat(), a = t.flat(), { slope: o, intercept: s } = Wc2(a, i, n, false); if (Number.isNaN(o)) return j3.create(D3.NA); let c = []; if (r) { let e30 = i.length, t2 = 0, r2 = 0, l = e30 - 1; if (n) { let n2 = 0, o2 = 0; for (let t3 = 0; t3 < e30; t3++) n2 += i[t3], o2 += a[t3]; t2 = n2 / e30, r2 = o2 / e30, l = e30 - 2; } let u = 0, d = 0, f = 0; for (let n2 = 0; n2 < e30; n2++) u += (i[n2] - t2) ** 2, d += (i[n2] - (o * a[n2] + s)) ** 2, f += (a[n2] - r2) ** 2; let p = u - d, m = p === u ? 1 : p / u, h = 0, g2 = 0, _2 = 0; l > 0 && (f > 0 && (h = Math.sqrt(d / l / f), g2 = Math.sqrt(d / l * (1 / e30 + r2 ** 2 / f))), _2 = Math.sqrt(d / l)); let v = l > 0 ? p / 1 / (d / l) : D3.NUM; n || (g2 = D3.NA), c = [[o, s], [h, g2], [m, _2], [v, l], [p, d]]; } else c = [[o, s]]; return B3.createByArray(c); } _getKnownXsValues(e29, t) { return !t || t.isNull() ? Uc2(e29.length, e29[0].length) : Hc2(t); } }; var g_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a } = Vc2(e29, t); if (i) return a; let o = Hc2(e29); if (o instanceof j3) return o; let s = this._getKnownXsValues(o, t); if (s instanceof j3) return s; let c = n == null ? L3.create(true) : n; c.isArray() && (c = c.get(0, 0)); let l = r == null ? L3.create(false) : r; l.isArray() && (l = l.get(0, 0)); let { isError: u, errorObject: d, variants: f } = X3(c, l); if (u) return d; let [p, m] = f; return this._getResult(o, s, +p.getValue(), +m.getValue()); } _getResult(e29, t, n, r) { return e29.length === 1 && t.length > 1 || e29[0].length === 1 && t[0].length > 1 ? e29.length === 1 && t.length > 1 && (n ? t.length + 1 : t.length) > e29[0].length || e29[0].length === 1 && t[0].length > 1 && (n ? t[0].length + 1 : t[0].length) > e29.length ? j3.create(D3.NA) : this._getResultByMultipleVariables(e29, t, n, r) : this._getResultBySimpleVariables(e29, t, n, r); } _getResultByMultipleVariables(e29, t, n, r) { let i = qc2(e29, t, t, n, true); if (i instanceof j3) return i; let { coefficients: a, Y: o, X: s, XTXInverse: c } = i, l = []; if (r) { let e30 = o.flat(), t2 = e30.length, r2 = n ? e30.reduce((e31, t3) => e31 + t3, 0) / t2 : 0, i2 = c.length, u = t2 - i2, d = a[0].length, f = Array(d - 2).fill(D3.NA), p = a[0][d - 1], m = []; for (let e31 = 0; e31 < s.length; e31++) { let t3 = p; for (let n2 = d - 2; n2 >= 0; n2--) t3 *= a[0][d - 2 - n2] ** s[e31][n2]; m.push(Math.log(t3)); } let h = 0, g2 = 0; for (let i3 = 0; i3 < t2; i3++) h += (e30[i3] - r2) ** 2, !(!n && !Number.isFinite(m[i3])) && (g2 += (e30[i3] - m[i3]) ** 2); Number.isFinite(g2) || (g2 = 0); let _2 = h - g2, v = h === 0 ? 0 : _2 / h, y = []; for (let e31 = i2 - 1; e31 >= 0; e31--) { let t3 = u > 0 ? Math.sqrt(g2 / u * c[e31][e31]) : 0; y.push(t3); } if (n) { let e31 = y.shift(); y.push(e31); } else y.push(D3.NA); let b = u > 0 ? Math.sqrt(g2 / u) : 0, x2 = u > 0 ? _2 / (d - 1) / (g2 / u) : D3.NUM; l = [a[0], [...y], [v, b, ...f], [x2, u, ...f], [_2, g2, ...f]]; } else l = [a[0]]; return B3.createByArray(l); } _getResultBySimpleVariables(e29, t, n, r) { let i = e29.flat(), a = t.flat(), { slope: o, intercept: s, Y: c } = Wc2(a, i, n, true); if (Number.isNaN(o)) return j3.create(D3.NA); let l = []; if (r) { let e30 = c.length, t2 = 0, r2 = 0, i2 = e30 - 1; if (n) { let n2 = 0, o2 = 0; for (let t3 = 0; t3 < e30; t3++) n2 += c[t3], o2 += a[t3]; t2 = n2 / e30, r2 = o2 / e30, i2 = e30 - 2; } let u = 0, d = 0, f = 0; for (let n2 = 0; n2 < e30; n2++) u += (c[n2] - t2) ** 2, d += (c[n2] - Math.log(s * o ** a[n2])) ** 2, f += (a[n2] - r2) ** 2; let p = u - d, m = u === 0 ? 0 : p / u, h = 0, g2 = 0, _2 = 0, v = 0; i2 > 0 && (f > 0 && (h = Math.sqrt(d / i2 / f), g2 = Math.sqrt(d / i2 * (1 / e30 + r2 ** 2 / f))), _2 = Math.sqrt(d / i2), v = p / 1 / (d / i2)), n || (g2 = D3.NA), l = [[o, s], [h, g2], [m, _2], [v, i2], [p, d]]; } else l = [[o, s]]; return B3.createByArray(l); } _getKnownXsValues(e29, t) { return !t || t.isNull() ? Uc2(e29.length, e29[0].length) : Hc2(t); } }; var __ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = +s.getValue(), f = +c.getValue(), p = +l.getValue(), m = +u.getValue(); if (d <= 0 || p <= 0) return j3.create(D3.NUM); let h; return h = m ? Dc2(d, f, p) : Oc2(d, f, p), R4.create(h); } }; var v_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = this._getRangeValues(e29); if (n instanceof j3) return n; let r = vs2(t); if (r.isError()) return r; let { isError: i, errorObject: a, variants: o } = X3(r); if (i) return a; let [s] = o, c = +s.getValue(); if (c <= 0 || c >= 1) return j3.create(D3.NUM); if (n.length < 2) return j3.create(D3.DIV_BY_ZERO); let l = 1 - c, u = n.length, d = n.reduce((e30, t2) => e30 + t2, 0) / u, f = n.reduce((e30, t2) => e30 + (t2 - d) ** 2, 0) / (u - 1), p = Math.sqrt(f); if (p <= 0) return j3.create(D3.NUM); let m = Math.abs(zc2(l / 2, u - 1) * p / Math.sqrt(u)); return R4.create(m); } _getRangeValues(e29) { let t = [], n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1; for (let i = 0; i < n; i++) for (let n2 = 0; n2 < r; n2++) { let r2 = e29.isArray() ? e29.get(i, n2) : e29; if (r2.isError()) return r2; r2.isNull() || r2.isBoolean() || r2.isString() || t.push(+r2.getValue()); } return t; } }; var y_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(-1 / 0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (!r.isNull()) { if ((r.isString() || r.isBoolean()) && (r = r.convertToNumberObjectValue()), r.isArray() && (r = r.max()), r.isError()) return r; t = this._validator(t, r); } } return t.getValue() === -1 / 0 ? R4.create(0) : t; } _validator(e29, t) { let n = e29.isLessThan(t), r = e29; return n.getValue() && (r = t), r; } }; var b_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(-1 / 0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (!r.isNull()) { if ((r.isString() || r.isBoolean()) && (r = r.convertToNumberObjectValue()), r.isError()) return r; if (r.isArray() && r.iterator((e30) => { let n2 = e30; if ((n2 == null || n2.isNull() || n2.isString()) && (n2 = R4.create(0)), n2.isBoolean() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return t = n2, false; t = this._validator(t, n2); }), t.isError()) return t; t = this._validator(t, r); } } return t.getValue() === -1 / 0 ? R4.create(0) : t; } _validator(e29, t) { let n = e29.isLessThan(t), r = e29; return n.getValue() && (r = t), r; } }; var x_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(e29, ...t) { let { isError: n, errorObject: r, rangeIsDifferentSize: i, criteriaMaxRowLength: a, criteriaMaxColumnLength: o, targetRange: s, variants: c } = Pa(t, e29); if (n) return r; if (i) return a === 1 && o === 1 ? j3.create(D3.VALUE) : V3(a, o, j3.create(D3.VALUE)); let l = Ia2(c, { formulaName: `MAXIFS`, maxRowLength: a, maxColumnLength: o, isNumberSensitive: true, targetRange: s }); return l.length === 1 && l[0].length === 1 ? l[0][0] : B3.create({ calculateValueList: l, rowCount: l.length, columnCount: l[0].length, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }); } }; var S_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isArray()) { let e30 = false, n2 = j3.create(D3.VALUE); if (r.iterator((r2) => { if (r2 != null && r2.isError()) return e30 = true, n2 = r2, false; if (r2 != null && r2.isNull() || r2 != null && r2.isBoolean()) return true; let i = r2.getValue(); if (!Ja(i)) return true; t.push(+i); }), e30) return n2; } else { if (r.isError()) return r; if (r.isNull() || r.isBoolean()) continue; if (r.isString()) { let e31 = r.convertToNumberObjectValue(); if (e31.isError()) return e31; } let e30 = r.getValue(); if (!Ja(e30)) continue; t.push(+e30); } } return t.length === 0 ? j3.create(D3.NUM) : el2(t); } }; var C_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(1 / 0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (!r.isNull()) { if ((r.isString() || r.isBoolean()) && (r = r.convertToNumberObjectValue()), r.isArray() && (r = r.min()), r.isError()) return r; t = this._validator(t, r); } } return t.getValue() === 1 / 0 ? R4.create(0) : t; } _validator(e29, t) { let n = e29.isGreaterThan(t), r = e29; return n.getValue() && (r = t), r; } }; var w_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = R4.create(1 / 0); for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (!r.isNull()) { if ((r.isString() || r.isBoolean()) && (r = r.convertToNumberObjectValue()), r.isError()) return r; if (r.isArray() && r.iterator((e30) => { let n2 = e30; if ((n2 == null || n2.isNull() || n2.isString()) && (n2 = R4.create(0)), n2.isBoolean() && (n2 = n2.convertToNumberObjectValue()), n2.isError()) return t = n2, false; t = this._validator(t, n2); }), t.isError()) return t; t = this._validator(t, r); } } return t.getValue() === 1 / 0 ? R4.create(0) : t; } _validator(e29, t) { let n = e29.isGreaterThan(t), r = e29; return n.getValue() && (r = t), r; } }; var T_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255), E3(this, `needsReferenceObject`, true); } calculate(e29, ...t) { let { isError: n, errorObject: r, rangeIsDifferentSize: i, criteriaMaxRowLength: a, criteriaMaxColumnLength: o, targetRange: s, variants: c } = Pa(t, e29); if (n) return r; if (i) return a === 1 && o === 1 ? j3.create(D3.VALUE) : V3(a, o, j3.create(D3.VALUE)); let l = Ia2(c, { formulaName: `MINIFS`, maxRowLength: a, maxColumnLength: o, isNumberSensitive: true, targetRange: s }); return l.length === 1 && l[0].length === 1 ? l[0][0] : B3.create({ calculateValueList: l, rowCount: l.length, columnCount: l[0].length, unitId: this.unitId || ``, sheetId: this.subUnitId || ``, row: this.row, column: this.column }); } }; var E_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = {}, n = 0, r = 1; for (let i = 0; i < e29.length; i++) { let a = e29[i]; if (a.isError()) return a; if (a.isString()) { let e30 = a.convertToNumberObjectValue(); if (e30.isError()) return e30; } let o = a.isArray() ? a.getRowCount() : 1, s = a.isArray() ? a.getColumnCount() : 1; for (let e30 = 0; e30 < o; e30++) for (let i2 = 0; i2 < s; i2++) { let o2 = a.isArray() ? a.get(e30, i2) : a; if (o2.isError()) return o2; if (o2.isNull() || o2.isBoolean() || o2.isString()) continue; let s2 = o2.getValue(); Ja(s2) && (t[+s2] ? (t[+s2].count++, t[+s2].count > r && (r = t[+s2].count)) : t[+s2] = { count: 1, order: n++ }); } } return n === 0 || r === 1 ? new j3(D3.NA) : this._getResult(t, r); } _getResult(e29, t) { let n = Object.entries(e29).filter(([e30, { count: n2 }]) => n2 === t).sort((e30, t2) => e30[1].order - t2[1].order).map(([e30]) => +e30); return n.length === 1 ? R4.create(n[0]) : B3.createByArray(n.map((e30) => [e30])); } }; var D_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(e29, t, n, r); if (i) return a; let [s, c, l, u] = o, d = Math.floor(+s.getValue()), f = Math.floor(+c.getValue()), p = +l.getValue(), m = +u.getValue(); if (d < 0 || f < 1 || p <= 0 || p >= 1) return j3.create(D3.NUM); let h; return h = m ? Ac2(d, f, p) : jc2(d, f, p), R4.create(h); } }; var O_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = +o.getValue(), l; return l = c ? Mc2(s, 0, 1) : Nc2(s, 0, 1), R4.create(l); } }; var k_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if (n * r === 1 || i * a === 1) return o.isNull() || s.isNull() ? j3.create(D3.VALUE) : j3.create(D3.DIV_BY_ZERO); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0, c = 0, l = 0; for (let r2 = 0; r2 < n; r2++) s += (e29[r2] - a) * (t[r2] - o), c += (e29[r2] - a) ** 2, l += (t[r2] - o) ** 2; if (c === 0 || l === 0) return j3.create(D3.DIV_BY_ZERO); let u = s / Math.sqrt(c * l); return R4.create(u); } }; var A_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return il2(e29, +a.getValue()); } }; var j_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = this._getValues(e29), i = n == null ? R4.create(3) : n; i.isNull() && (i = R4.create(3)); let a = Math.max(t.isArray() ? t.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(t.isArray() ? t.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, t, j3.create(D3.NA)), c = V3(a, o, i, j3.create(D3.NA)), l = s.mapValue((e30, t2, n2) => { let i2 = c.get(t2, n2); return e30.isError() ? e30 : i2.isError() ? i2 : this._handleSingleObject(r, e30, i2); }); return a === 1 && o === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { if (e29 instanceof j3) return e29; let { isError: r, errorObject: i, variants: a } = X3(t, n); if (r) return i; let [o, s] = a, c = +o.getValue(), l = Math.floor(+s.getValue()), u = e29.length; if (u === 0 || c < e29[0] || c > e29[u - 1]) return j3.create(D3.NA); if (u === 1) return c === e29[0] ? R4.create(1) : j3.create(D3.NA); let d = 0, f = false, p = 0; for (; !f && p < u; ) c === e29[p] ? (d = (p + 1) / (u + 1), f = true) : c > e29[p] && p + 1 < u && c < e29[p + 1] && (d = (p + 1 + (c - e29[p]) / (e29[p + 1] - e29[p])) / (u + 1), f = true), p++; return f ? l < 1 ? j3.create(D3.NUM) : (d = Ki2(d, l), R4.create(d)) : j3.create(D3.NA); } _getValues(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i = 0; i < t; i++) for (let t2 = 0; t2 < n; t2++) { let n2 = e29.isArray() ? e29.get(i, t2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) continue; let a = n2.getValue(); Ja(a) && r.push(+a); } return r.sort((e30, t2) => e30 - t2); } }; var M_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; let { isError: i2, errorObject: o2, variants: s } = X3(e30, r2); if (i2) return o2; let [c, l] = s, u = Math.floor(+c.getValue()), d = Math.floor(+l.getValue()); if (u < 0 || u >= 2147483647 || d < 0 || u < d) return j3.create(D3.NUM); let f = 1; for (let e31 = u - d + 1; e31 <= u; e31++) f *= e31; return Number.isFinite(f) ? R4.create(f) : j3.create(D3.NUM); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var N_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); if (e30.isError()) return e30; if (r2.isError()) return r2; let { isError: i2, errorObject: o2, variants: s } = X3(e30, r2); if (i2) return o2; let [c, l] = s, u = Math.floor(+c.getValue()), d = Math.floor(+l.getValue()); if (u < 0 || u >= 2147483647 || d < 0) return j3.create(D3.NUM); if (u === 0) return d === 0 ? R4.create(1) : R4.create(0); let f = u ** d; return Number.isFinite(f) ? R4.create(f) : j3.create(D3.NUM); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var P_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(), o = Math.exp(-0.5 * a * a) / Math.sqrt(2 * Math.PI); return R4.create(o); } }; var F_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a, xRangeValues: o, probRangeValues: s } = this._handleXRangeAndProbRange(e29, t), c = r == null ? n : r; r != null && r.isNull() && (c = n); let l = Math.max(n.isArray() ? n.getRowCount() : 1, c.isArray() ? c.getRowCount() : 1), u = Math.max(n.isArray() ? n.getColumnCount() : 1, c.isArray() ? c.getColumnCount() : 1), d = V3(l, u, n, j3.create(D3.NA)), f = V3(l, u, c, j3.create(D3.NA)), p = d.mapValue((n2, r2, c2) => { let l2 = f.get(r2, c2); return e29.isError() ? e29 : t.isError() ? t : n2.isError() ? n2 : l2.isError() ? l2 : i ? a : this._handleSingleObject(o, s, n2, l2); }); return l === 1 && u === 1 ? p.get(0, 0) : p; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(n, r); if (i) return a; let [s, c] = o, l = +s.getValue(), u = +c.getValue(); if (t.reduce((e30, t2) => e30 + t2, 0) !== 1) return j3.create(D3.NUM); let d = 0; for (let n2 = 0; n2 < e29.length; n2++) e29[n2] >= l && e29[n2] <= u && (d += t[n2]); return R4.create(d); } _handleXRangeAndProbRange(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return { isError: true, errorObject: o, xRangeValues: [], probRangeValues: [] }; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return { isError: true, errorObject: s, xRangeValues: [], probRangeValues: [] }; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return { isError: true, errorObject: j3.create(D3.VALUE), xRangeValues: [], probRangeValues: [] }; if (n * r !== i * a) return { isError: true, errorObject: j3.create(D3.NA), xRangeValues: [], probRangeValues: [] }; let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? { isError: true, errorObject: l, xRangeValues: [], probRangeValues: [] } : f ? { isError: true, errorObject: j3.create(D3.DIV_BY_ZERO), xRangeValues: [], probRangeValues: [] } : { isError: false, errorObject: null, xRangeValues: u, probRangeValues: d }; } }; var I_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return ol(e29, Math.floor(+a.getValue())); } }; var L_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { let r = e29; r.isReferenceObject() && (r = r.toArrayValueObject()); let { refHasError: i, refErrorObject: a, refNumbers: o } = this._checkRefReferenceObject(t), s = n == null ? R4.create(0) : n; s.isReferenceObject() && (s = s.toArrayValueObject()); let c = Math.max(r.isArray() ? r.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(r.isArray() ? r.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, r, j3.create(D3.NA)), d = V3(c, l, s, j3.create(D3.NA)), f = u.map((t2, n2, r2) => { let s2 = d.get(n2, r2); if (!e29.isReferenceObject() && e29.isNull()) return j3.create(D3.NA); if (i) return a; if (s2.isError()) return s2; let c2 = +t2.getValue(), l2 = +s2.getValue(); return Number.isNaN(c2) || Number.isNaN(l2) ? j3.create(D3.VALUE) : this._getResult(c2, l2, o); }); return c === 1 && l === 1 ? f.get(0, 0) : f; } _getResult(e29, t, n) { let r = n.sort((e30, n2) => t ? e30 - n2 : n2 - e30), i = r.indexOf(e29), a = []; for (; i >= 0; ) { let t2 = i + 1; a.push(t2), i = r.indexOf(e29, t2); } if (a.length === 0) return j3.create(D3.NA); let o = a.reduce((e30, t2) => e30 + t2, 0) / a.length; return R4.create(o); } _checkRefReferenceObject(e29) { let t = false, n = j3.create(D3.NA), r = []; return e29.isReferenceObject() ? (e29.toArrayValueObject().iterator((e30) => { let i = e30; if (i.isError()) return t = true, n = i, false; if (i.isNull() || i.isBoolean()) return true; let a = +i.getValue(); if (Number.isNaN(a)) return true; r.push(a); }), { refHasError: t, refErrorObject: n, refNumbers: r }) : { refHasError: true, refErrorObject: n, refNumbers: r }; } }; var R_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3), E3(this, `needsReferenceObject`, true); } calculate(e29, t, n) { let r = e29; r.isReferenceObject() && (r = r.toArrayValueObject()); let { refHasError: i, refErrorObject: a, refNumbers: o } = this._checkRefReferenceObject(t), s = n == null ? R4.create(0) : n; s.isReferenceObject() && (s = s.toArrayValueObject()); let c = Math.max(r.isArray() ? r.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1), l = Math.max(r.isArray() ? r.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1), u = V3(c, l, r, j3.create(D3.NA)), d = V3(c, l, s, j3.create(D3.NA)), f = u.map((t2, n2, r2) => { let s2 = d.get(n2, r2); if (!e29.isReferenceObject() && e29.isNull()) return j3.create(D3.NA); if (i) return a; if (s2.isError()) return s2; let c2 = +t2.getValue(), l2 = +s2.getValue(); if (Number.isNaN(c2) || Number.isNaN(l2)) return j3.create(D3.VALUE); let u2 = o.sort((e30, t3) => l2 ? e30 - t3 : t3 - e30).indexOf(c2); return u2 === -1 ? j3.create(D3.NA) : R4.create(u2 + 1); }); return c === 1 && l === 1 ? f.get(0, 0) : f; } _checkRefReferenceObject(e29) { let t = false, n = j3.create(D3.NA), r = []; return e29.isReferenceObject() ? (e29.toArrayValueObject().iterator((e30) => { let i = e30; if (i.isError()) return t = true, n = i, false; if (i.isNull() || i.isBoolean()) return true; let a = +i.getValue(); if (Number.isNaN(a)) return true; r.push(a); }), { refHasError: t, refErrorObject: n, refNumbers: r }) : { refHasError: true, refErrorObject: n, refNumbers: r }; } }; var z_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return j3.create(D3.VALUE); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { if (e29.length === 0) return j3.create(D3.DIV_BY_ZERO); let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0, c = 0, l = 0; for (let r2 = 0; r2 < n; r2++) s += (e29[r2] - a) * (t[r2] - o), c += (e29[r2] - a) ** 2, l += (t[r2] - o) ** 2; if (c === 0 || l === 0) return j3.create(D3.DIV_BY_ZERO); let u = (s / Math.sqrt(c * l)) ** 2; return R4.create(u); } }; var B_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = [], n = 0; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; if (i.isString()) { let e30 = i.convertToNumberObjectValue(); if (e30.isError()) return e30; } let a = i.isArray() ? i.getRowCount() : 1, o = i.isArray() ? i.getColumnCount() : 1; for (let e30 = 0; e30 < a; e30++) for (let r2 = 0; r2 < o; r2++) { let a2 = i.isArray() ? i.get(e30, r2) : i; if (a2.isError()) return a2; if (a2.isNull() || a2.isBoolean()) continue; let o2 = a2.getValue(); Ja(o2) && (t.push(+o2), n += +o2); } } return t.length <= 2 ? j3.create(D3.DIV_BY_ZERO) : this._getResult(t, n); } _getResult(e29, t) { let n = e29.length, r = t / n, i = 0; for (let t2 = 0; t2 < n; t2++) i += (e29[t2] - r) ** 2; let a = Math.sqrt(i / (n - 1)); if (a === 0) return j3.create(D3.DIV_BY_ZERO); let o = 0; for (let t2 = 0; t2 < n; t2++) o += ((e29[t2] - r) / a) ** 3; let s = n / ((n - 1) * (n - 2)) * o; return R4.create(s); } }; var V_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = [], n = 0; for (let r = 0; r < e29.length; r++) { let i = e29[r]; if (i.isError()) return i; if (i.isString()) { let e30 = i.convertToNumberObjectValue(); if (e30.isError()) return e30; } let a = i.isArray() ? i.getRowCount() : 1, o = i.isArray() ? i.getColumnCount() : 1; for (let e30 = 0; e30 < a; e30++) for (let r2 = 0; r2 < o; r2++) { let a2 = i.isArray() ? i.get(e30, r2) : i; if (a2.isError()) return a2; if (a2.isNull() || a2.isBoolean()) continue; let o2 = a2.getValue(); Ja(o2) && (t.push(+o2), n += +o2); } } return t.length <= 2 ? j3.create(D3.DIV_BY_ZERO) : this._getResult(t, n); } _getResult(e29, t) { let n = e29.length, r = t / n, i = 0; for (let t2 = 0; t2 < n; t2++) i += (e29[t2] - r) ** 2; let a = Math.sqrt(i / n); if (a === 0) return j3.create(D3.DIV_BY_ZERO); let o = 0; for (let t2 = 0; t2 < n; t2++) o += ((e29[t2] - r) / a) ** 3; let s = o / n; return R4.create(s); } }; var H_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if (n * r === 1 || i * a === 1) return o.isNull() || s.isNull() ? j3.create(D3.VALUE) : j3.create(D3.DIV_BY_ZERO); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { let n = e29.length, r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0, c = 0; for (let r2 = 0; r2 < n; r2++) s += (e29[r2] - a) * (t[r2] - o), c += (t[r2] - o) ** 2; if (c === 0) return j3.create(D3.DIV_BY_ZERO); let l = s / c; return R4.create(l); } }; var U_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = $c2(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (!Array.isArray(e29)) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i; return nl2(e29, +a.getValue()); } }; var W_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = +s.getValue(), d = +c.getValue(); if (d <= 0) return j3.create(D3.NUM); let f = (l - u) / d; return R4.create(f); } }; var G_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29, false); return t.isError() ? t : t.std(1); } }; var K_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29, false); return t.isError() ? t : t.std(); } }; var q_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1, i = t.isArray() ? t.getRowCount() : 1, a = t.isArray() ? t.getColumnCount() : 1, o = e29; if (e29.isArray() && n === 1 && r === 1 && (o = e29.get(0, 0)), o.isError()) return o; let s = t; if (t.isArray() && i === 1 && a === 1 && (s = t.get(0, 0)), s.isError()) return s; if ((n * r === 1 || i * a === 1) && (o.isNull() || s.isNull())) return j3.create(D3.VALUE); if (n * r !== i * a) return j3.create(D3.NA); let { isError: c, errorObject: l, array1Values: u, array2Values: d, noCalculate: f } = Bc2(e29, t, n * r, r, a); return c ? l : f ? j3.create(D3.DIV_BY_ZERO) : this._getResult(u, d); } _getResult(e29, t) { let n = e29.length; if (n <= 2) return j3.create(D3.DIV_BY_ZERO); let r = 0, i = 0; for (let a2 = 0; a2 < n; a2++) r += e29[a2], i += t[a2]; let a = r / n, o = i / n, s = 0, c = 0, l = 0; for (let r2 = 0; r2 < n; r2++) s += (e29[r2] - a) * (t[r2] - o), c += (e29[r2] - a) ** 2, l += (t[r2] - o) ** 2; if (l === 0) return j3.create(D3.DIV_BY_ZERO); let u = Math.sqrt((c - s ** 2 / l) / (n - 2)); return Number.isNaN(u) || !Number.isFinite(u) ? j3.create(D3.NUM) : R4.create(u); } }; var J_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.floor(+s.getValue()), d = +c.getValue(); if (u < 1) return j3.create(D3.NUM); let f; return f = d ? Lc2(l, u) : Rc2(l, u), Number.isNaN(f) || !Number.isFinite(f) ? j3.create(D3.NUM) : R4.create(f); } }; var Y_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s < 0 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = Lc2(-s, c) * 2; return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var X_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = Lc2(-s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Z_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.floor(+o.getValue()); if (s <= 0 || s > 1 || c < 1 || c > 10 ** 10) return j3.create(D3.NUM); let l = zc2(s, c); return Number.isNaN(l) || !Number.isFinite(l) ? j3.create(D3.NUM) : R4.create(l); } }; var Q_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let { isError: i, errorObject: a } = Vc2(e29, t, n); if (i) return a; let o = Hc2(e29); if (o instanceof j3) return o; let s = this._getKnownXsValues(o, t); if (s instanceof j3) return s; let c = this._getNewXsValues(s, n); if (c instanceof j3) return c; let l = r == null ? L3.create(true) : r; if (l.isArray() && (l = l.get(0, 0)), l.isString() && (l = l.convertToNumberObjectValue()), l.isError()) return l; let u = +l.getValue(); return this._getResult(o, s, c, u); } _getResult(e29, t, n, r) { return e29.length === 1 && t.length > 1 || e29[0].length === 1 && t[0].length > 1 ? e29.length === 1 && t.length > 1 && (r ? t.length + 1 : t.length) > e29[0].length || e29[0].length === 1 && t[0].length > 1 && (r ? t[0].length + 1 : t[0].length) > e29.length ? j3.create(D3.NA) : this._getResultByMultipleVariables(e29, t, n, r) : this._getResultBySimpleVariables(e29, t, n, r); } _getResultByMultipleVariables(e29, t, n, r) { let i = e29.length === 1 && e29[0].length > 1, a = qc2(e29, t, n, r, false); if (a instanceof j3) return a; let { coefficients: o, newX: s } = a, c = o[0].length, l = o[0][c - 1], u = []; for (let e30 = 0; e30 < s.length; e30++) { u[e30] = []; let t2 = l; for (let n2 = c - 2; n2 >= 0; n2--) t2 += o[0][c - 2 - n2] * s[e30][n2]; u[e30].push(t2); } return i && (u = Vs(u)), B3.createByArray(u); } _getResultBySimpleVariables(e29, t, n, r) { let i = e29.flat(), { slope: a, intercept: o } = Wc2(t.flat(), i, r, false); if (Number.isNaN(a)) return j3.create(D3.NA); let s = n.map((e30) => e30.map((e31) => a * e31 + o)); return B3.createByArray(s); } _getKnownXsValues(e29, t) { return !t || t.isNull() ? Uc2(e29.length, e29[0].length) : Hc2(t); } _getNewXsValues(e29, t) { return !t || t.isNull() ? e29 : Hc2(t); } }; var $_ = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = this._getValues(e29); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(n, e31)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } return this._handleSingleObject(n, t); } _handleSingleObject(e29, t) { if (e29 instanceof j3) return e29; let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i, o = +a.getValue(); if (o < 0 || o >= 1) return j3.create(D3.NUM); let s = Ki2(e29.length * o / 2, 0) * 2, c = e29.slice(s / 2, e29.length - s / 2), l = c.reduce((e30, t2) => e30 + t2, 0) / c.length; return R4.create(l); } _getValues(e29) { let t = e29.isArray() ? e29.getRowCount() : 1, n = e29.isArray() ? e29.getColumnCount() : 1, r = []; for (let i = 0; i < t; i++) for (let t2 = 0; t2 < n; t2++) { let n2 = e29.isArray() ? e29.get(i, t2) : e29; if (n2.isError()) return n2; if (n2.isNull() || n2.isBoolean()) continue; let a = n2.getValue(); Ja(a) && r.push(+a); } return r.length === 0 ? j3.create(D3.NUM) : r.sort((e30, t2) => e30 - t2); } }; var ev = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29, false); return t.isError() ? t : t.var(1); } }; var tv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = this.flattenArray(e29, false); return t.isError() ? t : t.var(); } }; var nv = [[Ng, q3.AVEDEV], [Fg, q3.AVERAGE], [Ig, q3.AVERAGE_WEIGHTED], [Lg, q3.AVERAGEA], [Rg, q3.AVERAGEIF], [zg, q3.AVERAGEIFS], [Bg, q3.BETA_DIST], [sl, q3.BETA_INV], [cl, q3.BINOM_DIST], [Vg, q3.BINOM_DIST_RANGE], [ll2, q3.BINOM_INV], [Hg, q3.CHISQ_DIST], [ul2, q3.CHISQ_DIST_RT], [Ug, q3.CHISQ_INV], [dl2, q3.CHISQ_INV_RT], [fl2, q3.CHISQ_TEST], [pl2, q3.CONFIDENCE_NORM], [Wg, q3.CONFIDENCE_T], [Gg, q3.CORREL], [Kg, q3.COUNT], [qg, q3.COUNTA], [Jg, q3.COUNTBLANK], [Yg, q3.COUNTIF], [Xg, q3.COUNTIFS], [ml2, q3.COVARIANCE_P], [Zg, q3.COVARIANCE_S], [Qg, q3.DEVSQ], [hl2, q3.EXPON_DIST], [$g, q3.F_DIST], [gl2, q3.F_DIST_RT], [e_, q3.F_INV], [_l, q3.F_INV_RT], [vl2, q3.F_TEST], [t_, q3.FISHER], [n_, q3.FISHERINV], [r_, q3.FORECAST], [r_, q3.FORECAST_LINEAR], [i_, q3.FREQUENCY], [a_, q3.GAMMA], [yl2, q3.GAMMA_DIST], [bl2, q3.GAMMA_INV], [o_, q3.GAMMALN], [o_, q3.GAMMALN_PRECISE], [s_, q3.GAUSS], [c_, q3.GEOMEAN], [l_, q3.GROWTH], [u_, q3.HARMEAN], [d_, q3.HYPGEOM_DIST], [f_, q3.INTERCEPT], [p_, q3.KURT], [m_, q3.LARGE], [h_, q3.LINEST], [g_, q3.LOGEST], [__, q3.LOGNORM_DIST], [xl2, q3.LOGNORM_INV], [v_, q3.MARGINOFERROR], [y_, q3.MAX], [b_, q3.MAXA], [x_, q3.MAXIFS], [S_, q3.MEDIAN], [C_, q3.MIN], [w_, q3.MINA], [T_, q3.MINIFS], [E_, q3.MODE_MULT], [Sl, q3.MODE_SNGL], [D_, q3.NEGBINOM_DIST], [Cl2, q3.NORM_DIST], [wl, q3.NORM_INV], [O_, q3.NORM_S_DIST], [Tl2, q3.NORM_S_INV], [k_, q3.PEARSON], [A_, q3.PERCENTILE_EXC], [El, q3.PERCENTILE_INC], [j_, q3.PERCENTRANK_EXC], [Dl, q3.PERCENTRANK_INC], [M_, q3.PERMUT], [N_, q3.PERMUTATIONA], [P_, q3.PHI], [Ol, q3.POISSON_DIST], [F_, q3.PROB], [I_, q3.QUARTILE_EXC], [kl, q3.QUARTILE_INC], [L_, q3.RANK_AVG], [R_, q3.RANK_EQ], [z_, q3.RSQ], [B_, q3.SKEW], [V_, q3.SKEW_P], [H_, q3.SLOPE], [U_, q3.SMALL], [W_, q3.STANDARDIZE], [Al, q3.STDEV_P], [jl, q3.STDEV_S], [G_, q3.STDEVA], [K_, q3.STDEVPA], [q_, q3.STEYX], [J_, q3.T_DIST], [Y_, q3.T_DIST_2T], [X_, q3.T_DIST_RT], [Z_, q3.T_INV], [Ml, q3.T_INV_2T], [Nl, q3.T_TEST], [Q_, q3.TREND], [$_, q3.TRIMMEAN], [Pl2, q3.VAR_P], [Fl2, q3.VAR_S], [ev, q3.VARA], [tv, q3.VARPA], [Il2, q3.WEIBULL_DIST], [Ll2, q3.Z_TEST]]; var rv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(0) : t; if (t != null && t.isNull() && (n = R4.create(0)), n.isArray()) { let t2 = n.mapValue((t3) => this._handleSingleObject(e29, t3)); return t2.getRowCount() === 1 && t2.getColumnCount() === 1 ? t2.get(0, 0) : t2; } return this._handleSingleObject(e29, n); } _handleSingleObject(e29, t) { let n = this._checkArray(e29); if (n.isError()) return n; let { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = +o.getValue(), c = e29.isArray() ? e29.getRowCount() : 1, l = e29.isArray() ? e29.getColumnCount() : 1, u = ``; for (let t2 = 0; t2 < c; t2++) for (let n2 = 0; n2 < l; n2++) { let r2 = e29.isArray() ? e29.get(t2, n2) : e29, i2 = `${r2.getValue()}`; r2.isNull() && (i2 = ``), r2.isBoolean() && (i2 = i2.toLocaleUpperCase()), r2.isString() && s ? u += `"${i2}"` : u += i2, t2 === c - 1 && n2 === l - 1 || (s ? n2 === l - 1 ? u += `;` : u += `,` : u += `, `); } return s && (u = `{${u}}`), u.length > 32767 ? j3.create(D3.CALC) : z3.create(u); } _checkArray(e29) { if (e29.isArray()) { let t = e29.getRowCount(), n = e29.getColumnCount(); return t > 1 || n > 1 ? e29 : e29.get(0, 0); } return e29; } }; var iv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError() || e29.isNull() || e29.isBoolean() || e29.isNumber()) return e29; let t = e29.getValue().toLocaleString(), n = ``; for (let e30 = 0; e30 < t.length; e30++) { let r = t.charCodeAt(e30); r === 12288 ? r = 32 : r >= 65281 && r <= 65374 && (r -= 65248), n += String.fromCharCode(r); } return z3.create(n); } }; var av = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = +i.getValue(), o = Math.abs(Number.parseInt(a.toString(), 10)), s = Number.parseFloat((Math.abs(a) - o).toFixed(2)), c = ``; return c = o === 0 ? s === 0 ? `\u0E28\u0E39\u0E19\u0E22\u0E4C\u0E1A\u0E32\u0E17\u0E16\u0E49\u0E27\u0E19` : `${a < 0 ? `\u0E25\u0E1A` : ``}${this._convertNumberToThaiText(s * 100)}\u0E2A\u0E15\u0E32\u0E07\u0E04\u0E4C` : s === 0 ? `${a < 0 ? `\u0E25\u0E1A` : ``}${this._convertNumberToThaiText(o)}\u0E1A\u0E32\u0E17\u0E16\u0E49\u0E27\u0E19` : `${a < 0 ? `\u0E25\u0E1A` : ``}${this._convertNumberToThaiText(o)}\u0E1A\u0E32\u0E17${this._convertNumberToThaiText(s * 100)}\u0E2A\u0E15\u0E32\u0E07\u0E04\u0E4C`, z3.create(c); } _convertNumberToThaiText(e29) { let t = [`\u0E25\u0E49\u0E32\u0E19`, `\u0E2A\u0E34\u0E1A`, `\u0E23\u0E49\u0E2D\u0E22`, `\u0E1E\u0E31\u0E19`, `\u0E2B\u0E21\u0E37\u0E48\u0E19`, `\u0E41\u0E2A\u0E19`, ``], n = [`\u0E28\u0E39\u0E19\u0E22\u0E4C`, `\u0E2B\u0E19\u0E36\u0E48\u0E07`, `\u0E2A\u0E2D\u0E07`, `\u0E2A\u0E32\u0E21`, `\u0E2A\u0E35\u0E48`, `\u0E2B\u0E49\u0E32`, `\u0E2B\u0E01`, `\u0E40\u0E08\u0E47\u0E14`, `\u0E41\u0E1B\u0E14`, `\u0E40\u0E01\u0E49\u0E32`], r = [`\u0E25\u0E1A`, `\u0E1A\u0E32\u0E17`, `\u0E16\u0E49\u0E27\u0E19`, `\u0E2A\u0E15\u0E32\u0E07\u0E04\u0E4C`, `\u0E22\u0E35\u0E48`, `\u0E40\u0E2D\u0E47\u0E14`, `,`, ` `, `\u0E3F`], i = e29.toString(), a = i.length, o = ``; for (let e30 = a; e30 > 0; e30--) { let s = Number.parseInt(i.charAt(a - e30), 10), c = n[s], l = e30 > 1 ? (e30 - 1) % 6 : 6; if (l === 1 && s === 2 && (c = r[4]), s === 1) switch (l) { case 0: case 6: o += e30 < a ? r[5] : c; break; case 1: break; default: o += c; break; } else if (s === 0) { l === 0 && (o += t[l]); continue; } else o += c; o += t[l]; } return o; } }; var ov = Object.values(X).filter((e29) => [X.TABLE_START, X.TABLE_ROW_START, X.TABLE_CELL_START, X.TABLE_CELL_END, X.TABLE_ROW_END, X.TABLE_END, X.CUSTOM_BLOCK].includes(e29)); var sv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = Math.floor(+i.getValue()); if (a <= 0) return j3.create(D3.VALUE); let o = String.fromCharCode(a); return ov.some((e30) => e30 === o) && (o = ``), z3.create(o); } }; var cv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError() || e29.isBoolean() || e29.isNumber()) return e29; if (e29.isNull()) return z3.create(``); let t = `${e29.getValue()}`.replace(/[\0-\x1F]/g, ``); return z3.create(t); } }; var lv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let t = e29.getValue().toLocaleString(); if (e29.isBoolean() && (t = t.toLocaleUpperCase()), t === ``) return j3.create(D3.VALUE); let n = t.charCodeAt(0); return R4.create(n); } }; var uv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = ``, n = null; for (let r of e29) if (r.isArray()) { if (r.iterator((e30) => { if (e30 == null || e30.isNull()) return true; if (e30.isError()) return n = e30, false; e30.isBoolean() ? t += `${e30.getValue()}`.toLocaleUpperCase() : (e30.isString() || e30.isNumber()) && (t += e30.getValue()); }), n) return n; } else !r.isError() && !r.isNull() && (t += r.getValue()); return z3.create(t); } }; var dv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 255); } calculate(...e29) { let t = 0, n = 0; e29.forEach((e30) => { if (e30.isArray()) { let r2 = e30; t = Math.max(t, r2.getRowCount()), n = Math.max(n, r2.getColumnCount()); } else t = Math.max(t, 1), n = Math.max(n, 1); }); let r = null; for (let i of e29) r = V3(t, n, i, j3.create(D3.NA)).mapValue((e30, t2, n2) => { var i2, a; let o = r && r.get(t2, n2); if (o != null && o.isError()) return o; if (e30.isError()) return e30; let s = o == null ? void 0 : o.getValue(), c = e30 == null ? void 0 : e30.getValue(); o != null && o.isBoolean() && (s = `${s}`.toLocaleUpperCase()), e30 != null && e30.isBoolean() && (c = `${c}`.toLocaleUpperCase()); let l = o != null && o.isNull() || (i2 = s) == null ? `` : i2, u = e30 != null && e30.isNull() || (a = c) == null ? `` : a; return z3.create(`${l}${u}`); }); return r || j3.create(D3.VALUE); } }; var fv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return z3.create(``); let t = `${e29.getValue()}`; e29.isBoolean() && (t = t.toLocaleUpperCase()); let n = ``; for (let e30 = 0; e30 < t.length; e30++) { let r = t.charCodeAt(e30); r >= 33 && r <= 126 ? n += String.fromCharCode(r + 65248) : r === 32 ? n += `\u3000` : n += t.charAt(e30); } return z3.create(n); } }; var pv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2), E3(this, `needsLocale`, true); } calculate(e29, t) { let n = t == null ? R4.create(2) : t; n.isNull() && (n = R4.create(2)); let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(e29, t); if (n) return r; let [a, o] = i, s = +a.getValue(), c = Math.trunc(+o.getValue()); if (c > 127) return j3.create(D3.VALUE); c < 0 && (s = `${s}`.length < Math.abs(c) ? 0 : s < 0 ? -Gi(Math.abs(s), c) : Gi(s, c), c = 0); let l = Fi(this.getLocale(), s, c); return z3.create(l); } }; var mv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, I3.create()), a = V3(n, r, t, I3.create()), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { if (e29.isNull() || t.isNull()) { let n2 = e29.isNull() && t.isNull(); return L3.create(n2); } let n = `${e29.getValue()}`; e29.isBoolean() && (n = n.toLocaleUpperCase()); let r = `${t.getValue()}`; t.isBoolean() && (r = r.toLocaleUpperCase()); let i = n === r; return L3.create(i); } }; var hv = (e29, t) => lib_exports.format(e29, t, { throws: false }); var gv = (e29) => { let t = `${e29.getValue()}`; return e29.isNull() && (t = ``), e29.isBoolean() && (t = t.toLocaleUpperCase()), e29.isNumber() && (t = e29.getPattern() === `` ? `${aa2(+e29.getValue())}` : hv(e29.getPattern(), +e29.getValue())), t; }; var _v = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(1) : n, i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { let r = gv(e29), i = gv(t), { isError: a, errorObject: o, variants: s } = X3(n); if (a) return o; let [c] = s, l = Math.floor(+c.getValue()); if (t.isNull() || l <= 0 || l > i.length) return j3.create(D3.VALUE); if (e29.isNull() || r.length === 0) return R4.create(l); let u = i.indexOf(r, l - 1); return u === -1 ? j3.create(D3.VALUE) : R4.create(u + 1); } }; function vv(e29) { let t = 0; for (let n = 0; n < e29.length; n++) t += yv(e29, n); return t; } function yv(e29, t, n = `ltr`) { return Cv(e29, t, n) > 255 ? 2 : 1; } function bv(e29) { return e29 >= 55296 && e29 <= 56319; } function xv(e29) { return e29 >= 56320 && e29 <= 57343; } function Sv(e29, t) { return ((e29 & 1023) << 10) + (t & 1023) + 65536; } function Cv(e29, t, n = `ltr`) { let r = e29.charCodeAt(t); if (n === `ltr` && bv(r) && t + 1 < e29.length) { let n2 = e29.charCodeAt(t + 1); if (xv(n2)) return Sv(r, n2); } if (n === `rtl` && xv(r) && t - 1 >= 0) { let n2 = e29.charCodeAt(t - 1); if (bv(n2)) return Sv(n2, r); } return r; } var wv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(1) : n, i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { let r = gv(e29), i = gv(t), { isError: a, errorObject: o, variants: s } = X3(n); if (a) return o; let [c] = s, l = Math.floor(+c.getValue()); if (t.isNull() || l <= 0 || l > i.length) return j3.create(D3.VALUE); if (e29.isNull() || r.length === 0) return R4.create(l); let u = i.indexOf(r, l - 1); if (u === -1) return j3.create(D3.VALUE); let d = vv(i.substring(0, u)) + 1; return R4.create(d); } }; var Tv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = t == null ? R4.create(2) : t; r.isNull() && (r = R4.create(2)); let i = n == null ? L3.create(false) : n; i.isNull() && (i = L3.create(false)); let a = Math.max(e29.isArray() ? e29.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, i.isArray() ? i.getRowCount() : 1), o = Math.max(e29.isArray() ? e29.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, i.isArray() ? i.getColumnCount() : 1), s = V3(a, o, e29, j3.create(D3.NA)), c = V3(a, o, r, j3.create(D3.NA)), l = V3(a, o, i, j3.create(D3.NA)), u = s.mapValue((e30, t2, n2) => { let r2 = c.get(t2, n2), i2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return a === 1 && o === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n) { let { isError: r, errorObject: i, variants: a } = X3(e29, t, n); if (r) return i; let [o, s, c] = a, l = +o.getValue(), u = Math.trunc(+s.getValue()), d = +c.getValue(); if (u > 127) return j3.create(D3.VALUE); u < 0 && (l = `${l}`.length < Math.abs(u) ? 0 : l < 0 ? -Gi(Math.abs(l), u) : Gi(l, u), u = 0); let f = d ? `###0` : `#,##0`; u > 0 && (f += `.${`0`.repeat(u)}`); let p = hv(f, l); return z3.create(p); } }; var Ev = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let n = gv(e29), { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = Math.floor(+o.getValue()); if (s < 0) return j3.create(D3.VALUE); if (e29.isNull() || s === 0) return z3.create(``); if (s >= n.length) return z3.create(n); let c = n.substring(0, s); return z3.create(c); } }; var Dv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, I3.create()), o = V3(r, i, n, I3.create()), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let n = gv(e29), { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = Math.floor(+o.getValue()); if (s < 0) return j3.create(D3.VALUE); if (e29.isNull() || s === 0) return z3.create(``); let c = 0, l = 0, u = ``; for (; l < s && c < n.length; ) l += yv(n, c), u += n.charAt(c), c++; return z3.create(u); } }; var Ov = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleText(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleText(e29); } _handleSingleText(e29) { if (e29.isError()) return e29; let t = gv(e29); return R4.create(t.length); } }; var kv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleText(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleText(e29); } _handleSingleText(e29) { if (e29.isError()) return e29; let t = vv(gv(e29)); return R4.create(t); } }; var Av = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return z3.create(``); let t = `${e29.getValue()}`.toLocaleLowerCase(); return z3.create(t); } }; var jv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let r = gv(e29), { isError: i, errorObject: a, variants: o } = X3(t, n); if (i) return a; let [s, c] = o, l = Math.floor(+s.getValue()), u = Math.floor(+c.getValue()); if (l <= 0 || u < 0) return j3.create(D3.VALUE); if (e29.isNull() || l > r.length || u === 0) return z3.create(``); let d = r.substring(l - 1, l - 1 + u); return z3.create(d); } }; var Mv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, t, j3.create(D3.NA)), s = V3(r, i, n, j3.create(D3.NA)), c = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2), i2 = s.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return r === 1 && i === 1 ? c.get(0, 0) : c; } _handleSingleObject(e29, t, n) { let r = gv(e29), { isError: i, errorObject: a, variants: o } = X3(t, n); if (i) return a; let [s, c] = o, l = Math.floor(+s.getValue()), u = Math.floor(+c.getValue()); if (l <= 0 || u < 0) return j3.create(D3.VALUE); if (e29.isNull() || l > r.length || u === 0) return z3.create(``); r = r.substring(l - 1); let d = 0, f = 0, p = ``; for (; f < u && d < r.length; ) f += yv(r, d), p += r.charAt(d), d++; return z3.create(p); } }; var Nv = [`\u3007`, `\u4E00`, `\u4E8C`, `\u4E09`, `\u56DB`, `\u4E94`, `\u516D`, `\u4E03`, `\u516B`, `\u4E5D`]; var Pv = [`\u96F6`, `\u58F9`, `\u8D30`, `\u53C1`, `\u8086`, `\u4F0D`, `\u9646`, `\u67D2`, `\u634C`, `\u7396`]; var Fv = [``, `\u5341`, `\u767E`, `\u5343`]; var Iv = [``, `\u62FE`, `\u4F70`, `\u4EDF`]; var Lv = [``, `\u4E07`, `\u4EBF`, `\u5146`]; var Rv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.mapValue((e30, t2, n2) => { let r2 = a.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } _handleSingleObject(e29, t) { let n = e29.convertToNumberObjectValue(); if (n.isError()) return n; let r = t.convertToNumberObjectValue(); if (r.isError()) return r; let i = n.getValue(), a = Math.trunc(r.getValue()); if (i < 0 || ![1, 2, 3].includes(a)) return j3.create(D3.NUM); i = Math.round(i); let o = i.toString(), s = o.length, c = ``, l = false; for (let e30 = 0; e30 < s; e30++) { let t2 = Number(o[e30]); if (s === 1 && t2 === 0) { c += a === 2 ? Pv[0] : Nv[0]; break; } if (a === 3) { c += Nv[t2]; continue; } let n2 = s - e30 - 1, r2 = n2 % 4, i2 = Math.trunc(n2 / 4); if (s >= 17 && i2 > 2) { if (c += a === 1 ? Nv[t2] : Pv[t2], i2 > 3) continue; } else t2 === 0 ? l = r2 !== 0 : (l && (c += a === 1 ? Nv[0] : Pv[0], l = false), c += a === 1 ? Nv[t2] + Fv[r2] : Pv[t2] + Iv[r2]); r2 === 0 && i2 > 0 && o.slice(Math.max(0, e30 - 3), e30 + 1) !== `0000` && (c += Lv[i2]); } return z3.create(c); } }; var zv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 3); } isArgumentsIgnoreNumberPattern() { return true; } calculate(e29, t, n) { let r = t == null ? z3.create(`.`) : t, i = Math.max(e29.isArray() ? e29.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1, n != null && n.isArray() ? n.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1, n != null && n.isArray() ? n.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, r, j3.create(D3.NA)), c = n ? V3(i, a, n, j3.create(D3.NA)) : void 0, l = o.mapValue((e30, t2, r2) => { let i2 = s.get(t2, r2), a2 = n ? c.get(t2, r2) : void 0; return e30.isError() ? e30 : i2.isError() ? i2 : a2 != null && a2.isError() ? a2 : i2.isNull() || a2 != null && a2.isNull() ? j3.create(D3.VALUE) : e30.isNull() ? R4.create(0) : this._handleSingleObject(e30, i2, a2); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { let r = `${e29.getValue()}`; r = r.replace(/\s+/g, ``); let i = `${t.getValue()}`; t.isBoolean() && (i = i.toLocaleUpperCase()), i = i.charAt(0); let a; if (n && (a = `${n.getValue()}`, n.isBoolean() && (a = a.toLocaleUpperCase()), a = a.charAt(0), i === a)) return j3.create(D3.VALUE); if (r.trim() === ``) return R4.create(0); if (!r.match(/^\s*[+-]?\s*(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:[eE][+-]?\d+)?[ \t]*/)) return j3.create(D3.VALUE); let o = r.split(i); if (o.length > 2) return j3.create(D3.VALUE); let s = o[0].replace(/,/g, ``); n && (s = s.split(a).join(``)); let c = 0; if (o.length === 1) { i === `,` && (s = s.replace(/\./g, ``)); let e30 = 0; for (; s.endsWith(`%`); ) s = s.slice(0, -1), e30++; c = e30 > 0 ? s / 100 ** e30 : +s; } else { if (!Ja(s)) return j3.create(D3.VALUE); let e30 = o[1], t2 = 0; for (; e30.endsWith(`%`); ) e30 = e30.slice(0, -1), t2++; let n2 = `${s}.${e30}`; if (!Ja(n2)) return j3.create(D3.VALUE); c = t2 > 0 ? n2 / 100 ** t2 : +n2; } return Number.isNaN(c) ? j3.create(D3.VALUE) : R4.create(c); } }; var Bv = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError() || e29.isNull() || e29.isBoolean() || e29.isNumber()) return e29; let t = e29.getValue().toLocaleString().toLocaleLowerCase().replace(/(^|\b|\W|\d|_)[a-z]/g, (e30) => e30.toLocaleUpperCase()); return z3.create(t); } }; var $3 = (function(e29) { return e29[e29.ROOT = 0] = `ROOT`, e29[e29.GROUP = 1] = `GROUP`, e29[e29.POSITION = 2] = `POSITION`, e29[e29.SET = 3] = `SET`, e29[e29.RANGE = 4] = `RANGE`, e29[e29.REPETITION = 5] = `REPETITION`, e29[e29.REFERENCE = 6] = `REFERENCE`, e29[e29.CHAR = 7] = `CHAR`, e29; })($3 || {}); var Vv = () => [{ type: $3.RANGE, from: 48, to: 57 }]; var Hv = () => [{ type: $3.CHAR, value: 95 }, { type: $3.RANGE, from: 97, to: 122 }, { type: $3.RANGE, from: 65, to: 90 }, { type: $3.RANGE, from: 48, to: 57 }]; var Uv = () => [{ type: $3.CHAR, value: 9 }, { type: $3.CHAR, value: 10 }, { type: $3.CHAR, value: 11 }, { type: $3.CHAR, value: 12 }, { type: $3.CHAR, value: 13 }, { type: $3.CHAR, value: 32 }, { type: $3.CHAR, value: 160 }, { type: $3.CHAR, value: 5760 }, { type: $3.RANGE, from: 8192, to: 8202 }, { type: $3.CHAR, value: 8232 }, { type: $3.CHAR, value: 8233 }, { type: $3.CHAR, value: 8239 }, { type: $3.CHAR, value: 8287 }, { type: $3.CHAR, value: 12288 }, { type: $3.CHAR, value: 65279 }]; var Wv = () => ({ type: $3.SET, set: Hv(), not: false }); var Gv = () => ({ type: $3.SET, set: Hv(), not: true }); var Kv = () => ({ type: $3.SET, set: Vv(), not: false }); var qv = () => ({ type: $3.SET, set: Vv(), not: true }); var Jv = () => ({ type: $3.SET, set: Uv(), not: false }); var Yv = () => ({ type: $3.SET, set: Uv(), not: true }); var Xv = () => ({ type: $3.SET, set: [{ type: $3.CHAR, value: 10 }, { type: $3.CHAR, value: 13 }, { type: $3.CHAR, value: 8232 }, { type: $3.CHAR, value: 8233 }], not: true }); function Zv(e29) { let t = { type: $3.ROOT, stack: [] }, n = t, r = t.stack, i = [], a = [], o = 0, s = (t2) => { throw SyntaxError(`Invalid regular expression: /${e29}/: Nothing to repeat at column ${t2 - 1}`); }, c = $v(e29), l = 0, u; for (; l < c.length; ) switch (u = c[l++], u) { case `\\`: if (l === c.length) throw SyntaxError(`Invalid regular expression: /${e29}/: \\ at end of pattern`); switch (u = c[l++], u) { case `b`: r.push({ type: $3.POSITION, value: `b` }); break; case `B`: r.push({ type: $3.POSITION, value: `B` }); break; case `w`: r.push(Wv()); break; case `W`: r.push(Gv()); break; case `d`: r.push(Kv()); break; case `D`: r.push(qv()); break; case `s`: r.push(Jv()); break; case `S`: r.push(Yv()); break; default: if (/\d/.test(u)) { for (; /\d/.test(c[l]) && l < c.length; ) u += c[l++]; let e30 = Number.parseInt(u, 10); r.push({ type: $3.REFERENCE, value: e30 }), a.push({ reference: { type: $3.REFERENCE, value: e30 }, stack: r, index: r.length - 1 }); } else r.push({ type: $3.CHAR, value: u.charCodeAt(0) }); } break; case `^`: r.push({ type: $3.POSITION, value: `^` }); break; case `$`: r.push({ type: $3.POSITION, value: `$` }); break; case `[`: { let t2 = c[l] === `^`; t2 && l++; let n2 = Qv(c.slice(l), e29); l += n2[1], r.push({ type: $3.SET, set: n2[0], not: t2 }); break; } case `.`: r.push(Xv()); break; case `(`: { let t2 = { type: $3.GROUP, stack: [], remember: true }; if (c[l] === `?`) { let n2 = c[l + 1]; if (l += 2, n2 === `=`) t2.followedBy = true; else if (n2 === `!`) t2.notFollowedBy = true; else if (n2 !== `:`) throw SyntaxError(`Invalid regular expression: /${e29}/: Invalid group, character '${n2}' after '?' at column ${l - 1}`); t2.remember = false; } else o += 1; r.push(t2), i.push(n), n = t2, r = t2.stack; break; } case `)`: if (i.length === 0) throw SyntaxError(`Invalid regular expression: /${e29}/: Unmatched ) at column ${l - 1}`); n = i.pop(), r = n.options ? n.options[n.options.length - 1] : n.stack; break; case `|`: { n.options || (n.options = [n.stack], delete n.stack); let e30 = []; n.options.push(e30), r = e30; break; } case `{`: { let e30 = /^(\d+)(,(\d+)?)?\}/.exec(c.slice(l)); if (e30) { r.length === 0 && s(l); let t2 = Number.parseInt(e30[1], 10), n2 = e30[2] ? e30[3] ? Number.parseInt(e30[3], 10) : 1 / 0 : t2; l += e30[0].length, r.push({ type: $3.REPETITION, min: t2, max: n2, value: r.pop() }); } else r.push({ type: $3.CHAR, value: 123 }); break; } case `?`: r.length === 0 && s(l), r.push({ type: $3.REPETITION, min: 0, max: 1, value: r.pop() }); break; case `+`: r.length === 0 && s(l), r.push({ type: $3.REPETITION, min: 1, max: 1 / 0, value: r.pop() }); break; case `*`: r.length === 0 && s(l), r.push({ type: $3.REPETITION, min: 0, max: 1 / 0, value: r.pop() }); break; default: r.push({ type: $3.CHAR, value: u.charCodeAt(0) }); } if (i.length > 0) throw SyntaxError(`Invalid regular expression: /${e29}/: Unterminated group`); return ey(a, o), t; } function Qv(e29, t) { let n, r = [], i = /\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g; for (; (n = i.exec(e29)) !== null; ) { let e30 = null, [, t2, a, o, s, c, l, u, d, f, p] = n; if (t2 || a || o || s || c || l ? e30 = (() => { let e31 = { type: $3.SET, set: [], not: false }; return t2 ? e31 = Wv() : a ? e31 = Kv() : o ? e31 = Jv() : s ? e31 = Gv() : c ? e31 = qv() : l && (e31 = Yv()), e31; })() : u && p ? e30 = { type: $3.RANGE, from: (d || f).charCodeAt(0), to: p.charCodeAt(p.length - 1) } : n[16] && (e30 = { type: $3.CHAR, value: n[16].charCodeAt(0) }), !e30) return [r, i.lastIndex]; r.push(e30); } throw SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`); } function $v(e29) { return e29.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g, (e30, t, n, r, i, a, o) => { if (n) return e30; let s; s = t ? 8 : r ? Number.parseInt(r, 16) : i ? Number.parseInt(i, 16) : a ? `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?`.indexOf(a) : { 0: 0, t: 9, n: 10, v: 11, f: 12, r: 13 }[o]; let c = String.fromCharCode(s); return /[[\]{}^$.|?*+()]/.test(c) ? `\\${c}` : c; }); } function ey(e29, t) { for (let n of e29.reverse()) { let e30 = n.reference.value; if (t < e30) { n.reference.type = $3.CHAR; let t2 = e30.toString(); if (n.reference.value = Number.parseInt(t2, 8), !/^[0-7]+$/.test(t2)) { let e31 = 0; for (; t2[e31] !== `8` && t2[e31] !== `9` && e31 < t2.length; ) e31 += 1; if (e31 === 0 ? (n.reference.value = t2.charCodeAt(0), e31 += 1) : n.reference.value = Number.parseInt(t2.slice(0, e31), 8), t2.length > e31) { let r = n.stack.splice(n.index + 1); for (let r2 of t2.slice(e31)) n.stack.push({ type: $3.CHAR, value: r2.charCodeAt(0) }); n.stack.push(...r); } } } } } function ty(e29, t) { if (!ny(e29)) return { isError: true, regExp: null }; try { let n = new RegExp(e29, t ? `ug` : `u`); return ry(n) ? { isError: false, regExp: n } : { isError: true, regExp: null }; } catch { return { isError: true, regExp: null }; } } function ny(e29) { return !(/\(\?<=.*?\)/g.test(e29) && !/\[.*?(\?<=.*?)\]/g.test(e29) || /\(\? { let n2 = t2; if (e30.type === $3.REPETITION) { if (t2 > 0 && (e30.min === 0 || e30.max === 1 / 0) || iy(e30) && (o++, o > r)) return false; n2 = t2 + 1; } if (e30.options) { for (let t3 of e30.options) if (!s({ stack: t3 }, n2)) return false; } let i2 = e30.stack || e30.value && e30.value.stack; if (!i2) return true; for (let e31 of i2) if (!s(e31, n2)) return false; return true; }; return s(a, 0); } function iy(e29) { let t = e29.stack || e29.value && e29.value.stack; return t ? ay(t) : false; } function ay(e29) { for (let t of e29) { if (t.options && t.options.length > 0) return true; let e30 = t.stack || t.value && t.value.stack; if (e30 && ay(e30)) return true; } return false; } var oy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = ys2(e29, t); if (n) return r; let [a, o] = i, s = a.getValue(); a.isNull() && (s = ``), a.isBoolean() && (s = s ? `TRUE` : `FALSE`), s = `${s}`; let c = o.getValue(); o.isNull() && (c = ``), o.isBoolean() && (c = c ? `TRUE` : `FALSE`), c = `${c}`; let { isError: l, regExp: u } = ty(c, false); if (l) return j3.create(D3.REF); let d = s.match(u); if (d === null) return j3.create(D3.NA); if (d.length > 1) { let e30 = d.slice(1).map((e31) => z3.create(e31)); return e30.length > 1 ? B3.create({ calculateValueList: [e30], rowCount: 1, columnCount: e30.length, unitId: this.unitId, sheetId: this.subUnitId, row: this.row, column: this.column }) : e30[0]; } return z3.create(d[0]); } }; var sy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { let { isError: n, errorObject: r, variants: i } = ys2(e29, t); if (n) return r; let [a, o] = i, s = a.getValue(); a.isNull() && (s = ``), a.isBoolean() && (s = s ? `TRUE` : `FALSE`), s = `${s}`; let c = o.getValue(); o.isNull() && (c = ``), o.isBoolean() && (c = c ? `TRUE` : `FALSE`), c = `${c}`; let { isError: l, regExp: u } = ty(c, false); return l ? j3.create(D3.REF) : s.match(u) === null ? L3.create(false) : L3.create(true); } }; var cy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let { isError: r, errorObject: i, variants: a } = ys2(e29, t, n); if (r) return i; let [o, s, c] = a, l = o.getValue(); o.isNull() && (l = ``), o.isBoolean() && (l = l ? `TRUE` : `FALSE`), l = `${l}`; let u = s.getValue(); s.isNull() && (u = ``), s.isBoolean() && (u = u ? `TRUE` : `FALSE`), u = `${u}`; let d = c.getValue(); c.isNull() && (d = ``), c.isBoolean() && (d = d ? `TRUE` : `FALSE`), d = `${d}`; let { isError: f, regExp: p } = ty(u, true); if (f) return j3.create(D3.REF); let m = l.replace(p, d); return z3.create(m); } }; var ly = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(t, n); if (i) return a; let [s, c] = o, l = Math.floor(+s.getValue()), u = Math.floor(+c.getValue()); if (l <= 0 || u < 0) return j3.create(D3.VALUE); let d = gv(e29), f = gv(r), p = d.substring(0, l - 1) + f + d.substring(l - 1 + u); return z3.create(p); } }; var uy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 4), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = V3(i, a, r, j3.create(D3.NA)), u = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2), a2 = l.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : a2.isError() ? a2 : this._handleSingleObject(e30, r2, i2, a2); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let { isError: i, errorObject: a, variants: o } = X3(t, n); if (i) return a; let [s, c] = o, l = Math.floor(+s.getValue()), u = Math.floor(+c.getValue()); if (l <= 0 || u < 0) return j3.create(D3.VALUE); let d = gv(e29), f = gv(r), p = d.substring(0, l - 1); d = d.substring(l - 1); let m = 0, h = 0; for (; h < u && m < d.length; ) h += yv(d, m), m++; return p += f + d.substring(m), z3.create(p); } }; var dy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29, j3.create(D3.NA)), a = V3(n, r, t, j3.create(D3.NA)), o = i.map((e30, t2, n2) => { let r2 = a.get(t2, n2); if (e30.isError()) return e30; let i2 = e30.getValue(); if (e30.isNull() && (i2 = ``), e30.isBoolean() && (i2 = i2 ? `TRUE` : `FALSE`), i2 += ``, r2.isString() && (r2 = r2.convertToNumberObjectValue()), r2.isError()) return r2; let o2 = Math.floor(+r2.getValue()); if (o2 < 0 || o2 > 32767 / i2.length) return j3.create(D3.VALUE); let s = i2.repeat(o2); return z3.create(s); }); return n === 1 && r === 1 ? o.get(0, 0) : o; } }; var fy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let n = gv(e29), { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = Math.floor(+o.getValue()); if (s < 0) return j3.create(D3.VALUE); if (e29.isNull() || s === 0) return z3.create(``); if (s >= n.length) return z3.create(n); let c = n.substring(n.length - s); return z3.create(c); } }; var py = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(1) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let n = gv(e29), { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; let [o] = a, s = Math.floor(+o.getValue()); if (s < 0) return j3.create(D3.VALUE); if (e29.isNull() || s === 0) return z3.create(``); let c = n.length - 1, l = 0, u = ``; for (; l < s && c >= 0; ) l += yv(n, c, `rtl`), u = n.charAt(c) + u, c--; return z3.create(u); } }; var my = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(1) : n, i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { let r = gv(e29).toLocaleUpperCase(), i = gv(t).toLocaleUpperCase(), { isError: a, errorObject: o, variants: s } = X3(n); if (a) return o; let [c] = s, l = Math.floor(+c.getValue()); if (t.isNull() || l <= 0 || l > i.length) return j3.create(D3.VALUE); if (e29.isNull() || r.length === 0) return R4.create(l); let u = i.indexOf(r, l - 1); return u === -1 ? j3.create(D3.VALUE) : R4.create(u + 1); } }; var hy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 3); } calculate(e29, t, n) { let r = n == null ? R4.create(1) : n, i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, r, j3.create(D3.NA)), l = o.mapValue((e30, t2, n2) => { let r2 = s.get(t2, n2), i2 = c.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : i2.isError() ? i2 : this._handleSingleObject(e30, r2, i2); }); return i === 1 && a === 1 ? l.get(0, 0) : l; } _handleSingleObject(e29, t, n) { let r = gv(e29).toLocaleUpperCase(), i = gv(t).toLocaleUpperCase(), { isError: a, errorObject: o, variants: s } = X3(n); if (a) return o; let [c] = s, l = Math.floor(+c.getValue()); if (t.isNull() || l <= 0 || l > i.length) return j3.create(D3.VALUE); if (e29.isNull() || r.length === 0) return R4.create(l); let u = i.indexOf(r, l - 1); if (u === -1) return j3.create(D3.VALUE); let d = vv(i.substring(0, u)) + 1; return R4.create(d); } }; var gy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 4); } calculate(e29, t, n, r) { let i = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1, r != null && r.isArray() ? r.getRowCount() : 1), a = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1, r != null && r.isArray() ? r.getColumnCount() : 1), o = V3(i, a, e29, j3.create(D3.NA)), s = V3(i, a, t, j3.create(D3.NA)), c = V3(i, a, n, j3.create(D3.NA)), l = r ? V3(i, a, r, j3.create(D3.NA)) : void 0, u = o.mapValue((e30, t2, n2) => { let i2 = s.get(t2, n2), a2 = c.get(t2, n2), o2 = r ? l.get(t2, n2) : void 0; return e30.isError() ? e30 : i2.isError() ? i2 : a2.isError() ? a2 : o2 != null && o2.isError() ? o2 : o2 != null && o2.isNull() || o2 != null && o2.isBoolean() ? j3.create(D3.VALUE) : (o2 != null && o2.isString() && (o2 = o2.convertToNumberObjectValue()), o2 != null && o2.isError() ? o2 : this._handleSingleObject(e30, i2, a2, o2)); }); return i === 1 && a === 1 ? u.get(0, 0) : u; } _handleSingleObject(e29, t, n, r) { let i = this._getObjectString(e29), a = this._getObjectString(t), o = this._getObjectString(n), s = r ? Math.floor(+r.getValue()) : void 0; if (r && s <= 0) return j3.create(D3.VALUE); if (a === ``) return z3.create(i); let c = ``, l = 0; for (let e30 = 0; e30 < i.length; e30++) { let t2 = i.substr(e30, a.length); if (t2 === a || t2.length === a.length && t2.trim() === a.trim()) { if (l++, l === s) { c = i.substr(0, e30) + o + i.substr(e30 + a.length); break; } s === void 0 && (c += o), e30 += a.length - 1; } else s === void 0 && (c += i[e30]); } return s && l < s && (c = i), z3.create(c); } _getObjectString(e29) { let t = `${e29.getValue()}`; return e29.isNull() && (t = ``), e29.isBoolean() && (t = t.toLocaleUpperCase()), t; } }; var _y = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1), E3(this, `needsReferenceObject`, true); } calculate(e29) { let t = e29; return e29.isReferenceObject() && (t = e29.toArrayValueObject().get(0, 0)), t.isArray() ? t.mapValue((e30) => this._handleSingleObject(e30)) : this._handleSingleObject(t); } _handleSingleObject(e29) { return e29.isError() ? e29 : e29.isNull() || e29.isBoolean() || e29.isNumber() ? z3.create(``) : e29; } }; var vy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 2); } isArgumentsIgnoreNumberPattern() { return true; } calculate(e29, t) { if (e29.isError()) return e29; if (t.isError()) return t; let n = Math.max(e29.isArray() ? e29.getRowCount() : 1, t.isArray() ? t.getRowCount() : 1), r = Math.max(e29.isArray() ? e29.getColumnCount() : 1, t.isArray() ? t.getColumnCount() : 1), i = V3(n, r, e29), a = V3(n, r, t), o = i.map((e30, t2, n2) => { if (e30.isError()) return e30; let r2 = a.get(t2, n2) || z3.create(` `); if (r2.isError()) return r2; if (r2.isBoolean()) return j3.create(D3.VALUE); if (e30.isBoolean()) return e30; let i2 = e30.getValue(); if (e30.isNull() && (i2 = 0), e30.isString()) if (Ja(i2)) i2 = Number(i2); else { let e31 = da(`${i2}`); e31 && e31.v != null && typeof e31.v == `number` && (i2 = e31.v); } r2.isNull() && (r2 = z3.create(` `)); let o2 = `${r2.getValue()}`, s = hv(o2, i2); return z3.create(o2 === ` ` ? s.trimEnd() : s); }); return o.getRowCount() === 1 && o.getColumnCount() === 1 ? o.get(0, 0) : o; } }; var yy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = false, s = n == null ? R4.create(1) : n; s.isNull() && (o = true, s = R4.create(1)); let c = !r, l = r == null ? R4.create(0) : r, u = i == null ? R4.create(0) : i, d = a == null ? j3.create(D3.NA) : a, f = Math.max(e29.isArray() ? e29.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1, l.isArray() ? l.getRowCount() : 1, u.isArray() ? u.getRowCount() : 1, d.isArray() ? d.getRowCount() : 1), p = Math.max(e29.isArray() ? e29.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1, l.isArray() ? l.getColumnCount() : 1, u.isArray() ? u.getColumnCount() : 1, d.isArray() ? d.getColumnCount() : 1), m = V3(f, p, e29, j3.create(D3.NA)), h = V3(f, p, s, j3.create(D3.NA)), g2 = V3(f, p, l, j3.create(D3.NA)), _2 = V3(f, p, u, j3.create(D3.NA)), v = V3(f, p, d, j3.create(D3.NA)), y = this._getResultArray(m, t, h, g2, _2, v, o, c); return f === 1 && p === 1 ? y.get(0, 0) : y; } _getResultArray(e29, t, n, r, i, a, o, s) { return e29.map((e30, c, l) => { let u = n.get(c, l), d = r.get(c, l), f = i.get(c, l), p = a.get(c, l), m = this._checkVariantsError(e30, u, d, f); if (m.isError()) return m; let h = this._getStringValue(e30), g2 = this._getDelimiterValue(t); if (g2 instanceof j3) return g2; let _2 = this._getVariantsNumberFloorValue(u, d, f); if (_2 instanceof j3) return _2; let [v, y, b] = _2; return v === 0 || y < 0 || y > 1 || b < 0 || b > 1 ? j3.create(D3.VALUE) : g2.includes(``) ? v > 0 ? z3.create(h) : z3.create(``) : !o && Math.abs(v) > h.length ? j3.create(D3.VALUE) : g2.every((e31) => e31.length > h.length) ? j3.create(D3.NA) : this._getResult(h, g2, v, y, b, p, s); }); } _checkVariantsError(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; if (n.isError()) return n; } return L3.create(true); } _getStringValue(e29) { let t = `${e29.getValue()}`; return e29.isNull() && (t = ``), e29.isBoolean() && (t = t.toLocaleUpperCase()), t; } _getDelimiterValue(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); if (e29.iterator((e30) => { let i = e30; if (i.isError()) return n = true, r = i, false; t.push(this._getStringValue(i)); }), n) return r; } else { if (e29.isError()) return e29; t.push(this._getStringValue(e29)); } return t; } _getVariantsNumberFloorValue(...e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isString() && (r = r.convertToNumberObjectValue()), r.isError()) return r; let i = Math.floor(+r.getValue()); t.push(i); } return t; } _getResult(e29, t, n, r, i, a, o) { let s = r ? e29.toLocaleLowerCase() : e29, c = r ? t.map((e30) => e30.toLocaleLowerCase()) : t, l = 0, u = 0, d = 0; for (let e30 = 0; e30 < Math.abs(n); e30++) if (n < 0) { let e31 = c.map((e32) => ({ index: s.lastIndexOf(e32), length: e32.length })).filter((e32) => e32.index !== -1).sort((e32, t2) => t2.index - e32.index)[0]; if (!e31) break; l = e31.index, s = s.substr(0, e31.index), d = e31.length, u++; } else { let e31 = c.map((e32) => ({ index: s.indexOf(e32), length: e32.length })).filter((e32) => e32.index !== -1).sort((e32, t2) => e32.index - t2.index)[0]; if (!e31) break; l += e31.index + d, s = s.substr(e31.index + e31.length), d = e31.length, u++; } if (u && u < Math.abs(n) && o) return j3.create(D3.NA); if (!u || u < Math.abs(n)) return i ? n > 0 ? z3.create(``) : z3.create(e29) : a; let f = e29.substr(l + d); return z3.create(f); } }; var by = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = false, s = n == null ? R4.create(1) : n; s.isNull() && (o = true, s = R4.create(1)); let c = !r, l = r == null ? R4.create(0) : r, u = i == null ? R4.create(0) : i, d = a == null ? j3.create(D3.NA) : a, f = Math.max(e29.isArray() ? e29.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1, l.isArray() ? l.getRowCount() : 1, u.isArray() ? u.getRowCount() : 1, d.isArray() ? d.getRowCount() : 1), p = Math.max(e29.isArray() ? e29.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1, l.isArray() ? l.getColumnCount() : 1, u.isArray() ? u.getColumnCount() : 1, d.isArray() ? d.getColumnCount() : 1), m = V3(f, p, e29, j3.create(D3.NA)), h = V3(f, p, s, j3.create(D3.NA)), g2 = V3(f, p, l, j3.create(D3.NA)), _2 = V3(f, p, u, j3.create(D3.NA)), v = V3(f, p, d, j3.create(D3.NA)), y = this._getResultArray(m, t, h, g2, _2, v, o, c); return f === 1 && p === 1 ? y.get(0, 0) : y; } _getResultArray(e29, t, n, r, i, a, o, s) { return e29.map((e30, c, l) => { let u = n.get(c, l), d = r.get(c, l), f = i.get(c, l), p = a.get(c, l), m = this._checkVariantsError(e30, u, d, f); if (m.isError()) return m; let h = this._getStringValue(e30), g2 = this._getDelimiterValue(t); if (g2 instanceof j3) return g2; let _2 = this._getVariantsNumberFloorValue(u, d, f); if (_2 instanceof j3) return _2; let [v, y, b] = _2; return v === 0 || y < 0 || y > 1 || b < 0 || b > 1 ? j3.create(D3.VALUE) : g2.includes(``) ? v > 0 ? z3.create(``) : z3.create(h) : !o && Math.abs(v) > h.length ? j3.create(D3.VALUE) : g2.every((e31) => e31.length > h.length) ? j3.create(D3.NA) : this._getResult(h, g2, v, y, b, p, s); }); } _checkVariantsError(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; if (n.isError()) return n; } return L3.create(true); } _getStringValue(e29) { let t = `${e29.getValue()}`; return e29.isNull() && (t = ``), e29.isBoolean() && (t = t.toLocaleUpperCase()), t; } _getDelimiterValue(e29) { let t = []; if (e29.isArray()) { let n = false, r = j3.create(D3.VALUE); if (e29.iterator((e30) => { let i = e30; if (i.isError()) return n = true, r = i, false; t.push(this._getStringValue(i)); }), n) return r; } else { if (e29.isError()) return e29; t.push(this._getStringValue(e29)); } return t; } _getVariantsNumberFloorValue(...e29) { let t = []; for (let n = 0; n < e29.length; n++) { let r = e29[n]; if (r.isString() && (r = r.convertToNumberObjectValue()), r.isError()) return r; let i = Math.floor(+r.getValue()); t.push(i); } return t; } _getResult(e29, t, n, r, i, a, o) { let s = r ? e29.toLocaleLowerCase() : e29, c = r ? t.map((e30) => e30.toLocaleLowerCase()) : t, l = 0, u = 0, d = 0; for (let e30 = 0; e30 < Math.abs(n); e30++) if (n < 0) { let e31 = c.map((e32) => ({ index: s.lastIndexOf(e32), length: e32.length })).filter((e32) => e32.index !== -1).sort((e32, t2) => t2.index - e32.index)[0]; if (!e31) break; l = e31.index, s = s.substr(0, e31.index), u++; } else { let e31 = c.map((e32) => ({ index: s.indexOf(e32), length: e32.length })).filter((e32) => e32.index !== -1).sort((e32, t2) => e32.index - t2.index)[0]; if (!e31) break; l += e31.index + d, s = s.substr(e31.index + e31.length), d = e31.length, u++; } if (u && u < Math.abs(n) && o) return j3.create(D3.NA); if (!u || u < Math.abs(n)) return i ? n > 0 ? z3.create(e29) : z3.create(``) : a; let f = e29.substr(0, l); return z3.create(f); } }; var xy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 3), E3(this, `maxParams`, 255); } calculate(e29, t, ...n) { let r = this._getDelimiterValues(e29), i = this._getTextValues(n); if (t.isArray()) { let e30 = t.mapValue((e31) => this._handleSingleObject(r, e31, i)); return e30.getRowCount() === 1 && e30.getColumnCount() === 1 ? e30.get(0, 0) : e30; } let a = t; if (a.isString()) { let e30 = `${a.getValue()}`.toLocaleUpperCase(); if (e30 === `TRUE`) return this._handleSingleObject(r, L3.create(true), i); if (e30 === `FALSE`) return this._handleSingleObject(r, L3.create(false), i); } return this._handleSingleObject(r, t, i); } _handleSingleObject(e29, t, n) { if (e29 instanceof j3) return e29; let { isError: r, errorObject: i, variants: a } = X3(t); if (r) return i; if (n instanceof j3) return n; let [o] = a, s = +o.getValue(), c = n; s && (c = n.filter((e30) => e30 !== null && e30 !== ``)); let l = ``; for (let t2 = 0; t2 < c.length; t2++) c[t2] !== null && (l += c[t2]), t2 < c.length - 1 && (l += e29[t2 % e29.length]); return z3.create(l); } _getDelimiterValues(e29) { let t = [], n = e29.isArray() ? e29.getRowCount() : 1, r = e29.isArray() ? e29.getColumnCount() : 1; for (let i = 0; i < n; i++) for (let n2 = 0; n2 < r; n2++) { let r2 = e29.isArray() ? e29.get(i, n2) : e29; if (r2.isError()) return r2; let a = `${r2.getValue()}`; r2.isNull() && (a = ``), r2.isBoolean() && (a = a.toLocaleUpperCase()), t.push(a); } return t; } _getTextValues(e29) { let t = []; for (let n of e29) { let e30 = n.isArray() ? n.getRowCount() : 1, r = n.isArray() ? n.getColumnCount() : 1; for (let i = 0; i < e30; i++) for (let e31 = 0; e31 < r; e31++) { let r2 = n.isArray() ? n.get(i, e31) : n; if (r2.isError()) return r2; if (r2.isNull()) { t.push(null); continue; } let a = `${r2.getValue()}`; r2.isBoolean() && (a = a.toLocaleUpperCase()), t.push(a); } } return t; } }; var Sy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 2), E3(this, `maxParams`, 6); } calculate(e29, t, n, r, i, a) { let o = n == null ? z3.create(`\\s`) : n, s = r == null ? R4.create(0) : r, c = i == null ? R4.create(0) : i, l = a == null ? z3.create(D3.NA) : a, { _variant: u, values: d } = this._getStringValues(t), { _variant: f, values: p } = this._getStringValues(o, false); o = f; let m = Math.max(e29.isArray() ? e29.getRowCount() : 1, s.isArray() ? s.getRowCount() : 1, c.isArray() ? c.getRowCount() : 1), h = Math.max(e29.isArray() ? e29.getColumnCount() : 1, s.isArray() ? s.getColumnCount() : 1, c.isArray() ? c.getColumnCount() : 1), g2 = V3(m, h, e29, j3.create(D3.NA)), _2 = V3(m, h, s, j3.create(D3.NA)), v = V3(m, h, c, j3.create(D3.NA)), y = this._getResultArray(g2, u, o, _2, v, l, d, p); return m === 1 && h === 1 ? y.get(0, 0) : y.map((e30) => e30.get(0, 0)); } _getStringValues(e29, t = true) { let n = e29, r = []; if (n.isArray()) n.iterator((e30) => { if (e30 != null && e30.isError()) return n = e30, false; if (e30 != null && e30.isNull() && t) return n = j3.create(D3.VALUE), false; let i = this._getRegExpStringValue(e30); if (i === ``) return n = j3.create(D3.VALUE), false; r.push(i); }); else { n.isNull() && t && (n = j3.create(D3.VALUE)); let e30 = this._getRegExpStringValue(n); e30 === `` && (n = j3.create(D3.VALUE)), r.push(e30); } return { _variant: n, values: r }; } _getResultArray(e29, t, n, r, i, a, o, s) { return e29.map((e30, c, l) => { let u = r.get(c, l), d = i.get(c, l), f = this._checkVariantsError(e30, t, n, u, d); if (f.isError()) return f; if (e30.isNull()) return j3.create(D3.VALUE); let p = a; if (p.isArray()) { let e31 = p.getRowCount(), t2 = p.getColumnCount(); if (e31 > 1 || t2 > 1) return j3.create(D3.VALUE); p = p.get(0, 0); } let m = `${e30.getValue()}`; if (e30.isBoolean() && (m = m.toLocaleUpperCase()), u.isString() && (u = u.convertToNumberObjectValue(), u.isError())) return u; let h = Math.floor(+u.getValue()); if (d.isString() && (d = d.convertToNumberObjectValue(), d.isError())) return d; let g2 = Math.floor(+d.getValue()); if (g2 < 0 || g2 > 1) return j3.create(D3.VALUE); let _2 = `${p.getValue()}`; return p.isBoolean() && (_2 = _2.toLocaleUpperCase()), this._getResult(m, o, s, h, g2, _2); }); } _getResult(e29, t, n, r, i, a) { let o = new RegExp(n.join(`|`), `g${i ? `i` : ``}`), s = new RegExp(t.join(`|`), `g${i ? `i` : ``}`), c = e29.split(o), l = 1, u = c.map((e30) => { let t2 = e30.split(s); return r && (t2 = t2.filter((e31) => e31 !== ``)), l = Math.max(l, t2.length), t2; }); return u = u.map((e30) => { let t2 = e30; return t2.length < l && (t2 = t2.concat(Array(l - t2.length).fill(a))), t2; }), B3.createByArray(u); } _checkVariantsError(...e29) { for (let t = 0; t < e29.length; t++) { let n = e29[t]; if (n.isError()) return n; } return L3.create(true); } _getRegExpStringValue(e29) { let t = e29.getValue(); return e29.isNull() && (t = `\\s`), e29.isBoolean() && (t = t ? `TRUE` : `FALSE`), t += ``, this._escapeRegExp(t); } _escapeRegExp(e29) { return e29.replace(/[.*+?^${}()|[\]\\]/g, `\\$&`); } }; var Cy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return z3.create(``); let t = `${e29.getValue()}`; return e29.isBoolean() && (t = t.toLocaleUpperCase()), t = t.trim().replace(/\s+/g, ` `), z3.create(t); } }; var wy = Object.values(X).filter((e29) => [X.TABLE_START, X.TABLE_ROW_START, X.TABLE_CELL_START, X.TABLE_CELL_END, X.TABLE_ROW_END, X.TABLE_END, X.CUSTOM_BLOCK].includes(e29)); var Ty = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { let { isError: t, errorObject: n, variants: r } = X3(e29); if (t) return n; let [i] = r, a = Math.floor(+i.getValue()); if (a < 1 || a > 1114111) return j3.create(D3.VALUE); if (a === 1114111 || a === 1114110) return j3.create(D3.NA); let o = String.fromCharCode(a); return wy.some((e30) => e30 === o) && (o = ``), z3.create(o); } }; var Ey = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return j3.create(D3.VALUE); let t = e29.getValue().toLocaleString(); e29.isBoolean() && (t = t.toLocaleUpperCase()); let n = t.charCodeAt(0); return R4.create(n); } }; var Dy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isNull()) return z3.create(``); let t = `${e29.getValue()}`.toLocaleUpperCase(); return z3.create(t); } }; var Oy = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; if (e29.isBoolean()) return j3.create(D3.VALUE); let t = e29; if (e29.isString() && (t = t.convertToNumberObjectValue(), t.isError())) return t; let n = +t.getValue(); return R4.create(n); } }; var ky = class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 2); } calculate(e29, t) { let n = t == null ? R4.create(0) : t, r = Math.max(e29.isArray() ? e29.getRowCount() : 1, n.isArray() ? n.getRowCount() : 1), i = Math.max(e29.isArray() ? e29.getColumnCount() : 1, n.isArray() ? n.getColumnCount() : 1), a = V3(r, i, e29, j3.create(D3.NA)), o = V3(r, i, n, j3.create(D3.NA)), s = a.mapValue((e30, t2, n2) => { let r2 = o.get(t2, n2); return e30.isError() ? e30 : r2.isError() ? r2 : this._handleSingleObject(e30, r2); }); return r === 1 && i === 1 ? s.get(0, 0) : s; } _handleSingleObject(e29, t) { let { isError: n, errorObject: r, variants: i } = X3(t); if (n) return r; let [a] = i, o = Math.floor(+a.getValue()); if (o < 0 || o > 1) return j3.create(D3.VALUE); if (e29.isNull()) return z3.create(``); if (e29.isBoolean()) return e29; if (e29.isNumber()) return R4.create(e29.getValue()); let s = o ? `"${e29.getValue()}"` : `${e29.getValue()}`; return z3.create(s); } }; var Ay = [[iv, J3.ASC], [rv, J3.ARRAYTOTEXT], [av, J3.BAHTTEXT], [sv, J3.CHAR], [cv, J3.CLEAN], [lv, J3.CODE], [uv, J3.CONCAT], [dv, J3.CONCATENATE], [fv, J3.DBCS], [pv, J3.DOLLAR], [mv, J3.EXACT], [_v, J3.FIND], [wv, J3.FINDB], [Tv, J3.FIXED], [Ev, J3.LEFT], [Dv, J3.LEFTB], [Ov, J3.LEN], [kv, J3.LENB], [Av, J3.LOWER], [jv, J3.MID], [Mv, J3.MIDB], [Rv, J3.NUMBERSTRING], [zv, J3.NUMBERVALUE], [oy, J3.REGEXEXTRACT], [sy, J3.REGEXMATCH], [cy, J3.REGEXREPLACE], [Bv, J3.PROPER], [ly, J3.REPLACE], [uy, J3.REPLACEB], [dy, J3.REPT], [fy, J3.RIGHT], [py, J3.RIGHTB], [my, J3.SEARCH], [hy, J3.SEARCHB], [gy, J3.SUBSTITUTE], [_y, J3.T], [vy, J3.TEXT], [yy, J3.TEXTAFTER], [by, J3.TEXTBEFORE], [xy, J3.TEXTJOIN], [Sy, J3.TEXTSPLIT], [Cy, J3.TRIM], [Ty, J3.UNICHAR], [Ey, J3.UNICODE], [Dy, J3.UPPER], [Oy, J3.VALUE], [ky, J3.VALUETOTEXT]]; var jy = []; var Fy = [[class extends Z3 { constructor(...e29) { super(...e29), E3(this, `minParams`, 1), E3(this, `maxParams`, 1); } calculate(e29) { if (e29.isArray()) { let t = e29.mapValue((e30) => this._handleSingleObject(e30)); return t.getRowCount() === 1 && t.getColumnCount() === 1 ? t.get(0, 0) : t; } return this._handleSingleObject(e29); } _handleSingleObject(e29) { if (e29.isError()) return e29; let t = gv(e29), n = encodeURIComponent(t).replace(/[!~'()*]/g, (e30) => `%${e30.charCodeAt(0).toString(16).toLocaleUpperCase()}`); return z3.create(n); } }, ro2.ENCODEURL]]; var Iy = `@univerjs/engine-formula`; var Ly = `0.19.0`; var Ry = class extends E { constructor(...e29) { super(...e29), E3(this, `_allSubjects`, []), E3(this, `_computingStatus$`, new BehaviorSubject(true)), E3(this, `computingStatus$`, this._computingStatus$.pipe(distinctUntilChanged())), E3(this, `_computingSubscription`, void 0); } get computingStatus() { return this._computingStatus$.getValue(); } dispose() { var e29; super.dispose(), (e29 = this._computingSubscription) == null || e29.unsubscribe(), this._computingStatus$.next(true), this._computingStatus$.complete(), this._allSubjects.forEach((e30) => { e30.complete(); }); } pushComputingStatusSubject(e29) { return this._allSubjects.push(e29), this._updateComputingObservable(), { dispose: () => { let t = this._allSubjects.indexOf(e29); t !== -1 && this._allSubjects.splice(t, 1), this._updateComputingObservable(); } }; } _updateComputingObservable() { var e29; if ((e29 = this._computingSubscription) == null || e29.unsubscribe(), this._allSubjects.length === 0) { this._computingStatus$.next(true); return; } this._computingSubscription = combineLatest(this._allSubjects).pipe(map((e30) => e30.every((e31) => e31))).subscribe((e30) => this._computingStatus$.next(e30)); } }; var zy = class extends E { constructor(e29, t) { super(), this._commandService = e29, this._globalComputingSrv = t, E3(this, `_computingCompleted$`, new Observable((e30) => { this._commandService.onCommandExecuted((t2) => { if (t2.id !== wr2.id) return; let n2 = t2.params; if (n2.stageInfo) return e30.next(n2.stageInfo.stage === Wa.IDLE || n2.stageInfo.stage === Wa.CALCULATION_COMPLETED); }); }).pipe(distinctUntilChanged(), shareReplay())); let n = new un(), r = new BehaviorSubject(true); n.add(this._globalComputingSrv.pushComputingStatusSubject(r)), n.add(this._computingCompleted$.subscribe((e30) => r.next(e30))), n.add(() => r.complete()), this.disposeWithMe(n); } }; zy = dr2([P5(0, ii), P5(1, Inject(Ry))], zy); var By = class extends E { constructor(e29, t, n, r) { super(), this._commandService = e29, this._functionService = t, this._configService = n, this._dataSyncPrimaryController = r, this._initialize(); } _initialize() { this._registerCommands(), this._registerFunctions(); } _registerCommands() { [Pr2, zn2, Fr2, yr2, br2, xr2, Sr2, Ar2, jr2, Cr2, wr2, Tr2, Mr2, Nr2, Er2, Dr2, Or2, kr2, hr2, gr2, _r2, vr2, Ir2, Lr2, Br2, Vr2, Hr2, Rn2].forEach((e29) => { var t; this._commandService.registerCommand(e29), (t = this._dataSyncPrimaryController) == null || t.registerSyncingMutations(e29); }); } _registerFunctions() { var e29; let t = this._configService.getConfig(Ur2), n = [...ws2, ...Kl2, ...ql2, ...mu, ...Hu2, ...qd, ..._p, ...Vp, ...sm, ...Gm, ...Cg, ...jg, ...nv, ...Ay, ...jy, ...Fy].concat((e29 = t == null ? void 0 : t.function) == null ? [] : e29).map((e30) => { let t2 = e30[0], n2 = e30[1]; return new t2(n2); }); this._functionService.registerExecutors(...n); } }; By = dr2([P5(0, ii), P5(1, uo2), P5(2, Yr), P5(3, Optional(K2))], By); var Vy = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._dependencyManagerService = t, this._featureCalculationManagerService = n, this._initialize(); } _initialize() { this._commandExecutedListener(), this._featureCalculationManagerServiceListener(); } _featureCalculationManagerServiceListener() { this.disposeWithMe(this._featureCalculationManagerService.onChanged$.subscribe((e29) => { let { unitId: t, subUnitId: n, featureIds: r } = e29; this._dependencyManagerService.removeFeatureFormulaDependency(t, n, r); })); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === vr2.id) { let t = e29.params; if (t == null) return; let { featureIds: n, unitId: r, subUnitId: i } = t; this._dependencyManagerService.removeFeatureFormulaDependency(r, i, n); } else if (e29.id === _r2.id) { let t = e29.params; if (t == null) return; let { featureId: n, calculationParam: r } = t, { unitId: i, subUnitId: a } = r; this._dependencyManagerService.removeFeatureFormulaDependency(i, a, [n]); } else if (e29.id === Lr2.id) { let t = e29.params; if (t == null) return; this._dependencyManagerService.removeOtherFormulaDependency(t.unitId, t.subUnitId, t.formulaIdList); } else if (e29.id === Ir2.id) { let t = e29.params; if (t == null) return; let n = t.formulaMap, r = []; Object.keys(n).forEach((e30) => { r.push(e30); }), this._dependencyManagerService.removeOtherFormulaDependency(t.unitId, t.subUnitId, r); } else if (e29.id === Pr2.id) { let t = e29.params.formulaData; Object.keys(t).forEach((e30) => { let n = t[e30]; if (n !== void 0) { if (n === null) { this._dependencyManagerService.clearFormulaDependency(e30); return; } Object.keys(n).forEach((t2) => { let r = n[t2]; if (r !== void 0) { if (r === null) return this._dependencyManagerService.clearFormulaDependency(e30, t2), true; new Sa(r).forValue((n2, r2) => { this._dependencyManagerService.removeFormulaDependency(e30, t2, n2, r2); }); } }); } }); } else e29.id === hr2.id && this._handleSetDefinedName(e29); })); } _handleSetDefinedName(e29) { let t = e29.params; if (t == null) return; let { unitId: n, name: r } = t; this._dependencyManagerService.removeFormulaDependencyByDefinedName(n, r); } }; Vy = dr2([P5(0, ii), P5(1, Xo2), P5(1, Jo2), P5(2, Xo2)], Vy); var Hy = class extends E { constructor(e29, t) { super(), this._commandService = e29, this._featureCalculationManagerService = t, this._initialize(); } _initialize() { this._commandExecutedListener(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === _r2.id) { let t = e29.params; if (t == null) return; let { featureId: n, calculationParam: r } = t, { unitId: i, subUnitId: a } = r; this._featureCalculationManagerService.register(i, a, n, r); } else if (e29.id === vr2.id) { let t = e29.params; if (t == null) return; let { featureIds: n, unitId: r, subUnitId: i } = t; this._featureCalculationManagerService.remove(r, i, n); } })); } }; Hy = dr2([P5(0, ii), P5(1, Xo2)], Hy); var Uy = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._otherFormulaManagerService = t, this._dependencyManagerService = n, this._initialize(); } _initialize() { this._commandExecutedListener(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === Ir2.id) { let t = e29.params; if (t == null) return; let n = { [t.unitId]: { [t.subUnitId]: t.formulaMap } }; this._otherFormulaManagerService.batchRegister(n); } else if (e29.id === Lr2.id) { let t = e29.params; if (t == null) return; let n = {}; t.formulaIdList.forEach((e30) => n[e30] = true); let r = { [t.unitId]: { [t.subUnitId]: n } }; this._otherFormulaManagerService.batchRemove(r); } })); } }; Uy = dr2([P5(0, ii), P5(1, Qo2), P5(2, Jo2)], Uy); var Wy = class extends E { constructor(...e29) { super(...e29), E3(this, `_dirtyConversionMap`, /* @__PURE__ */ new Map()); } dispose() { this._dirtyConversionMap.clear(); } remove(e29) { this._dirtyConversionMap.delete(e29); } get(e29) { return this._dirtyConversionMap.get(e29); } has(e29) { return this._dirtyConversionMap.has(e29); } register(e29, t) { this._dirtyConversionMap.set(e29, t); } getDirtyConversionMap() { return this._dirtyConversionMap; } }; var Gy = createIdentifier(`univer.formula.active-dirty-manager.service`); var Ky = (function(e29) { return e29[e29.NOT_REGISTER = 1] = `NOT_REGISTER`, e29[e29.SUCCESS = 2] = `SUCCESS`, e29[e29.WAIT = 3] = `WAIT`, e29[e29.ERROR = 4] = `ERROR`, e29; })({}); var qy = (function(e29) { return e29.DEFAULT = `default`, e29.DATA_VALIDATION = `dv`, e29.DATA_VALIDATION_CUSTOM = `dv-custom`, e29.CONDITIONAL_FORMATTING = `cf`, e29.DOC = `doc`, e29.SLIDE = `slide`, e29; })({}); var Jy = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._activeDirtyManagerService = t, this._lifecycleService = n, E3(this, `_formulaCacheMap`, /* @__PURE__ */ new Map()), E3(this, `_formulaChangeWithRange$`, new Subject()), E3(this, `formulaChangeWithRange$`, this._formulaChangeWithRange$.asObservable()), E3(this, `_formulaResult$`, new Subject()), E3(this, `formulaResult$`, this._formulaResult$.asObservable()), E3(this, `calculateStarted$`, new BehaviorSubject(false)), this._initFormulaRegister(), this._initFormulaCalculationResultChange(); } dispose() { super.dispose(), this._formulaChangeWithRange$.complete(), this._formulaResult$.complete(), this.calculateStarted$.complete(); } _ensureCacheMap(e29, t) { let n = this._formulaCacheMap.get(e29); n || (n = /* @__PURE__ */ new Map(), this._formulaCacheMap.set(e29, n)); let r = n.get(t); return r || (r = /* @__PURE__ */ new Map(), n.set(t, r)), r; } _createFormulaId(e29, t, n, r) { return `formula.${e29}_${t}_${n}_${r}_${O2(8)}`; } _initFormulaRegister() { this._activeDirtyManagerService.register(Ln2.id, { commandId: Ln2.id, getDirtyData(e30) { return { dirtyUnitOtherFormulaMap: e30.params }; } }); let e29 = (e30) => { let { unitId: t, subUnitId: n, formulaText: r, formulaId: i, ranges: a } = e30; if (!this._ensureCacheMap(t, n).has(i)) return; let o = { unitId: t, subUnitId: n, formulaMap: { [i]: { f: r, ranges: a } } }; this._commandService.executeCommand(Ir2.id, o, { onlyLocal: true }).then(() => { this._commandService.executeCommand(Ln2.id, { [t]: { [n]: { [i]: true } } }, { onlyLocal: true }); }); }; this.disposeWithMe(this._formulaChangeWithRange$.pipe(bufferWhen(() => this.calculateStarted$.pipe(filter((e30) => e30)))).subscribe((t) => t.forEach(e29))), this.disposeWithMe(this._formulaChangeWithRange$.pipe(filter(() => this.calculateStarted$.getValue())).subscribe(e29)); } _initFormulaCalculationResultChange() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === Tr2.id) { let { unitOtherData: t } = e29.params, n = {}; for (let e30 in t) { let r = t[e30], i = {}; n[e30] = i; for (let t2 in r) { let n2 = this._ensureCacheMap(e30, t2), a = r[t2], o = []; i[t2] = o; for (let e31 in a) { let t3 = a[e31]; if (n2.has(e31)) { let r2 = n2.get(e31); if (!r2) continue; r2.result || (r2.result = {}); let i2 = new Sa(t3), a2 = new Sa(r2.result); i2.forValue((e32, t4, n3) => { a2.setValue(e32, t4, n3); }), r2.status = Ky.SUCCESS, r2.callbacks.forEach((e32) => { e32(t3); }), r2.callbacks.clear(), o.push(r2); } } } } this._formulaResult$.next(n); } })); } registerFormulaWithRange(e29, t, n, r = [{ startRow: 0, endRow: 0, startColumn: 0, endColumn: 0 }], i, a = qy.DEFAULT, o = ``) { let s = this._createFormulaId(e29, t, a, o); return this._ensureCacheMap(e29, t).set(s, { result: void 0, status: Ky.WAIT, formulaId: s, callbacks: /* @__PURE__ */ new Set(), extra: i }), this._formulaChangeWithRange$.next({ unitId: e29, subUnitId: t, formulaText: n, formulaId: s, ranges: r }), s; } deleteFormula(e29, t, n) { let r = { unitId: e29, subUnitId: t, formulaIdList: n }; this._commandService.executeCommand(Lr2.id, r, { onlyLocal: true }); let i = this._ensureCacheMap(e29, t); n.forEach((e30) => i.delete(e30)); } getFormulaValue(e29, t, n) { let r = this._ensureCacheMap(e29, t), i = r.get(n); return i ? i.status === Ky.SUCCESS || i.status === Ky.ERROR ? Promise.resolve(i) : new Promise((e30) => { i.callbacks.add(() => { e30(r.get(n)); }); }) : Promise.resolve(null); } getFormulaValueSync(e29, t, n) { return this._ensureCacheMap(e29, t).get(n); } markFormulaDirty(e29, t, n) { let r = this.getFormulaValueSync(e29, t, n); r && (r.status = Ky.WAIT, this._commandService.executeCommand(Ln2.id, { [e29]: { [t]: { [n]: true } } }, { onlyLocal: true })); } }; Jy = dr2([P5(0, ii), P5(1, Gy), P5(2, Inject(Iu))], Jy); var Yy = class extends qu { constructor(e29 = Kr2, t, n) { super(), this._config = e29, this._injector = t, this._configService = n; let { ...r } = merge_default({}, Kr2, this._config); this._configService.setConfig(Ur2, r); } onStarting() { this._initialize(), this._initializeWithOverride(); } onReady() { var e29; St(this._injector, [[By]]), (e29 = this._config) != null && e29.notExecuteFormula || St(this._injector, [[Uy], [Hy], [Vy], [ds2]]); } onRendered() { var e29; (e29 = this._config) != null && e29.notExecuteFormula || St(this._injector, [[ls2], [os2]]); } _initialize() { let e29 = !this._config.notExecuteFormula, t = [[uo2, { useClass: fo2 }], [pr2, { useClass: fr2 }], [Gy, { useClass: Wy }], [Jy], [Ua, { useClass: Ha2 }], [ui2, { useClass: li2 }], [zr2, { useClass: Rr2 }], [Ry], [ai2], [By], [zy]]; e29 && t.push([Qo2, { useClass: Zo2 }], [qa2, { useClass: Ka2 }], [fi2, { useClass: di }], [Xo2, { useClass: Yo }], [ds2], [Uy], [Vy], [Hy], [bo2], [Go], [pi], [$a2], [yo2], [ko2], [Mo2], [Fo2], [ho], [Ro2], [Bo2], [Ho], [Wo]), t.forEach((e30) => this._injector.add(e30)); } _initializeWithOverride() { var e29; this._injector.add([ni, { useClass: ni }]), (e29 = this._config) != null && e29.notExecuteFormula || [[ls2, { useClass: us2 }], [Jo2, { useClass: qo }], [os2, { useClass: ss2 }]].forEach((e30) => this._injector.add(e30)); } }; E3(Yy, `pluginName`, `UNIVER_ENGINE_FORMULA_PLUGIN`), E3(Yy, `packageName`, Iy), E3(Yy, `version`, Ly), Yy = dr2([P5(1, Inject(Injector)), P5(2, Yr)], Yy); // node_modules/@univerjs/sheets/lib/es/index.js function Nt3(e29, t, n) { var r; if (t.t) return t.t; if (t.v === null) return null; let i = e29.getStyleByCell(t), a = e29.getStyleByCell(n); if (n.t === tr.FORCE_STRING) { var o; if (!aa(a == null || (o = a.n) == null ? void 0 : o.pattern) && t.v !== void 0) { if (Ja(t.v)) return tr.NUMBER; if (lt(`${t.v}`)) return tr.BOOLEAN; } return tr.FORCE_STRING; } if (Ft2(i)) { var s; return aa(i == null || (s = i.n) == null ? void 0 : s.pattern) ? tr.STRING : Pt2(t, n); } return aa(a == null || (r = a.n) == null ? void 0 : r.pattern) ? tr.STRING : Pt2(t, n); } function Pt2(e29, t) { return e29.v === void 0 ? It2(t.v, t.t) : It2(e29.v, e29.t); } function Ft2(e29) { var t; return !!(!(e29 == null || (t = e29.n) == null) && t.pattern); } function It2(e29, t) { return e29 === null ? null : typeof e29 == `string` ? Ja(e29) ? (+e29 == 0 || +e29 == 1) && t === tr.BOOLEAN ? tr.BOOLEAN : t !== tr.STRING && t !== tr.FORCE_STRING && tn(e29) ? tr.FORCE_STRING : tr.NUMBER : lt(e29) ? tr.BOOLEAN : tr.STRING : typeof e29 == `number` ? (e29 === 0 || e29 === 1) && t === tr.BOOLEAN ? tr.BOOLEAN : tr.NUMBER : typeof e29 == `boolean` ? tr.BOOLEAN : tr.FORCE_STRING; } function Lt2(e29, t) { let { unitId: n } = t, r = n ? e29.getUnit(n, O.UNIVER_SHEET) : e29.getCurrentUnitOfType(O.UNIVER_SHEET); return r ? { workbook: r, unitId: r.getUnitId() } : null; } function V4(e29, t = {}) { let { unitId: n, subUnitId: r } = t, i = n ? e29.getUnit(n, O.UNIVER_SHEET) : e29.getCurrentUnitOfType(O.UNIVER_SHEET); if (!i) return null; let a = r ? i.getSheetBySheetId(r) : i.getActiveSheet(true); return a ? { worksheet: a, workbook: i, unitId: i.getUnitId(), subUnitId: a.getSheetId() } : null; } function Rt2(e29, t) { let { unitId: n, subUnitId: r } = t, i = e29.getUnit(n, O.UNIVER_SHEET); if (!i) return null; let a = i.getSheetBySheetId(r); return a ? { worksheet: a, workbook: i } : null; } var zt2 = (e29, t) => { if (!Rt2(e29.get(Mu), t)) throw Error(`Workbook or worksheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: D.deepClone(t.ranges) }; }; var H4 = { id: `sheet.mutation.add-worksheet-merge`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`Workbook or worksheet is null error!`); let { worksheet: r } = n, i = r.getConfig().mergeData, a = t.ranges; for (let e30 = 0; e30 < a.length; e30++) i.push(a[e30]); return r.getSpanModel().rebuild(i), true; } }; var Bt3 = { CELL_CONTENT: jt(`CELL_CONTENT`), ROW_FILTERED: jt(`ROW_FILTERED`) }; var Vt2 = (function(e29) { return e29[e29.DATA_VALIDATION = 9] = `DATA_VALIDATION`, e29[e29.NUMFMT = 10] = `NUMFMT`, e29[e29.CELL_IMAGE = 11] = `CELL_IMAGE`, e29; })({}); var Ht2 = `sheet.interceptor.range-theme-id`; var Ut3 = `sheet.interceptor.ignore-range-theme`; function Wt3(e29) { "@babel/helpers - typeof"; return Wt3 = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e30) { return typeof e30; } : function(e30) { return e30 && typeof Symbol == `function` && e30.constructor === Symbol && e30 !== Symbol.prototype ? `symbol` : typeof e30; }, Wt3(e29); } function Gt3(e29, t) { if (Wt3(e29) != `object` || !e29) return e29; var n = e29[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e29, t || `default`); if (Wt3(r) != `object`) return r; throw TypeError(`@@toPrimitive must return a primitive value.`); } return (t === `string` ? String : Number)(e29); } function Kt3(e29) { var t = Gt3(e29, `string`); return Wt3(t) == `symbol` ? t : t + ``; } function U4(e29, t, n) { return (t = Kt3(t)) in e29 ? Object.defineProperty(e29, t, { value: n, enumerable: true, configurable: true, writable: true }) : e29[t] = n, e29; } function W4(e29, t) { return function(n, r) { t(n, r, e29); }; } function G4(e29, t, n, r) { var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o; if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e29, t, n, r); else for (var s = e29.length - 1; s >= 0; s--) (o = e29[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a); return i > 3 && a && Object.defineProperty(t, n, a), a; } var qt2 = jt(`BEFORE_CELL_EDIT`); var Jt2 = jt(`AFTER_CELL_EDIT`); var Yt2 = jt(`VALIDATE_CELL`); var K4 = class extends E { constructor(e29) { super(), this._univerInstanceService = e29, U4(this, `_interceptorsByName`, /* @__PURE__ */ new Map()), U4(this, `_commandInterceptors`, []), U4(this, `_rangeInterceptors`, []), U4(this, `_autoHeightInterceptors`, []), U4(this, `_beforeCommandInterceptor`, []), U4(this, `_afterCommandInterceptors`, []), U4(this, `_workbookDisposables`, /* @__PURE__ */ new Map()), U4(this, `_worksheetDisposables`, /* @__PURE__ */ new Map()), U4(this, `_interceptorsDirty`, false), U4(this, `_composedInterceptorByKey`, /* @__PURE__ */ new Map()), U4(this, `writeCellInterceptor`, new Nt({ BEFORE_CELL_EDIT: qt2, AFTER_CELL_EDIT: Jt2, VALIDATE_CELL: Yt2 })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).subscribe((e30) => { this._interceptWorkbook(e30); })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).subscribe((e30) => this._disposeWorkbookInterceptor(e30))), this.intercept(Bt3.CELL_CONTENT, { priority: -1, effect: At.Style | At.Value, handler: (e30) => e30 }), this.disposeWithMe(this.writeCellInterceptor.intercept(Jt2, { priority: -1, handler: (e30) => e30 })), this.disposeWithMe(this.writeCellInterceptor.intercept(qt2, { priority: -1, handler: (e30) => e30 })), this.disposeWithMe(this.writeCellInterceptor.intercept(Yt2, { priority: -1, handler: (e30) => e30 })); } dispose() { super.dispose(), this._workbookDisposables.forEach((e29) => e29.dispose()), this._workbookDisposables.clear(), this._worksheetDisposables.forEach((e29) => e29.dispose()), this._worksheetDisposables.clear(), this._interceptorsByName.clear(); } interceptCommand(e29) { if (this._commandInterceptors.includes(e29)) throw Error(`[SheetInterceptorService]: Interceptor already exists!`); return this._commandInterceptors.push(e29), this._commandInterceptors.sort((e30, t) => { var n, r; return ((n = t.priority) == null ? 0 : n) - ((r = e30.priority) == null ? 0 : r); }), this.disposeWithMe(T2(() => tt(this._commandInterceptors, e29))); } onCommandExecute(e29) { let t = this._commandInterceptors.map((t2) => t2.getMutations(e29)); return { preUndos: t.map((e30) => { var t2; return (t2 = e30.preUndos) == null ? [] : t2; }).flat(), undos: t.map((e30) => e30.undos).flat(), preRedos: t.map((e30) => { var t2; return (t2 = e30.preRedos) == null ? [] : t2; }).flat(), redos: t.map((e30) => e30.redos).flat() }; } interceptAfterCommand(e29) { if (this._afterCommandInterceptors.includes(e29)) throw Error(`[SheetInterceptorService]: Interceptor already exists!`); return this._afterCommandInterceptors.push(e29), this._afterCommandInterceptors.sort((e30, t) => { var n, r; return ((n = t.priority) == null ? 0 : n) - ((r = e30.priority) == null ? 0 : r); }), this.disposeWithMe(T2(() => tt(this._afterCommandInterceptors, e29))); } afterCommandExecute(e29) { let t = this._afterCommandInterceptors.map((t2) => t2.getMutations(e29)); return { undos: t.map((e30) => e30.undos).flat(), redos: t.map((e30) => e30.redos).flat() }; } interceptAutoHeight(e29) { if (this._autoHeightInterceptors.includes(e29)) throw Error(`[SheetInterceptorService]: Interceptor already exists!`); return this._autoHeightInterceptors.push(e29), this._autoHeightInterceptors.sort((e30, t) => { var n, r; return ((n = t.priority) == null ? 0 : n) - ((r = e30.priority) == null ? 0 : r); }), this.disposeWithMe(T2(() => tt(this._autoHeightInterceptors, e29))); } generateMutationsOfAutoHeight(e29) { let t = this._autoHeightInterceptors.map((t2) => t2.getMutations(e29)); return { preUndos: t.map((e30) => { var t2; return (t2 = e30.preUndos) == null ? [] : t2; }).flat(), undos: t.map((e30) => e30.undos).flat(), preRedos: t.map((e30) => { var t2; return (t2 = e30.preRedos) == null ? [] : t2; }).flat(), redos: t.map((e30) => e30.redos).flat() }; } interceptBeforeCommand(e29) { if (this._beforeCommandInterceptor.includes(e29)) throw Error(`[SheetInterceptorService]: Interceptor already exists!`); return this._beforeCommandInterceptor.push(e29), this._beforeCommandInterceptor.sort((e30, t) => { var n, r; return ((n = t.priority) == null ? 0 : n) - ((r = e30.priority) == null ? 0 : r); }), this.disposeWithMe(T2(() => tt(this._beforeCommandInterceptor, e29))); } async beforeCommandExecute(e29) { return (await Promise.all(this._beforeCommandInterceptor.map((t) => t.performCheck(e29)))).every((e30) => e30); } interceptRanges(e29) { if (this._rangeInterceptors.includes(e29)) throw Error(`[SheetInterceptorService]: Interceptor already exists!`); return this._rangeInterceptors.push(e29), this._rangeInterceptors.sort((e30, t) => { var n, r; return ((n = t.priority) == null ? 0 : n) - ((r = e30.priority) == null ? 0 : r); }), this.disposeWithMe(T2(() => tt(this._rangeInterceptors, e29))); } generateMutationsByRanges(e29) { let t = this._rangeInterceptors.map((t2) => t2.getMutations(e29)); return { preUndos: t.map((e30) => { var t2; return (t2 = e30.preUndos) == null ? [] : t2; }).flat(), undos: t.map((e30) => e30.undos).flat(), preRedos: t.map((e30) => { var t2; return (t2 = e30.preRedos) == null ? [] : t2; }).flat(), redos: t.map((e30) => e30.redos).flat() }; } onWriteCell(e29, t, n, r, i) { let a = { subUnitId: t.getSheetId(), unitId: e29.getUnitId(), workbook: e29, worksheet: t, row: n, col: r, origin: D.deepClone(i) }; return this.writeCellInterceptor.fetchThroughInterceptors(Jt2)(i, a); } onValidateCell(e29, t, n, r) { let i = { subUnitId: t.getSheetId(), unitId: e29.getUnitId(), workbook: e29, worksheet: t, row: n, col: r }; return this.writeCellInterceptor.fetchThroughInterceptors(Yt2)(Promise.resolve(true), i); } intercept(e29, t) { let n = e29; this._interceptorsByName.has(n) || this._interceptorsByName.set(n, []); let r = this._interceptorsByName.get(n); r.push(t); let i = r.sort((e30, t2) => { var n2, r2; return ((n2 = t2.priority) == null ? 0 : n2) - ((r2 = e30.priority) == null ? 0 : r2); }); if (this._interceptorsDirty = true, n === Bt3.CELL_CONTENT) { let e30 = At.Style | At.Value; this._interceptorsByName.set(`${n}-${e30}`, i); let r2 = At.Style | At.Value; return this._interceptorsByName.set(`${n}-${At.Style}`, i.filter((e31) => ((e31.effect || r2) & At.Style) > 0)), this._interceptorsByName.set(`${n}-${At.Value}`, i.filter((e31) => ((e31.effect || r2) & At.Value) > 0)), this.disposeWithMe(T2(() => { tt(this._interceptorsByName.get(n), t), tt(this._interceptorsByName.get(`${n}-${e30}`), t), tt(this._interceptorsByName.get(`${n}-${At.Style}`), t), tt(this._interceptorsByName.get(`${n}-${At.Value}`), t); })); } else return this._interceptorsByName.set(n, i), this.disposeWithMe(T2(() => tt(this._interceptorsByName.get(n), t))); } fetchThroughInterceptors(e29, t, n, r) { let i = t === void 0 ? e29 : `${e29}-${t}`, a = n == null ? i : n, o = this._composedInterceptorByKey.get(a); if (!o || !this._interceptorsDirty) { let e30 = this._interceptorsByName.get(i); e30 && r && (e30 = e30.filter(r)), o = Mt(e30 || []), this._composedInterceptorByKey.set(a, o); } return o; } _interceptWorkbook(e29) { let t = new un(), n = e29.getUnitId(), r = this, i = (t2) => { let i2 = t2.getSheetId(); t2.__interceptViewModel((a) => { let o = new un(); r._worksheetDisposables.set(Xt2(n, t2), o), o.add(a.registerCellContentInterceptor({ getCell(a2, o2, s, c, l) { let u = t2.getCellRaw(a2, o2); return r.fetchThroughInterceptors(Bt3.CELL_CONTENT, s, c, l)(u, { unitId: n, subUnitId: i2, row: a2, col: o2, worksheet: t2, workbook: e29, rawData: u }); } })), o.add(a.registerRowFilteredInterceptor({ getRowFiltered(a2) { return !!r.fetchThroughInterceptors(Bt3.ROW_FILTERED)(false, { unitId: n, subUnitId: i2, row: a2, workbook: e29, worksheet: t2 }); } })); }); }; e29.getSheets().forEach((e30) => i(e30)), t.add(e29.sheetCreated$.subscribe((e30) => i(e30))), t.add(T2(() => e29.getSheets().forEach((e30) => this._disposeSheetInterceptor(n, e30)))), t.add(e29.sheetDisposed$.subscribe((e30) => this._disposeSheetInterceptor(n, e30))), this._workbookDisposables.set(n, t); } _disposeWorkbookInterceptor(e29) { let t = e29.getUnitId(), n = this._workbookDisposables.get(t); n && (n.dispose(), this._workbookDisposables.delete(t)); } _disposeSheetInterceptor(e29, t) { let n = Xt2(e29, t), r = this._worksheetDisposables.get(n); r && (r.dispose(), this._worksheetDisposables.delete(n)); } }; K4 = G4([W4(0, Mu)], K4); function Xt2(e29, t) { return `${e29}|${t.getSheetId()}`; } var Zt3 = (e29) => { let t = {}; return e29.bg && (t.bg = { ...e29.bg }), e29.ol && (t.ol = { ...e29.ol }), e29.bd && (t.bd = { ...e29.bd }), e29.cl && (t.cl = { ...e29.cl }), e29.ht && (t.ht = e29.ht), e29.vt && (t.vt = e29.vt), e29.bl !== void 0 && (t.bl = e29.bl), t; }; function Qt2(e29) { let t = {}; if (e29.length === 1) return e29[0]; for (let n of e29) n.bg && (t.bg = n.bg), n.ol && (t.ol = n.ol), n.bd && (t.bd = { ...t.bd, ...n.bd }), n.cl && (t.cl = n.cl), n.ht && (t.ht = n.ht), n.vt && (t.vt = n.vt), n.bl !== void 0 && (t.bl = n.bl); return t; } var $t3 = { wholeStyle: 1, headerRowStyle: 2, headerColumnStyle: 4, firstRowStyle: 8, secondRowStyle: 16, lastRowStyle: 32, firstColumnStyle: 128, secondColumnStyle: 256, lastColumnStyle: 512 }; var en3 = class { constructor(e29, t) { U4(this, `_name`, void 0), U4(this, `wholeStyle`, null), U4(this, `headerRowStyle`, null), U4(this, `headerColumnStyle`, null), U4(this, `firstRowStyle`, null), U4(this, `secondRowStyle`, null), U4(this, `lastRowStyle`, null), U4(this, `firstColumnStyle`, null), U4(this, `secondColumnStyle`, null), U4(this, `lastColumnStyle`, null), U4(this, `_mergeCacheMap`, /* @__PURE__ */ new Map()), t && this.fromJson({ ...t, name: e29 }), this._name = e29; } getName() { return this._name; } getWholeStyle() { return this.wholeStyle; } setWholeStyle(e29) { this.wholeStyle = e29, this._resetStyleCache(); } getFirstRowStyle() { return this.firstRowStyle; } setFirstRowStyle(e29) { this.firstRowStyle = e29, this._resetStyleCache(); } getSecondRowStyle() { return this.secondRowStyle; } setSecondRowStyle(e29) { this.secondRowStyle = e29, this._resetStyleCache(); } getLastRowStyle() { return this.lastRowStyle; } setLastRowStyle(e29) { this.lastRowStyle = e29, this._resetStyleCache(); } getFirstColumnStyle() { return this.firstColumnStyle; } setFirstColumnStyle(e29) { this.firstColumnStyle = e29, this._resetStyleCache(); } getSecondColumnStyle() { return this.secondColumnStyle; } setSecondColumnStyle(e29) { this.secondColumnStyle = e29, this._resetStyleCache(); } getLastColumnStyle() { return this.lastColumnStyle; } setLastColumnStyle(e29) { this.lastColumnStyle = e29, this._resetStyleCache(); } getHeaderRowStyle() { return this.headerRowStyle; } setHeaderRowStyle(e29) { this.headerRowStyle = e29, this._resetStyleCache(); } getHeaderColumnStyle() { return this.headerColumnStyle; } setHeaderColumnStyle(e29) { this.headerColumnStyle = e29, this._resetStyleCache(); } getStyle(e29, t, n, r, i) { let a = 0; return n && (a |= $t3.lastRowStyle), r && (a |= $t3.lastColumnStyle), e29 >= 0 && t >= 0 && (a |= $t3.wholeStyle), e29 % 2 == 1 && (a |= i ? $t3.secondRowStyle : $t3.firstRowStyle), e29 % 2 == 0 && (a |= i ? $t3.firstRowStyle : $t3.secondRowStyle), e29 === 0 && (a |= $t3.headerRowStyle), t === 0 && (a |= $t3.headerColumnStyle), t % 2 == 1 && (a |= $t3.firstColumnStyle), t % 2 == 0 && (a |= $t3.secondColumnStyle), a === 0 ? null : this._getMergeStyle(a); } _getMergeStyle(e29) { let t = this._mergeCacheMap.get(e29); return t || (t = this._mergeStyle(e29), this._mergeCacheMap.set(e29, t)), t; } _mergeStyle(e29) { let t = []; return this.wholeStyle && e29 & $t3.wholeStyle && t.push(this.wholeStyle), this.firstColumnStyle && e29 & $t3.firstColumnStyle && t.push(this.firstColumnStyle), this.secondColumnStyle && e29 & $t3.secondColumnStyle && t.push(this.secondColumnStyle), this.firstRowStyle && e29 & $t3.firstRowStyle && t.push(this.firstRowStyle), this.secondRowStyle && e29 & $t3.secondRowStyle && t.push(this.secondRowStyle), this.headerColumnStyle && e29 & $t3.headerColumnStyle && t.push(this.headerColumnStyle), this.lastColumnStyle && e29 & $t3.lastColumnStyle && t.push(this.lastColumnStyle), this.headerRowStyle && e29 & $t3.headerRowStyle && t.push(this.headerRowStyle), this.lastRowStyle && e29 & $t3.lastRowStyle && t.push(this.lastRowStyle), Qt2(t); } _resetStyleCache() { this._mergeCacheMap.clear(); } toJson() { let e29 = { name: this._name }; return this.wholeStyle && (e29.wholeStyle = Zt3(this.wholeStyle)), this.headerRowStyle && (e29.headerRowStyle = Zt3(this.headerRowStyle)), this.headerColumnStyle && (e29.headerColumnStyle = Zt3(this.headerColumnStyle)), this.firstRowStyle && (e29.firstRowStyle = Zt3(this.firstRowStyle)), this.secondRowStyle && (e29.secondRowStyle = Zt3(this.secondRowStyle)), this.lastRowStyle && (e29.lastRowStyle = Zt3(this.lastRowStyle)), this.firstColumnStyle && (e29.firstColumnStyle = Zt3(this.firstColumnStyle)), this.secondColumnStyle && (e29.secondColumnStyle = Zt3(this.secondColumnStyle)), this.lastColumnStyle && (e29.lastColumnStyle = Zt3(this.lastColumnStyle)), e29; } fromJson(e29) { this._name = e29.name, e29.wholeStyle && (this.wholeStyle = Zt3(e29.wholeStyle)), e29.headerRowStyle && (this.headerRowStyle = Zt3(e29.headerRowStyle)), e29.headerColumnStyle && (this.headerColumnStyle = Zt3(e29.headerColumnStyle)), e29.firstRowStyle && (this.firstRowStyle = Zt3(e29.firstRowStyle)), e29.secondRowStyle && (this.secondRowStyle = Zt3(e29.secondRowStyle)), e29.lastRowStyle && (this.lastRowStyle = Zt3(e29.lastRowStyle)), e29.firstColumnStyle && (this.firstColumnStyle = Zt3(e29.firstColumnStyle)), e29.secondColumnStyle && (this.secondColumnStyle = Zt3(e29.secondColumnStyle)), e29.lastColumnStyle && (this.lastColumnStyle = Zt3(e29.lastColumnStyle)); } dispose() { this._mergeCacheMap.clear(); } }; var tn3 = (e29, t, n) => new en3(`light-${e29}`, { headerRowStyle: { bg: { rgb: t } }, firstColumnStyle: { bg: { rgb: `rgb(255, 255, 255)` } }, secondColumnStyle: { bg: { rgb: n } }, lastRowStyle: { bg: { rgb: t } } }); var nn2 = (e29, t, n) => new en3(`middle-${e29}`, { headerRowStyle: { bg: { rgb: t } }, headerColumnStyle: { bg: { rgb: n } }, secondRowStyle: { bg: { rgb: n } }, lastRowStyle: { bg: { rgb: t } }, lastColumnStyle: { bg: { rgb: n } } }); var rn2 = (e29, t, n, i) => new en3(`dark-${e29}`, { headerRowStyle: { bg: { rgb: t }, cl: { rgb: `rgb(255, 255, 255)` }, ht: Yn.CENTER, bl: A.TRUE }, firstRowStyle: { bg: { rgb: n } }, secondRowStyle: { bg: { rgb: i } }, lastRowStyle: { bg: { rgb: t } } }); var an3 = [{ baseName: `blue`, header: `rgb(164, 202, 254)`, color: `rgb(225, 239, 254)` }, { baseName: `grey`, header: `rgb(205, 208, 216)`, color: `rgb(238, 239, 241)` }, { baseName: `red`, header: `rgb(248, 180, 180)`, color: `rgb(253, 232, 232)` }, { baseName: `orange`, header: `rgb(253, 186, 140)`, color: `rgb(254, 236, 220)` }, { baseName: `yellow`, header: `rgb(250, 200, 21)`, color: `rgb(255, 244, 185)` }, { baseName: `green`, header: `rgb(132, 225, 188)`, color: `rgb(222, 247, 236)` }, { baseName: `azure`, header: `rgb(126, 220, 226)`, color: `rgb(213, 245, 246)` }, { baseName: `indigo`, header: `rgb(186, 198, 248)`, color: `rgb(233, 237, 255)` }, { baseName: `purple`, header: `rgb(202, 191, 253)`, color: `rgb(237, 235, 254)` }, { baseName: `magenta`, header: `rgb(248, 180, 217)`, color: `rgb(252, 232, 243)` }]; var on3 = [{ baseName: `blue`, rowHeader: `rgb(63, 131, 248)`, colHeader: `rgb(195, 221, 253)` }, { baseName: `grey`, rowHeader: `rgb(95, 101, 116)`, colHeader: `rgb(227, 229, 234)` }, { baseName: `red`, rowHeader: `rgb(240, 82, 82)`, colHeader: `rgb(251, 213, 213)` }, { baseName: `orange`, rowHeader: `rgb(255, 90, 31)`, colHeader: `rgb(252, 217, 189)` }, { baseName: `yellow`, rowHeader: `rgb(212, 157, 15)`, colHeader: `rgb(252, 220, 106)` }, { baseName: `green`, rowHeader: `rgb(13, 164, 113)`, colHeader: `rgb(188, 240, 218)` }, { baseName: `azure`, rowHeader: `rgb(6, 148, 162)`, colHeader: `rgb(175, 236, 239)` }, { baseName: `indigo`, rowHeader: `rgb(70, 106, 247)`, colHeader: `rgb(210, 218, 250)` }, { baseName: `purple`, rowHeader: `rgb(144, 97, 249)`, colHeader: `rgb(220, 215, 254)` }, { baseName: `magenta`, rowHeader: `rgb(231, 70, 148)`, colHeader: `rgb(250, 209, 232)` }]; var sn3 = [{ baseName: `blue`, rowHeader: `rgb(30, 66, 159)`, firstRow: `rgb(195, 221, 253)`, secondRow: `rgb(118, 169, 250)` }, { baseName: `grey`, rowHeader: `rgb(44, 48, 64)`, firstRow: `rgb(227, 229, 234)`, secondRow: `rgb(151, 157, 172)` }, { baseName: `red`, rowHeader: `rgb(155, 28, 28)`, firstRow: `rgb(251, 213, 213)`, secondRow: `rgb(249, 128, 128)` }, { baseName: `orange`, rowHeader: `rgb(180, 52, 3)`, firstRow: `rgb(252, 217, 189)`, secondRow: `rgb(255, 138, 76)` }, { baseName: `yellow`, rowHeader: `rgb(154, 109, 21)`, firstRow: `rgb(252, 220, 106)`, secondRow: `rgb(212, 157, 15)` }, { baseName: `green`, rowHeader: `rgb(4, 108, 78)`, firstRow: `rgb(188, 240, 218)`, secondRow: `rgb(49, 196, 141)` }, { baseName: `azure`, rowHeader: `rgb(3, 102, 114)`, firstRow: `rgb(175, 236, 239)`, secondRow: `rgb(22, 189, 202)` }, { baseName: `indigo`, rowHeader: `rgb(16, 51, 191)`, firstRow: `rgb(210, 218, 250)`, secondRow: `rgb(98, 128, 249)` }, { baseName: `purple`, rowHeader: `rgb(74, 29, 150)`, firstRow: `rgb(220, 215, 254)`, secondRow: `rgb(172, 148, 250)` }, { baseName: `magenta`, rowHeader: `rgb(153, 21, 75)`, firstRow: `rgb(250, 209, 232)`, secondRow: `rgb(241, 126, 184)` }]; var cn2 = an3.map(({ baseName: e29, header: t, color: n }) => tn3(e29, t, n)); var ln4 = on3.map(({ baseName: e29, rowHeader: t, colHeader: n }) => nn2(e29, t, n)); var un3 = sn3.map(({ baseName: e29, rowHeader: t, firstRow: n, secondRow: r }) => rn2(e29, t, n, r)); var dn3 = [...cn2, ...ln4, ...un3]; var fn2 = { headerRowStyle: { bg: { rgb: `rgb(68,114,196)` }, cl: { rgb: `rgb(255,255,255)` }, ht: Yn.CENTER, bl: A.TRUE }, firstRowStyle: { bg: { rgb: `rgb(217,225,242)` } } }; var pn3 = new en3(`default`, fn2); var mn3 = new en3(`default-last-row`, { ...fn2, lastRowStyle: { bd: { t: { s: k.THIN, cl: { rgb: `rgb(68,114,196)` } } }, ht: Yn.CENTER, bl: A.TRUE } }); var hn3 = class { constructor() { U4(this, `_toggleRanges`, []); } refresh(e29, t) { let { startRow: n, endRow: r } = e29, i = [], a = 0, o = false, s = -1; for (let e30 = n; e30 <= r; e30++) { if (!t(e30)) { a++, a % 2 == 1 ? o = true : (o = false, s !== -1 && (i.push([s, e30 - 1]), s = -1)); continue; } a % 2 == 1 ? o ? s === -1 && (s = e30) : (o = true, s = e30) : o && (i.push([s, e30 - 2]), o = false, s = -1), e30 === r && o && i.push([s, e30]); } this._toggleRanges = i; } getToggleRanges() { return this._toggleRanges.concat(); } getIsToggled(e29) { let t = 0, n = this._toggleRanges.length - 1; for (; t <= n; ) { let r = Math.floor((t + n) / 2), [i, a] = this._toggleRanges[r]; if (e29 < i) n = r - 1; else if (e29 > a) t = r + 1; else return true; } return false; } }; var gn3 = class extends E { constructor(e29, t, n) { super(), this._sheetInterceptorService = e29, this._resourceManagerService = t, this._univerInstanceService = n, U4(this, `_rangeThemeStyleMap`, /* @__PURE__ */ new Map()), U4(this, `_rangeThemeStyleRuleMap`, /* @__PURE__ */ new Map()), U4(this, `_rTreeCollection`, /* @__PURE__ */ new Map()), U4(this, `_defaultRangeThemeMap`, /* @__PURE__ */ new Map()), U4(this, `_zebraCrossingCacheMap`, /* @__PURE__ */ new Map()), U4(this, `_rowVisibleFuncSet`, /* @__PURE__ */ new Map()), U4(this, `_rangeThemeMapChanged$`, new Subject()), U4(this, `rangeThemeMapChange$`, this._rangeThemeMapChanged$.asObservable()), this._registerIntercept(), this._initSnapshot(), this._initDefaultTheme(); } _initDefaultTheme() { this.registerDefaultRangeTheme(pn3), this.registerDefaultRangeTheme(mn3); for (let e29 of dn3) this.registerDefaultRangeTheme(e29); } _ensureRangeThemeStyleMap(e29) { return this._rangeThemeStyleMap.has(e29) || this._rangeThemeStyleMap.set(e29, /* @__PURE__ */ new Map()), this._rangeThemeStyleMap.get(e29); } _ensureRangeThemeStyleRuleMap(e29) { return this._rangeThemeStyleRuleMap.has(e29) || this._rangeThemeStyleRuleMap.set(e29, /* @__PURE__ */ new Map()), this._rangeThemeStyleRuleMap.get(e29); } _ensureRTreeCollection(e29) { return this._rTreeCollection.has(e29) || this._rTreeCollection.set(e29, new dd()), this._rTreeCollection.get(e29); } getDefaultRangeThemeStyle(e29) { return this._defaultRangeThemeMap.get(e29); } getCustomRangeThemeStyle(e29, t) { return this._ensureRangeThemeStyleMap(e29).get(t); } _getSheetRowVisibleFuncSet(e29, t) { this._rowVisibleFuncSet.has(e29) || this._rowVisibleFuncSet.set(e29, /* @__PURE__ */ new Map()); let n = this._rowVisibleFuncSet.get(e29); return n.has(t) || n.set(t, /* @__PURE__ */ new Set()), n.get(t); } _getSheetRowVisibleHasInit(e29, t) { var n; return !!(this._rowVisibleFuncSet.has(e29) && (n = this._rowVisibleFuncSet.get(e29)) != null && n.has(t)); } refreshSheetRowVisibleFuncSet(e29, t) { let n = this._getSheetRowVisibleFuncSet(e29, t); n.clear(); let r = this._univerInstanceService.getUnit(e29); if (r) { let e30 = r.getSheetBySheetId(t); if (e30) { let t2 = e30.getRowCount(), r2 = e30.getRowManager(); for (let i = 1; i <= t2; i++) e30.getRowVisible(i) ? r2.getRowHeight(i) === 0 && n.add(i) : n.add(i); } } } _ensureZebraCrossingCache(e29, t, n) { this._zebraCrossingCacheMap.has(e29) || this._zebraCrossingCacheMap.set(e29, /* @__PURE__ */ new Map()); let r = this._zebraCrossingCacheMap.get(e29); r.has(t) || r.set(t, /* @__PURE__ */ new Map()); let i = r.get(t); return i.has(n) || i.set(n, new hn3()), i.get(n); } registerRangeThemeRule(e29, t) { let { unitId: n, subUnitId: r, range: i } = t, a = O2(), o = this._ensureRangeThemeStyleRuleMap(n), s = this._ensureRTreeCollection(n); o.set(a, { rangeInfo: t, themeName: e29 }), s.insert({ unitId: n, sheetId: r, range: i, id: a }), this._getSheetRowVisibleHasInit(n, r) || this.refreshSheetRowVisibleFuncSet(n, r); let c = this._ensureZebraCrossingCache(n, r, a), l = this._getSheetRowVisibleFuncSet(n, r); c.refresh(i, (e30) => !l.has(e30)); } getRegisteredRangeThemeStyle(e29) { let { unitId: t, subUnitId: n, range: r } = e29, i = this._ensureRTreeCollection(t), a = Array.from(i.bulkSearch([{ unitId: t, sheetId: n, range: r }])); if (a[0]) { let e30 = this._ensureRangeThemeStyleRuleMap(t).get(a[0]); if (e30) return e30.themeName; } } refreshZebraCrossingCacheBySheet(e29, t) { this._zebraCrossingCacheMap.has(e29) || this._zebraCrossingCacheMap.set(e29, /* @__PURE__ */ new Map()); let n = this._zebraCrossingCacheMap.get(e29); n.has(t) || n.set(t, /* @__PURE__ */ new Map()); let r = n.get(t); r && r.forEach((n2, i) => { let a = this._ensureRangeThemeStyleRuleMap(e29).get(i); a ? n2.refresh(a.rangeInfo.range, (n3) => !this._getSheetRowVisibleFuncSet(e29, t).has(n3)) : r.delete(i); }); } removeRangeThemeRule(e29, t) { let { unitId: n, subUnitId: r, range: i } = t, a = this._ensureRTreeCollection(n), o = Array.from(a.bulkSearch([{ unitId: n, sheetId: r, range: i }])), s = this._ensureRangeThemeStyleRuleMap(n); for (let t2 = 0; t2 < o.length; t2++) { let c = s.get(o[t2]); if (c && c.themeName === e29) { s.delete(o[t2]), a.remove({ unitId: n, sheetId: r, range: i, id: o[t2] }); let e30 = this._zebraCrossingCacheMap.get(n); if (e30) { let n2 = e30.get(r); n2 && n2.delete(o[t2]); } break; } } } registerDefaultRangeTheme(e29) { this._defaultRangeThemeMap.set(e29.getName(), e29), this._rangeThemeMapChanged$.next({ type: `add`, styleName: e29.getName() }); } unRegisterDefaultRangeTheme(e29) { this._defaultRangeThemeMap.delete(e29), this._rangeThemeMapChanged$.next({ type: `remove`, styleName: e29 }); } getRegisteredRangeThemes() { return Array.from(this._defaultRangeThemeMap.keys()); } registerRangeThemeStyle(e29, t) { this._ensureRangeThemeStyleMap(e29).set(t.getName(), t), this._rangeThemeMapChanged$.next({ type: `add`, styleName: t.getName() }); } unregisterRangeThemeStyle(e29, t) { this._ensureRangeThemeStyleMap(e29).delete(t), this._rangeThemeMapChanged$.next({ type: `remove`, styleName: t }); } getALLRegisteredTheme(e29) { return Array.from(this._ensureRangeThemeStyleMap(e29).keys()); } getRangeThemeStyle(e29, t) { return this._defaultRangeThemeMap.has(t) ? this._defaultRangeThemeMap.get(t) : this._ensureRangeThemeStyleMap(e29).get(t); } getCellStyle(e29, t, n, r) { let i = { startRow: n, startColumn: r, endRow: n, endColumn: r }, a = this._ensureRTreeCollection(e29), o = Array.from(a.bulkSearch([{ unitId: e29, sheetId: t, range: i }])); if (o[0]) { let i2 = this._ensureRangeThemeStyleRuleMap(e29).get(o[0]); if (i2) { let { rangeInfo: a2, themeName: s } = i2, c = n - a2.range.startRow, l = r - a2.range.startColumn, u = this.getRangeThemeStyle(e29, s), d = this._ensureZebraCrossingCache(e29, t, o[0]).getIsToggled(n); if (u) return u.getStyle(c, l, n === a2.range.endRow, r === a2.range.endColumn, d); } } } _registerIntercept() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { id: Ht2, effect: At.Style, handler: (e29, t, n) => { let { row: r, col: i, unitId: a, subUnitId: o } = t, s = this.getCellStyle(a, o, r, i); if (s) { let r2 = !e29 || e29 === t.rawData ? { ...t.rawData } : e29; return r2.themeStyle = s, n(r2); } return n(e29); } })); } toJson(e29) { let t = this._ensureRangeThemeStyleRuleMap(e29), n = this._ensureRangeThemeStyleMap(e29); if (n.size === 0 && t.size === 0) return `{}`; let r = {}; t.forEach((e30, t2) => { r[t2] = e30; }); let i = {}; return n.forEach((e30, t2) => { i[t2] = e30.toJson(); }), JSON.stringify({ rangeThemeStyleRuleMap: r, rangeThemeStyleMapJson: i }); } fromJSON(e29, t) { let { rangeThemeStyleRuleMap: n, rangeThemeStyleMapJson: r } = t; n && Object.keys(n).forEach((e30) => { let { themeName: t2, rangeInfo: r2 } = n[e30]; t2.startsWith(`table`) || (this.registerRangeThemeRule(t2, r2), this._ensureRTreeCollection(r2.unitId).insert({ unitId: e30, sheetId: r2.subUnitId, range: r2.range, id: e30 })); }), r && Object.keys(r).forEach((t2) => { let n2 = r[t2], i = new en3(n2.name); i.fromJson(n2), this._ensureRangeThemeStyleMap(e29).set(i.getName(), i); }); } deleteUnitId(e29) { this._rangeThemeStyleMap.delete(e29), this._rangeThemeStyleRuleMap.delete(e29), this._rTreeCollection.delete(e29); } _initSnapshot() { this.disposeWithMe(this._resourceManagerService.registerPluginResource({ toJson: (e29) => this.toJson(e29), parseJson: (e29) => { if (!e29) return {}; try { return JSON.parse(e29); } catch { return {}; } }, businesses: [O.UNIVER_SHEET], pluginName: `SHEET_RANGE_THEME_MODEL_PLUGIN`, onLoad: (e29, t) => { this.fromJSON(e29, t); }, onUnLoad: (e29) => { this.deleteUnitId(e29); } })); } dispose() { super.dispose(), this._rangeThemeStyleMap.clear(), this._rangeThemeStyleRuleMap.clear(), this._defaultRangeThemeMap.clear(), this._rTreeCollection.clear(), this._zebraCrossingCacheMap.clear(), this._rowVisibleFuncSet.clear(); } }; gn3 = G4([W4(0, Inject(K4)), W4(1, Inject(ll)), W4(2, Inject(Mu))], gn3); var _n3 = { id: `sheet.mutation.set-worksheet-range-theme-style`, type: ri.MUTATION, handler: (e29, t) => { if (!V4(e29.get(Mu), t)) return false; let n = e29.get(gn3), { unitId: r, subUnitId: i, range: a, themeName: o } = t; return n.registerRangeThemeRule(o, { range: a, unitId: r, subUnitId: i }), true; } }; var vn3 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!`); let { worksheet: r } = n; return { unitId: t.unitId, subUnitId: r.getSheetId(), range: t.range, themeName: t.themeName }; }; var yn3 = { id: `sheet.mutation.remove-worksheet-range-theme-style`, type: ri.MUTATION, handler: (e29, t) => { if (!V4(e29.get(Mu), t)) return false; let n = e29.get(gn3), { unitId: r, subUnitId: i, range: a, themeName: o } = t; return n.removeRangeThemeRule(o, { range: a, unitId: r, subUnitId: i }), true; } }; var bn2 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!`); let { worksheet: r } = n; return { unitId: t.unitId, subUnitId: r.getSheetId(), range: t.range, themeName: t.themeName }; }; var xn3 = (e29, t) => { if (!Rt2(e29.get(Mu), t)) throw Error(`Workbook or Worksheet not found at InsertRowMutationUndoFactory`); return { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range }; }; var Sn3 = { id: `sheet.mutation.insert-row`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`Workbook or Worksheet not found at InsertRowMutation`); let { worksheet: r } = n, i = r.getRowManager(), { range: a, rowInfo: o } = t, { startRow: s, endRow: c } = a; i.insertRowsWithData(s, c, o); let l = c - s + 1; return r.setRowCount(r.getRowCount() + l), r.getCellMatrix().insertRows(s, l), true; } }; var Cn3 = (e29, t) => { if (!Rt2(e29.get(Mu), t)) throw Error(`Workbook or Worksheet not found at InsertColMutationUndoFactory`); return { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range }; }; var wn3 = { id: `sheet.mutation.insert-col`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`Workbook or Worksheet not found at InsertColMutation`); let { worksheet: r } = n, i = r.getColumnManager(), { range: a, colInfo: o } = t, { startColumn: s, endColumn: c } = a; i.insertColumnsWithData(s, c, o); let l = c - s + 1; return r.setColumnCount(r.getColumnCount() + l), r.getCellMatrix().insertColumns(a.startColumn, l), true; } }; var Tn3 = { id: `sheet.mutation.move-range`, type: ri.MUTATION, handler: (e29, t) => { let { from: n, to: r } = t; if (!n || !r) return false; let i = e29.get(Mu).getCurrentUnitForType(O.UNIVER_SHEET); if (!i) return false; let a = i.getSheetBySheetId(t.from.subUnitId), o = i.getSheetBySheetId(t.to.subUnitId); if (!a || !o) return false; let s = a.getCellMatrix(), c = o.getCellMatrix(); return new Sa(n.value).forValue((e30, t2, n2) => { n2 == null ? s.realDeleteValue(e30, t2) : s.setValue(e30, t2, n2); }), new Sa(r.value).forValue((e30, t2, n2) => { n2 == null ? c.realDeleteValue(e30, t2) : c.setValue(e30, t2, n2); }), true; } }; function En2(e29, t) { let { unitId: n, subUnitId: r, sourceRange: i, targetRange: a } = t, o = i.startRow > a.startRow, s = i.endRow - i.startRow + 1; return o ? { unitId: n, subUnitId: r, sourceRange: G.clone(a), targetRange: { ...i, endRow: i.endRow + s, startRow: i.startRow + s } } : { unitId: n, subUnitId: r, targetRange: G.clone(i), sourceRange: { ...a, endRow: a.endRow - s, startRow: a.startRow - s } }; } var Dn3 = { id: `sheet.mutation.move-rows`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, sourceRange: i, targetRange: a } = t, o = e29.get(Mu).getUniverSheetInstance(n); if (!o) throw Error(`[MoveRowMutation] univerSheet is null!`); let s = o.getSheetBySheetId(r); if (!s) throw Error(`[MoveRowMutation] worksheet is null!`); let c = i.startRow, l = i.endRow - i.startRow + 1, u = a.startRow; return ya(c, l, u, s.getRowManager().getRowData()), s.getCellMatrix().moveRows(c, l, u), true; } }; function On3(e29, t) { let { unitId: n, subUnitId: r, sourceRange: i, targetRange: a } = t, o = i.startColumn > a.startColumn, s = i.endColumn - i.startColumn + 1; return o ? { unitId: n, subUnitId: r, sourceRange: G.clone(a), targetRange: { ...i, endColumn: i.endColumn + s, startColumn: i.startColumn + s } } : { unitId: n, subUnitId: r, targetRange: G.clone(i), sourceRange: { ...a, startColumn: a.startColumn - s, endColumn: a.endColumn - s } }; } var kn3 = { id: `sheet.mutation.move-columns`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, sourceRange: i, targetRange: a } = t, o = e29.get(Mu).getUniverSheetInstance(n); if (!o) throw Error(`[MoveColumnMutation] univerSheet is null!`); let s = o.getSheetBySheetId(r); if (!s) throw Error(`[MoveColumnMutation] worksheet is null!`); let c = i.startColumn, l = i.endColumn - i.startColumn + 1, u = a.startColumn; return ya(c, l, u, s.getColumnManager().getColumnData()), s.getCellMatrix().moveColumns(c, l, u), true; } }; var An2 = (e29, t) => { let n = t.getRowManager().getRowData(), r = {}, i = e29.range, a = _a(r, va(i.startRow, i.endRow, n)); return { unitId: e29.unitId, subUnitId: e29.subUnitId, range: e29.range, rowInfo: a }; }; var jn2 = { id: `sheet.mutation.remove-rows`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId); if (!r) return false; let i = t.range, a = r.getRowManager().getRowData(), o = []; for (let e30 = i.startRow; e30 <= i.endRow; e30++) r.getRowFiltered(e30) && o.push(e30); let s = i.endRow - i.startRow + 1; return ga(i.startRow, s, a), r.getCellMatrix().removeRows(i.startRow, s), r.setRowCount(r.getRowCount() - s), true; } }; var Mn2 = (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId); if (r == null) throw Error(`worksheet is null error!`); let i = r.getColumnManager().getColumnData(), a = {}, o = t.range, s = _a(a, va(o.startColumn, o.endColumn, i)); return { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range, colInfo: s }; }; var Nn3 = { id: `sheet.mutation.remove-col`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId); if (!r) return false; let i = t.range, a = r.getColumnManager().getColumnData(), o = i.endColumn - i.startColumn + 1; return ga(i.startColumn, o, a), r.setColumnCount(r.getColumnCount() - o), r.getCellMatrix().removeColumns(i.startColumn, o), true; } }; var Pn2 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`Workbook or worksheet is null error!`); let { worksheet: r } = n, i = r.getConfig().mergeData, a = t.ranges, o = []; for (let e30 = 0; e30 < a.length; e30++) for (let t2 = i.length - 1; t2 >= 0; t2--) { let n2 = i[t2], r2 = a[e30]; G.intersects(n2, r2) && o.push(i[t2]); } return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: o }; }; var q4 = { id: `sheet.mutation.remove-worksheet-merge`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`Workbook or worksheet is null error!`); let { worksheet: r } = n, i = r.getConfig().mergeData, a = t.ranges; for (let e30 = 0; e30 < a.length; e30++) for (let t2 = i.length - 1; t2 >= 0; t2--) { let n2 = i[t2], r2 = a[e30]; G.intersects(n2, r2) && i.splice(t2, 1); } return r.getSpanModel().rebuild(i), true; } }; var Fn3 = (e29) => { let { order: t } = e29, n = {}; return Object.keys(t).forEach((e30) => { n[t[Number(e30)]] = Number(e30); }), { ...e29, order: n }; }; var In2 = { id: `sheet.mutation.reorder-range`, type: ri.MUTATION, handler: (e29, t) => { let { subUnitId: n, unitId: r, range: i, order: a } = t, o = e29.get(Mu).getUnit(r).getSheetBySheetId(n); if (!o) return false; let s = new Sa(); Eo.foreach(i, (e30, t2) => { if (a.hasOwnProperty(e30)) { let n2 = a[e30], r2 = D.deepClone(o.getCellRaw(n2, t2)); s.setValue(e30, t2, r2); } }); let c = o.getCellMatrix(); return s.forValue((e30, t2, n2) => { c.setValue(e30, t2, n2); }), true; } }; function Ln3(e29, t) { if (e29 == null) return e29; let n = D.deepClone(e29); if (t == null) return n; let r = {}; return `h` in t && (r.h = n.h), `ia` in t && (r.ia = n.ia), `ah` in t && (r.ah = n.ah), `hd` in t && (r.hd = n.hd), `s` in t && (r.s = n.s), `custom` in t && (r.custom = n.custom), r; } function Rn3(e29, t) { if (e29 == null) return e29; let n = D.deepClone(e29); if (t == null) return n; let r = {}; return `w` in t && (r.w = n.w), `hd` in t && (r.hd = n.hd), `s` in t && (r.s = n.s), `custom` in t && (r.custom = n.custom), r; } var zn3 = (e29, t) => { let { unitId: n, subUnitId: r, columnData: i } = e29, a = {}, o = t.getColumnManager(); for (let e30 in i) { let t2 = i[e30]; a[e30] = Rn3(o.getColumn(Number(e30)), t2); } return { unitId: n, subUnitId: r, columnData: a }; }; var Bn3 = { id: `sheet.mutation.set-col-data`, type: ri.MUTATION, handler: (e29, t) => { let { columnData: n } = t, r = V4(e29.get(Mu), t); if (!r) return false; let { worksheet: i } = r, a = i.getColumnManager(); for (let e30 in n) { let t2 = n[e30]; if (t2 == null) { a.removeColumn(Number(e30)); continue; } let r2 = a.getColumnOrCreate(Number(e30)); Object.assign(r2, t2); } return true; } }; var Vn3 = (e29, t) => { if (e29.get(Mu).getUniverSheetInstance(t.unitId) == null) throw Error(`universheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: t.ranges }; }; var Hn3 = { id: `sheet.mutation.set-col-hidden`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let i = n.getSheetBySheetId(t.subUnitId).getColumnManager(); for (let e30 = 0; e30 < t.ranges.length; e30++) { let n2 = t.ranges[e30]; for (let e31 = n2.startColumn; e31 < n2.endColumn + 1; e31++) { let t2 = i.getColumnOrCreate(e31); t2 != null && (t2.hd = A.TRUE); } } return true; } }; var Un2 = (e29, t) => { if (e29.get(Mu).getUniverSheetInstance(t.unitId) == null) throw Error(`universheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: t.ranges }; }; var Wn3 = { id: `sheet.mutation.set-col-visible`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let i = n.getSheetBySheetId(t.subUnitId).getColumnManager(); for (let e30 = 0; e30 < t.ranges.length; e30++) { let n2 = t.ranges[e30]; for (let e31 = n2.startColumn; e31 < n2.endColumn + 1; e31++) { let t2 = i.getColumnOrCreate(e31); t2 != null && (t2.hd = A.FALSE); } } return true; } }; var Gn3 = { id: `sheet.mutation.set-gridlines-color`, type: ri.MUTATION, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { worksheet: r } = n, i = r.getConfig(); return i.gridlinesColor = t.color, true; } }; function Kn3(e29) { return typeof e29 == `object` && !!e29 && !Array.isArray(e29); } function qn3(e29, t, n) { for (let r of t) Object.prototype.hasOwnProperty.call(e29, r) && n(r, e29[r]); } function Jn3(e29, t, n) { if (e29 == null) return e29; if (!Kn3(e29)) return; let r = {}, i = false; if (qn3(e29, t, (e30, t2) => { r[e30] = t2, i = true; }), n) for (let t2 in n) { let a = n[t2]; if (!a || !Object.prototype.hasOwnProperty.call(e29, t2)) continue; let o = a(e29[t2]); o !== void 0 && (r[t2] = o, i = true); } return i ? r : void 0; } function Yn3(e29, t, n) { if (e29 == null) return e29; if (!Kn3(e29)) return; let r = {}, i = false; return qn3(e29, t, (e30, t2) => { let a = n(t2); a !== void 0 && (r[e30] = a, i = true); }), i ? r : void 0; } function Xn3(e29) { switch (e29) { case `bd`: case `tr`: case `td`: case `ht`: case `vt`: case `tb`: case `pd`: case `bg`: return true; default: return false; } } function Zn3(e29) { return e29 == null || [`string`, `number`, `boolean`].includes(typeof e29); } function Qn3(e29) { return Jn3(e29, Hr); } function $n3(e29) { return Jn3(e29, Vr, { cl: Qn3 }); } function er3(e29) { return Jn3(e29, Ur, { cl: Qn3 }); } function tr2(e29) { return Yn3(e29, Wr, er3); } function nr3(e29) { return Jn3(e29, Gr); } function rr3(e29) { return Jn3(e29, Kr); } function ir3(e29) { if (e29 == null) return e29; if (!(!Kn3(e29) || !Object.prototype.hasOwnProperty.call(e29, `pattern`) || typeof e29.pattern != `string`)) return { pattern: e29.pattern }; } function ar3(e29, t) { switch (e29) { case `ul`: case `bbl`: case `st`: case `ol`: return $n3(t); case `bg`: case `cl`: return Qn3(t); case `bd`: return tr2(t); case `tr`: return nr3(t); case `pd`: return rr3(t); case `n`: return ir3(t); default: return Zn3(t) ? t : void 0; } } function or3(e29, n) { if (n === null) return null; if (n === void 0) return e29; let r = n, i = D.isObject(e29) ? { ...e29 } : {}; return qn3(r, Wr, (e30, t) => { let n2 = er3(t); n2 !== void 0 && (i[e30] = n2); }), i; } function sr3(e29, t, n) { let r = e29.getStyleByCell(t); r == null && delete t.s, typeof n.s == `string` && (n.s = e29.get(n.s)); let i = ur3(r, n.s ? n.s : null); i && (D.removeNull(i), Object.entries(i).forEach(([e30, t2]) => { typeof t2 == `object` && t2 && Object.keys(t2).length === 0 && delete i[e30]; })), D.isEmptyObject(i) ? delete t.s : t.s = e29.setValue(i); let a = n.v ? `${n.v}\r ` : ``; if (!n.p && t.p) { var o; a && a !== ((o = t.p.body) == null ? void 0 : o.dataStream) ? delete t.p : fr3(t.p, n.s ? n.s : null); } } function cr3(e29, t) { if (!t || !Object.keys(t).length) return e29; let n = D.deepClone(e29 == null ? {} : e29) || {}, r = t; for (let e30 of qr) { if (!Object.prototype.hasOwnProperty.call(r, e30)) continue; let t2 = ar3(e30, r[e30]); t2 !== void 0 && (e30 === `bd` ? n[e30] = lr3(n[e30] || {}, t2) : e30 in n || (n[e30] = null)); } return n; } function lr3(e29, n) { if (!n || !Object.keys(n).length) return e29; let r = e29; for (let i of Wr) Object.prototype.hasOwnProperty.call(n, i) && (i in e29 || (r[i] = null)); return e29; } function ur3(e29, t, n = false) { if (t === null) return t; if (t === void 0) return e29; let r = D.deepClone(e29) || {}, i = t; for (let e30 of qr) { if (!Object.prototype.hasOwnProperty.call(i, e30) || n && Xn3(e30)) continue; let t2 = ar3(e30, i[e30]); t2 !== void 0 && (e30 === `bd` ? r[e30] = or3(r[e30], t2) : r[e30] = t2); } if (`cl` in r) { let e30 = r, t2 = e30.cl; `ul` in e30 && e30.ul && (e30.ul.cl = t2), `ol` in e30 && e30.ol && (e30.ol.cl = t2), `st` in e30 && e30.st && (e30.st.cl = t2); } return r; } function dr3(e29, t) { return e29.some((e30) => e30.startIndex === t) ? dr3(e29, t + 1) : t; } function fr3(e29, t) { var n; if (e29.body == null) return; Array.isArray(e29.body.textRuns) || (e29.body.textRuns = []); let r = 0, i = [], a = ((n = e29.body) == null ? void 0 : n.paragraphs) || []; for (let n2 of e29.body.textRuns) { let { st: e30, ed: o2, ts: s = {} } = n2; if (r < e30) { let n3 = { st: r, ed: e30 }, a2 = ur3({}, t, true); a2 && D.removeNull(a2), D.isEmptyObject(a2) || (n3.ts = a2), i.push(n3); } let c = ur3(s, t, true); c && D.removeNull(c), D.isEmptyObject(c) ? delete n2.ts : n2.ts = c, i.push(n2), r = dr3(a, o2); } let o = e29.body.dataStream.endsWith(`\r `) ? e29.body.dataStream.length - 2 : e29.body.dataStream.length; if (r < o) { let e30 = { st: r, ed: o }, n2 = ur3({}, t, true); n2 && D.removeNull(n2), D.isEmptyObject(n2) || (e30.ts = n2), i.push(e30); } e29.body.textRuns = Zo(i); } function pr3(e29, t) { return t.v === void 0 || t.v === null ? t.v : e29 === tr.NUMBER ? Number(t.v) : e29 === tr.BOOLEAN ? mr3(t.v) ? 1 : 0 : e29 === tr.STRING || e29 === tr.FORCE_STRING ? `${t.v}` : t.v; } function mr3(e29) { if (typeof e29 == `string`) { if (e29.toUpperCase() === `TRUE`) return true; if (e29.toUpperCase() === `FALSE`) return false; if (en(e29)) { if (Number(e29) === 0) return false; if (Number(e29) === 1) return true; } } if (typeof e29 == `number`) { if (e29 === 0) return false; if (e29 === 1) return true; } return typeof e29 == `boolean` ? e29 : null; } function hr3(e29) { return e29 == null ? null : (e29.f === void 0 && (e29.f = null), e29.si === void 0 && (e29.si = null), e29.p === void 0 && (e29.p = null), e29.v === void 0 && (e29.v = null), e29.t === void 0 && (e29.t = null), e29.s === void 0 && (e29.s = null), e29.custom === void 0 && (e29.custom = null), e29); } var gr3 = (e29, t) => { let { unitId: n, subUnitId: r, cellValue: i } = t, a = e29.get(Mu).getUniverSheetInstance(n); if (a == null) throw Error(`workbook is null error!`); let o = a.getSheetBySheetId(r); if (o == null) throw Error(`worksheet is null error!`); let s = o.getCellMatrix(), c = a.getStyles(), l = new Sa(); return new Sa(i).forValue((e30, t2, n2) => { let r2 = D.deepClone(s == null ? void 0 : s.getValue(e30, t2)) || {}; r2.s = cr3(c.getStyleByCell(r2), c.getStyleByCell(n2)), l.setValue(e30, t2, hr3(r2)); }), { ...t, options: {}, cellValue: l.getMatrix() }; }; var J4 = { id: `sheet.mutation.set-range-values`, type: ri.MUTATION, handler: (e29, t) => { let { cellValue: n, subUnitId: r, unitId: i } = t, a = e29.get(Mu).getUnit(i); if (!a) return false; let o = a.getSheetBySheetId(r); if (!o) return false; let s = o.getCellMatrix(), c = a.getStyles(); return new Sa(n).forValue((e30, t2, n2) => { if (!n2) s.realDeleteValue(e30, t2); else { let r2 = s.getValue(e30, t2) || {}; r2 = vr3(n2, r2, c), D.isEmptyObject(r2) ? s.realDeleteValue(e30, t2) : s.setValue(e30, t2, r2); } }), true; } }; var _r3 = /* @__PURE__ */ new Set([`f`, `p`, `si`, `custom`, `ref`, `xf`]); function vr3(e29, t, n) { let r = Nt3(n, e29, t); return Object.keys(e29).forEach((i) => { let a = i; if (_r3.has(a)) { let n2 = e29[a]; yr3(t, a, n2); } else a === `v` ? e29.v !== void 0 && (t.v = pr3(r, e29)) : a === `s` && sr3(n, t, e29); }), t.v !== void 0 && (t.t = r, t.v = pr3(r, t)), t.v === null && (delete t.t, delete t.v), t; } function yr3(e29, t, n) { n === void 0 || (n === null ? delete e29[t] : e29[t] = n); } var br3 = (e29, t) => { let { unitId: n, subUnitId: r, rowData: i } = e29, a = {}, o = t.getRowManager(); for (let e30 in i) { let t2 = i[e30]; a[e30] = Ln3(o.getRow(Number(e30)), t2); } return { unitId: n, subUnitId: r, rowData: a }; }; var xr3 = { id: `sheet.mutation.set-row-data`, type: ri.MUTATION, handler: (e29, t) => { let { rowData: n } = t, r = V4(e29.get(Mu), t); if (!r) return false; let { worksheet: i } = r, a = i.getRowManager(); for (let e30 in n) { let t2 = n[e30]; if (t2 == null) { a.removeRow(Number(e30)); continue; } let r2 = a.getRowOrCreate(Number(e30)); Object.assign(r2, t2); } return true; } }; var Sr3 = (e29, t) => { if (e29.get(Mu).getUniverSheetInstance(t.unitId) == null) throw Error(`universheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: t.ranges }; }; var Cr3 = { id: `sheet.mutation.set-row-visible`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId).getRowManager(); for (let e30 = 0; e30 < t.ranges.length; e30++) { let n2 = t.ranges[e30]; for (let e31 = n2.startRow; e31 < n2.endRow + 1; e31++) { let t2 = r.getRowOrCreate(e31); t2 != null && (t2.hd = 0); } } return true; } }; var wr3 = (e29, t) => { if (e29.get(Mu).getUniverSheetInstance(t.unitId) == null) throw Error(`universheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, ranges: t.ranges }; }; var Tr3 = { id: `sheet.mutation.set-row-hidden`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId).getRowManager(); for (let e30 = 0; e30 < t.ranges.length; e30++) { let n2 = t.ranges[e30]; for (let e31 = n2.startRow; e31 < n2.endRow + 1; e31++) { let t2 = r.getRowOrCreate(e31); t2 != null && (t2.hd = 1); } } return true; } }; var Er3 = (e29, t) => { let { unitId: n, subUnitId: r, ranges: i } = e29, a = {}, o = t.getColumnManager(); for (let e30 = 0; e30 < i.length; e30++) { let t2 = i[e30]; for (let e31 = t2.startColumn; e31 < t2.endColumn + 1; e31++) a[e31] = o.getColumnWidth(e31); } return { unitId: n, subUnitId: r, ranges: i, colWidth: a }; }; var Dr3 = { id: `sheet.mutation.set-worksheet-col-width`, type: ri.MUTATION, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { worksheet: r } = n, i = r.getColumnManager(), a = t.ranges; for (let e30 = 0; e30 < a.length; e30++) { let n2 = a[e30]; for (let e31 = n2.startColumn; e31 < n2.endColumn + 1; e31++) r.getColVisible(e31) && (typeof t.colWidth == `number` ? i.setColumnWidth(e31, t.colWidth) : D.isDefine(t.colWidth[e31]) && i.setColumnWidth(e31, t.colWidth[e31])); } return true; } }; var Or3 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, columnCount: n.worksheet.getColumnCount() }; }; var kr3 = { id: `sheet.mutation.set-worksheet-column-count`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); return n ? (n.worksheet.setColumnCount(t.columnCount), true) : false; } }; var Ar3 = { id: `sheet.mutation.set-worksheet-default-style`, type: ri.MUTATION, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { worksheet: r } = n, { defaultStyle: i } = t; return r.setDefaultCellStyle(i), true; } }; var jr3 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!`); let { worksheet: r } = n; return { unitId: t.unitId, subUnitId: r.getSheetId(), defaultStyle: r.getDefaultCellStyle() }; }; var Mr3 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!`); return { unitId: t.unitId, subUnitId: t.subUnitId, rowCount: n.worksheet.getRowCount() }; }; var Nr3 = { id: `sheet.mutation.set-worksheet-row-count`, type: ri.MUTATION, handler: (e29, t) => { let n = Rt2(e29.get(Mu), t); return n ? (n.worksheet.setRowCount(t.rowCount), true) : false; } }; var Pr3 = (e29, t) => { let { unitId: n, subUnitId: r, ranges: i } = e29, a = {}, o = t.getRowManager(); for (let { startRow: e30, endRow: n2 } of i) for (let r2 = e30; r2 < n2 + 1; r2++) { var s, c; a[r2] = (s = (c = o.getRow(r2)) == null ? void 0 : c.h) == null ? t.getConfig().defaultRowHeight : s; } return { unitId: n, subUnitId: r, ranges: i, rowHeight: a }; }; var Fr3 = (e29, t) => { let { unitId: n, subUnitId: r, ranges: i } = e29, a = {}, o = t.getRowManager(); for (let { startRow: e30, endRow: t2 } of i) for (let n2 = e30; n2 <= t2; n2++) { var s; a[n2] = (s = o.getRow(n2)) == null ? void 0 : s.ia; } return { unitId: n, subUnitId: r, ranges: i, autoHeightInfo: a }; }; var Ir3 = (e29, t) => { let { unitId: n, subUnitId: r, rowsAutoHeightInfo: i } = e29, a = [], o = t.getRowManager(); for (let e30 of i) { var s, c; let { row: n2 } = e30; a.push({ row: n2, autoHeight: (s = (c = o.getRow(n2)) == null ? void 0 : c.ah) == null ? t.getConfig().defaultRowHeight : s }); } return { unitId: n, subUnitId: r, rowsAutoHeightInfo: a }; }; var Lr3 = { id: `sheet.mutation.set-worksheet-row-height`, type: ri.MUTATION, handler: (e29, t) => { let { ranges: n, rowHeight: r } = t, i = V4(e29.get(Mu), t); if (!i) return false; let { worksheet: a } = i, o = a.getRowManager(); for (let { startRow: e30, endRow: t2 } of n) for (let n2 = e30; n2 <= t2; n2++) typeof r == `number` ? o.setRowHeight(n2, r) : D.isDefine(r[n2]) && o.setRowHeight(n2, r[n2]); return true; } }; var Rr3 = { id: `sheet.mutation.set-worksheet-row-is-auto-height`, type: ri.MUTATION, handler: (e29, t) => { let { ranges: n, autoHeightInfo: r } = t, i = V4(e29.get(Mu), t); if (!i) return false; let a = i.worksheet.getRowManager(); for (let { startRow: e30, endRow: t2 } of n) for (let n2 = e30; n2 <= t2; n2++) { let e31 = a.getRowOrCreate(n2); if (typeof r == `number`) e31.ia = r; else { var o; e31.ia = (o = r[n2]) == null ? void 0 : o; } } return true; } }; var zr3 = { id: `sheet.mutation.set-worksheet-row-auto-height`, type: ri.MUTATION, handler: (e29, t) => { let { rowsAutoHeightInfo: n } = t, r = V4(e29.get(Mu), t); if (!r) return false; let i = r.worksheet.getRowManager(); for (let { row: e30, autoHeight: t2 } of n) { let n2 = i.getRowOrCreate(e30); n2.ah = t2; } return true; } }; var Br3 = { id: `sheet.mutation.toggle-gridlines`, type: ri.MUTATION, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { worksheet: r } = n, i = r.getConfig(); return i.showGridlines = t.showGridlines, true; } }; var Vr3 = { id: `sheet.operation.set-worksheet-active`, type: ri.OPERATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let r = n.getWorksheets(); for (let [, e30] of r) if (e30.getSheetId() === t.subUnitId) return n.setActiveSheet(e30), true; return false; } }; var Hr3 = (function(e29) { return e29.SET_WORKSHEET_ROW_HEIGHT = `sheet.mutation.set-worksheet-row-height`, e29.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT = `sheet.mutation.set-worksheet-row-is-auto-height`, e29.SET_WORKSHEET_ROW_AUTO_HEIGHT = `sheet.mutation.set-worksheet-row-auto-height`, e29.SET_WORKSHEET_COL_WIDTH = `sheet.mutation.set-worksheet-col-width`, e29.SET_WORKSHEET_ACTIVE = `sheet.operation.set-worksheet-active`, e29.MOVE_ROWS = `sheet.mutation.move-rows`, e29.MOVE_COLUMNS = `sheet.mutation.move-columns`, e29.SET_COL_HIDDEN = `sheet.mutation.set-col-hidden`, e29.SET_COL_VISIBLE = `sheet.mutation.set-col-visible`, e29.SET_ROW_HIDDEN = `sheet.mutation.set-row-hidden`, e29.SET_ROW_VISIBLE = `sheet.mutation.set-row-visible`, e29.INSERT_COL = `sheet.mutation.insert-col`, e29.INSERT_ROW = `sheet.mutation.insert-row`, e29.REMOVE_COL = `sheet.mutation.remove-col`, e29.REMOVE_ROW = `sheet.mutation.remove-rows`, e29.TOGGLE_GRIDLINES = `sheet.mutation.toggle-gridlines`, e29.SET_GRIDLINES_COLOR = `sheet.mutation.set-gridlines-color`, e29; })({}); var Ur3 = (function(e29) { return e29.SET_RANGE_VALUES = `sheet.mutation.set-range-values`, e29.MOVE_RANGE = `sheet.mutation.move-range`, e29.REMOVE_WORKSHEET_MERGE = `sheet.mutation.remove-worksheet-merge`, e29.ADD_WORKSHEET_MERGE = `sheet.mutation.add-worksheet-merge`, e29.REORDER_RANGE = `sheet.mutation.reorder-range`, e29.SET_WORKSHEET_DEFAULT_STYLE = `sheet.mutation.set-worksheet-default-style`, e29.SET_ROW_DATA = `sheet.mutation.set-row-data`, e29.SET_COL_DATA = `sheet.mutation.set-col-data`, e29.SET_WORKSHEET_RANGE_THEME_STYLE = `sheet.mutation.set-worksheet-range-theme-style`, e29.DELETE_WORKSHEET_RANGE_THEME_STYLE = `sheet.mutation.delete-worksheet-range-theme-style`, e29; })({}); var Wr3 = [Lr3.id, Rr3.id, zr3.id, Dr3.id, Vr3.id, Dn3.id, kn3.id, Hn3.id, Wn3.id, Tr3.id, Cr3.id, wn3.id, Sn3.id, Nn3.id, jn2.id, Br3.id, Gn3.id, Nr3.id, kr3.id]; var Gr3 = [J4.id, Tn3.id, q4.id, H4.id, In2.id, Ar3.id, xr3.id, Bn3.id, _n3.id, yn3.id]; function Jr3(e29) { return e29 == null ? false : e29.v !== void 0 && e29.v !== null && e29.v !== `` || e29.p !== void 0; } function Yr3(e29, t) { return e29 && e29.spanAnchor ? Jr3(t.getValue(e29.spanAnchor.startRow, e29.spanAnchor.startColumn)) : Jr3(e29); } function Xr2(e29, t, n, r, i) { let a = e29.getCellMatrix(), o = e29.getSpanModel().getMergedCellRange(t, n, r, i), s = new Sa(); return a.forValue((e30, t2) => { let n2 = a.getValue(e30, t2); n2 && s.setValue(e30, t2, n2); }), o.forEach((e30) => { let { startColumn: t2, startRow: n2, endColumn: r2, endRow: i2 } = e30; Uo(n2, i2, t2, r2).forEach((e31, o2) => { e31 === n2 && o2 === t2 && s.setValue(e31, o2, { ...a.getValue(e31, o2), spanAnchor: { startRow: n2, endRow: i2, startColumn: t2, endColumn: r2 } }), (e31 !== n2 || o2 !== t2) && (s.realDeleteValue(e31, o2), s.setValue(e31, o2, { spanAnchor: { startRow: n2, endRow: i2, startColumn: t2, endColumn: r2 } })); }); }), s; } function Zr3(e29, t, n, r) { let { startRow: i, startColumn: a, endRow: o } = e29, s = null, c = false; for (let e30 = i; e30 <= o; e30++) { let i2 = t.getValue(e30, a - n); if (c = c || Yr3(i2, t), !r && c) break; i2 && i2.spanAnchor && (s = s ? { startRow: Math.min(i2.spanAnchor.startRow, s.startRow), startColumn: Math.min(i2.spanAnchor.startColumn, s.startColumn), endRow: Math.max(i2.spanAnchor.endRow, s.endRow), endColumn: Math.max(i2.spanAnchor.endColumn, s.endColumn) } : { startRow: i2.spanAnchor.startRow, startColumn: i2.spanAnchor.startColumn, endRow: i2.spanAnchor.endRow, endColumn: i2.spanAnchor.endColumn }); } return c ? (e29.startColumn -= n, { spanAnchor: s, hasValue: true, range: e29 }) : s ? { spanAnchor: G.simpleRangesIntersect(e29, s) ? s : null, hasValue: false, range: e29 } : { spanAnchor: null, hasValue: false, range: e29 }; } function Qr2(e29, t, n, r) { let { startRow: i, endColumn: a, endRow: o } = e29, s = null, c = false; for (let e30 = i; e30 <= o; e30++) { let i2 = t.getValue(e30, a + n); if (c = c || Yr3(i2, t), !r && c) break; i2 && i2.spanAnchor && (s = s ? { startRow: Math.min(i2.spanAnchor.startRow, s.startRow), startColumn: Math.min(i2.spanAnchor.startColumn, s.startColumn), endRow: Math.max(i2.spanAnchor.endRow, s.endRow), endColumn: Math.max(i2.spanAnchor.endColumn, s.endColumn) } : { startRow: i2.spanAnchor.startRow, startColumn: i2.spanAnchor.startColumn, endRow: i2.spanAnchor.endRow, endColumn: i2.spanAnchor.endColumn }); } return c ? (e29.endColumn += n, { spanAnchor: s, hasValue: true, range: e29 }) : s ? { spanAnchor: G.simpleRangesIntersect(e29, s) ? s : null, hasValue: false, range: e29 } : { spanAnchor: null, hasValue: false, range: e29 }; } function $r3(e29, t, n, r) { let { startRow: i, startColumn: a, endColumn: o } = e29, s = null, c = false; for (let e30 = a; e30 <= o; e30++) { let a2 = t.getValue(i - n, e30); if (c = c || Yr3(a2, t), !r && c) break; a2 && a2.spanAnchor && (s = s ? { startRow: Math.min(a2.spanAnchor.startRow, s.startRow), startColumn: Math.min(a2.spanAnchor.startColumn, s.startColumn), endRow: Math.max(a2.spanAnchor.endRow, s.endRow), endColumn: Math.max(a2.spanAnchor.endColumn, s.endColumn) } : { startRow: a2.spanAnchor.startRow, startColumn: a2.spanAnchor.startColumn, endRow: a2.spanAnchor.endRow, endColumn: a2.spanAnchor.endColumn }); } return c ? (e29.startRow -= n, { spanAnchor: s, hasValue: true, range: e29 }) : s ? { spanAnchor: G.simpleRangesIntersect(e29, s) ? s : null, hasValue: false, range: e29 } : { spanAnchor: null, hasValue: false, range: e29 }; } function ei2(e29, t, n, r) { let { startColumn: i, endColumn: a, endRow: o } = e29, s = null, c = false; for (let e30 = i; e30 <= a; e30++) { let i2 = t.getValue(o + n, e30); if (c = c || Yr3(i2, t), !r && c) break; i2 && i2.spanAnchor && (s = s ? { startRow: Math.min(i2.spanAnchor.startRow, s.startRow), startColumn: Math.min(i2.spanAnchor.startColumn, s.startColumn), endRow: Math.max(i2.spanAnchor.endRow, s.endRow), endColumn: Math.max(i2.spanAnchor.endColumn, s.endColumn) } : { startRow: i2.spanAnchor.startRow, startColumn: i2.spanAnchor.startColumn, endRow: i2.spanAnchor.endRow, endColumn: i2.spanAnchor.endColumn }); } return c ? (e29.endRow += n, { spanAnchor: s, hasValue: true, range: e29 }) : s ? { spanAnchor: G.simpleRangesIntersect(e29, s) ? s : null, hasValue: false, range: e29 } : { spanAnchor: null, hasValue: false, range: e29 }; } function ti2({ range: e29, allMatrixWithSpan: t, directions: n, isWorksheetHasSpan: r, maxRow: i, maxColumn: a }) { let { left: o, right: s, up: c, down: l } = n, { startRow: u, startColumn: d, endRow: f, endColumn: p } = e29, m = false; if (o && c && u > 0 && d > 0) { let n2 = t.getValue(u - 1, d - 1); Yr3(n2, t) && (r && n2.spanAnchor ? (e29.startRow = n2.spanAnchor.startRow, e29.startColumn = n2.spanAnchor.startColumn) : (e29.startRow = u - 1, e29.startColumn = d - 1), m = true); } if (s && c && u > 0 && p < a - 1) { let n2 = t.getValue(u - 1, p + 1); Yr3(n2, t) && (r && n2.spanAnchor ? (e29.startRow = n2.spanAnchor.startRow, e29.endColumn = n2.spanAnchor.endColumn) : (e29.startRow = u - 1, e29.endColumn = p + 1), m = true); } if (o && l && f < i - 1 && d > 0) { let n2 = t.getValue(f + 1, d - 1); Yr3(n2, t) && (r && n2.spanAnchor ? (e29.endRow = n2.spanAnchor.endRow, e29.startColumn = n2.spanAnchor.startColumn) : (e29.endRow = f + 1, e29.startColumn = d - 1), m = true); } if (s && l && f < i - 1 && p < a - 1) { let n2 = t.getValue(f + 1, p + 1); Yr3(n2, t) && (r && n2.spanAnchor ? (e29.endRow = n2.spanAnchor.endRow, e29.endColumn = n2.spanAnchor.endColumn) : (e29.endRow = f + 1, e29.endColumn = p + 1), m = true); } return { hasValue: m, range: e29 }; } function ni2(e29, t, n) { let r = n.getMaxRows(), i = n.getMaxColumns(), a = Xr2(n, 0, 0, r - 1, i - 1), o = n.getSnapshot().mergeData.length > 0, { left: s, right: c, up: l, down: u } = t, d = true, f = { ...e29 }, p = []; for (; d; ) { d = false; let e30 = ti2({ range: f, allMatrixWithSpan: a, directions: t, isWorksheetHasSpan: o, maxRow: r, maxColumn: i }); if (e30.hasValue) { f = e30.range, d = true; continue; } if (l && f.startRow !== 0) { let { hasValue: e31, range: t2, spanAnchor: n2 } = $r3(f, a, 1, o); if (n2 && p.push(n2), e31) { f = t2, d = true; continue; } } if (u && f.endRow !== r - 1) { let { hasValue: e31, range: t2, spanAnchor: n2 } = ei2(f, a, 1, o); if (n2 && p.push(n2), e31) { f = t2, d = true; continue; } } if (s && f.startColumn !== 0) { let { hasValue: e31, range: t2, spanAnchor: n2 } = Zr3(f, a, 1, o); if (n2 && p.push(n2), e31) { f = t2, d = true; continue; } } if (c && f.endColumn !== i - 1) { let { hasValue: e31, range: t2, spanAnchor: n2 } = Qr2(f, a, 1, o); if (n2 && p.push(n2), e31) { f = t2, d = true; continue; } } } return p.length > 0 && (f = G.union(f, ...p)), f; } var ri3 = (e29) => { let t = new Sa(); return e29.forEach((e30) => { Eo.foreach(e30, (e31, n) => { t.setValue(e31, n, 1); }); }), t.forValue((e30, n) => { let r = t.getValue(e30 - 1, n); r && t.setValue(e30, n, r + 1); }), t; }; var ai3 = (e29) => { let t = { area: 0 }, n = (e30, n2) => t.area < e30 ? (t.area = e30, t.range = n2, true) : false; return e29.forValue((t2, r, i) => { let a = 1, o = i; n(a * o, { startRow: t2 - o + 1, endRow: t2, startColumn: r, endColumn: r }); let s = { startRow: t2 - o + 1, endRow: t2, startColumn: 0, endColumn: r }; for (let i2 = r - 1; i2 >= 0 && e29.getValue(t2, i2); i2--) { o = Math.min(e29.getValue(t2, i2) || 0, o), a++; let r2 = o * a; s.startColumn = i2, s.startRow = t2 - o + 1, n(r2, s); } }), t; }; var oi3 = (e29, t) => { Eo.foreach(t, (t2, n) => { e29.realDeleteValue(t2, n); }); for (let n = t.startColumn; n <= t.endColumn; n++) { let r = t.endRow + 1; if (e29.getValue(r, n) > 0) { e29.setValue(r, n, 1); let t2 = r + 1; for (; e29.getValue(t2, n) > 0; ) e29.setValue(t2, n, e29.getValue(t2 - 1, n) + 1), t2++; } } return e29; }; var si3 = (e29) => { let t = [], n = ai3(e29); for (; n.area > 0; ) n.range && (t.push(n.range), oi3(e29, n.range)), n = ai3(e29); return t; }; var ci3 = (e29) => si3(ri3(e29)); var mi2 = (function(e29) { return e29[e29.Tab = 1] = `Tab`, e29[e29.Comma = 2] = `Comma`, e29[e29.Semicolon = 4] = `Semicolon`, e29[e29.Space = 8] = `Space`, e29[e29.Custom = 16] = `Custom`, e29; })({}); var hi2 = class { constructor() { U4(this, `_tabCount`, 0), U4(this, `_commaCount`, 0), U4(this, `_semicolonCount`, 0), U4(this, `_spaceCount`, 0); } add(e29) { switch (e29) { case ` `: this._tabCount++; break; case `,`: this._commaCount++; break; case `;`: this._semicolonCount++; break; case ` `: this._spaceCount++; break; default: break; } } update(e29) { e29 && typeof e29 == `string` && (e29.includes(` `) && this._tabCount++, e29.includes(`,`) && this._commaCount++, e29.includes(`;`) && this._semicolonCount++, e29.trim().includes(` `) && this._spaceCount++); } getDelimiter() { let e29 = Math.max(this._tabCount, this._commaCount, this._semicolonCount, this._spaceCount); return e29 === 0 || e29 === this._tabCount ? mi2.Tab : e29 === this._commaCount ? mi2.Comma : e29 === this._semicolonCount ? mi2.Semicolon : e29 === this._spaceCount ? mi2.Space : mi2.Tab; } }; function gi(e29, t, n) { let r = []; n !== void 0 && (e29 & mi2.Custom) > 0 && r.push(n), (e29 & mi2.Tab) > 0 && r.push(` `), (e29 & mi2.Comma) > 0 && r.push(`,`), (e29 & mi2.Semicolon) > 0 && r.push(`;`), (e29 & mi2.Space) > 0 && r.push(` `); let i = ``; for (let e30 of r) i += _i3(e30); let a = `[${i}]`; return t && (a += `+`), new RegExp(a); } function _i3(e29) { return e29.replace(/[.*+?^${}()|[\]\\]/g, `\\$&`); } var vi2 = (e29) => { var t; return ((t = e29.body) == null ? void 0 : t.dataStream.replace(/\r\n$/, ``)) || ``; }; function yi3(e29) { if (e29 != null) { if (e29.p) return vi2(e29.p); if (e29.v && typeof e29.v == `string`) return e29.v; if (e29.t && (e29.t === tr.FORCE_STRING || e29.t === tr.STRING)) return String(e29.v); } } function bi3(e29, t, n, r, i = false) { let { startColumn: a, startRow: o, endColumn: s, endRow: c } = Eo.transformRange(t, e29); if (a !== s) throw Error(`The range must be in the same column.`); if (n && (n & mi2.Custom) > 0 && (r === void 0 || r.length !== 1)) throw Error(`The custom delimiter must a character.`); let l = n === void 0, u = l ? new hi2() : null, d = []; for (let t2 = o; t2 <= c; t2++) { let n2 = yi3(e29.getCell(t2, a)); d.push(n2), u && u.update(n2); } let f = gi(l ? u.getDelimiter() : n, i, r), p = -1, m = 0, h = 0, g2 = []; for (let e30 of d) { if (e30 !== void 0) { let t2 = String(e30).split(f); p = p < 0 ? t2.length : Math.max(p, t2.length), g2.push(t2), m = h; } else g2.push(void 0); h++; } return { rs: g2, maxLength: p === -1 ? 0 : p, lastRow: m }; } var xi2 = (e29, t, n = ``) => e29.reduce((e30, r) => { let i = r && r[t]; return typeof i == `string` ? (i ? (e30[i] || (e30[i] = []), e30[i].push(r)) : e30[n].push(r), e30) : (console.warn(r, `${t} is not string`), e30); }, {}); var Si2 = (e29 = 0) => { let t = e29; return function() { return t++; }; }; function Ci2(e29) { return e29 == null ? false : e29.v !== void 0 && e29.v !== null && e29.v !== `` || e29.p !== void 0; } function wi2(e29, t) { for (let n = e29.startRow; n <= e29.endRow; n++) for (let r = e29.startColumn; r <= e29.endColumn; r++) if (Ci2(t.getCell(n, r))) return { startRow: n, startColumn: r, endRow: n, endColumn: r }; return null; } function Ti2(e29) { let t = new Sa(); return e29.forEach((e30) => { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e30; for (let e31 = n; e31 <= i; e31++) for (let n2 = r; n2 <= a; n2++) t.setValue(e31, n2, null); }), t.clone(); } function Ei2(e29) { let t = new Sa(); return e29.forEach((e30) => { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e30; for (let e31 = n; e31 <= i; e31++) for (let n2 = r; n2 <= a; n2++) t.setValue(e31, n2, { v: null, p: null, f: null, si: null, custom: null }); }), t.clone(); } function Di2(e29) { let t = new Sa(); return e29.forEach((e30) => { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e30; for (let e31 = n; e31 <= i; e31++) for (let n2 = r; n2 <= a; n2++) t.setValue(e31, n2, { s: null }); }), t.clone(); } function Oi2(e29) { let { rows: t, cols: n } = e29; return { startRow: t[0], endRow: t[t.length - 1], startColumn: n[0], endColumn: n[n.length - 1] }; } function ki2(e29, t, n, r) { let i = t.get(Mu), a = n ? i.getUnit(n, O.UNIVER_SHEET) : i.getCurrentUnitForType(O.UNIVER_SHEET), o = r ? a == null ? void 0 : a.getSheetBySheetId(r) : a == null ? void 0 : a.getActiveSheet(); if (!o) return null; let { startRow: s, endRow: c, startColumn: l, endColumn: u } = e29, d = [], f = []; for (let e30 = s; e30 <= c; e30++) o.getRowFiltered(e30) || d.push(e30); for (let e30 = l; e30 <= u; e30++) f.push(e30); return { rows: d, cols: f }; } function Ai2(e29, t, n, r) { let i = V4(t.get(Mu), { unitId: n, subUnitId: r }); if (!i) return e29; let { worksheet: a } = i, o = []; for (let t2 of e29) { let { startRow: e30, endRow: n2, startColumn: r2, endColumn: i2 } = t2, s2 = [], c = e30; for (let t3 = e30; t3 <= n2; t3++) a.getRowFiltered(t3) ? (c < t3 && s2.push([c, t3 - 1]), c = t3 + 1) : t3 === n2 && s2.push([c, n2]); let l = o.findIndex((e31) => e31.startColumn === r2 && e31.endColumn === i2); l > -1 ? o[l].rowIntervals = o[l].rowIntervals.concat(s2) : o.push({ startColumn: r2, endColumn: i2, rowIntervals: s2 }); } let s = []; for (let e30 of o) { let { startColumn: t2, endColumn: n2, rowIntervals: r2 } = e30, i2 = Za(r2); for (let [e31, r3] of i2) s.push({ startRow: e31, endRow: r3, startColumn: t2, endColumn: n2 }); } return s; } var ji2 = (function(e29) { return e29.OthersCanView = `othersCanView`, e29.NoOneElseCanView = `noOneElseCanView`, e29; })({}); var Mi2 = (function(e29) { return e29.DesignedUserCanEdit = `designedUserCanEdit`, e29.OnlyMe = `onlyMe`, e29; })({}); var Ni2 = class { constructor() { U4(this, `_model`, /* @__PURE__ */ new Map()), U4(this, `_ruleChange$`, new Subject()), U4(this, `ruleChange$`, this._ruleChange$.asObservable()), U4(this, `_ruleRefresh$`, new Subject()), U4(this, `ruleRefresh$`, this._ruleRefresh$.asObservable()), U4(this, `_rangeRuleInitStateChange`, new BehaviorSubject(false)), U4(this, `rangeRuleInitStateChange$`, this._rangeRuleInitStateChange.asObservable()); } dispose() { this._ruleChange$.complete(), this._ruleRefresh$.complete(); } ruleRefresh(e29) { this._ruleRefresh$.next(e29); } getRangeRuleInitState() { return this._rangeRuleInitStateChange.value; } changeRuleInitState(e29) { this._rangeRuleInitStateChange.next(e29); } addRule(e29, t, n) { this._ensureRuleMap(e29, t).set(n.id, n), this._ruleChange$.next({ unitId: e29, subUnitId: t, rule: n, type: `add` }); } deleteRule(e29, t, n) { var r; let i = (r = this._model.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); if (i) { var a; (a = this._model.get(e29)) == null || (a = a.get(t)) == null || a.delete(n), this._ruleChange$.next({ unitId: e29, subUnitId: t, rule: i, type: `delete` }); } } setRule(e29, t, n, r) { let i = this.getRule(e29, t, n); if (i) { var a; (a = this._model.get(e29)) == null || (a = a.get(t)) == null || a.set(n, r), this._ruleChange$.next({ unitId: e29, subUnitId: t, oldRule: i, rule: r, type: `set` }); } } getRule(e29, t, n) { var r; return (r = this._model.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } getSubunitRuleList(e29, t) { var n; return [...(((n = this._model.get(e29)) == null ? void 0 : n.get(t)) || /* @__PURE__ */ new Map()).values()]; } getSubunitRuleListLength(e29, t) { var n; let r = (n = this._model.get(e29)) == null ? void 0 : n.get(t); return r ? r.size : 0; } _ensureRuleMap(e29, t) { let n = this._model.get(e29); n || (n = /* @__PURE__ */ new Map(), this._model.set(e29, n)); let r = n.get(t); return r || (r = /* @__PURE__ */ new Map(), n.set(t, r)), r; } toObject() { let e29 = {}; return [...this._model.keys()].forEach((t) => { let n = this._model.get(t), r = [...n.keys()]; e29[t] = {}, r.forEach((r2) => { let i = n.get(r2); e29[t][r2] = [...i.values()]; }); }), e29; } fromObject(e29) { let t = /* @__PURE__ */ new Map(); Object.keys(e29).forEach((n) => { let r = e29[n], i = /* @__PURE__ */ new Map(); Object.keys(r).forEach((e30) => { let t2 = r[e30].reduce((e31, t3) => (e31.set(t3.id, t3), e31), /* @__PURE__ */ new Map()); i.set(e30, t2); }), t.set(n, i); }), this._model = t; } deleteUnitModel(e29) { this._model.delete(e29); } createRuleId(e29, t) { let n = O2(4), r = this._ensureRuleMap(e29, t); for (; r.has(n); ) n = O2(4); return n; } getTargetByPermissionId(e29, t) { let n = this._model.get(e29); if (!n) return null; for (let [r, i] of n) for (let n2 of i.values()) if (n2.permissionId === t) return [e29, r]; return null; } }; var Fi2 = { id: `sheet.mutation.delete-range-protection`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, ruleIds: i } = t, a = e29.get(Ni2); return i.forEach((e30) => { a.deleteRule(n, r, e30); }), true; } }; var Li2 = { id: `sheet.mutation.add-range-protection`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, rules: i } = t, a = e29.get(Ni2); return i.forEach((e30) => { a.addRule(n, r, e30); }), true; } }; var Ri2 = { type: ri.COMMAND, id: `sheet.command.add-range-protection`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), i = e29.get(Ni2), { rule: a, permissionId: o } = t, { unitId: s, subUnitId: c, ranges: l, description: u, viewState: d, editState: f } = a, p = [{ ranges: l, permissionId: o, id: i.createRuleId(s, c), description: u, unitType: a.unitType, unitId: s, subUnitId: c, viewState: d, editState: f }]; if (await n.executeCommand(Li2.id, { unitId: s, subUnitId: c, rules: p })) { let e30 = [{ id: Li2.id, params: { unitId: s, subUnitId: c, rules: p } }], t2 = [{ id: Fi2.id, params: { unitId: s, subUnitId: c, ruleIds: p.map((e31) => e31.id) } }]; r.pushUndoRedo({ unitID: s, redoMutations: e30, undoMutations: t2 }); } return true; } }; var zi2 = (function(e29) { return e29[e29.MOVE_START = 0] = `MOVE_START`, e29[e29.MOVING = 1] = `MOVING`, e29[e29.MOVE_END = 2] = `MOVE_END`, e29[e29.ONLY_SET = 3] = `ONLY_SET`, e29; })({}); var Bi2 = class extends E { constructor(e29) { super(), this._workbook = e29, U4(this, `_worksheetSelections`, /* @__PURE__ */ new Map()), U4(this, `_worksheetLastSelectionPrimaryCell`, /* @__PURE__ */ new Map()), U4(this, `_selectionMoveStart$`, new Subject()), U4(this, `selectionMoveStart$`, this._selectionMoveStart$.asObservable()), U4(this, `_selectionMoving$`, new Subject()), U4(this, `selectionMoving$`, this._selectionMoving$.asObservable()), U4(this, `_selectionMoveEnd$`, new BehaviorSubject([])), U4(this, `selectionMoveEnd$`, this._selectionMoveEnd$.asObservable()), U4(this, `_selectionSet$`, new BehaviorSubject([])), U4(this, `selectionSet$`, this._selectionSet$.asObservable()), U4(this, `selectionChanged$`, void 0), U4(this, `_beforeSelectionMoveEnd$`, new BehaviorSubject([])), U4(this, `beforeSelectionMoveEnd$`, this._beforeSelectionMoveEnd$.asObservable()), this.selectionChanged$ = merge2(this._selectionMoveEnd$, this._selectionSet$); } dispose() { super.dispose(), this._beforeSelectionMoveEnd$.complete(), this._selectionMoveEnd$.complete(), this._selectionMoving$.complete(), this._selectionMoveStart$.complete(), this._selectionSet$.complete(), this._workbook = null, this.clear(); } addSelections(e29, t) { let n = this.getSelectionsOfWorksheet(e29); n.push(...t), this._selectionSet$.next(n); } setSelections(e29, t = [], n) { switch (this.setSelectionsOfWorksheet(e29, t), n) { case zi2.MOVE_START: this._selectionMoveStart$.next(t); break; case zi2.MOVING: this._selectionMoving$.next(t); break; case zi2.MOVE_END: this._beforeSelectionMoveEnd$.next(t), this._selectionMoveEnd$.next(t); break; case zi2.ONLY_SET: this._selectionSet$.next(t); break; default: this._selectionSet$.next(t); break; } } getCurrentSelections() { return this._getCurrentSelections(); } getSelectionOfWorksheet(e29) { return this.getSelectionsOfWorksheet(e29); } getSelectionsOfWorksheet(e29) { return this._worksheetSelections.has(e29) || this._worksheetSelections.set(e29, []), this._worksheetSelections.get(e29); } getLastSelectionPrimaryCellOfWorksheet(e29) { var t; return (t = this._worksheetLastSelectionPrimaryCell.get(e29)) == null ? null : t; } setSelectionsOfWorksheet(e29, t) { this._worksheetSelections.set(e29, [...t]), t.length > 0 && t[t.length - 1].primary && this._worksheetLastSelectionPrimaryCell.set(e29, t[t.length - 1].primary); } deleteSheetSelection(e29) { this._worksheetSelections.set(e29, []), this._worksheetLastSelectionPrimaryCell.delete(e29); } clear() { this._worksheetSelections.clear(), this._worksheetLastSelectionPrimaryCell.clear(), this._selectionSet$.next([]); } _getCurrentSelections() { return this.getSelectionsOfWorksheet(this._workbook.getActiveSheet().getSheetId()); } getCurrentLastSelection() { let e29 = this._getCurrentSelections(); return e29[e29.length - 1]; } }; var Y4 = class extends dn { get _currentSelectionPos() { let e29 = this._instanceSrv.getCurrentUnitForType(O.UNIVER_SHEET); if (!e29) return null; let t = e29.getActiveSheet(); return { unitId: e29.getUnitId(), sheetId: t.getSheetId() }; } get currentSelectionParam() { return this._currentSelectionPos; } constructor(e29) { super(), this._instanceSrv = e29, U4(this, `_cellStylesCache`, /* @__PURE__ */ new Map()), U4(this, `selectionMoveStart$`, void 0), U4(this, `selectionMoving$`, void 0), U4(this, `selectionMoveEnd$`, void 0), U4(this, `selectionSet$`, void 0), U4(this, `selectionChanged$`, void 0), U4(this, `_workbookSelections`, /* @__PURE__ */ new Map()), this._init(); } _init() { let e29 = this._instanceSrv.getCurrentTypeOfUnit$(O.UNIVER_SHEET).pipe(shareReplay(1), takeUntil(this.dispose$)); this.selectionMoveStart$ = e29.pipe().pipe(switchMap((e30) => e30 ? this._ensureWorkbookSelection(e30.getUnitId()).selectionMoveStart$ : of())).pipe(takeUntil(this.dispose$)), this.selectionMoving$ = e29.pipe(switchMap((e30) => e30 ? this._ensureWorkbookSelection(e30.getUnitId()).selectionMoving$ : of())).pipe(takeUntil(this.dispose$)), this.selectionMoveEnd$ = e29.pipe(switchMap((e30) => e30 ? this._ensureWorkbookSelection(e30.getUnitId()).selectionMoveEnd$ : of([]))).pipe(takeUntil(this.dispose$)), this.selectionSet$ = e29.pipe(switchMap((e30) => e30 ? this._ensureWorkbookSelection(e30.getUnitId()).selectionSet$ : of([]))).pipe(takeUntil(this.dispose$)), this.selectionChanged$ = e29.pipe(switchMap((e30) => e30 ? this._ensureWorkbookSelection(e30.getUnitId()).selectionChanged$ : of([]))).pipe(distinctUntilChanged((e30, t) => e30.length === t.length ? e30.length === 0 && t.length === 0 ? true : e30.every((e31, n) => JSON.stringify(e31) === JSON.stringify(t[n])) : false), skip(1)).pipe(takeUntil(this.dispose$)), this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(O.UNIVER_SHEET).pipe(takeUntil(this.dispose$)).subscribe((e30) => { this._removeWorkbookSelection(e30.getUnitId()); })), this.disposeWithMe(this.selectionChanged$.pipe(takeUntil(this.dispose$)).subscribe(() => { this._cellStylesCache.clear(); })); } dispose() { super.dispose(), this._cellStylesCache.clear(), this._workbookSelections.forEach((e29) => e29.dispose()), this._workbookSelections.clear(), this.selectionMoveStart$ = of(null), this.selectionMoving$ = of(null), this.selectionMoveEnd$ = of([]), this.selectionSet$ = of(null), this.selectionChanged$ = of(null); } clear() { this._workbookSelections.forEach((e29) => e29.clear()); } getCurrentSelections() { return this._getCurrentSelections(); } getCurrentLastSelection() { let e29 = this._getCurrentSelections(); return e29 == null ? void 0 : e29[e29.length - 1]; } getCurrentLastSelectionPrimaryCell() { let e29 = this._currentSelectionPos; if (!e29) return null; let { unitId: t, sheetId: n } = e29; return this._ensureWorkbookSelection(t).getLastSelectionPrimaryCellOfWorksheet(n); } addSelections(e29, t, n) { if (typeof e29 == `string`) { this._ensureWorkbookSelection(e29).addSelections(t, n); return; } let r = this._currentSelectionPos; if (!r) throw Error(`[SheetsSelectionsService]: cannot find current selection position!`); let { unitId: i, sheetId: a } = r; this._ensureWorkbookSelection(i).addSelections(a, e29); } setSelections(e29, t, n, r) { if (typeof e29 == `string` && typeof t == `string`) { let i2 = e29; this._ensureWorkbookSelection(i2).setSelections(t, n || [], r == null ? zi2.ONLY_SET : r); return; } let i = this._currentSelectionPos; if (!i) throw Error(`[SheetsSelectionsService]: cannot find current selection position!`); let { unitId: a, sheetId: o } = i; if (typeof e29 == `object`) { var s; let r2 = e29 == null ? n : e29, i2 = (s = t) == null ? zi2.ONLY_SET : s; this._ensureWorkbookSelection(a).setSelections(o, r2, i2); } } clearCurrentSelections() { this._getCurrentSelections().splice(0); } isOverlapping() { let e29 = this.getCurrentSelections(); return e29 == null ? false : e29.some(({ range: t }, n) => e29.some(({ range: e30 }, r) => n === r ? false : t.startRow <= e30.endRow && t.endRow >= e30.startRow && t.startColumn <= e30.endColumn && t.endColumn >= e30.startColumn)); } _getCurrentSelections() { let e29 = this._currentSelectionPos; if (!e29) return []; let { unitId: t, sheetId: n } = e29; return this._ensureWorkbookSelection(t).getSelectionsOfWorksheet(n); } getWorkbookSelections(e29) { return this._ensureWorkbookSelection(e29); } _ensureWorkbookSelection(e29) { let t = this._workbookSelections.get(e29); if (!t) { let n = this._instanceSrv.getUnit(e29); if (!n) throw Error(`[SheetsSelectionsService]: cannot resolve unit with id "${e29}"!`); t = new Bi2(n), this._workbookSelections.set(e29, t); } return t; } _removeWorkbookSelection(e29) { this._workbookSelections.delete(e29); } getCellStylesProperty(e29) { var t; let n = (t = this._instanceSrv.getCurrentUnitForType(O.UNIVER_SHEET)) == null ? void 0 : t.getActiveSheet(), r = this.getCurrentSelections(); if (!n || r.length === 0) return { isAllValuesSame: false, value: null }; let i = null; for (let t2 = 0; t2 < r.length; t2++) { let { startRow: a, endRow: o, startColumn: s, endColumn: c } = r[t2].range; for (let t3 = a; t3 <= o; t3++) for (let r2 = s; r2 <= c; r2++) { let a2 = `${t3}_${r2}`, o2; this._cellStylesCache.has(a2) ? o2 = this._cellStylesCache.get(a2) : (o2 = n.getComposedCellStyle(t3, r2), this._cellStylesCache.set(a2, o2)); let s2 = o2[e29]; if (i != null && !D.diffValue(i, s2)) return { isAllValuesSame: false, value: null }; i = s2; } } return { isAllValuesSame: true, value: i }; } }; Y4 = G4([W4(0, Mu)], Y4); var Ui2 = `REF_SELECTIONS_ENABLED`; var Wi2 = { id: `sheet.command.clear-selection-all`, type: ri.COMMAND, handler: (e29, t) => { var n; let r = e29.get(Mu), i = e29.get(ii), a = e29.get(Y4), o = e29.get(td), s = e29.get(K4), c = r.getCurrentUnitForType(O.UNIVER_SHEET); if (!c) return false; let l = (t == null ? void 0 : t.unitId) || c.getUnitId(), u = c.getActiveSheet(); if (!u) return false; let d = (t == null ? void 0 : t.subUnitId) || u.getSheetId(), f = (t == null ? void 0 : t.ranges) || ((n = a.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(f != null && f.length)) return false; let p = Ai2(f, e29, l, d), m = [], h = [], g2 = { subUnitId: d, unitId: l, cellValue: Ti2(p) }, _2 = gr3(e29, g2); m.push({ id: J4.id, params: g2 }), h.push({ id: J4.id, params: _2 }); let v = s.onCommandExecute({ id: Wi2.id }); return m.push(...v.redos), h.unshift(...v.undos), li(m, i) ? (o.pushUndoRedo({ unitID: l, undoMutations: h, redoMutations: m }), true) : false; } }; var Gi2 = { id: `sheet.command.clear-selection-format`, type: ri.COMMAND, handler: (e29, t) => { var n; let r = e29.get(Mu), i = e29.get(ii), a = e29.get(Y4), o = e29.get(td), s = e29.get(K4), c = r.getCurrentUnitForType(O.UNIVER_SHEET); if (!c) return false; let l = (t == null ? void 0 : t.unitId) || c.getUnitId(), u = c.getActiveSheet(); if (!u) return false; let d = (t == null ? void 0 : t.subUnitId) || u.getSheetId(), f = (t == null ? void 0 : t.ranges) || ((n = a.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(f != null && f.length)) return false; let p = Ai2(f, e29, l, d), m = [], h = [], g2 = { subUnitId: d, unitId: l, cellValue: Di2(p) }, _2 = gr3(e29, g2); m.push({ id: J4.id, params: g2 }), h.push({ id: J4.id, params: _2 }); let v = s.onCommandExecute({ id: Gi2.id }); return m.push(...v.redos), h.unshift(...v.undos), li(m, i) ? (o.pushUndoRedo({ unitID: l, undoMutations: h, redoMutations: m }), true) : false; } }; function Ki3(e29, t, n = true) { let r = t.getMatrixWithMergedCells(...Xi(e29)), i = []; if (r.forValue((t2, n2, r2) => { if (r2.colSpan !== void 0 && r2.rowSpan !== void 0) { let a2 = { startRow: t2, startColumn: n2, endRow: t2 + r2.rowSpan - 1, endColumn: n2 + r2.colSpan - 1 }; G.contains(e29, a2) || i.push(a2); } }), i.length === 0) return e29; let a = G.union(e29, ...i); return n ? Ki3(a, t, n) : a; } function Yi2(e29, t) { let n = Number.isNaN(e29.startRow) ? 0 : e29.startRow, r = Number.isNaN(e29.startColumn) ? 0 : e29.startColumn, i = t.getMergedCell(n, r); return i ? { ...i, actualRow: n, actualColumn: r, rangeType: B.NORMAL, isMerged: true, isMergedMainCell: true } : { startRow: n, startColumn: r, endRow: e29.startRow, endColumn: e29.startColumn, actualRow: n, actualColumn: r, rangeType: B.NORMAL, isMerged: false, isMergedMainCell: false }; } var Xi3 = (e29, t, n) => ({ id: X4.id, params: { unitId: t.getUnitId(), subUnitId: n.getSheetId(), reveal: true, selections: [{ range: e29, primary: Yi2(e29, n) }] } }); function Qi3(e29) { function t(t2, n) { function r(t3) { for (let r2 = t3.startRow; r2 <= t3.endRow; r2++) if (!e29.getRowFiltered(r2)) for (let e30 = t3.startColumn; e30 <= t3.endColumn; e30++) n(r2, e30, t3); } r(t2); } return { forOperableEach: t }; } var $i2 = (e29) => e29.id !== Ht2; function ea3(e29, t, n, r, i, a, o) { let s = {}; for (let c = t; c <= n; c++) for (let t2 = r; t2 <= i; t2++) { let n2 = a ? e29.getCellWithFilteredInterceptors(o, t2, Ut3, $i2) : e29.getCellWithFilteredInterceptors(c, o, Ut3, $i2); !n2 || !n2.s || (s[c] || (s[c] = {}), s[c][t2] = { s: n2.s }); } for (let e30 in s) { for (let t2 in s[e30]) { let n2 = s[e30][t2]; n2.s && typeof n2.s == `object` && D.isEmptyObject(n2.s) && delete n2.s, D.isEmptyObject(n2) && delete s[e30][t2]; } D.isEmptyObject(s[e30]) && delete s[e30]; } return s; } var ta3 = createIdentifier(`sheets-formula.ref-selections.service`); var na2 = class extends Y4 { constructor(e29) { super(e29); } _init() { let e29 = this._getAliveWorkbooks$().pipe(takeUntil(this.dispose$)); this.selectionMoveStart$ = e29.pipe(switchMap((e30) => merge2(...e30.map((e31) => e31.selectionMoveStart$)))), this.selectionMoving$ = e29.pipe(switchMap((e30) => merge2(...e30.map((e31) => e31.selectionMoving$)))), this.selectionMoveEnd$ = e29.pipe(switchMap((e30) => merge2(...e30.map((e31) => e31.selectionMoveEnd$)))), this.selectionSet$ = e29.pipe(switchMap((e30) => merge2(...e30.map((e31) => e31.selectionSet$)))); } dispose() { super.dispose(), this.selectionMoveStart$ = of(null), this.selectionMoving$ = of(null), this.selectionMoveEnd$ = of(null), this.selectionSet$ = of(null), delete this._instanceSrv, this._workbookSelections.clear(); } _getAliveWorkbooks$() { let e29 = this._instanceSrv.getAllUnitsForType(O.UNIVER_SHEET); e29.forEach((e30) => this._ensureWorkbookSelection(e30.getUnitId())); let t = new BehaviorSubject(e29); return this.disposeWithMe(this._instanceSrv.getTypeOfUnitAdded$(O.UNIVER_SHEET).subscribe((e30) => { this._ensureWorkbookSelection(e30.getUnitId()), t.next([...t.getValue(), e30]); })), this.disposeWithMe(this._instanceSrv.getTypeOfUnitDisposed$(O.UNIVER_SHEET).subscribe((e30) => { this._removeWorkbookSelection(e30.getUnitId()), t.next(t.getValue().filter((t2) => t2 !== e30)); })), t.pipe(map((e30) => e30.map((e31) => this._ensureWorkbookSelection(e31.getUnitId())))); } }; na2 = G4([W4(0, Mu)], na2); function ra2(e29, t) { let n = e29.get(Zr).getContextValue(Ui2); return e29.get(n && !t ? ta3 : Y4); } var X4 = { id: `sheet.operation.set-selections`, type: ri.OPERATION, handler: (e29, t) => { if (!t) return false; let { selections: n, type: r, unitId: i, subUnitId: a } = t; return ra2(e29).setSelections(i, a, [...n], r), true; } }; var ia2 = { id: `sheet.command.select-range`, type: ri.COMMAND, handler: (e29, t) => { if (!t) return false; let { unitId: n, subUnit: r, range: i } = t, a = e29.get(ii), o = V4(e29.get(Mu), t); if (!o) return false; let s = [{ range: i, primary: Yi2(i, o.worksheet), style: null }]; return a.syncExecuteCommand(X4.id, { unitId: n, subUnitId: r, selections: s }); } }; var aa3 = `sheet.command.move-range`; var oa3 = { type: ri.COMMAND, id: aa3, handler: async (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = e29.get(Pl), a = e29.get(zu); if (!await e29.get(K4).beforeCommandExecute({ id: oa3.id, params: t })) return false; let o = ca3(e29, t); return o ? li(o.redos, n).result ? (r.pushUndoRedo({ unitID: o.unitId, undoMutations: o.undos, redoMutations: o.redos }), true) : false : (i.emit(a.t(`sheets.info.acrossMergedCell`)), false); } }; function sa2(e29, t) { var n, r, i, a, o; let s = e29.get(Mu), c = V4(s), l = (n = (r = t.toUnitId) == null ? t.fromUnitId : r) == null ? c == null ? void 0 : c.unitId : n, u = (i = t.fromSubUnitId) == null ? c == null ? void 0 : c.subUnitId : i, d = (a = (o = t.toSubUnitId) == null ? t.fromSubUnitId : o) == null ? c == null ? void 0 : c.subUnitId : a; if (!l || !u || !d || t.fromUnitId && t.toUnitId && t.fromUnitId !== t.toUnitId) return null; let f = s.getUniverSheetInstance(l), p = f == null ? void 0 : f.getSheetBySheetId(u), m = f == null ? void 0 : f.getSheetBySheetId(d); return !p || !m ? null : { unitId: l, fromSubUnitId: u, toSubUnitId: d, fromWorksheet: p, toWorksheet: m }; } function ca3(e29, t, n = {}) { var r, i; let { includeSelection: a = true, includeAfterCommand: o = true, includeAutoHeight: s = true } = n, c = sa2(e29, t); if (!c) return null; let l = e29.get(K4), { unitId: u, fromSubUnitId: d, toSubUnitId: f, fromWorksheet: p, toWorksheet: m } = c, h = la3(e29, { unitId: u, subUnitId: d, range: t.fromRange }, { unitId: u, subUnitId: f, range: t.toRange }); if (h === null) return null; let g2 = { id: oa3.id, params: t }, _2 = l.onCommandExecute(g2), v = [...(r = _2.preRedos) == null ? [] : r, ...h.redos, ..._2.redos], y = [...(i = _2.preUndos) == null ? [] : i, ...h.undos, ..._2.undos]; if (a && (v.push({ id: X4.id, params: { unitId: u, subUnitId: f, selections: [{ range: t.toRange, primary: ua3(t.fromRange, t.toRange, p, m) }], type: zi2.MOVE_END } }), y.push({ id: X4.id, params: { unitId: u, subUnitId: d, selections: [{ range: t.fromRange, primary: Yi2(t.fromRange, p) }], type: zi2.MOVE_END } })), o) { let e30 = l.afterCommandExecute(g2); v.push(...e30.redos), y.push(...e30.undos); } if (s) { let { undos: e30, redos: n2 } = l.generateMutationsOfAutoHeight({ unitId: u, subUnitId: f, ranges: d === f ? [t.fromRange, t.toRange] : [t.toRange] }); v.push(...n2), y.push(...e30); } return { unitId: u, redos: v, undos: y }; } function la3(e29, t, n, r = false) { let i = [], a = [], { range: o, subUnitId: s, unitId: c } = t, { range: l, subUnitId: u } = n, d = e29.get(Mu).getUniverSheetInstance(c), f = d == null ? void 0 : d.getSheetBySheetId(u), p = d == null ? void 0 : d.getSheetBySheetId(s), m = f == null ? void 0 : f.getCellMatrix(), h = p == null ? void 0 : p.getCellMatrix(); if (f && p && m && h) { let e30 = Ki3(l, f, false); if (!G.equals(l, e30) && !r) return null; let p2 = new Sa(), g2 = new Sa(), _2 = new Sa(); Eo.foreach(o, (e31, t2) => { let n2 = h.getValue(e31, t2); if (p2.setValue(e31, t2, D.deepClone(n2)), n2) { let r2 = d == null ? void 0 : d.getStyles().get(n2.s); _2.setValue(e31, t2, D.deepClone(r2)); } g2.setValue(e31, t2, null); }); let v = new Sa(), y = new Sa(); Eo.foreach(l, (e31, t2) => { v.setValue(e31, t2, D.deepClone(m.getValue(e31, t2))); }), Eo.foreach(o, (e31, t2) => { let n2 = Ia(e31, t2), r2 = G.getRelativeRange(n2, o), i2 = G.getPositionRange(r2, l), a2 = D.deepClone(_2.getValue(e31, t2)), s2 = D.deepClone(p2.getValue(e31, t2)); s2 && a2 && (s2.s = a2), y.setValue(i2.startRow, i2.startColumn, s2); }); let b = { fromRange: t.range, toRange: n.range, from: { value: g2.getMatrix(), subUnitId: s }, to: { value: y.getMatrix(), subUnitId: u }, unitId: c }, x2 = { fromRange: n.range, toRange: t.range, from: { value: p2.getMatrix(), subUnitId: s }, to: { value: v.getMatrix(), subUnitId: u }, unitId: c }; i.push({ id: Tn3.id, params: b }), a.push({ id: Tn3.id, params: x2 }); } return { redos: i, undos: a }; } function ua3(e29, t, n, r = n) { let i = e29.startRow, a = e29.startColumn, o = n.getMergedCell(i, a), s = Yi2(t, r); if (o) { let e30 = o.endRow - o.startRow + 1, t2 = o.endColumn - o.startColumn + 1; s.endRow = s.startRow + e30 - 1, s.endColumn = s.startColumn + t2 - 1, s.actualRow = s.startRow, s.actualColumn = s.startColumn, s.isMerged = false, s.isMergedMainCell = true; } return s; } var da3 = class { constructor(e29, t, n) { U4(this, `type`, S.SelectRange), U4(this, `subType`, R.Edit), U4(this, `status`, Hu.INIT), U4(this, `value`, true), U4(this, `id`, void 0), U4(this, `unitId`, void 0), U4(this, `subUnitId`, void 0), U4(this, `permissionId`, void 0), this.unitId = e29, this.subUnitId = t, this.permissionId = n, this.id = `${S.SelectRange}.${R.Edit}.${n}`; } }; var fa3 = class { constructor(e29, t, n) { U4(this, `type`, S.SelectRange), U4(this, `subType`, R.View), U4(this, `status`, Hu.INIT), U4(this, `value`, false), U4(this, `id`, void 0), U4(this, `unitId`, void 0), U4(this, `subUnitId`, void 0), U4(this, `permissionId`, void 0), this.unitId = e29, this.subUnitId = t, this.permissionId = n, this.id = `${S.SelectRange}.${R.View}.${n}`; } }; var pa3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Comment), this.unitId = e29, this.id = `${this.type}.${R.Comment}_${e29}`; } }; var ma2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Copy), this.unitId = e29, this.id = `${this.type}.${R.Copy}_${e29}`; } }; var ha2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `subType`, R.CopySheet), U4(this, `status`, Hu.INIT), this.unitId = e29, this.id = `${this.type}.${R.CopySheet}_${e29}`; } }; var ga3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.CreatePermissionObject), this.unitId = e29, this.id = `${this.type}.${R.CreatePermissionObject}_${e29}`; } }; var _a3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.CreateSheet), this.unitId = e29, this.id = `${this.type}.${R.CreateSheet}_${e29}`; } }; var va3 = class { constructor(e29) { this.unitId = e29, U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.DeleteColumn), this.id = `${this.type}.${R.DeleteColumn}_${e29}`; } }; var ya3 = class { constructor(e29) { this.unitId = e29, U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.DeleteRow), this.id = `${this.type}.${R.DeleteRow}_${e29}`; } }; var ba3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.DeleteSheet), this.unitId = e29, this.id = `${this.type}.${R.DeleteSheet}_${e29}`; } }; var xa3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Duplicate), this.unitId = e29, this.id = `${this.type}.${R.Duplicate}_${e29}`; } }; var Sa3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Edit), this.unitId = e29, this.id = `${this.type}.${R.Edit}_${e29}`; } }; var Ca2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Export), this.unitId = e29, this.id = `${this.type}.${R.Export}_${e29}`; } }; var wa2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.HideSheet), this.unitId = e29, this.id = `${this.type}.${R.HideSheet}_${e29}`; } }; var Ea3 = class { constructor(e29) { this.unitId = e29, U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.InsertColumn), this.id = `${this.type}.${R.InsertColumn}_${e29}`; } }; var Da3 = class { constructor(e29) { this.unitId = e29, U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.InsertRow), this.id = `${this.type}.${R.InsertRow}_${e29}`; } }; var Oa2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.ManageCollaborator), this.unitId = e29, this.id = `${this.type}.${R.ManageCollaborator}_${e29}`; } }; var ka3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.MoveSheet), this.unitId = e29, this.id = `${this.type}.${R.MoveSheet}_${e29}`; } }; var Aa3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Print), this.unitId = e29, this.id = `${this.type}.${R.Print}_${e29}`; } }; var ja2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.RecoverHistory), this.unitId = e29, this.id = `${this.type}.${R.RecoverHistory}_${e29}`; } }; var Ma2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.RenameSheet), this.unitId = e29, this.id = `${this.type}.${R.RenameSheet}_${e29}`; } }; var Na2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.Share), this.unitId = e29, this.id = `${this.type}.${R.Share}_${e29}`; } }; var Pa2 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.View), this.unitId = e29, this.id = `${this.type}.${R.View}_${e29}`; } }; var Fa3 = class { constructor(e29) { this.unitId = e29, U4(this, `id`, void 0), U4(this, `value`, true), U4(this, `type`, S.Workbook), U4(this, `status`, Hu.INIT), U4(this, `subType`, R.ViewHistory), this.unitId = e29, this.id = `${this.type}.${R.ViewHistory}_${e29}`; } }; var Ia3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.Copy), this.id = `${this.type}.${R.Copy}_${e29}_${t}`; } }; var La2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.DeleteColumn), this.id = `${this.type}.${R.DeleteColumn}_${e29}_${t}`; } }; var Ra2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.Delete), this.id = `${this.type}.${R.Delete}_${e29}_${t}`; } }; var za3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.DeleteRow), this.id = `${this.type}.${R.DeleteRow}_${e29}_${t}`; } }; var Ba3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.Edit), this.id = `${this.type}.${R.Edit}_${e29}_${t}`; } }; var Va2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.EditExtraObject), this.id = `${this.type}.${R.EditExtraObject}_${e29}_${t}`; } }; var Ha3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.Filter), this.id = `${this.type}.${R.Filter}_${e29}_${t}`; } }; var Ua2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.InsertColumn), this.id = `${this.type}.${R.InsertColumn}_${e29}_${t}`; } }; var Wa2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.InsertHyperlink), this.id = `${this.type}.${R.InsertHyperlink}_${e29}_${t}`; } }; var Ga2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.InsertRow), this.id = `${this.type}.${R.InsertRow}_${e29}_${t}`; } }; var Ka3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.ManageCollaborator), this.id = `${this.type}.${R.ManageCollaborator}_${e29}_${t}`; } }; var qa3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.PivotTable), this.id = `${this.type}.${R.PivotTable}_${e29}_${t}`; } }; var Xa2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.SetCellStyle), this.id = `${this.type}.${R.SetCellStyle}_${e29}_${t}`; } }; var Za3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.SetCellValue), this.id = `${this.type}.${R.SetCellValue}_${e29}_${t}`; } }; var Qa2 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.SetColumnStyle), this.id = `${this.type}.${R.SetColumnStyle}_${e29}_${t}`; } }; var $a3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.SetRowStyle), this.id = `${this.type}.${R.SetRowStyle}_${e29}_${t}`; } }; var eo3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.Sort), this.id = `${this.type}.${R.Sort}_${e29}_${t}`; } }; var to3 = class { constructor(e29, t) { this.unitId = e29, this.subUnitId = t, U4(this, `value`, true), U4(this, `type`, S.Worksheet), U4(this, `status`, Hu.INIT), U4(this, `id`, void 0), U4(this, `subType`, R.View), this.id = `${this.type}.${R.View}_${e29}_${t}`; } }; var no3 = { id: `sheet.command.set-range-values`, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(Mu), s = e29.get(Y4), c = e29.get(K4), l = e29.get(Uu), u = V4(o, t); if (!u) return false; let { subUnitId: d, unitId: f, workbook: p, worksheet: m } = u, { value: h, range: g2, redoUndoId: _2 } = t, v = g2 ? [g2] : (n = s.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range); if (!v || !v.length || !l.getPermissionPoint(new Ba3(f, d).id)) return false; let y = new Sa(), b; if (D.isArray(h)) for (let e30 = 0; e30 < v.length; e30++) { let { startRow: t2, startColumn: n2, endRow: r2, endColumn: i2 } = v[e30]; for (let e31 = 0; e31 <= r2 - t2; e31++) for (let r3 = 0; r3 <= i2 - n2; r3++) y.setValue(e31 + t2, r3 + n2, h[e31][r3]); } else if (Ki(h)) for (let e30 = 0; e30 < v.length; e30++) { let { startRow: t2, startColumn: n2, endRow: r2, endColumn: i2 } = v[e30]; for (let e31 = t2; e31 <= r2; e31++) for (let t3 = n2; t3 <= i2; t3++) y.setValue(e31, t3, h); } else b = h; let x2 = { subUnitId: d, unitId: f, cellValue: (r = b) == null ? y.getMatrix() : r }, S4 = gr3(e29, x2), w2 = fa(x2.cellValue, (e30, t2) => m.getCellHeight(e30, t2) || void 0); if (!i.syncExecuteCommand(J4.id, x2)) return false; let { undos: T4, redos: E4 } = c.onCommandExecute({ id: no3.id, params: x2 }), { undos: ee, redos: te } = c.generateMutationsOfAutoHeight({ unitId: f, subUnitId: d, ranges: v, cellHeights: new Sa(w2) }); if (li([...E4, ...te], i).result) { let e30 = Xi3(g2 == null ? y.getRange() : g2, p, m); return a.pushUndoRedo({ unitID: f, undoMutations: [{ id: J4.id, params: S4 }, ...T4, ...ee, e30], redoMutations: [{ id: J4.id, params: x2 }, ...E4, ...te, D.deepClone(e30)], id: _2 }), true; } return false; } }; function ro3(e29, t) { let n = [], r = [], { unitId: i, subUnitId: a, range: o, shiftDimension: s, cellValue: c = {} } = t, l = e29.get(Mu), u = e29.get(K4), d = l.getUniverSheetInstance(i), f = d == null ? void 0 : d.getSheetBySheetId(a); if (f) { let t2 = f.getCellMatrix(), l2 = t2.getDataRange(); if (o.startColumn <= l2.endColumn || o.startRow <= l2.endRow) { let c2, u2; if (s === Pn.COLUMNS) { let e30 = Math.min(o.endRow, l2.endRow), n2 = 0; for (let r3 = o.startRow; r3 <= e30; r3++) { let e31 = t2.getRow(r3), i2 = e31 ? pa(e31) - 1 : 0; n2 = Math.max(n2, i2); } c2 = { startRow: o.startRow, startColumn: o.startColumn, endRow: e30, endColumn: n2 }; let r2 = o.endColumn - o.startColumn + 1; u2 = { startRow: o.startRow, startColumn: c2.startColumn + r2, endRow: e30, endColumn: c2.endColumn + r2 }; } else { let e30 = Math.min(o.endColumn, l2.endColumn), t3 = l2.endRow; c2 = { startRow: o.startRow, startColumn: o.startColumn, endRow: t3, endColumn: e30 }; let n2 = o.endRow - o.startRow + 1; u2 = { startRow: c2.startRow + n2, startColumn: o.startColumn, endRow: c2.endRow + n2, endColumn: e30 }; } let d3 = la3(e29, { unitId: i, subUnitId: a, range: c2 }, { unitId: i, subUnitId: a, range: u2 }, true); d3 && (n.push(...d3.redos), r.push(...d3.undos)); } if (Object.entries(c).length === 0) for (let e30 = o.startRow; e30 <= o.endRow; e30++) { c[e30] || (c[e30] = {}); for (let t3 = o.startColumn; t3 <= o.endColumn; t3++) c[e30][t3] = null; } let d2 = { subUnitId: a, unitId: i, cellValue: c }, m = gr3(e29, d2), { undos: h, redos: g2 } = u.onCommandExecute({ id: no3.id, params: { ...d2, range: o } }); n.push({ id: J4.id, params: d2 }, ...g2), r.push({ id: J4.id, params: m }, ...h); } return { redo: n, undo: r }; } function io3(e29, t) { let n = [], r = [], { unitId: i, subUnitId: a, range: o, shiftDimension: s } = t, c = e29.get(Mu), l = e29.get(K4), u = c.getUniverSheetInstance(i), d = u == null ? void 0 : u.getSheetBySheetId(a); if (d) { let t2 = d.getCellMatrix(), c2 = t2.getDataRange(), u2 = { subUnitId: a, unitId: i, cellValue: Ti2([o]) }, f = gr3(e29, u2), m = l.onCommandExecute({ id: no3.id, params: u2 }); if (n.push({ id: J4.id, params: u2 }, ...m.redos), r.push(...m.undos, { id: J4.id, params: f }), o.startColumn <= c2.endColumn || o.startRow <= c2.endRow) { let l2 = null, u3 = null; if (s === Pn.COLUMNS && o.endColumn < c2.endColumn) { let e30 = Math.min(o.endRow, c2.endRow), n2 = 0; for (let r3 = o.startRow; r3 <= e30; r3++) { let e31 = t2.getRow(r3), i2 = e31 ? pa(e31) - 1 : 0; n2 = Math.max(n2, i2); } l2 = { startRow: o.startRow, startColumn: o.endColumn + 1, endRow: e30, endColumn: n2 }; let r2 = o.endColumn - o.startColumn + 1; u3 = { startRow: o.startRow, startColumn: l2.startColumn - r2, endRow: e30, endColumn: l2.endColumn - r2 }; } if (s === Pn.ROWS && o.endRow < c2.endRow) { let e30 = Math.min(o.endColumn, c2.endColumn), t3 = c2.endRow; l2 = { startRow: o.endRow + 1, startColumn: o.startColumn, endRow: t3, endColumn: e30 }; let n2 = o.endRow - o.startRow + 1; u3 = { startRow: l2.startRow - n2, startColumn: o.startColumn, endRow: l2.endRow - n2, endColumn: e30 }; } if (l2 && u3) { let t3 = la3(e29, { unitId: i, subUnitId: a, range: l2 }, { unitId: i, subUnitId: a, range: u3 }, true); t3 && (n.push(...t3.redos), r.push(...t3.undos)); } } } return { redo: n, undo: r }; } var so3 = `sheet.command.delete-range-move-left`; var co3 = { type: ri.COMMAND, id: so3, handler: async (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(Mu), s = e29.get(Y4), c = e29.get(K4), l = V4(o); if (!l) return false; let { worksheet: u, workbook: d, subUnitId: f, unitId: m } = l, h = t == null ? void 0 : t.range; if (!h) { var g2; h = (g2 = s.getCurrentLastSelection()) == null ? void 0 : g2.range; } if (!h) return false; let _2 = { range: h, subUnitId: f, unitId: m, shiftDimension: Pn.COLUMNS }, v = c.onCommandExecute({ id: co3.id, params: { range: h } }), { redo: y, undo: b } = io3(e29, _2), x2 = [...(n = v.preRedos) == null ? [] : n, ...y], S4 = [...v.undos, ...b]; if (x2.push(...v.redos), x2.push(Xi3(h, d, u)), S4.push(...(r = v.preUndos) == null ? [] : r), li(x2, i).result) { let e30 = c.afterCommandExecute({ id: co3.id, params: { range: h } }); return li(e30.redos, i), S4.push(...e30.undos), x2.push(...e30.redos), a.pushUndoRedo({ unitID: m, undoMutations: S4.reverse(), redoMutations: x2 }), true; } return false; } }; var lo3 = `sheet.command.delete-range-move-up`; var uo3 = { type: ri.COMMAND, id: lo3, handler: async (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(Mu), s = e29.get(Y4), c = e29.get(K4), l = V4(o); if (!l) return false; let { unitId: u, subUnitId: d, workbook: f, worksheet: m } = l, h = t == null ? void 0 : t.range; if (!h) { let e30 = s.getCurrentLastSelection(); h = e30 == null ? void 0 : e30.range; } if (!h) return false; let g2 = { range: h, subUnitId: d, unitId: u, shiftDimension: Pn.ROWS }, _2 = c.onCommandExecute({ id: uo3.id, params: { range: h } }), { redo: v, undo: y } = io3(e29, g2), b = [...(n = _2.preRedos) == null ? [] : n, ...v], x2 = [..._2.undos, ...y]; if (b.push(..._2.redos), b.push(Xi3(h, f, m)), x2.push(...(r = _2.preUndos) == null ? [] : r), li(b, i).result) { let e30 = c.afterCommandExecute({ id: uo3.id, params: { range: h } }); return li(e30.redos, i), x2.push(...e30.undos), b.push(...e30.redos), a.pushUndoRedo({ unitID: u, undoMutations: x2.reverse(), redoMutations: b }), true; } return false; } }; var fo3 = `sheet.command.insert-range-move-down`; var po2 = { type: ri.COMMAND, id: fo3, handler: async (e29, t) => { var n, i; let a = e29.get(ii), o = e29.get(td), s = e29.get(Mu), c = e29.get(Y4), l = e29.get(K4), u = e29.get(Pl), d = e29.get(zu); if (c.isOverlapping()) return u.emit(d.t(`sheets.info.overlappingSelections`)), false; let f = V4(s); if (!f) return false; let { unitId: m, subUnitId: h, worksheet: g2, workbook: _2 } = f, y = t == null ? void 0 : t.range; if (!y) { var b; y = (b = c.getCurrentLastSelection()) == null ? void 0 : b.range; } if (!y) return false; let x2 = [], S4 = [], w2 = g2.getCellMatrix(), T4 = w2.getDataRange(), E4 = w2.getSlice(T4.startRow, T4.endRow, y.startColumn, y.endColumn).getDataRange().endRow, ee = Math.max(E4 + (y.endRow - y.startRow + 1) - T4.endRow, 0); if (ee > 0) { let t2 = y.startRow - 1, n2 = g2.getRowHeight(t2), i2 = { unitId: m, subUnitId: h, range: { startRow: T4.endRow + 1, endRow: T4.endRow + ee, startColumn: T4.startColumn, endColumn: T4.endColumn }, rowInfo: Array(ee).fill(void 0).map(() => ({ h: n2, hd: A.FALSE })) }; x2.push({ id: Sn3.id, params: i2 }); let a2 = xn3(e29, i2); S4.push({ id: jn2.id, params: a2 }); } let D4 = {}; Eo.foreach(y, (e30, t2) => { let n2 = g2.getCell(e30, t2); n2 && (D4[e30] || (D4[e30] = {}), D4[e30][t2] = { s: n2.s }); }); let { redo: te, undo: ne } = ro3(e29, { range: y, subUnitId: h, unitId: m, shiftDimension: Pn.ROWS, cellValue: D4 }); x2.push(...te), S4.push(...ne); let A4 = l.onCommandExecute({ id: po2.id, params: { range: y } }); if (x2.push(...A4.redos), x2.push(Xi3(y, _2, g2)), S4.push(...(n = A4.preUndos) == null ? [] : n), x2.unshift(...(i = A4.preRedos) == null ? [] : i), S4.unshift(...A4.undos), li(x2, a)) { let e30 = l.afterCommandExecute({ id: po2.id, params: { range: y } }); return li(e30.redos, a), S4.push(...e30.undos), x2.push(...e30.redos), o.pushUndoRedo({ unitID: m, undoMutations: S4.reverse(), redoMutations: x2 }), true; } return false; } }; var mo2 = `sheet.command.insert-range-move-right`; var ho2 = { type: ri.COMMAND, id: mo2, handler: async (e29, t) => { var n, i; let a = e29.get(ii), o = e29.get(td), s = e29.get(Mu), c = e29.get(Y4), l = e29.get(K4), u = e29.get(Pl), d = e29.get(zu); if (c.isOverlapping()) return u.emit(d.t(`sheets.info.overlappingSelections`)), false; let f = V4(s); if (!f) return false; let { workbook: m, worksheet: h, unitId: g2, subUnitId: _2 } = f, y = t == null ? void 0 : t.range; if (!y) { var b; y = (b = c.getCurrentLastSelection()) == null ? void 0 : b.range; } if (!y) return false; let x2 = [], S4 = [], w2 = h.getCellMatrix(), T4 = w2.getDataRange(), E4 = w2.getSlice(y.startRow, y.endRow, T4.startColumn, T4.endColumn).getDataRange().endColumn, ee = Math.max(E4 + (y.endColumn - y.startColumn + 1) - T4.endColumn, 0); if (ee > 0) { let t2 = y.startColumn - 1, n2 = h.getColumnWidth(t2), i2 = { unitId: g2, subUnitId: _2, range: { startRow: T4.startRow + 1, endRow: T4.endRow, startColumn: T4.endColumn + 1, endColumn: T4.endColumn + ee }, colInfo: Array(ee).fill(void 0).map(() => ({ w: n2, hd: A.FALSE })) }; x2.push({ id: wn3.id, params: i2 }); let a2 = Cn3(e29, i2); S4.push({ id: Nn3.id, params: a2 }); } let D4 = {}; Eo.foreach(y, (e30, t2) => { let n2 = h.getCell(e30, t2); !n2 || !n2.s || (D4[e30] || (D4[e30] = {}), D4[e30][t2] = { s: n2.s }); }); let { redo: te, undo: ne } = ro3(e29, { range: y, subUnitId: _2, unitId: g2, shiftDimension: Pn.COLUMNS, cellValue: D4 }); x2.push(...te), S4.push(...ne); let A4 = l.onCommandExecute({ id: ho2.id, params: { range: y } }); if (x2.push(...A4.redos), x2.push(Xi3(y, m, h)), S4.push(...(n = A4.preUndos) == null ? [] : n), x2.unshift(...(i = A4.preRedos) == null ? [] : i), S4.unshift(...A4.undos), li(x2, a).result) { let e30 = l.afterCommandExecute({ id: ho2.id, params: { range: y } }); return li(e30.redos, a), S4.push(...e30.undos), x2.push(...e30.redos), o.pushUndoRedo({ unitID: g2, undoMutations: S4.reverse(), redoMutations: x2 }), true; } return false; } }; var go2 = `sheet.command.insert-row`; var _o3 = { type: ri.COMMAND, id: go2, handler: async (e29, t) => { let n = e29.get(ii), r = e29.get(K4), { range: i, direction: a, unitId: o, subUnitId: s, cellValue: c } = t; return await r.beforeCommandExecute({ id: _o3.id, params: t }) ? n.syncExecuteCommand(vo2.id, { range: i, direction: a, unitId: o, subUnitId: s, cellValue: c }) : false; } }; var vo2 = { type: ri.COMMAND, id: `sheet.command.insert-row-by-range`, handler: (e29, t) => { var n, i, a, o; let s = V4(e29.get(Mu), t); if (!s) throw Error(`Workbook or Worksheet not found at InsertRowByRangeCommand`); let { workbook: c, worksheet: l, unitId: u, subUnitId: d } = s, { range: f, direction: p, cellValue: h } = t, { startRow: g2, endRow: _2 } = f; f.rangeType = B.ROW; let v = p === Fn.UP ? g2 : g2 - 1; if (v < 0 || v > l.getRowCount() - 1) throw Error(`Anchor row is out of bounds in InsertRowByRangeCommand`); let y = e29.get(ii), b = e29.get(td), x2 = e29.get(K4), S4 = { unitId: u, subUnitId: d, range: f }, w2 = l.getRowHeight(v); w2 !== l.getConfig().defaultRowHeight && (S4.rowInfo = Array(_2 - g2 + 1).fill(void 0).map(() => ({ h: w2, hd: A.FALSE }))); let T4 = xn3(e29, S4), E4 = [{ id: Sn3.id, params: S4 }], ee = [{ id: jn2.id, params: T4 }]; h && Object.keys(h).length > 0 && E4.push({ id: J4.id, params: { unitId: u, subUnitId: d, cellValue: h } }); let D4 = x2.onCommandExecute({ id: _o3.id, params: t }); if (E4.unshift(...(n = D4.preRedos) == null ? [] : n), E4.push(...(i = D4.redos) == null ? [] : i), E4.push(Xi3(f, c, l)), ee.unshift(...(a = D4.preUndos) == null ? [] : a), ee.push(...(o = D4.undos) == null ? [] : o), li(E4, y).result) { let e30 = x2.afterCommandExecute({ id: _o3.id, params: t }); return li(e30.redos, y), E4.push(...e30.redos), ee.push(...e30.undos), b.pushUndoRedo({ unitID: t.unitId, undoMutations: ee, redoMutations: E4 }), true; } return false; } }; var yo3 = { type: ri.COMMAND, id: `sheet.command.insert-row-before`, handler: async (e29, t) => { var n; let r = (n = e29.get(Y4).getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range), i; if ((r == null ? void 0 : r.length) === 1) i = r[0]; else return false; let a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, subUnitId: s, unitId: c } = a, l = t.value || 0, u = i.startRow, d = i.startRow + l - 1, f = o.getColumnCount() - 1, p = { unitId: c, subUnitId: s, direction: Fn.UP, range: { startRow: u, endRow: d, startColumn: 0, endColumn: f }, cellValue: ea3(o, u, d, 0, f, true, u - 1) }; return e29.get(ii).executeCommand(_o3.id, p); } }; var bo3 = { type: ri.COMMAND, id: `sheet.command.insert-row-after`, handler: async (e29) => { var t; let n = (t = e29.get(Y4).getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range), r; if ((n == null ? void 0 : n.length) === 1) r = n[0]; else return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a, unitId: o, subUnitId: s } = i, c = r.endRow - r.startRow + 1, l = r.endRow + 1, u = r.endRow + c, d = a.getColumnCount() - 1, f = { unitId: o, subUnitId: s, direction: Fn.DOWN, range: { startRow: l, endRow: u, startColumn: 0, endColumn: d, rangeType: B.ROW }, cellValue: ea3(a, l, u, 0, d, true, r.endRow) }; return e29.get(ii).executeCommand(_o3.id, f); } }; var xo2 = { type: ri.COMMAND, id: `sheet.command.insert-multi-rows-above`, handler: async (e29, t) => { var n; let r = (n = e29.get(Y4).getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range), i; if ((r == null ? void 0 : r.length) === 1) i = r[0]; else return false; let a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, unitId: s, subUnitId: c } = a, l = t.value || 0, u = i.startRow, d = i.startRow + l - 1, f = o.getColumnCount() - 1, p = ea3(o, u, d, 0, f, true, u - 1), h = { unitId: s, subUnitId: c, direction: Fn.UP, range: { startRow: u, endRow: d, startColumn: 0, endColumn: f, rangeType: B.ROW }, cellValue: p }; return e29.get(ii).executeCommand(_o3.id, h); } }; var So2 = { type: ri.COMMAND, id: `sheet.command.insert-multi-rows-after`, handler: async (e29, t) => { var n; let r = (n = e29.get(Y4).getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range), i; if ((r == null ? void 0 : r.length) === 1) i = r[0]; else return false; let a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, unitId: s, subUnitId: c } = a, l = t.value || 0, u = i.endRow + 1, d = i.endRow + l, f = o.getColumnCount() - 1, p = { unitId: s, subUnitId: c, direction: Fn.DOWN, range: { startRow: u, endRow: d, startColumn: 0, endColumn: f, rangeType: B.ROW }, cellValue: ea3(o, u, d, 0, f, true, i.endRow) }; return e29.get(ii).executeCommand(_o3.id, p); } }; var Co3 = `sheet.command.insert-col`; var wo3 = { type: ri.COMMAND, id: Co3, handler: async (e29, t) => { let n = e29.get(ii), r = e29.get(K4), { range: i, direction: a, subUnitId: o, unitId: s, cellValue: c } = t; return await r.beforeCommandExecute({ id: wo3.id, params: t }) ? n.syncExecuteCommand(To3.id, { range: i, direction: a, unitId: s, subUnitId: o, cellValue: c }) : false; } }; var To3 = { type: ri.COMMAND, id: `sheet.command.insert-col-by-range`, handler: (e29, t) => { var n, i, a, o; let s = V4(e29.get(Mu), t); if (!s) throw Error(`Workbook or Worksheet not found at InsertColByRangeCommand`); let { workbook: c, worksheet: l, unitId: u, subUnitId: d } = s, { range: f, direction: p, cellValue: h } = t, { startColumn: g2, endColumn: _2 } = f; f.rangeType = B.COLUMN; let v = p === Fn.LEFT ? g2 : g2 - 1; if (v < 0 || v > l.getColumnCount() - 1) throw Error(`Anchor column is out of bounds in InsertColByRangeCommand`); let y = e29.get(ii), b = e29.get(td), x2 = e29.get(K4), S4 = { unitId: u, subUnitId: d, range: f }, w2 = l.getColumnWidth(v); w2 !== l.getConfig().defaultColumnWidth && (S4.colInfo = Array(_2 - g2 + 1).fill(void 0).map(() => ({ w: w2, hd: A.FALSE }))); let T4 = Cn3(e29, S4), E4 = [{ id: wn3.id, params: S4 }], ee = [{ id: Nn3.id, params: T4 }]; h && Object.keys(h).length > 0 && E4.push({ id: J4.id, params: { unitId: u, subUnitId: d, cellValue: h } }); let D4 = x2.onCommandExecute({ id: wo3.id, params: t }); if (E4.unshift(...(n = D4.preRedos) == null ? [] : n), E4.push(...(i = D4.redos) == null ? [] : i), E4.push(Xi3(f, c, l)), ee.unshift(...(a = D4.preUndos) == null ? [] : a), ee.push(...(o = D4.undos) == null ? [] : o), li(E4, y).result) { let e30 = x2.afterCommandExecute({ id: wo3.id, params: t }); return li(e30.redos, y), E4.push(...e30.redos), ee.push(...e30.undos), b.pushUndoRedo({ unitID: t.unitId, undoMutations: ee.filter(Boolean), redoMutations: E4.filter(Boolean) }), true; } return false; } }; var Eo3 = { type: ri.COMMAND, id: `sheet.command.insert-col-before`, handler: async (e29, t) => { let n = e29.get(Y4).getCurrentSelections(), r; if ((n == null ? void 0 : n.length) === 1) r = n[0].range; else return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a, unitId: o, subUnitId: s } = i, c = t.value || 0, l = r.startColumn, u = r.startColumn + c - 1, d = a.getRowCount() - 1, f = { unitId: o, subUnitId: s, direction: Fn.LEFT, range: { startColumn: l, endColumn: u, startRow: 0, endRow: d, rangeType: B.COLUMN }, cellValue: ea3(a, 0, d, l, u, false, l - 1) }; return e29.get(ii).executeCommand(wo3.id, f); } }; var Do3 = { type: ri.COMMAND, id: `sheet.command.insert-col-after`, handler: async (e29) => { let t = e29.get(Y4).getCurrentSelections(), n; if ((t == null ? void 0 : t.length) === 1) n = t[0].range; else return false; let r = V4(e29.get(Mu)); if (!r) return false; let { worksheet: i, unitId: a, subUnitId: o } = r, s = n.endColumn - n.startColumn + 1, c = n.endColumn + 1, l = n.endColumn + s, u = i.getRowCount() - 1, d = { unitId: a, subUnitId: o, direction: Fn.RIGHT, range: { startColumn: c, endColumn: l, startRow: 0, endRow: u }, cellValue: ea3(i, 0, u, c, l, false, n.endColumn) }; return e29.get(ii).executeCommand(wo3.id, d); } }; var Oo3 = { type: ri.COMMAND, id: `sheet.command.insert-multi-cols-before`, handler: async (e29, t) => { let n = e29.get(Y4).getCurrentSelections(), r; if ((n == null ? void 0 : n.length) === 1) r = n[0].range; else return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a, unitId: o, subUnitId: s } = i, c = t.value || 0, l = r.startColumn, u = r.startColumn + c - 1, d = a.getRowCount() - 1, f = { unitId: o, subUnitId: s, direction: Fn.LEFT, range: { startColumn: l, endColumn: u, startRow: 0, endRow: d, rangeType: B.COLUMN }, cellValue: ea3(a, 0, d, l, u, false, l - 1) }; return e29.get(ii).executeCommand(wo3.id, f); } }; var ko3 = { type: ri.COMMAND, id: `sheet.command.insert-multi-cols-right`, handler: async (e29, t) => { let n = e29.get(Y4).getCurrentSelections(), r; if ((n == null ? void 0 : n.length) === 1) r = n[0].range; else return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a, unitId: o, subUnitId: s } = i, c = t.value || 0, l = r.endColumn + 1, u = r.endColumn + c, d = a.getRowCount() - 1, f = { unitId: o, subUnitId: s, direction: Fn.RIGHT, range: { startColumn: l, endColumn: u, startRow: 0, endRow: d }, cellValue: ea3(a, 0, d, l, u, false, r.endColumn) }; return e29.get(ii).executeCommand(wo3.id, f); } }; var Ao3 = Et((e29, t, n, r) => { if (!r.disposed) { let i = Xi3(e29, t, n); r.executeCommand(i.id, i.params); } }, 300); var jo3 = `sheet.command.remove-row`; var Mo3 = { type: ri.COMMAND, id: `sheet.command.remove-row-by-range`, handler: (e29, t) => { var n; if (!t) return false; let r = V4(e29.get(Mu), t); if (!r) return false; let { workbook: i, worksheet: a } = r, o = e29.get(K4), { range: s, unitId: c, subUnitId: l } = t, u = Ai2([s], e29, c, l).reverse(), d = [], f = []; u.forEach((e30) => { let t2 = [], n2 = [], r2 = { unitId: c, subUnitId: l, range: e30 }, i2 = An2(r2, a), o2 = { unitId: c, subUnitId: l, cellValue: a.getCellMatrix().getSlice(e30.startRow, e30.endRow, 0, a.getColumnCount() - 1).getMatrix() }; n2.push({ id: jn2.id, params: r2 }), t2.push({ id: Sn3.id, params: i2 }), t2.push({ id: J4.id, params: o2 }), f.push(...n2), d.unshift(...t2); }); let p = o.onCommandExecute({ id: jo3, params: { range: s } }), m = e29.get(ii); if (li([...(n = p.preRedos) == null ? [] : n, ...f, ...p.redos], m).result) { var h, g2; Ao3(s, i, a, m); let t2 = o.afterCommandExecute({ id: jo3, params: { range: s } }); return li(t2.redos, m), e29.get(td).pushUndoRedo({ unitID: c, undoMutations: [...(h = p.preUndos) == null ? [] : h, ...d, ...p.undos, ...t2.undos], redoMutations: [...(g2 = p.preRedos) == null ? [] : g2, ...f, ...p.redos, ...t2.redos] }), true; } return false; } }; var No3 = { type: ri.COMMAND, id: jo3, handler: async (e29, t) => { var n; let r = e29.get(Y4), i = e29.get(K4), a = e29.get(ii), o = t == null ? void 0 : t.range; if (o || (o = (n = r.getCurrentLastSelection()) == null ? void 0 : n.range), !o) return false; let s = V4(e29.get(Mu)); if (!s) return false; let { worksheet: c, subUnitId: l, unitId: u } = s; return o = { ...o, startColumn: 0, endColumn: Math.max(c.getMaxColumns() - 1, 0) }, await i.beforeCommandExecute({ id: No3.id, params: { range: o } }) ? a.syncExecuteCommand(Mo3.id, { range: o, unitId: u, subUnitId: l }) : false; } }; var Po3 = `sheet.command.remove-col`; var Fo3 = { type: ri.COMMAND, id: `sheet.command.remove-col-by-range`, handler: (e29, t) => { var n; if (!t) return false; let r = V4(e29.get(Mu), t); if (!r) return false; let { workbook: i, worksheet: a } = r, o = e29.get(K4), { range: s, unitId: c, subUnitId: l } = t, u = { unitId: c, subUnitId: l, range: s }, d = Mn2(e29, u), f = { unitId: c, subUnitId: l, cellValue: a.getCellMatrix().getSlice(0, a.getRowCount() - 1, s.startColumn, s.endColumn).getMatrix() }, p = o.onCommandExecute({ id: Po3, params: { range: s } }), m = e29.get(ii); if (li([...(n = p.preRedos) == null ? [] : n, { id: Nn3.id, params: u }, ...p.redos], m).result) { var h, g2; Ao3(s, i, a, m); let t2 = o.afterCommandExecute({ id: Po3, params: { range: s } }); return li(t2.redos, m), e29.get(td).pushUndoRedo({ unitID: c, undoMutations: [...(h = p.preUndos) == null ? [] : h, { id: wn3.id, params: d }, { id: J4.id, params: f }, ...p.undos, ...t2.undos], redoMutations: [...(g2 = p.preRedos) == null ? [] : g2, { id: Nn3.id, params: u }, ...p.redos, ...t2.redos] }), true; } return false; } }; var Io3 = { type: ri.COMMAND, id: Po3, handler: async (e29, t) => { var n; let r = e29.get(Y4), i = e29.get(K4), a = e29.get(ii), o = t == null ? void 0 : t.range; if (o || (o = (n = r.getCurrentLastSelection()) == null ? void 0 : n.range), !o) return false; let s = V4(e29.get(Mu)); if (!s) return false; let { worksheet: c, subUnitId: l, unitId: u } = s; return o = { ...o, startRow: 0, endRow: Math.max(c.getMaxRows() - 1, 0) }, await i.beforeCommandExecute({ id: Io3.id, params: { range: o } }) ? a.syncExecuteCommand(Fo3.id, { range: o, unitId: u, subUnitId: l }) : false; } }; var Lo3 = (e29, t) => { let n = e29.get(Mu), { subUnitId: r, unitId: i } = t, a = Rt2(n, t); if (!a) throw Error(`[RemoveSheetUndoMutationFactory]: Worksheet is null error!`); let { workbook: o, worksheet: s } = a, c = s.getConfig(); return { index: o.getConfig().sheetOrder.findIndex((e30) => e30 === r), sheet: c, unitId: i }; }; var Ro3 = { id: `sheet.mutation.remove-sheet`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu), { subUnitId: r, unitId: i } = t, a = n.getUniverSheetInstance(i); return a ? a.removeSheet(r) : false; } }; function zo3(e29, t) { return t.getMergeData().some((t2) => t2.startRow < e29 && e29 <= t2.endRow); } function Bo3(e29, t) { return t.getMergeData().some((t2) => t2.startColumn < e29 && e29 <= t2.endColumn); } var Vo3 = `sheet.command.move-rows`; var Ho2 = { id: Vo3, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(Y4), { fromRange: { startRow: a }, toRange: { startRow: o }, range: s } = t, c = s ? [Go2(s)] : i.getCurrentSelections(), l = c == null ? void 0 : c.filter((e30) => e30.range.rangeType === B.ROW && e30.range.startRow <= a && a <= e30.range.endRow); if ((l == null ? void 0 : l.length) !== 1) return false; let u = e29.get(K4), d = V4(e29.get(Mu), t); if (!d) return false; let { workbook: f, worksheet: p } = d, m = f.getUnitId(), h = p.getSheetId(), g2 = e29.get(Pl), _2 = e29.get(zu), y = l[0].range, b = l[0].primary, x2 = Ki3(y, p, false); if (!G.equals(y, x2)) return g2.emit(_2.t(`sheets.info.partOfCell`)), false; if (zo3(o, p)) return g2.emit(_2.t(`sheets.info.acrossMergedCell`)), false; let S4 = { ...y, startRow: o, endRow: o + y.endRow - y.startRow }, w2 = { unitId: m, subUnitId: h, sourceRange: y, targetRange: S4 }, T4 = En2(e29, w2), E4 = e29.get(ii), ee = u.onCommandExecute({ id: Ho2.id, params: t }), D4 = [...(n = ee.preRedos) == null ? [] : n, { id: Dn3.id, params: w2 }], te = [...(r = ee.preUndos) == null ? [] : r, { id: Dn3.id, params: T4 }]; if (b) { let e30 = o - a < 0, t2 = y.endRow - y.startRow + 1, n2 = e30 ? S4 : { ...S4, startRow: S4.startRow - t2, endRow: S4.endRow - t2 }, r2 = { unitId: m, subUnitId: h, type: zi2.MOVE_END, selections: [{ range: n2, primary: Yi2(n2, p), style: null }] }, i2 = { unitId: m, subUnitId: h, type: zi2.MOVE_END, selections: [{ range: y, primary: b, style: null }] }; D4.push({ id: X4.id, params: r2 }), te.push({ id: X4.id, params: i2 }); } if (D4.push(...ee.redos), te.push(...ee.undos), li(D4, E4).result) { let n2 = u.afterCommandExecute({ id: Ho2.id, params: t }); return li(n2.redos, E4), D4.push(...n2.redos), te.push(...n2.undos), e29.get(td).pushUndoRedo({ unitID: m, undoMutations: te, redoMutations: D4 }), true; } return false; } }; var Uo3 = `sheet.command.move-cols`; var Wo2 = { id: Uo3, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(Y4), { fromRange: { startColumn: a }, toRange: { startColumn: o }, range: s } = t, c = s ? [Go2(s)] : i.getCurrentSelections(), l = c == null ? void 0 : c.filter((e30) => e30.range.rangeType === B.COLUMN && e30.range.startColumn <= a && a <= e30.range.endColumn); if ((l == null ? void 0 : l.length) !== 1) return false; let u = e29.get(K4), d = V4(e29.get(Mu), t); if (!d) return false; let { workbook: f, worksheet: p } = d, m = f.getUnitId(), h = p.getSheetId(), g2 = e29.get(Pl), _2 = e29.get(zu), y = l[0].range, b = l[0].primary, x2 = Ki3(y, p, false); if (!G.equals(y, x2)) return g2.emit(_2.t(`sheets.info.partOfCell`)), false; if (Bo3(o, p)) return g2.emit(_2.t(`sheets.info.acrossMergedCell`)), false; let S4 = { ...y, startColumn: o, endColumn: o + y.endColumn - y.startColumn }, w2 = { unitId: m, subUnitId: h, sourceRange: y, targetRange: S4 }, T4 = On3(e29, w2), E4 = e29.get(ii), ee = u.onCommandExecute({ id: Wo2.id, params: t }), D4 = [...(n = ee.preRedos) == null ? [] : n, { id: kn3.id, params: w2 }], te = [...(r = ee.preUndos) == null ? [] : r, { id: kn3.id, params: T4 }]; if (b) { let e30 = y.endColumn - y.startColumn + 1, t2 = o - a < 0 ? S4 : { ...S4, startColumn: S4.startColumn - e30, endColumn: S4.endColumn - e30 }, n2 = { unitId: m, subUnitId: h, type: zi2.MOVE_END, selections: [{ range: t2, primary: Yi2(t2, p), style: null }] }, r2 = { unitId: m, subUnitId: h, type: zi2.MOVE_END, selections: [{ range: y, primary: b, style: null }] }; D4.push({ id: X4.id, params: n2 }), te.push({ id: X4.id, params: r2 }); } if (D4.push(...ee.redos), te.push(...ee.undos), li(D4, E4).result) { let n2 = u.afterCommandExecute({ id: Wo2.id, params: t }); return li(n2.redos, E4), D4.push(...n2.redos), te.push(...n2.undos), e29.get(td).pushUndoRedo({ unitID: m, undoMutations: te, redoMutations: D4 }), true; } return false; } }; function Go2(e29) { return { range: e29, primary: null, style: null }; } var Ko2 = class extends E { constructor(e29) { super(), this._injector = e29, U4(this, `_sheetSkeletonStore`, /* @__PURE__ */ new Map()), this.disposeWithMe(() => { this._sheetSkeletonStore = /* @__PURE__ */ new Map(); }); } getSkeleton(e29, t) { if (this._sheetSkeletonStore.has(e29)) return this._sheetSkeletonStore.get(e29).get(t); } setSkeleton(e29, t, n) { this._sheetSkeletonStore.has(e29) || this._sheetSkeletonStore.set(e29, /* @__PURE__ */ new Map()), this._sheetSkeletonStore.get(e29).set(t, n); } deleteSkeleton(e29, t) { this._sheetSkeletonStore.has(e29) && this._sheetSkeletonStore.get(e29).delete(t); } }; Ko2 = G4([W4(0, Inject(Injector))], Ko2); function qo2(e29, t) { let n = new Sa(); return e29.map((e30) => Eo.transformRange(e30, t)).forEach((e30) => { Eo.foreach(e30, (e31, r) => { let i = t.getCellHeight(e31, r); i && n.setValue(e31, r, i); }); }), n; } function Jo3(e29, t) { if (!t) return { suitableRanges: e29, remainingRanges: [] }; let n = t.worksheet.getColumnCount(), r = Math.ceil(1e4 / n), i = [], a = [], o = t.getOffsetRelativeToRowCol(0, t.scrollY).row, s = e29.map((e30) => { let t2; return t2 = o >= e30.startRow && o <= e30.endRow ? 0 : o < e30.startRow ? e30.startRow - o : o - e30.endRow, { range: e30, distance: t2, rowCount: e30.endRow - e30.startRow + 1 }; }); s.sort((e30, t2) => e30.distance === t2.distance ? e30.rowCount - t2.rowCount : e30.distance - t2.distance); let c = 0; for (let e30 of s) if (c + e30.rowCount <= r) i.push(e30.range), c += e30.rowCount; else { let t2 = r - c; if (t2 > 0) { let n2 = { ...e30.range, endRow: e30.range.startRow + t2 - 1 }, o2 = { ...e30.range, startRow: e30.range.startRow + t2 }; i.push(n2), a.push(o2), c = r; } else a.push(e30.range); } return { suitableRanges: i, remainingRanges: a }; } function Yo2(e29) { let t = 0; return e29.forEach(() => { t++; }), t; } var Xo3 = `sheet.command.reorder-range`; var Zo3 = { id: Xo3, type: ri.COMMAND, handler: (e29, t) => { var n, r; let { subUnitId: i, unitId: a, range: o, order: s } = t, c = e29.get(ii), l = { id: In2.id, params: { unitId: a, subUnitId: i, order: s, range: o } }, u = { id: In2.id, params: Fn3(l.params) }, d = e29.get(K4), f = d.onCommandExecute({ id: Zo3.id, params: t }), p = [...(n = f.preRedos) == null ? [] : n, l, ...f.redos], m = [...(r = f.preUndos) == null ? [] : r, u, ...f.undos], h = li(p, c), { suitableRanges: g2, remainingRanges: _2 } = Jo3([o], e29.get(Ko2).getSkeleton(a, i)), { undos: v, redos: y } = d.generateMutationsOfAutoHeight({ unitId: a, subUnitId: i, ranges: [o], autoHeightRanges: g2, lazyAutoHeightRanges: _2 }), b = d.afterCommandExecute({ id: Zo3.id, params: t }); return h.result ? (li([...b.redos, ...y], c), e29.get(td).pushUndoRedo({ unitID: a, undoMutations: [...m, ...b.undos, ...v], redoMutations: [...p, ...b.redos, ...y] }), true) : false; } }; var Z4 = { MoveRangeCommandId: aa3, InsertRowCommandId: go2, InsertColCommandId: Co3, RemoveColCommandId: Po3, RemoveRowCommandId: jo3, DeleteRangeMoveLeftCommandId: so3, DeleteRangeMoveUpCommandId: lo3, InsertRangeMoveDownCommandId: fo3, InsertRangeMoveRightCommandId: mo2, MoveColsCommandId: Uo3, MoveRowsCommandId: Vo3, ReorderRangeCommandId: Xo3 }; var Q4 = (function(e29) { return e29[e29.Set = 0] = `Set`, e29[e29.Delete = 1] = `Delete`, e29[e29.HorizontalMove = 2] = `HorizontalMove`, e29[e29.VerticalMove = 3] = `VerticalMove`, e29[e29.Unknown = 4] = `Unknown`, e29; })({}); var Qo3 = (e29) => { let t = { ...e29 }, n = Number.isNaN(t.startRow) && Number.isNaN(t.endRow) && !Number.isNaN(t.startColumn) && !Number.isNaN(t.endColumn), r = Number.isNaN(t.startColumn) && Number.isNaN(t.endColumn) && !Number.isNaN(t.startRow) && !Number.isNaN(t.endRow); return (t.rangeType === B.COLUMN || n) && (t.startRow = 0, t.endRow = uo - 1), (t.rangeType === B.ROW || r) && (t.startColumn = 0, t.endColumn = fo - 1), t.rangeType === B.ALL && (t.startColumn = 0, t.endColumn = fo - 1, t.startRow = 0, t.endRow = uo - 1), t; }; var $o3 = (e29) => { let t = e29.rangeType; return e29.rangeType === B.COLUMN ? t = B.ROW : e29.rangeType === B.ROW && (t = B.COLUMN), { startRow: e29.startColumn, endRow: e29.endColumn, startColumn: e29.startRow, endColumn: e29.endRow, rangeType: t }; }; var es3 = (e29, t, n) => { let r = { ...n }, i = { ...t }, a = (e30, t2) => { let n2 = Math.max(e30.start, t2.start), r2 = Math.min(e30.end, t2.end); return r2 < n2 ? null : { start: n2, end: r2 }; }, o = (e30) => e30.end - e30.start + 1, s = (e30, t2) => ({ start: e30.start - t2.start, end: e30.start - t2.start + e30.end - e30.start }), c = (e30, t2) => ({ start: t2.start + e30.start, end: t2.start + e30.start + e30.end - e30.start }), l = t.start > e29.start; if (l) { let n2 = Math.min(e29.end, t.start) - e29.start + 1; i.start -= n2, i.end -= n2; } let u = o(e29), d = u, f = a(e29, r), p = f && o(f) >= o(r); if (e29.end < r.start) r.start -= u, r.end -= u; else if (f) { let t2 = o(f); if (p) { let t3 = c(s(r, e29), i); r.start = t3.start, r.end = t3.end; } else f.start > e29.start ? l ? (r.end -= t2 + u, r.start -= u) : r.end -= t2 : l ? r.end -= t2 : r.start > e29.start && r.end > e29.end ? (r.start -= u, r.end -= u + t2) : r.end -= t2; } let m = a(i, r); return p || (i.start <= r.start ? (r.start += d, r.end += d) : m && (l ? i.end <= r.start || i.start <= r.start && i.end >= r.start ? (r.start += d, r.end += d) : i.start >= r.start && i.start <= r.end && (r.end += d) : r.start < i.start && r.end > i.start ? r.end += d : (r.start >= i.end || r.start >= i.start && r.start <= i.end) && (r.end += d, r.start += d))), { step: r.start - n.start, length: o(r) - o(n) }; }; var ts3 = (e29, t) => { let { fromRange: n, toRange: r } = e29.params || {}; if (!r || !n) return []; let i = Qo3(n), a = Qo3(r), o = Qo3(t), s = es3({ start: i.startRow, end: i.endRow }, { start: a.startRow, end: a.endRow }, { start: o.startRow, end: o.endRow }); return s === null ? [{ type: Q4.Delete }] : [{ type: Q4.VerticalMove, step: s.step || 0, length: s.length || 0 }]; }; var ns3 = (e29, t) => { let { fromRange: n, toRange: r } = e29.params || {}; if (!n || !r) return [t]; let i = n.startRow, a = n.endRow - n.startRow + 1, o = r.startRow, s = new Sa(); return Eo.foreach(t, (e30, t2) => { s.setValue(e30, t2, 1); }), s.moveRows(i, a, o), Vo(s, (e30) => e30 === 1); }; var rs3 = (e29, t) => { let { range: n, order: r } = e29.params || {}; if (!n || !r) return [t]; let i = new Sa(); Eo.foreach(t, (e30, t2) => { i.setValue(e30, t2, 1); }); let a = new Sa(); return Eo.foreach(n, (e30, t2) => { if (Object.prototype.hasOwnProperty.call(r, e30)) { var n2; let o = r[e30], s = (n2 = i.getValue(o, t2)) == null ? 0 : n2; a.setValue(e30, t2, s); } }), a.forValue((e30, t2, n2) => { i.setValue(e30, t2, n2); }), Vo(i, (e30) => e30 === 1); }; var is3 = (e29, t) => { let { fromRange: n, toRange: r } = e29.params || {}; if (!r || !n) return []; let i = Qo3(n), a = Qo3(r), o = Qo3(t), s = es3({ start: i.startColumn, end: i.endColumn }, { start: a.startColumn, end: a.endColumn }, { start: o.startColumn, end: o.endColumn }); return s === null ? [{ type: Q4.Delete }] : [{ type: Q4.HorizontalMove, step: s.step || 0, length: s.length || 0 }]; }; var as3 = (e29, t) => { let { fromRange: n, toRange: r } = e29.params || {}; if (!n || !r) return [t]; let i = n.startColumn, a = n.endColumn - n.startColumn + 1, o = r.startColumn, s = new Sa(); return Eo.foreach(t, (e30, t2) => { s.setValue(e30, t2, 1); }), s.moveColumns(i, a, o), Vo(s, (e30) => e30 === 1); }; var os3 = (e29, t) => { var n, r; let i = (n = e29.params) == null ? void 0 : n.toRange, a = (r = e29.params) == null ? void 0 : r.fromRange; if (!i || !a) return []; let o = []; if (G.contains(i, t) && o.push({ type: Q4.Delete }), G.contains(a, t)) { o.push({ type: Q4.Delete }); let e30 = G.getRelativeRange(t, a), n2 = G.getPositionRange(e30, i); return [{ type: Q4.Set, range: n2 }]; } return o; }; var ss3 = (e29, t) => { var n, r; let i = (n = e29.params) == null ? void 0 : n.toRange, a = (r = e29.params) == null ? void 0 : r.fromRange; if (!i || !a || !G.intersects(a, t) && !G.intersects(i, t)) return [t]; if (G.contains(a, t)) { let e30 = G.getRelativeRange(t, a); return [G.getPositionRange(e30, i)]; } let o = new Sa(); Eo.foreach(t, (e30, t2) => { o.setValue(e30, t2, 1); }); let s = new Sa(), c = G.getIntersects(a, t); c && Eo.foreach(c, (e30, t2) => { o.getValue(e30, t2) && (o.setValue(e30, t2, void 0), s.setValue(e30, t2, 1)); }); let l = i.startColumn - a.startColumn, u = i.startRow - a.startRow, d = { startColumn: i.startColumn - l, endColumn: i.endColumn - l, startRow: i.startRow - u, endRow: i.endRow - u }; return d && Eo.foreach(d, (e30, t2) => { var n2; let r2 = e30 + u, i2 = t2 + l; o.setValue(r2, i2, (n2 = s.getValue(e30, t2)) == null ? 0 : n2); }), Vo(o, (e30) => e30 === 1); }; var cs2 = (e29, t) => { let n = Qo3(e29), r = Qo3(t), i = (e30) => e30.endColumn - e30.startColumn + 1, a = (e30) => e30.endRow - e30.startRow + 1; if (n.startRow <= r.startRow && n.endRow >= r.endRow) { if (r.startColumn < n.startColumn && r.endColumn >= n.startColumn && r.endColumn <= n.endColumn || r.startColumn < n.startColumn && r.endColumn >= n.endColumn) { let e30 = G.getIntersects(r, n); if (e30) return { step: 0, length: -i(e30) }; } if (r.startColumn >= n.startColumn && r.endColumn <= n.endColumn && a(n) >= a(r)) return null; if (r.startColumn >= n.startColumn && r.startColumn <= n.endColumn && r.endColumn > n.endColumn) { let e30 = G.getIntersects(r, n); if (e30) { let t2 = -i(e30); return { step: -(i(n) - i(e30)), length: t2 }; } } if (r.startColumn > n.endColumn) return { step: -i(n), length: 0 }; } return { step: 0, length: 0 }; }; var ls3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], a = cs2(r, t); if (!a) i.push({ type: Q4.Delete }); else { let { step: e30, length: t2 } = a; i.push({ type: Q4.HorizontalMove, step: e30, length: t2 }); } return i; }; var us3 = (e29, t, n) => { var r; let i = (r = e29.params) == null ? void 0 : r.range; if (!i) return []; let a = []; if (n && n.length > 0) { let e30 = i.startRow; for (let t2 = i.startRow; t2 <= i.endRow; t2++) { if (n.includes(t2)) { if (t2 === e30) { e30 = t2 + 1; continue; } o({ ...i, startRow: e30, endRow: t2 - 1 }), e30 = t2 + 1; continue; } t2 === i.endRow && o({ ...i, startRow: e30, endRow: i.endRow }); } } else o(i); function o(e30) { let n2 = cs2($o3(e30), $o3(t)); if (!n2) a.push({ type: Q4.Delete }); else { let { step: e31, length: t2 } = n2; a.push({ type: Q4.VerticalMove, step: e31, length: t2 }); } } return a; }; var ds3 = (e29, t) => { let { range: n, order: r } = e29.params || {}; if (!n || !r) return []; if (G.contains(n, t) && t.endRow === t.startRow) { let e30 = [], n2 = t.startRow; for (let t2 in r) if (r[t2] === n2) { let r2 = Number(t2); return e30.push({ type: Q4.VerticalMove, step: r2 - n2, length: 0 }), e30; } return []; } return []; }; var fs3 = (e29, t) => { let n = Qo3(e29), r = Qo3(t), i = (e30) => e30.endColumn - e30.startColumn + 1; return n.startRow <= r.startRow && n.endRow >= r.endRow ? r.startColumn < n.startColumn && r.endColumn >= n.startColumn && r.endColumn <= n.endColumn || r.startColumn < n.startColumn && r.endColumn >= n.endColumn ? { step: 0, length: i(n) } : r.startColumn >= n.startColumn && r.endColumn <= n.endColumn || r.startColumn >= n.startColumn && r.startColumn <= n.endColumn && r.endColumn > n.endColumn || r.startColumn >= n.endColumn ? { step: i(n), length: 0 } : { step: 0, length: 0 } : { step: 0, length: 0 }; }; function ps3(e29, t, n) { let r = []; if (G.contains(t, n) && r.push({ type: Q4.Delete }), G.contains(e29, n)) { r.push({ type: Q4.Delete }); let i = G.getRelativeRange(n, e29), a = G.getPositionRange(i, t); return [{ type: Q4.Set, range: a }]; } return r; } var ms3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], { step: a, length: o } = fs3($o3(r), $o3(t)); return i.push({ type: Q4.VerticalMove, step: a, length: o }), i; }; var hs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], { step: a, length: o } = fs3(r, t); return i.push({ type: Q4.HorizontalMove, step: a, length: o }), i; }; var gs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], { step: a, length: o } = fs3($o3(r), $o3(t)); return i.push({ type: Q4.VerticalMove, step: a, length: o }), i; }; var _s3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return [t]; let i = r.endRow - r.startRow + 1, a = { ...r, startRow: r.startRow, endRow: 1 / 0 }, o = G.subtract(t, a), s = G.getIntersects(a, t); if (!s) return [t]; let c = new Sa(); return o.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { c.setValue(e31, t2, 1); }); }), s && Eo.foreach(s, (e30, t2) => { c.setValue(e30 + i, t2, 1); }), Vo(c, (e30) => e30 === 1); }; var vs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], { step: a, length: o } = fs3(r, t); return i.push({ type: Q4.HorizontalMove, step: a, length: o }), i; }; var ys3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return [t]; let i = r.endColumn - r.startColumn + 1, a = { ...r, startColumn: r.startColumn, endColumn: 1 / 0 }, o = G.subtract(t, a), s = G.getIntersects(a, t); if (!s) return [t]; let c = new Sa(); return o.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { c.setValue(e31, t2, 1); }); }), s && Eo.foreach(s, (e30, t2) => { c.setValue(e30, t2 + i, 1); }), Vo(c, (e30) => e30 === 1); }; var bs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], a = cs2(r, t); if (!a) i.push({ type: Q4.Delete }); else { let { step: e30, length: t2 } = a; i.push({ type: Q4.HorizontalMove, step: e30, length: t2 }); } return i; }; var xs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return [t]; let i = { startRow: r.startRow, endRow: r.endRow, startColumn: r.startColumn, endColumn: 1 / 0 }, a = r.endColumn - r.startColumn + 1, o = G.getIntersects(r, t), s = G.subtract(t, i), c = G.getIntersects(i, t); if (!o && !c) return [t]; let l = new Sa(); return c && Eo.foreach(c, (e30, t2) => { l.setValue(e30, t2 - a, 1); }), o && Eo.foreach(o, (e30, t2) => { l.setValue(e30, t2 - a, 0); }), s.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { l.setValue(e31, t2, 1); }); }), Vo(l, (e30) => e30 === 1); }; var Ss3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return []; let i = [], a = cs2($o3(r), $o3(t)); if (!a) i.push({ type: Q4.Delete }); else { let { step: e30, length: t2 } = a; i.push({ type: Q4.VerticalMove, step: e30, length: t2 }); } return i; }; var Cs3 = (e29, t) => { var n; let r = (n = e29.params) == null ? void 0 : n.range; if (!r) return [t]; let i = { ...r, startRow: r.startRow, endRow: 1 / 0 }, a = r.endRow - r.startRow + 1, o = G.getIntersects(r, t), s = G.subtract(t, i), c = G.getIntersects(i, t); if (!o && !c) return [t]; let l = new Sa(); return c && Eo.foreach(c, (e30, t2) => { l.setValue(e30 - a, t2, 1); }), o && Eo.foreach(o, (e30, t2) => { l.setValue(e30 - a, t2, 0); }), s.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { l.setValue(e31, t2, 1); }); }), Vo(l, (e30) => e30 === 1); }; var ws3 = (e29, t) => { var n; let r = Za(((n = e29.ranges) == null ? [e29.range] : n).map((e30) => [e30.startRow, e30.endRow])), i = t.startRow, a = t.endRow; for (let e30 = r.length - 1; e30 >= 0; e30--) { let [n2, o] = r[e30]; if (n2 <= t.startRow && o >= t.endRow) return []; if (o < i) { let e31 = o - n2 + 1; i -= e31, a -= e31; } else if (!(n2 > a)) { let e31 = Math.max(n2, i), t2 = Math.min(o, a) - e31 + 1; if (a -= t2, n2 <= i) { let t3 = e31 - i; i -= t3; } } } return [{ ...t, startRow: i, endRow: a }]; }; var Ts3 = (e29, t) => { let n = e29.params, r = n.range.startRow, i = n.range.endRow - n.range.startRow + 1; if (n.direction === Fn.UP) { if (r < t.startRow) return [{ ...t, startRow: t.startRow + i, endRow: t.endRow + i }]; if (r <= t.endRow) return [{ ...t, endRow: t.endRow + i }]; } else if (r <= t.startRow) return [{ ...t, startRow: t.startRow + i, endRow: t.endRow + i }]; else if (r <= t.endRow + 1) return [{ ...t, endRow: t.endRow + i }]; return [t]; }; var Es3 = (e29, t) => { let n = e29.params, r = n.range.startColumn, i = n.range.endColumn - n.range.startColumn + 1; if (n.direction === Fn.LEFT) { if (r < t.startColumn) return [{ ...t, startColumn: t.startColumn + i, endColumn: t.endColumn + i }]; if (r <= t.endColumn) return [{ ...t, endColumn: t.endColumn + i }]; } else if (r <= t.startColumn) return [{ ...t, startColumn: t.startColumn + i, endColumn: t.endColumn + i }]; else if (r <= t.endColumn + 1) return [{ ...t, endColumn: t.endColumn + i }]; return [t]; }; var Ds3 = (e29, t) => { let n = { ...t }; return e29.forEach((e30) => { switch (e30.type) { case Q4.Delete: n = null; break; case Q4.HorizontalMove: if (!n) return; n.startColumn += e30.step, n.endColumn += e30.step + (e30.length || 0); break; case Q4.VerticalMove: if (!n) return; n.startRow += e30.step, n.endRow += e30.step + (e30.length || 0); break; case Q4.Set: n = e30.range; break; } }), n && (n.endColumn < n.startColumn || n.endRow < n.startRow) ? null : n; }; var Os3 = (e29, t) => { let n = []; switch (t.id) { case Z4.DeleteRangeMoveLeftCommandId: n = bs3(t, e29); break; case Z4.DeleteRangeMoveUpCommandId: n = Ss3(t, e29); break; case Z4.InsertColCommandId: n = hs3(t, e29); break; case Z4.InsertRangeMoveDownCommandId: n = gs3(t, e29); break; case Z4.InsertRangeMoveRightCommandId: n = vs3(t, e29); break; case Z4.InsertRowCommandId: n = ms3(t, e29); break; case Z4.MoveColsCommandId: n = is3(t, e29); break; case Z4.MoveRangeCommandId: n = os3(t, e29); break; case Z4.MoveRowsCommandId: n = ts3(t, e29); break; case Z4.RemoveColCommandId: n = ls3(t, e29); break; case Z4.RemoveRowCommandId: n = us3(t, e29); break; case Z4.ReorderRangeCommandId: n = ds3(t, e29); break; } return Ds3(n, e29); }; var As3 = (e29, t) => { let n = []; switch (t.id) { case Z4.DeleteRangeMoveLeftCommandId: return xs3(t, e29); case Z4.DeleteRangeMoveUpCommandId: return Cs3(t, e29); case Z4.InsertRangeMoveDownCommandId: return _s3(t, e29); case Z4.InsertRangeMoveRightCommandId: return ys3(t, e29); case Z4.InsertColCommandId: return Es3(t, e29); case Z4.InsertRowCommandId: return Ts3(t, e29); case Z4.MoveColsCommandId: return as3(t, e29); case Z4.MoveRangeCommandId: return ss3(t, e29); case Z4.MoveRowsCommandId: return ns3(t, e29); case Z4.ReorderRangeCommandId: return rs3(t, e29); case Z4.RemoveColCommandId: n = ls3(t, e29); break; case Z4.RemoveRowCommandId: return ws3(t.params, e29); } let r = Ds3(n, e29); return r ? [r] : []; }; function Ms3(e29, t) { let { id: n, params: r } = t, i = { length: 0, step: 0, type: Q4.Unknown }; switch (n) { case Ro3.id: i.type = Q4.Delete; break; case Dn3.id: i = es3({ start: r.sourceRange.startRow, end: r.sourceRange.endRow }, { start: r.targetRange.startRow, end: r.targetRange.endRow }, { start: e29.startRow, end: e29.endRow }), i.type = Q4.VerticalMove; break; case kn3.id: i = es3({ start: r.sourceRange.startColumn, end: r.sourceRange.endColumn }, { start: r.targetRange.startColumn, end: r.targetRange.endColumn }, { start: e29.startColumn, end: e29.endColumn }), i.type = Q4.HorizontalMove; break; case Nn3.id: i = cs2(r.range, e29), i ? i.type = Q4.HorizontalMove : i = { step: 0, length: 0, type: Q4.Delete }; break; case jn2.id: i = cs2($o3(r.range), $o3(e29)), i ? i.type = Q4.VerticalMove : i = { step: 0, length: 0, type: Q4.Delete }; break; case Sn3.id: i = fs3($o3(r.range), $o3(e29)), i.type = Q4.VerticalMove; break; case wn3.id: i = fs3(r.range, e29), i.type = Q4.HorizontalMove; break; case Tn3.id: i = ps3(r.fromRange || new Sa(r.from).getRange(), r.toRange || new Sa(r.to).getRange(), e29); break; default: break; } return i ? Ds3(Array.isArray(i) ? i : [i], e29) : e29; } function Ps3(e29) { switch (e29.id) { case kn3.id: { let t = e29.params; return [t.sourceRange, { ...t.targetRange, startColumn: t.targetRange.startColumn - 0.5, endColumn: t.targetRange.startColumn - 0.5 }]; } case Dn3.id: { let t = e29.params; return [t.sourceRange, { ...t.targetRange, startRow: t.targetRange.startRow - 0.5, endRow: t.targetRange.startRow - 0.5 }]; } case Tn3.id: { let t = e29.params; return [new Sa(t.from.value).getRange(), new Sa(t.to.value).getRange()]; } case wn3.id: { let t = e29.params.range; return [{ ...t, startColumn: t.startColumn - 0.5, endColumn: t.startColumn - 0.5 }]; } case Sn3.id: { let t = e29.params.range; return [{ ...t, startRow: t.startRow - 0.5, endRow: t.startRow - 0.5 }]; } case Nn3.id: return [e29.params.range]; case jn2.id: return [e29.params.range]; default: break; } } function Fs3(e29, t) { let n = e29.get(Mu); switch (t.id) { case Z4.MoveColsCommandId: { let e30 = t.params, r = V4(n, e30); if (!r) return; let { unitId: i, subUnitId: a } = r, { fromRange: o, toRange: s } = e30; return { unitId: i, subUnitId: a, ranges: [o, { ...s, startColumn: o.startColumn < s.startColumn ? o.endColumn + 1 : s.startColumn, endColumn: o.startColumn < s.startColumn ? s.endColumn - 1 : o.startColumn - 1 }] }; } case Z4.MoveRowsCommandId: { let e30 = t.params, r = V4(n, e30); if (!r) return; let { unitId: i, subUnitId: a } = r, { fromRange: o, toRange: s } = e30; return { unitId: i, subUnitId: a, ranges: [o, { ...s, startRow: o.startRow < s.startRow ? o.endRow + 1 : s.startRow, endRow: o.startRow < s.startRow ? s.endRow - 1 : o.startRow - 1 }] }; } case Z4.MoveRangeCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { unitId: i, subUnitId: a } = r, { fromRange: o, toRange: s } = e30; return { unitId: i, subUnitId: a, ranges: [o, s] }; } case Z4.InsertRowCommandId: { let e30 = t.params, r = V4(n, e30); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [...s.startRow > 0 ? [{ ...s, startRow: s.startRow - 1, endRow: s.endRow - 1 }] : [], { ...s, startRow: s.startRow, endRow: i.getRowCount() - 1 }] }; } case Z4.InsertColCommandId: { let e30 = t.params, r = V4(n, e30); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [...s.startColumn > 0 ? [{ ...s, startColumn: s.startColumn - 1, endColumn: s.endColumn - 1 }] : [], { ...s, startColumn: s.startColumn, endColumn: i.getColumnCount() - 1 }] }; } case Z4.RemoveRowCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [s, { ...s, startRow: s.endRow + 1, endRow: i.getRowCount() - 1 }] }; } case Z4.RemoveColCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [s, { ...s, startColumn: s.endColumn + 1, endColumn: i.getColumnCount() - 1 }] }; } case Z4.DeleteRangeMoveUpCommandId: case Z4.InsertRangeMoveDownCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [s, { ...s, startRow: s.endRow + 1, endRow: i.getRowCount() - 1 }] }; } case Z4.DeleteRangeMoveLeftCommandId: case Z4.InsertRangeMoveRightCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { worksheet: i, unitId: a, subUnitId: o } = r, { range: s } = e30; return { unitId: a, subUnitId: o, ranges: [s, { ...s, startColumn: s.endColumn + 1, endColumn: i.getColumnCount() - 1 }] }; } case Z4.ReorderRangeCommandId: { let e30 = t.params, r = V4(n); if (!r) return; let { unitId: i, subUnitId: a } = r, { range: o, order: s } = e30, c = []; for (let e31 = o.startRow; e31 <= o.endRow; e31++) e31 in s && c.push({ startRow: e31, endRow: e31, startColumn: o.startColumn, endColumn: o.endColumn }); return { unitId: i, subUnitId: a, ranges: c }; } } } var Is3 = jt(`MERGE_REDO`); var Ls3 = jt(`MERGE_UNDO`); var Rs2 = class extends E { constructor(e29, t, n, r, i = false) { super(), this._unitId = e29, this._subUnitId = t, this._range = n, this._callback = r, this._skipIntersects = i; } onMutation(e29) { var t, n; if (((t = e29.params) == null ? void 0 : t.unitId) !== this._unitId) return; if (e29.id === Tn3.id) { let t2 = e29.params; if (t2.from.subUnitId !== this._subUnitId || t2.to.subUnitId !== this._subUnitId) return; } else if (((n = e29.params) == null ? void 0 : n.subUnitId) !== this._subUnitId) return; if (!this._range) return; if (this._skipIntersects) { if (e29.id === Ro3.id) return; let t2 = Ps3(e29); if (t2 != null && t2.some((e30) => G.intersects(e30, this._range))) return; } let r = Ms3(this._range, e29); if (r && G.equals(r, this._range)) return false; let i = this._range; this._range = r, this._callback(i, r); } }; var zs3 = class extends E { constructor(e29, t, n, r) { super(), this._commandService = e29, this._sheetInterceptorService = t, this._univerInstanceService = n, this._selectionManagerService = r, U4(this, `interceptor`, new Nt({ MERGE_REDO: Is3, MERGE_UNDO: Ls3 })), U4(this, `_watchRanges`, /* @__PURE__ */ new Set()), U4(this, `_refRangeManagerMap`, /* @__PURE__ */ new Map()), U4(this, `_serializer`, Us3()), U4(this, `_onRefRangeChange`, () => { this._sheetInterceptorService.interceptCommand({ getMutations: (e30) => { let t2 = (() => { switch (e30.id) { case Z4.MoveColsCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService, t4); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = Math.min(t4.fromRange.startColumn, t4.toRange.startColumn); return this._checkRange([{ ...t4.fromRange, startColumn: o, endColumn: r3.getColumnCount() - 1 }], i2, a2); } case Z4.MoveRowsCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService, t4); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = Math.min(t4.fromRange.startRow, t4.toRange.startRow); return this._checkRange([{ ...t4.fromRange, startRow: o, endRow: r3.getRowCount() - 1 }], i2, a2); } case Z4.MoveRangeCommandId: { var t3, n3; let r3 = e30.params, i2 = V4(this._univerInstanceService, { unitId: r3.fromUnitId, subUnitId: r3.fromSubUnitId }), a2 = V4(this._univerInstanceService, { unitId: (t3 = r3.toUnitId) == null ? r3.fromUnitId : t3, subUnitId: (n3 = r3.toSubUnitId) == null ? r3.fromSubUnitId : n3 }); if (!i2 && !a2) return []; if (i2 && a2 && i2.unitId === a2.unitId && i2.subUnitId === a2.subUnitId) return this._checkRange([r3.fromRange, r3.toRange], i2.unitId, i2.subUnitId); let o = []; return i2 && o.push(...this._checkRange([r3.fromRange], i2.unitId, i2.subUnitId)), a2 && o.push(...this._checkRange([r3.toRange], a2.unitId, a2.subUnitId)), o; } case Z4.InsertRowCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService, t4); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { startRow: Math.max(0, t4.range.startRow - 1), endRow: r3.getRowCount() - 1, startColumn: 0, endColumn: r3.getColumnCount() - 1, rangeType: B.ROW }; return this._checkRange([o], i2, a2); } case Z4.InsertColCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService, t4); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { startRow: 0, endRow: r3.getRowCount() - 1, startColumn: Math.max(0, t4.range.startColumn - 1), endColumn: r3.getColumnCount() - 1, rangeType: B.COLUMN }; return this._checkRange([o], i2, a2); } case Z4.RemoveRowCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { startRow: t4.range.startRow, endRow: r3.getRowCount() - 1, startColumn: 0, endColumn: r3.getColumnCount() - 1, rangeType: B.ROW }; return this._checkRange([o], i2, a2); } case Z4.RemoveColCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { startRow: 0, endRow: r3.getRowCount() - 1, startColumn: t4.range.startColumn, endColumn: r3.getColumnCount() - 1, rangeType: B.COLUMN }; return this._checkRange([o], i2, a2); } case Z4.DeleteRangeMoveUpCommandId: case Z4.InsertRangeMoveDownCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { ...t4.range, endRow: r3.getRowCount() - 1 }; return this._checkRange([o], i2, a2); } case Z4.DeleteRangeMoveLeftCommandId: case Z4.InsertRangeMoveRightCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService); if (!n4) return []; let { worksheet: r3, unitId: i2, subUnitId: a2 } = n4, o = { ...t4.range, endColumn: r3.getColumnCount() - 1 }; return this._checkRange([o], i2, a2); } case Z4.ReorderRangeCommandId: { let t4 = e30.params, n4 = V4(this._univerInstanceService); if (!n4) return []; let { unitId: r3, subUnitId: i2 } = n4, { range: a2, order: o } = t4, s = []; for (let e31 = a2.startRow; e31 <= a2.endRow; e31++) e31 in o && s.push({ startRow: e31, endRow: e31, startColumn: a2.startColumn, endColumn: a2.endColumn }); return this._checkRange(s, r3, i2); } } })(); if (!t2 || t2.length === 0) return { redos: [], undos: [], preRedos: [], preUndos: [] }; let n2 = t2.reduce((t3, n3) => { let r3 = n3(e30); return t3.push(r3), t3; }, []).reduce((e31, t3) => { var n3, r3; return e31.redos.push(...t3.redos), e31.undos.push(...t3.undos), e31.preRedos.push(...(n3 = t3.preRedos) == null ? [] : n3), e31.preUndos.push(...(r3 = t3.preUndos) == null ? [] : r3), e31; }, { redos: [], undos: [], preUndos: [], preRedos: [] }), r2 = this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n2.preRedos, null) || [], i = this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(n2.redos, null) || [], a = this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n2.preUndos, null) || []; return { redos: i, undos: this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(n2.undos, null) || [], preRedos: r2, preUndos: a }; } }); }), U4(this, `_checkRange`, (e30, t2, n2) => { let r2 = Hs3(t2, n2), i = this._refRangeManagerMap.get(r2); if (i) { let t3 = /* @__PURE__ */ new Set(); return [...i.keys()].forEach((n3) => { let r3 = i.get(n3), a = this._serializer.deserialize(n3), o = { ...a, startRow: +a.startRow, endRow: +a.endRow, startColumn: +a.startColumn, endColumn: +a.endColumn, rangeType: a.rangeType && +a.rangeType }; e30.some((e31) => G.intersects(e31, o)) && r3 && r3.forEach((e31) => { t3.add(e31); }); }), [...t3]; } return []; }), U4(this, `registerRefRange`, (e30, t2, n2, r2) => { let i = n2 || Bs3(this._univerInstanceService), a = r2 || Vs2(this._univerInstanceService); if (!i || !a) return T2(() => { }); let o = Hs3(i, a), s = this._serializer.serialize(e30), c = this._refRangeManagerMap.get(o); c || (c = /* @__PURE__ */ new Map(), this._refRangeManagerMap.set(o, c)); let l = c.get(s); return l ? l.add(t2) : c.set(s, /* @__PURE__ */ new Set([t2])), T2(() => { let e31 = c.get(s); e31 && (e31.delete(t2), e31.size || (c.delete(s), c.size || this._refRangeManagerMap.delete(o))); }); }), this._onRefRangeChange(), this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO, { priority: -1, handler: (e30) => e30 }), this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO, { priority: -1, handler: (e30) => e30 }); } watchRange(e29, t, n, r, i) { let a; this._watchRanges.size === 0 && (a = this._commandService.onCommandExecuted((e30) => { if (e30.type !== ri.MUTATION) return false; for (let t2 of this._watchRanges) t2.onMutation(e30); })); let o = new Rs2(e29, t, n, r, i); this._watchRanges.add(o); let s = T2(() => { this._watchRanges.delete(o), this._watchRanges.size === 0 && (a == null || a.dispose(), a = null); }), c = this.disposeWithMe(s); return T2(() => { c.dispose(), s.dispose(); }); } }; zs3 = G4([W4(0, ii), W4(1, Inject(K4)), W4(2, Inject(Mu)), W4(3, Inject(Y4))], zs3); function Bs3(e29) { var t; return (t = e29.getCurrentUnitOfType(O.UNIVER_SHEET)) == null ? void 0 : t.getUnitId(); } function Vs2(e29) { var t; return (t = e29.getCurrentUnitOfType(O.UNIVER_SHEET)) == null || (t = t.getActiveSheet()) == null ? void 0 : t.getSheetId(); } function Hs3(e29, t) { return `${e29}_${t}`; } function Us3() { let e29 = [`startRow`, `startColumn`, `endRow`, `endColumn`, `rangeType`]; return { deserialize: (t) => { let n = e29.reduce((e30, t2, n2) => (e30[String(n2)] = t2, e30), {}); return t.split(`_`).reduce((e30, t2, r) => { let i = String(r); return t2 && n[i] && (e30[n[i]] = t2), e30; }, {}); }, serialize: (t) => e29.reduce((e30, n, r) => { let i = t[n]; return i === void 0 ? `${e30}` : `${e30}${r > 0 ? `_` : ``}${i}`; }, ``) }; } var Ws3 = [wn3.id, Sn3.id, Nn3.id, jn2.id]; var Gs3 = [Dn3.id, kn3.id]; function Ks3(e29, t) { let n = e29; if (t !== void 0) { let e30 = []; for (let r = 0; r < n.length; r++) { let { startRow: i, endRow: a, startColumn: o, endColumn: s } = n[r]; if (t === Pn.ROWS) for (let t2 = i; t2 <= a; t2++) { let n2 = { startRow: t2, endRow: t2, startColumn: o, endColumn: s }; e30.push(n2); } else if (t === Pn.COLUMNS) for (let t2 = o; t2 <= s; t2++) { let n2 = { startRow: i, endRow: a, startColumn: t2, endColumn: t2 }; e30.push(n2); } } n = e30; } return n; } var qs3 = jt(`mergeCellPermissionCheck`); var Js3 = class extends E { constructor(e29, t, n, r, i, a) { super(), this._commandService = e29, this._refRangeService = t, this._univerInstanceService = n, this._injector = r, this._sheetInterceptorService = i, this._selectionManagerService = a, U4(this, `disposableCollection`, new un()), U4(this, `interceptor`, new Nt({ MERGE_CELL_INTERCEPTOR_CHECK: qs3 })), this._onRefRangeChange(), this._initCommandInterceptor(), this._commandExecutedListener(); } _initCommandInterceptor() { let e29 = this; this._sheetInterceptorService.interceptCommand({ getMutations(t) { switch (t.id) { case Wi2.id: case Gi2.id: { var n; let t2 = e29._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET), r = t2.getUnitId(), i = t2 == null ? void 0 : t2.getActiveSheet(); if (!i) return { redos: [], undos: [] }; let a = i.getSheetId(), o = i.getConfig().mergeData, s = (n = e29._selectionManagerService.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range); if (s && s.length > 0 && s.some((e30) => o.some((t3) => G.intersects(t3, e30)))) { let t3 = { unitId: r, subUnitId: a, ranges: s }, n2 = Pn2(e29._injector, t3); return { redos: [{ id: q4.id, params: t3 }], undos: [{ id: H4.id, params: n2 }] }; } } } return { redos: [], undos: [] }; } }), this._sheetInterceptorService.interceptRanges({ getMutations: ({ unitId: e30, subUnitId: t, ranges: n }) => { let r = [], i = [], a = { redos: r, undos: i }; if (!n || !n.length) return a; let o = V4(this._univerInstanceService, { unitId: e30, subUnitId: t }); if (!o) return a; let { worksheet: s } = o, c = s.getMergeData().filter((e31) => n.some((t2) => G.intersects(e31, t2))); return c.length ? (r.push({ id: q4.id, params: { unitId: e30, subUnitId: t, ranges: c } }), i.push({ id: H4.id, params: { unitId: e30, subUnitId: t, ranges: c } }), { undos: i, redos: r }) : a; } }); } refRangeHandle(e29, t, n) { switch (e29.id) { case Z4.MoveColsCommandId: { let r = e29.params; return this._handleMoveColsCommand(r, t, n); } case Z4.MoveRowsCommandId: { let r = e29.params; return this._handleMoveRowsCommand(r, t, n); } case _o3.id: { let r = e29.params, i = r.unitId || t, a = r.subUnitId || n; return this._handleInsertRowCommand(r, i, a); } case wo3.id: { let r = e29.params, i = r.unitId || t, a = r.subUnitId || n; return this._handleInsertColCommand(r, i, a); } case Io3.id: { let r = e29.params; return this._handleRemoveColCommand(r, t, n); } case No3.id: { let r = e29.params; return this._handleRemoveRowCommand(r, t, n); } case oa3.id: { let r = e29.params; return this._handleMoveRangeCommand(r, t, n); } case ho2.id: { let r = e29.params; return this._handleInsertRangeMoveRightCommand(r, t, n); } case po2.id: { let r = e29.params; return this._handleInsertRangeMoveDownCommand(r, t, n); } case uo3.id: { let r = e29.params; return this._handleDeleteRangeMoveUpCommand(r, t, n); } case co3.id: { let r = e29.params; return this._handleDeleteRangeMoveLeftCommand(r, t, n); } } return { redos: [], undos: [] }; } _onRefRangeChange() { let e29 = (e30, t) => { let n = this._univerInstanceService.getUniverSheetInstance(e30); if (!n) return; let r = n == null ? void 0 : n.getSheetBySheetId(t); if (!r) return; this.disposableCollection.dispose(); let i = r.getMergeData(), a = (n2) => this.refRangeHandle(n2, e30, t); i.forEach((n2) => { this.disposableCollection.add(this._refRangeService.registerRefRange(n2, a, e30, t)); }); }; this.disposeWithMe(this._commandService.onCommandExecuted((t) => { if (t.id === Vr3.id) { let n = t.params, r = n.subUnitId, i = n.unitId; if (!r || !i) return; e29(i, r); } if (t.id === H4.id) { let n = t.params, r = n.subUnitId, i = n.unitId; if (!r || !i) return; e29(n.unitId, n.subUnitId); } })), this._univerInstanceService.getCurrentTypeOfUnit$(O.UNIVER_SHEET).pipe(first((e30) => !!e30)).subscribe((t) => { let n = t.getActiveSheet(); n && e29(t.getUnitId(), n.getSheetId()); }); } _handleMoveRowsCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = [...i.getMergeData()], o = { unitId: t, subUnitId: n, ranges: [] }, s = { unitId: t, subUnitId: n, ranges: [] }, { fromRange: c } = e29, { startRow: l, endRow: u } = c; if (a.forEach((t2) => { if (l <= t2.startRow && u >= t2.endRow) { o.ranges.push(t2); let n2 = Ds3(ts3({ id: Z4.MoveRowsCommandId, params: e29 }, t2), t2); n2 && s.ranges.push(n2); } }), o.ranges.length === 0) return this._handleNull(); let d = Pn2(this._injector, o), f = zt2(this._injector, s); return { preRedos: [{ id: q4.id, params: o }], redos: [{ id: H4.id, params: s }], preUndos: [{ id: q4.id, params: f }], undos: [{ id: H4.id, params: d }] }; } _handleMoveColsCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = [...i.getMergeData()], o = { unitId: t, subUnitId: n, ranges: [] }, s = { unitId: t, subUnitId: n, ranges: [] }, { fromRange: c } = e29, { startColumn: l, endColumn: u } = c; if (a.forEach((t2) => { if (l <= t2.startColumn && u >= t2.endColumn) { o.ranges.push(t2); let n2 = Ds3(is3({ id: Z4.MoveColsCommandId, params: e29 }, t2), t2); n2 && s.ranges.push(n2); } }), o.ranges.length === 0) return this._handleNull(); let d = Pn2(this._injector, o), f = zt2(this._injector, s); return { preRedos: [{ id: q4.id, params: o }], redos: [{ id: H4.id, params: s }], preUndos: [{ id: q4.id, params: f }], undos: [{ id: H4.id, params: d }] }; } _handleMoveRangeCommand(e29, t, n) { var r, i; let a = Ys3(this._univerInstanceService, t); if (!a) return this._handleNull(); let o = (r = e29.fromSubUnitId) == null ? n : r, s = (i = e29.toSubUnitId) == null ? o : i, c = Xs3(a, o), l = Xs3(a, s); if (!c || !l) return this._handleNull(); let u = c.getMergeData().filter((t2) => G.intersects(t2, e29.fromRange)), d = l.getMergeData().filter((t2) => G.intersects(t2, e29.toRange)), f = Ks3(u.map((t2) => G.getRelativeRange(t2, e29.fromRange)).map((t2) => G.getPositionRange(t2, e29.toRange))).filter((e30) => !l.getMergeData().some((t2) => G.equals(e30, t2))), p = [], m = []; return n === o && u.length > 0 && (p.push({ id: q4.id, params: { unitId: t, subUnitId: o, ranges: u } }), m.push({ id: H4.id, params: { unitId: t, subUnitId: o, ranges: u } })), n === s && d.length > 0 && (p.push({ id: q4.id, params: { unitId: t, subUnitId: s, ranges: d } }), m.push({ id: H4.id, params: { unitId: t, subUnitId: s, ranges: d } })), n === s && f.length > 0 && (p.push({ id: H4.id, params: { unitId: t, subUnitId: s, ranges: f } }), m.unshift({ id: q4.id, params: { unitId: t, subUnitId: s, ranges: f } })), p.length === 0 ? this._handleNull() : { redos: p, undos: m }; } _handleInsertRowCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let { range: a } = e29, { startRow: o, endRow: s } = a, c = D.deepClone(i.getMergeData()).reduce((e30, t2) => (o > t2.startRow && o <= t2.endRow && e30.push(t2), e30), []); if (c.length === 0) return this._handleNull(); let l = D.deepClone(i.getMergeData()).reduce((e30, t2) => { if (o > t2.startRow && o <= t2.endRow) { let n2 = s - o + 1; t2.endRow += n2, this._checkIsMergeCell(t2) && e30.push(t2); } return e30; }, []), u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f); return { redos: [{ id: q4.id, params: u }, { id: H4.id, params: f }], undos: [{ id: q4.id, params: p }, { id: H4.id, params: d }] }; } _handleInsertColCommand(e29, t, n) { let { range: r } = e29, i = Ys3(this._univerInstanceService, t); if (!i) return this._handleNull(); let a = Xs3(i, n); if (!a) return this._handleNull(); let { startColumn: o, endColumn: s } = r, c = D.deepClone(a.getMergeData()).reduce((e30, t2) => (o > t2.startColumn && o <= t2.endColumn && e30.push(t2), e30), []); if (c.length === 0) return this._handleNull(); let l = D.deepClone(a.getMergeData()).reduce((e30, t2) => { if (o > t2.startColumn && o <= t2.endColumn) { let n2 = s - o + 1; t2.endColumn += n2, this._checkIsMergeCell(t2) && e30.push(t2); } return e30; }, []), u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f); return { redos: [{ id: q4.id, params: u }, { id: H4.id, params: f }], undos: [{ id: q4.id, params: p }, { id: H4.id, params: d }] }; } _handleRemoveColCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let { range: a } = e29, { startColumn: o, endColumn: s } = a, c = D.deepClone(i.getMergeData()).reduce((e30, t2) => (G.intersects(a, t2) && e30.push(t2), e30), []); if (c.length === 0) return this._handleNull(); let l = D.deepClone(i.getMergeData()).reduce((e30, t2) => { if (G.intersects(a, t2)) { if (o <= t2.startColumn && s >= t2.endColumn) return e30; o >= t2.startColumn && s <= t2.endColumn ? t2.endColumn -= s - o + 1 : o < t2.startColumn ? (t2.startColumn = o, t2.endColumn -= s - o + 1) : s > t2.endColumn && (t2.endColumn = o - 1), this._checkIsMergeCell(t2) && e30.push(t2); } return e30; }, []), u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f), m = [{ id: q4.id, params: u }], h = [{ id: H4.id, params: f }]; return { preUndos: [{ id: q4.id, params: p }], undos: [{ id: H4.id, params: d }], preRedos: m, redos: h }; } _handleRemoveRowCommand(e29, t, n) { let { range: r } = e29, i = Ys3(this._univerInstanceService, t); if (!i) return this._handleNull(); let a = Xs3(i, n); if (!a) return this._handleNull(); let { startRow: o, endRow: s } = r, c = D.deepClone(a.getMergeData()).reduce((e30, t2) => (G.intersects(r, t2) && e30.push(t2), e30), []); if (c.length === 0) return this._handleNull(); let l = D.deepClone(a.getMergeData()).reduce((e30, t2) => { if (G.intersects(r, t2)) { if (o <= t2.startRow && s >= t2.endRow) return e30; o >= t2.startRow && s <= t2.endRow ? t2.endRow -= s - o + 1 : o < t2.startRow ? (t2.startRow = o, t2.endRow -= s - o + 1) : s > t2.endRow && (t2.endRow = o - 1), this._checkIsMergeCell(t2) && e30.push(t2); } return e30; }, []), u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f), m = [{ id: q4.id, params: u }], h = [{ id: H4.id, params: f }]; return { preUndos: [{ id: q4.id, params: p }], undos: [{ id: H4.id, params: d }], preRedos: m, redos: h }; } _handleInsertRangeMoveRightCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = e29.range, o = i.getMaxColumns() - 1, s = i.getMergeData(), c = [], l = []; s.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: i2 } = a; if (G.intersects({ startRow: t2, startColumn: r2, endRow: n2, endColumn: o }, e30) && (c.push(e30), G.contains({ startRow: t2, startColumn: r2, endRow: n2, endColumn: o }, e30))) { let t3 = i2 - r2 + 1; l.push({ startRow: e30.startRow, startColumn: e30.startColumn + t3, endRow: e30.endRow, endColumn: e30.endColumn + t3 }); } }); let u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f); return { preRedos: [{ id: q4.id, params: u }], redos: [{ id: H4.id, params: f }], preUndos: [{ id: q4.id, params: p }], undos: [{ id: H4.id, params: d }] }; } _handleInsertRangeMoveDownCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = e29.range, o = i.getMaxRows() - 1, s = i.getMergeData(), c = [], l = []; s.forEach((e30) => { let { startRow: t2, startColumn: n2, endColumn: r2, endRow: i2 } = a; if (G.intersects({ startRow: t2, startColumn: n2, endRow: o, endColumn: r2 }, e30) && (c.push(e30), G.contains({ startRow: t2, startColumn: n2, endRow: o, endColumn: r2 }, e30))) { let n3 = i2 - t2 + 1; l.push({ startRow: e30.startRow + n3, startColumn: e30.startColumn, endRow: e30.endRow + n3, endColumn: e30.endColumn }); } }); let u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f), m = [{ id: q4.id, params: u }], h = [{ id: H4.id, params: f }], g2 = [{ id: q4.id, params: p }]; return { redos: h, undos: [{ id: H4.id, params: d }], preRedos: m, preUndos: g2 }; } _handleDeleteRangeMoveUpCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = e29.range, o = i.getMaxRows() - 1, s = i.getMergeData(), c = [], l = []; s.forEach((e30) => { let { startRow: t2, startColumn: n2, endColumn: r2, endRow: i2 } = a; if (G.intersects({ startRow: t2, startColumn: n2, endRow: o, endColumn: r2 }, e30) && (c.push(e30), G.contains({ startRow: t2, startColumn: n2, endRow: o, endColumn: r2 }, e30))) { let n3 = i2 - t2 + 1, r3 = G.moveVertical(e30, -n3); l.push(r3); } }); let u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f), m = [{ id: q4.id, params: u }], h = [{ id: H4.id, params: f }], g2 = [{ id: q4.id, params: p }]; return { redos: h, undos: [{ id: H4.id, params: d }], preRedos: m, preUndos: g2 }; } _handleDeleteRangeMoveLeftCommand(e29, t, n) { let r = Ys3(this._univerInstanceService, t); if (!r) return this._handleNull(); let i = Xs3(r, n); if (!i) return this._handleNull(); let a = e29.range, o = i.getMaxColumns() - 1, s = i.getMergeData(), c = [], l = []; s.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: i2 } = a; if (G.intersects({ startRow: t2, startColumn: r2, endRow: n2, endColumn: o }, e30) && (c.push(e30), G.contains({ startRow: t2, startColumn: r2, endRow: n2, endColumn: o }, e30))) { let t3 = i2 - r2 + 1; l.push({ startRow: e30.startRow, startColumn: e30.startColumn - t3, endRow: e30.endRow, endColumn: e30.endColumn - t3 }); } }); let u = { unitId: t, subUnitId: n, ranges: c }, d = Pn2(this._injector, u), f = { unitId: t, subUnitId: n, ranges: l }, p = zt2(this._injector, f); return { preRedos: [{ id: q4.id, params: u }], redos: [{ id: H4.id, params: f }], undos: [{ id: H4.id, params: d }], preUndos: [{ id: q4.id, params: p }] }; } _checkIsMergeCell(e29) { return !(e29.startRow === e29.endRow && e29.startColumn === e29.endColumn); } _handleNull() { return { redos: [], undos: [] }; } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (Gs3.includes(e29.id)) { if (!e29.params) return; let t = this._univerInstanceService.getUniverSheetInstance(e29.params.unitId); if (!t) return; let n = t.getSheetBySheetId(e29.params.subUnitId); if (!n) return; let { sourceRange: r, targetRange: i } = e29.params, a = r.startColumn === i.startColumn && r.endColumn === i.endColumn, o = a ? r.endRow - r.startRow + 1 : r.endColumn - r.startColumn + 1, s = a ? r.startRow : r.startColumn, c = a ? i.startRow : i.startColumn, l = n.getConfig().mergeData, u = []; l.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: i2, endColumn: l2, rangeType: d2 } = e30; G.intersects(e30, r) || (a ? s < t2 && c > n2 ? (t2 -= o, n2 -= o) : s > n2 && c <= t2 && (t2 += o, n2 += o) : s < i2 && c > l2 ? (i2 -= o, l2 -= o) : s > l2 && c <= i2 && (i2 += o, l2 += o)), e30.startRow === e30.endRow && e30.startColumn === e30.endColumn || u.push({ startRow: t2, endRow: n2, startColumn: i2, endColumn: l2, rangeType: d2 }); }), n.setMergeData(u), this.disposableCollection.dispose(); let { unitId: d, subUnitId: f } = e29.params, p = (e30) => this.refRangeHandle(e30, d, f); u.forEach((e30) => { this.disposableCollection.add(this._refRangeService.registerRefRange(e30, p, d, f)); }); } if (Ws3.includes(e29.id)) { let t = this._univerInstanceService.getUniverSheetInstance(e29.params.unitId); if (!t) return; let n = t.getSheetBySheetId(e29.params.subUnitId); if (!n) return; let r = n.getConfig().mergeData, i = e29.params; if (!i) return; let { range: a } = i, o = e29.id.includes(`row`), s = e29.id.includes(`insert`), c = o ? a.startRow : a.startColumn, l = o ? a.endRow : a.endColumn, u = l - c + 1, d = []; r.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: i2, rangeType: a2 } = e30; s ? o ? c <= t2 && (t2 += u, n2 += u) : c <= r2 && (r2 += u, i2 += u) : o ? l < t2 && (t2 -= u, n2 -= u) : l < r2 && (r2 -= u, i2 -= u), e30.startRow === e30.endRow && e30.startColumn === e30.endColumn || d.push({ startRow: t2, endRow: n2, startColumn: r2, endColumn: i2, rangeType: a2 }); }), n.setMergeData(d), this.disposableCollection.dispose(); let { unitId: f, subUnitId: p } = e29.params, m = (e30) => this.refRangeHandle(e30, f, p); d.forEach((e30) => { this.disposableCollection.add(this._refRangeService.registerRefRange(e30, m, f, p)); }); } })); } }; Js3 = G4([W4(0, Inject(ii)), W4(1, Inject(zs3)), W4(2, Inject(Mu)), W4(3, Inject(Injector)), W4(4, Inject(K4)), W4(5, Inject(Y4))], Js3); function Ys3(e29, t) { return t ? e29.getUniverSheetInstance(t) : e29.getCurrentUnitForType(O.UNIVER_SHEET); } function Xs3(e29, t) { return t ? e29.getSheetBySheetId(t) : e29.getActiveSheet(); } var Zs3 = (e29, t, n) => { let r = e29.get(Y4).getCurrentSelections(), { value: i, selections: a, unitId: o, subUnitId: s } = t; if (r && r.length > 0) { let e30 = r[(r == null ? void 0 : r.length) - 1].primary; if (e30) { let { actualColumn: t2, actualRow: c } = e30, { startRow: l, startColumn: u, endRow: d, endColumn: f } = a[a.length - 1]; if (i === Pn.COLUMNS) { let e31 = n.find((e32) => e32.startColumn === t2 && e32.endColumn === t2 && c === e32.startRow); e31 && (f = e31.endColumn, l = e31.startRow, d = e31.endRow); } else if (i === Pn.ROWS) { let e31 = n.find((e32) => e32.startRow === c && e32.endRow === c && t2 === e32.startColumn); e31 && (d = e31.endRow, u = e31.startColumn, f = e31.endColumn); } let m = { startRow: l, startColumn: u, endRow: d, endColumn: f, actualRow: c, actualColumn: t2, isMerged: true, isMergedMainCell: l === c && u === t2 }, h = r.map((e31, t3, n2) => ({ range: e31.range, style: null, primary: t3 === n2.length - 1 ? m : null })), g2 = { unitId: o, subUnitId: s, type: zi2.ONLY_SET, selections: h }; return { id: X4.id, params: g2 }; } return null; } return null; }; var Qs3 = (e29, t) => { let n = e29.get(Y4).getCurrentSelections(), { unitId: r, subUnitId: i } = t; if (n && n.length > 0 && n[(n == null ? void 0 : n.length) - 1].primary) { let e30 = { unitId: r, subUnitId: i, type: zi2.ONLY_SET, selections: [...n] }; return { id: X4.id, params: e30 }; } return null; }; var $s3 = { type: ri.COMMAND, id: `sheet.command.remove-worksheet-merge`, handler: (e29, t) => { var n; let r = e29.get(Y4), i = e29.get(ii), a = e29.get(td), o = (t == null ? void 0 : t.ranges) || ((n = r.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(o != null && o.length)) return false; let s = V4(e29.get(Mu), t); if (!s) return false; let { subUnitId: c, unitId: l, worksheet: u } = s, d = { unitId: l, subUnitId: c, ranges: o }, f = u.getConfig().mergeData.filter((e30) => o.some((t2) => G.intersects(t2, e30))); if (!f.length) return false; let p = Pn2(e29, d), m = r.getCurrentSelections(), h = D.deepClone(m), g2 = D.deepClone(m); if (m.length) { let e30 = g2[g2.length - 1], { startRow: t2, startColumn: n2 } = e30.range; e30.primary = { startRow: t2, startColumn: n2, endRow: t2, endColumn: n2, actualRow: t2, actualColumn: n2, isMerged: false, isMergedMainCell: false }; } let _2 = { unitId: l, subUnitId: c, cellValue: ec3(u, f).getMatrix() }, v = gr3(e29, _2), y = [{ id: q4.id, params: p }, { id: J4.id, params: _2 }, { id: X4.id, params: { unitId: l, subUnitId: c, selections: g2, type: zi2.ONLY_SET } }], b = [{ id: H4.id, params: p }, { id: J4.id, params: v }, { id: X4.id, params: { unitId: l, subUnitId: c, selections: h, type: zi2.ONLY_SET } }]; return li(y, i) ? (a.pushUndoRedo({ unitID: l, undoMutations: b, redoMutations: y }), true) : false; } }; function ec3(e29, t) { let n = new Sa(); return t.forEach((t2) => { let { startRow: r, startColumn: i, endColumn: a, endRow: o } = t2, s = e29.getCellMatrix().getValue(r, i); if (s != null && s.s) for (let e30 = r; e30 <= o; e30++) for (let t3 = i; t3 <= a; t3++) (e30 !== r || t3 !== i) && n.setValue(e30, t3, { s: s.s }); }), n; } var tc3 = (function(e29) { return e29.MergeAll = `mergeAll`, e29.MergeVertical = `mergeVertical`, e29.MergeHorizontal = `mergeHorizontal`, e29; })({}); function nc3(e29, t) { return t.some((t2) => rc3(e29, t2)); } function rc3(e29, t) { let { startRow: n, startColumn: r, endColumn: i, endRow: a } = t, o = e29.getMatrixWithMergedCells(n, r, a, i), s = false; return o.forValue((t2, i2, a2) => { if (a2 && (t2 !== n || i2 !== r) && e29.cellHasValue(a2)) return s = true, false; }), s; } function ic3(e29, t, n, r) { let i = [], a = [], o = n.getSheetId(); return r.forEach((r2) => { let s = { unitId: t, subUnitId: o, cellValue: ac3(n, r2).getData() }, c = gr3(e29, s); i.push({ id: J4.id, params: c }), a.push({ id: J4.id, params: s }); }), { undos: i, redos: a }; } function ac3(e29, t) { let { startRow: n, startColumn: r, endColumn: i, endRow: a } = t, o = e29.getMatrixWithMergedCells(n, r, a, i, ea.Raw), s = new Sa(), l = null; return o.forValue((t2, i2, a2) => { if (a2 && t2 >= n && i2 >= r) { var o2, c; !l && e29.cellHasValue(a2) && (a2.v !== `` || ((o2 = (c = a2.p) == null || (c = c.body) == null || (c = c.dataStream) == null ? void 0 : c.length) == null ? 0 : o2) > 2) && (l = a2), s.setValue(t2, i2, a2.s ? { v: null, t: null, f: null, si: null, p: null, s: a2.s } : null); } }), s.setValue(n, r, l), s; } var oc3 = { type: ri.COMMAND, id: `sheet.command.add-worksheet-merge`, handler: async (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { worksheet: r } = n, { unitId: i, subUnitId: a, selections: o } = t, s = e29.get(ii), c = e29.get(td), l = Ks3(o, t.value), u = nc3(r, l); if (u && !t.defaultMerge) { let t2 = e29.get(gl), n2 = e29.get(zu); if (!await t2.confirm({ id: `merge.confirm.add-worksheet-merge`, title: { title: `merge.confirm.warning` }, children: { title: `merge.confirm.title` }, cancelText: n2.t(`merge.confirm.cancel`), confirmText: n2.t(`merge.confirm.confirm`) })) return false; } let d = [], f = [], p = { unitId: i, subUnitId: a, ranges: D.deepClone(l) }, m = { unitId: i, subUnitId: a, ranges: D.deepClone(l) }, h = Pn2(e29, p), g2 = zt2(e29, m); if (h.ranges.length > 0 && d.push({ id: q4.id, params: h }), d.push({ id: H4.id, params: m }), f.push({ id: q4.id, params: g2 }), h.ranges.length > 0 && f.push({ id: H4.id, params: h }), u) { let t2 = ic3(e29, i, r, l); d.unshift(...t2.redos), f.push(...t2.undos); } let _2 = Zs3(e29, t, l); _2 && d.push(_2); let v = Qs3(e29, t); v && f.push(v); let y = e29.get(K4).onCommandExecute({ id: oc3.id, params: { unitId: i, subUnitId: a, ranges: l } }); return d.push(...y.redos), f.push(...y.undos), li(d, s).result ? (c.pushUndoRedo({ unitID: i, undoMutations: f, redoMutations: d }), true) : false; } }; var sc3 = { type: ri.COMMAND, id: `sheet.command.add-worksheet-merge-all`, handler: async (e29) => { var t; let n = (t = e29.get(Y4).getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range), r = dc3(tc3.MergeAll, n); if (!(r != null && r.length)) return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a } = i, o = a.getUnitId(), s = a.getSheetId(); return e29.get(ii).executeCommand(oc3.id, { selections: r, unitId: o, subUnitId: s }); } }; var cc3 = { type: ri.COMMAND, id: `sheet.command.add-worksheet-merge-vertical`, handler: async (e29) => { var t; let n = (t = e29.get(Y4).getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range), r = dc3(tc3.MergeVertical, n); if (!(r != null && r.length)) return false; let i = V4(e29.get(Mu)); if (!i) return false; let { worksheet: a } = i, o = a.getUnitId(), s = a.getSheetId(); return e29.get(ii).executeCommand(oc3.id, { value: Pn.COLUMNS, selections: r, unitId: o, subUnitId: s }); } }; var lc3 = { type: ri.COMMAND, id: `sheet.command.add-worksheet-merge-horizontal`, handler: async (e29) => { var t; let n = (t = e29.get(Y4).getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range), r = dc3(tc3.MergeHorizontal, n); if (!(r != null && r.length)) return false; let i = V4(e29.get(Mu)); if (!i) return false; let { workbook: a, worksheet: o } = i, s = a.getUnitId(), c = o.getSheetId(); return e29.get(ii).executeCommand(oc3.id, { value: Pn.ROWS, selections: r, unitId: s, subUnitId: c }); } }; function dc3(e29, t) { return t ? e29 === tc3.MergeAll ? t.filter((e30) => !(e30.startRow === e30.endRow && e30.startColumn === e30.endColumn)) : e29 === tc3.MergeVertical ? t.filter((e30) => e30.startRow !== e30.endRow) : e29 === tc3.MergeHorizontal ? t.filter((e30) => e30.startColumn !== e30.endColumn) : t : null; } var fc3 = class { constructor() { U4(this, `_model`, /* @__PURE__ */ new Map()), U4(this, `_ruleChange`, new Subject()), U4(this, `_ruleRefresh`, new Subject()), U4(this, `_resetOrder`, new Subject()), U4(this, `ruleChange$`, this._ruleChange.asObservable()), U4(this, `ruleRefresh$`, this._ruleRefresh.asObservable()), U4(this, `resetOrder$`, this._resetOrder.asObservable()), U4(this, `_worksheetRuleInitStateChange`, new BehaviorSubject(false)), U4(this, `worksheetRuleInitStateChange$`, this._worksheetRuleInitStateChange.asObservable()); } changeRuleInitState(e29) { this._worksheetRuleInitStateChange.next(e29); } getSheetRuleInitState() { return this._worksheetRuleInitStateChange.value; } addRule(e29, t) { this._ensureSubUnitMap(e29).set(t.subUnitId, t), this._ruleChange.next({ unitId: e29, rule: t, type: `add`, subUnitId: t.subUnitId }); } deleteRule(e29, t) { var n; let r = (n = this._model) == null || (n = n.get(e29)) == null ? void 0 : n.get(t); if (r) { var i; (i = this._model.get(e29)) == null || i.delete(t), this._ruleChange.next({ unitId: e29, rule: r, type: `delete`, subUnitId: t }); } } setRule(e29, t, n) { let r = this.getRule(e29, t); if (r) { var i; (i = this._model) == null || (i = i.get(e29)) == null || i.set(t, n), this._ruleChange.next({ unitId: e29, oldRule: r, rule: n, type: `set`, subUnitId: t }); } } getRule(e29, t) { var n; return (n = this._model) == null || (n = n.get(e29)) == null ? void 0 : n.get(t); } toObject() { let e29 = {}; return [...this._model.keys()].forEach((t) => { let n = this._model.get(t); n != null && n.size && (e29[t] = [], [...n.keys()].forEach((r) => { let i = n.get(r); i && e29[t].push(i); })); }), e29; } fromObject(e29) { let t = /* @__PURE__ */ new Map(); Object.keys(e29).forEach((n) => { let r = e29[n]; if (r != null && r.length) { let e30 = /* @__PURE__ */ new Map(); r.forEach((t2) => { e30.set(t2.subUnitId, t2); }), t.set(n, e30); } }), this._model = t; } deleteUnitModel(e29) { this._model.delete(e29); } _ensureSubUnitMap(e29) { let t = this._model.get(e29); return t || (t = /* @__PURE__ */ new Map(), this._model.set(e29, t)), t; } ruleRefresh(e29) { this._ruleRefresh.next(e29); } resetOrder() { this._resetOrder.next(Math.random()); } getTargetByPermissionId(e29, t) { let n = this._model.get(e29); if (!n) return null; for (let [r, i] of n) if (i.permissionId === t) return [e29, r]; } }; var pc3 = { id: `sheet.mutation.add-worksheet-protection`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(fc3), { unitId: r, rule: i } = t; return n.addRule(r, i), true; } }; var mc3 = { id: `sheet.mutation.delete-worksheet-protection`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(fc3), { unitId: r, subUnitId: i } = t; return n.deleteRule(r, i), true; } }; var hc3 = { type: ri.COMMAND, id: `sheet.command.add-worksheet-protection`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), { rule: i, unitId: a } = t, o = i.subUnitId; if (await n.executeCommand(pc3.id, { unitId: a, rule: i, subUnitId: i.subUnitId })) { let e30 = [{ id: pc3.id, params: { unitId: a, rule: i, subUnitId: i.subUnitId } }], t2 = [{ id: mc3.id, params: { unitId: a, subUnitId: o } }]; r.pushUndoRedo({ unitID: a, redoMutations: e30, undoMutations: t2 }); } return true; } }; var gc3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-range-theme-style`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), { unitId: i } = t, a = vn3(e29, t); return n.syncExecuteCommand(_n3.id, t) ? (r.pushUndoRedo({ unitID: i, undoMutations: [{ id: yn3.id, params: a }], redoMutations: [{ id: _n3.id, params: t }] }), true) : false; } }; var _c3 = { type: ri.COMMAND, id: `sheet.command.append-row`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), { unitId: i, subUnitId: a, cellValue: o, insertRowNums: s, insertColumnNums: c, maxRows: l, maxColumns: u } = t, d = { unitId: i, subUnitId: a, cellValue: o }, f = gr3(e29, d), p = [{ id: J4.id, params: d }], m = [{ id: J4.id, params: f }]; if (s) { let t2 = { unitId: i, subUnitId: a, range: { startRow: l, endRow: l, startColumn: 0, endColumn: u - 1 } }, n2 = xn3(e29, t2); p.unshift({ id: Sn3.id, params: t2 }), m.push({ id: jn2.id, params: n2 }); } if (c) { let t2 = { unitId: i, subUnitId: a, range: { startRow: 0, endRow: l - 1, startColumn: u, endColumn: u - 1 + c } }, n2 = Cn3(e29, t2); p.unshift({ id: wn3.id, params: t2 }), m.push({ id: Nn3.id, params: n2 }); } return li(p, n).result ? (r.pushUndoRedo({ unitID: i, undoMutations: m, redoMutations: p }), true) : false; } }; var vc3 = [`ff`, `fs`, `tr`, `tb`]; var yc3 = { type: ri.COMMAND, id: `sheet.command.set-style`, handler: (e29, t) => { var n; let r = V4(e29.get(Mu), t); if (!r) return false; let { unitId: i, subUnitId: a, worksheet: o } = r, { range: s, style: c } = t, l = e29.get(ii), u = e29.get(td), d = e29.get(Y4), f = s ? [s] : (n = d.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range); if (!(f != null && f.length)) return false; let p = new Sa(), m = Qi3(o); if (D.isArray(c.value)) for (let e30 = 0; e30 < f.length; e30++) m.forOperableEach(f[e30], (e31, t2, n2) => { p.setValue(e31, t2, { s: { [c.type]: c.value[e31 - n2.startRow][t2 - n2.startColumn] } }); }); else for (let e30 = 0; e30 < f.length; e30++) { let t2 = { s: { [c.type]: c.value } }; m.forOperableEach(f[e30], (e31, n2) => p.setValue(e31, n2, t2)); } let h = { subUnitId: a, unitId: i, cellValue: p.getMatrix() }, g2 = e29.get(Ko2).getSkeleton(i, a), _2 = gr3(e29, h), v = null; if (vc3.includes(t == null ? void 0 : t.style.type)) { let { suitableRanges: e30, remainingRanges: t2 } = Jo3(f, g2); v = { suitableRanges: e30, remainingRanges: t2, cellHeights: qo2(e30, o) }; } let y = l.syncExecuteCommand(J4.id, h), b = e29.get(K4), x2 = [], S4 = []; if (v) { let { suitableRanges: e30, remainingRanges: t2, cellHeights: n2 } = v, { undos: r2, redos: o2 } = b.generateMutationsOfAutoHeight({ unitId: i, subUnitId: a, ranges: e30, autoHeightRanges: e30, lazyAutoHeightRanges: t2, cellHeights: n2 }); x2 = r2, S4 = o2; } let { undos: w2, redos: T4 } = b.onCommandExecute({ id: yc3.id, params: t }), E4 = li([...T4, ...S4], l); return y && E4.result ? (u.pushUndoRedo({ unitID: h.unitId, undoMutations: [{ id: J4.id, params: _2 }, ...w2, ...x2], redoMutations: [{ id: J4.id, params: h }, ...T4, ...S4] }), true) : false; } }; var bc3 = { type: ri.COMMAND, id: `sheet.command.set-bold`, handler: (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let { worksheet: i } = n, { actualRow: a, actualColumn: o } = t.primary, s = { style: { type: `bl`, value: i.getRange(a, o).getFontWeight() === $n.BOLD ? A.FALSE : A.TRUE } }; return e29.get(ii).syncExecuteCommand(yc3.id, s); } }; var xc3 = { type: ri.COMMAND, id: `sheet.command.set-italic`, handler: (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let { worksheet: i } = n, a = true; if (t.primary) { let { startRow: e30, startColumn: n2 } = t.primary; a = i.getRange(e30, n2).getFontStyle() === Qn.ITALIC; } let o = { style: { type: `it`, value: a ? A.FALSE : A.TRUE } }; return e29.get(ii).syncExecuteCommand(yc3.id, o); } }; var Sc3 = { type: ri.COMMAND, id: `sheet.command.set-underline`, handler: (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let { worksheet: i } = n, a = true; t.primary && (a = !!i.getRange(t.primary.startRow, t.primary.startColumn).getUnderline().s); let o = { style: { type: `ul`, value: { s: a ? A.FALSE : A.TRUE } } }; return e29.get(ii).syncExecuteCommand(yc3.id, o); } }; var Cc3 = { type: ri.COMMAND, id: `sheet.command.set-stroke`, handler: (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let { worksheet: i } = n, a = true; t.primary && (a = !!i.getRange(t.primary.actualRow, t.primary.actualColumn).getStrikeThrough().s); let o = { style: { type: `st`, value: { s: a ? A.FALSE : A.TRUE } } }; return e29.get(ii).syncExecuteCommand(yc3.id, o); } }; var wc3 = { type: ri.COMMAND, id: `sheet.command.set-overline`, handler: (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let { worksheet: i } = n, a = true; t.primary && (a = !!i.getRange(t.primary.startRow, t.primary.startColumn).getOverline().s); let o = { style: { type: `ol`, value: { s: a ? A.FALSE : A.TRUE } } }; return e29.get(ii).syncExecuteCommand(yc3.id, o); } }; var Tc3 = { type: ri.COMMAND, id: `sheet.command.set-font-family`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { style: { type: `ff`, value: t.value } }; return n.syncExecuteCommand(yc3.id, r); } }; var Ec3 = { type: ri.COMMAND, id: `sheet.command.set-font-size`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { style: { type: `fs`, value: t.value } }; return n.syncExecuteCommand(yc3.id, r); } }; var Dc3 = { type: ri.COMMAND, id: `sheet.command.set-text-color`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { style: { type: `cl`, value: { rgb: t.value } } }; return n.syncExecuteCommand(yc3.id, r); } }; var Oc3 = { type: ri.COMMAND, id: `sheet.command.reset-text-color`, handler: (e29) => e29.get(ii).syncExecuteCommand(yc3.id, { style: { type: `cl`, value: { rgb: null } } }) }; var kc3 = { type: ri.COMMAND, id: `sheet.command.set-background-color`, handler: (e29, t) => { if (!t || !t.value) return false; let n = e29.get(ii), r = { style: { type: `bg`, value: { rgb: t.value } } }; return n.syncExecuteCommand(yc3.id, r); } }; var Ac3 = { type: ri.COMMAND, id: `sheet.command.reset-background-color`, handler: (e29) => e29.get(ii).syncExecuteCommand(yc3.id, { style: { type: `bg`, value: { rgb: null } } }) }; var jc3 = { type: ri.COMMAND, id: `sheet.command.set-vertical-text-align`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range, style: { type: `vt`, value: t.value } }; return n.syncExecuteCommand(yc3.id, r); } }; var Mc3 = { type: ri.COMMAND, id: `sheet.command.set-horizontal-text-align`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range, style: { type: `ht`, value: t.value } }; return n.syncExecuteCommand(yc3.id, r); } }; var Nc3 = { type: ri.COMMAND, id: `sheet.command.set-text-wrap`, handler: (e29, t) => { if (!t) return false; let n = e29.get(ii), r = { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range, style: { type: `tb`, value: t.value } }; return n.syncExecuteCommand(yc3.id, r); } }; var Pc3 = { type: ri.COMMAND, id: `sheet.command.set-text-rotation`, handler: (e29, t) => { if (!t) return false; let n = typeof t.value == `number` ? { a: t.value } : { a: 0, v: A.TRUE }, i = e29.get(ii), a = { unitId: t.unitId, subUnitId: t.subUnitId, range: t.range, style: { type: `tr`, value: n } }; return i.syncExecuteCommand(yc3.id, a); } }; var Fc3 = { \u96F6: 0, \u4E00: 1, \u4E8C: 2, \u4E09: 3, \u56DB: 4, \u4E94: 5, \u516D: 6, \u4E03: 7, \u516B: 8, \u4E5D: 9 }; var Ic3 = [`\u96F6`, `\u4E00`, `\u4E8C`, `\u4E09`, `\u56DB`, `\u4E94`, `\u516D`, `\u4E03`, `\u516B`, `\u4E5D`]; var Lc3 = [``, `\u4E07`, `\u4EBF`, `\u4E07\u4EBF`, `\u4EBF\u4EBF`]; var Rc3 = [``, `\u5341`, `\u767E`, `\u5343`]; var zc3 = { \u5341: { value: 10, secUnit: false }, \u767E: { value: 100, secUnit: false }, \u5343: { value: 1e3, secUnit: false }, \u4E07: { value: 1e4, secUnit: true }, \u4EBF: { value: 1e8, secUnit: true } }; function Bc3(e29) { if (!e29) return 0; let t = 0, n = 0, r = 0, i = false, a = e29.split(``); for (let e30 = 0; e30 < a.length; e30++) { let o = Fc3[a[e30]]; if (o !== void 0) r = o, e30 === a.length - 1 && (n += r); else { let o2 = zc3[a[e30]], s = o2.value; i = o2.secUnit, i ? (n = (n + r) * s, t += n, n = 0) : n += r * s, r = 0; } } return t + n; } function Vc3(e29) { let t = ``, n = ``, r = 0, i = true; for (; e29 > 0; ) { let a = e29 % 10; a === 0 ? i || (i = true, n = Ic3[a] + n) : (i = false, t = Ic3[a], t += Rc3[r], n = t + n), r++, e29 = Math.floor(e29 / 10); } return n; } function Hc3(e29) { let t = 0, n = ``, r = ``, i = false; if (e29 === 0) return Ic3[0]; for (; e29 > 0; ) { let a = e29 % 1e4; i && (r = Ic3[0] + r), n = Vc3(a), n += a === 0 ? Lc3[0] : Lc3[t], r = n + r, i = a < 1e3 && a > 0, e29 = Math.floor(e29 / 1e4), t++; } return r; } function Uc3(e29) { if (!e29) return false; let t = true; if (e29) if (e29.length === 1) t = e29 === `\u65E5` || e29 in Fc3; else { let n = e29.split(``); for (let e30 = 0; e30 < n.length; e30++) if (!(n[e30] in Fc3 || n[e30] in zc3)) { t = false; break; } } return t; } function Wc3(e29) { if (!e29) return { isExtendNumber: false }; let t = /0|([1-9]+[0-9]*)/g, n = t.test(e29); if (n) { let n2 = e29.match(t); if (n2 && n2.length > 0) { let t2 = n2[n2.length - 1], r = e29.lastIndexOf(t2), i = e29.substr(0, r), a = e29.substr(r + t2.length); return { isExtendNumber: true, matchTxt: Number(t2), beforeTxt: i, afterTxt: a }; } return { isExtendNumber: false }; } return { isExtendNumber: n }; } function Gc3(e29) { let t; return t = e29.length === 1 ? e29 === `\u65E5` || Bc3(e29) < 7 : false, t; } function Kc3(e29) { let t; return t = e29.length === 2 ? e29 === `\u5468\u4E00` || e29 === `\u5468\u4E8C` || e29 === `\u5468\u4E09` || e29 === `\u5468\u56DB` || e29 === `\u5468\u4E94` || e29 === `\u5468\u516D` || e29 === `\u5468\u65E5` : false, t; } function qc3(e29) { let t; return t = e29.length === 3 ? e29 === `\u661F\u671F\u4E00` || e29 === `\u661F\u671F\u4E8C` || e29 === `\u661F\u671F\u4E09` || e29 === `\u661F\u671F\u56DB` || e29 === `\u661F\u671F\u4E94` || e29 === `\u661F\u671F\u516D` || e29 === `\u661F\u671F\u65E5` : false, t; } function Jc3(e29, t) { let n = 0; for (let r = 0; r < e29.length && e29[r] < t; r++) n++; return n; } function Yc2(e29) { let t = true, n = e29[1] - e29[0]; for (let r = 1; r < e29.length; r++) if (e29[r] - e29[r - 1] !== n) { t = false; break; } return t; } function Xc3(e29, t, n) { let r = [], i = Math.floor(t / e29), a = t % e29, o = 0; if (i > 0) { for (let t2 = 0; t2 < i; t2++) for (let i2 = 0; i2 < n.length; i2++) r[n[i2] + t2 * e29] = o, o++; for (let t2 = 0; t2 < n.length && n[t2] < a; t2++) r[n[t2] + e29 * i] = o, o++; } else for (let e30 = 0; e30 < n.length && n[e30] < a; e30++) r[n[e30]] = o, o++; return r; } function Zc3(e29, t) { let n = []; for (let r = 1; r <= t; r++) { let t2 = (r - 1) % e29.length, i = D.deepClone(e29[t2]); pl3(i), n.push({ v: null, s: null, p: null, f: null, si: null, t: null, ...i }); } return n; } function Qc3(e29, t) { let n = []; for (let i = 1; i <= t; i++) { var r; let t2 = { s: (r = e29[(i - 1) % e29.length]) == null ? void 0 : r.s }; n.push(t2); } return n; } function $c3(e29) { let t = true, n = e29[1] / e29[0]; for (let r = 1; r < e29.length; r++) if (e29[r] / e29[r - 1] !== n) { t = false; break; } return t; } function el3(e29) { let t = []; for (let n = 1; n <= e29; n++) t.push(n); return t; } function tl3(e29, t, n) { let r = [], i = []; for (let t2 = 0; t2 < e29.length; t2++) { var a; i.push(Number((a = e29[t2]) == null ? void 0 : a.v)); } if (e29.length > 2 && $c3(i)) for (let n2 = 1; n2 <= t; n2++) { var o, s, c; let t2 = (n2 - 1) % e29.length, i2 = D.deepClone(e29[t2]); pl3(i2); let a2 = Number((o = e29[e29.length - 1]) == null ? void 0 : o.v) * (Number((s = e29[1]) == null ? void 0 : s.v) / Number((c = e29[0]) == null ? void 0 : c.v)) ** n2; i2 && (fl3(i2) && (i2.v = a2), r.push(i2)); } else { let a2 = el3(e29.length); for (let o2 = 1; o2 <= t; o2++) { let t2 = (o2 - 1) % e29.length, s2 = D.deepClone(e29[t2]); pl3(s2); let c2 = n === Fn.DOWN || n === Fn.RIGHT, l = nl3(e29.length + o2, i, a2, c2); s2 && (fl3(s2) && (s2.v = l), r.push(s2)); } } return r; } function nl3(e29, t, n, r = true) { function i(e30) { let t2 = 0; for (let n2 = 0; n2 < e30.length; n2++) t2 += e30[n2]; return t2 / e30.length; } let a = i(n), o = i(t), s = 0, c = 0; for (let e30 = 0; e30 < n.length; e30++) s += (n[e30] - a) * (t[e30] - o), c += (n[e30] - a) * (n[e30] - a); let l; l = c === 0 ? r ? 1 : -1 : s / c; let u = o - l * a; return Math.round((u + l * e29) * 1e5) / 1e5; } function rl3(e29, t, n) { let r = [], i = /0|([1-9]+[0-9]*)/g; for (let o = 1; o <= t; o++) { var a; let t2 = (o - 1) % e29.length, s = D.deepClone(e29[t2]); pl3(s); let c = `${(a = e29[e29.length - 1]) == null ? void 0 : a.v}`; if (!c) continue; let l = c == null ? void 0 : c.match(i), u = l == null ? void 0 : l[l.length - 1]; if (!u) continue; let d = Math.abs(Number(u) + n * o), f = c.lastIndexOf(u), p = c.substr(0, f) + d.toString() + c.substr(f + u.length); s && (s.v = p, r.push(s)); } return r; } function il3(e29, t) { let n = []; for (let r = 1; r <= t; r++) { let t2 = (r - 1) % e29.length, i = D.deepClone(e29[t2]); pl3(i), i && (delete i.v, n.push(i)); } return n; } function al2(e29, t, n, r = 0) { let i = [[`\u65E5`, `\u4E00`, `\u4E8C`, `\u4E09`, `\u56DB`, `\u4E94`, `\u516D`], [`\u5468\u65E5`, `\u5468\u4E00`, `\u5468\u4E8C`, `\u5468\u4E09`, `\u5468\u56DB`, `\u5468\u4E94`, `\u5468\u516D`], [`\u661F\u671F\u65E5`, `\u661F\u671F\u4E00`, `\u661F\u671F\u4E8C`, `\u661F\u671F\u4E09`, `\u661F\u671F\u56DB`, `\u661F\u671F\u4E94`, `\u661F\u671F\u516D`]]; if (r >= i.length) return []; let a = i[r], o = []; for (let r2 = 1; r2 <= t; r2++) { var s; let t2 = (r2 - 1) % e29.length, i2 = D.deepClone(e29[t2]); pl3(i2); let l = 0; if (((s = e29[e29.length - 1]) == null ? void 0 : s.v) === a[0]) l = 7 + n * r2; else { var c; let t3 = `${(c = e29[e29.length - 1]) == null ? void 0 : c.v}`; t3 && (l = Bc3(t3.substr(t3.length - 1, 1)) + n * r2); } l < 0 && (l = Math.ceil(Math.abs(l) / 7) * 7 + l); let u = l % 7; i2 && (i2.v = a[u], o.push(i2)); } return o; } function ol2(e29, t, n) { let r = []; for (let a = 1; a <= t; a++) { var i; let t2 = (a - 1) % e29.length, o = D.deepClone(e29[t2]); pl3(o); let s = Bc3(`${(i = e29[e29.length - 1]) == null ? void 0 : i.v}`) + n * a, c; c = s <= 0 ? `\u96F6` : Hc3(s), o && (o.v = c, r.push(o)); } return r; } var sl2 = { enWeek1: [`Sun`, `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat`], enWeek2: [`Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`], enMonth1: [`Jan`, `Feb`, `Mar`, `Apr`, `May`, `Jun`, `Jul`, `Aug`, `Sep`, `Oct`, `Nov`, `Dec`], enMonth2: [`January`, `February`, `March`, `April`, `May`, `June`, `July`, `August`, `September`, `October`, `November`, `December`], chnMonth1: [`\u4E00\u6708`, `\u4E8C\u6708`, `\u4E09\u6708`, `\u56DB\u6708`, `\u4E94\u6708`, `\u516D\u6708`, `\u4E03\u6708`, `\u516B\u6708`, `\u4E5D\u6708`, `\u5341\u6708`, `\u5341\u4E00\u6708`, `\u5341\u4E8C\u6708`], chnMonth2: [`\u6B63\u6708`, `\u4E8C\u6708`, `\u4E09\u6708`, `\u56DB\u6708`, `\u4E94\u6708`, `\u516D\u6708`, `\u4E03\u6708`, `\u516B\u6708`, `\u4E5D\u6708`, `\u5341\u6708`, `\u5341\u4E00\u6708`, `\u814A\u6708`], chHour1: [`\u5B50`, `\u4E11`, `\u5BC5`, `\u536F`, `\u8FB0`, `\u5DF3`, `\u5348`, `\u672A`, `\u7533`, `\u9149`, `\u620C`, `\u4EA5`], chHour2: [`\u5B50\u65F6`, `\u4E11\u65F6`, `\u5BC5\u65F6`, `\u536F\u65F6`, `\u8FB0\u65F6`, `\u5DF3\u65F6`, `\u5348\u65F6`, `\u672A\u65F6`, `\u7533\u65F6`, `\u9149\u65F6`, `\u620C\u65F6`, `\u4EA5\u65F6`], chYear1: [`\u7532`, `\u4E59`, `\u4E19`, `\u4E01`, `\u620A`, `\u5DF1`, `\u5E9A`, `\u8F9B`, `\u58EC`, `\u7678`], chSeason1: [`\u6625`, `\u590F`, `\u79CB`, `\u51AC`], chSeason2: [`\u6625\u5B63`, `\u590F\u5B63`, `\u79CB\u5B63`, `\u51AC\u5B63`] }; function cl2(e29) { let t = false; return Object.keys(sl2).forEach((n) => { sl2[n].includes(e29) && (t = true); }), t; } function ll3(e29) { let t = ``, n = []; return Object.keys(sl2).forEach((r) => { sl2[r].includes(e29) && (t = r, n.push(...sl2[r])); }), { name: t, series: n }; } function ul3(e29, t, n, r) { let i = r.length, a = []; for (let s = 1; s <= t; s++) { var o; let t2 = (s - 1) % e29.length, c = D.deepClone(e29[t2]); pl3(c); let l = `${(o = e29[e29.length - 1]) == null ? void 0 : o.v}`, u = r.indexOf(l) + n * s; u < 0 && (u += Math.abs(n) * i); let d = u % i; c && (c.v = r[d], a.push(c)); } return a; } function dl3(e29, t) { let n = [], r; if (t.startRow < e29.startRow) r = Fn.UP; else if (t.endRow > e29.endRow) r = Fn.DOWN; else if (t.startColumn < e29.startColumn) r = Fn.LEFT; else if (t.endColumn > e29.endColumn) r = Fn.RIGHT; else return []; if (r === Fn.DOWN || r === Fn.UP) { let i = e29.endRow - e29.startRow + 1, a = t.endRow - t.startRow + 1, o = Math.floor(a / i), s = a % i, c = { startRow: 0, startColumn: 0, endRow: e29.endRow - e29.startRow, endColumn: e29.endColumn - e29.startColumn }; if (r === Fn.DOWN) { for (let t2 = 0; t2 < o; t2++) n.push({ repeatStartCell: { row: e29.startRow + (t2 + 1) * i, col: e29.startColumn }, relativeRange: c }); s > 0 && n.push({ repeatStartCell: { row: e29.startRow + (o + 1) * i, col: e29.startColumn }, relativeRange: { startRow: 0, startColumn: 0, endRow: s - 1, endColumn: e29.endColumn - e29.startColumn } }); } else { for (let t2 = 0; t2 < o; t2++) n.push({ repeatStartCell: { row: e29.startRow - (t2 + 1) * i, col: e29.startColumn }, relativeRange: c }); s > 0 && n.push({ repeatStartCell: { row: e29.startRow - (o + 1) * i, col: e29.startColumn }, relativeRange: { startRow: i - s, endRow: i - 1, startColumn: 0, endColumn: e29.endColumn - e29.startColumn } }); } } if (r === Fn.RIGHT || r === Fn.LEFT) { let i = e29.endColumn - e29.startColumn + 1, a = t.endColumn - t.startColumn + 1, o = Math.floor(a / i), s = a % i, c = { startRow: 0, startColumn: 0, endRow: e29.endRow - e29.startRow, endColumn: e29.endColumn - e29.startColumn }; if (r === Fn.RIGHT) { for (let t2 = 0; t2 < o; t2++) n.push({ repeatStartCell: { row: e29.startRow, col: e29.startColumn + (t2 + 1) * i }, relativeRange: c }); s > 0 && n.push({ repeatStartCell: { row: e29.startRow, col: e29.startColumn + (o + 1) * i }, relativeRange: { startRow: 0, startColumn: 0, endRow: e29.endRow - e29.startRow, endColumn: s - 1 } }); } else { for (let t2 = 0; t2 < o; t2++) n.push({ repeatStartCell: { row: e29.startRow, col: e29.startColumn - (t2 + 1) * i }, relativeRange: c }); s > 0 && n.push({ repeatStartCell: { row: e29.startRow, col: e29.startColumn - (o + 1) * i }, relativeRange: { startRow: 0, startColumn: i - s, endRow: e29.endRow - e29.startRow, endColumn: i - 1 } }); } } return n; } function fl3(e29) { return !(ka(e29.f) || Aa(e29.si) || e29.t === tr.BOOLEAN); } function pl3(e29) { e29 && `custom` in e29 && delete e29.custom; } function ml3(e29, t) { return t ? e29.reverse() : e29; } function hl3(e29) { let t = new Sa(); return e29.forEach((e30) => { let { rows: n, cols: r } = e30; n.forEach((e31) => { r.forEach((n2) => { t.setValue(e31, n2, { v: null, p: null, f: null, si: null, custom: null }); }); }); }), t.clone(); } var gl3 = { chnNumChar: Fc3, chnNumChar2: Ic3, chnUnitSection: Lc3, chnUnitChar: Rc3, chnNameValue: zc3, chineseToNumber: Bc3, sectionToChinese: Vc3, numberToChinese: Hc3, isChnNumber: Uc3, matchExtendNumber: Wc3, isChnWeek1: Gc3, isChnWeek2: Kc3, isChnWeek3: qc3, getLenS: Jc3, isEqualDiff: Yc2, getDataIndex: Xc3, fillCopy: Zc3, fillCopyStyles: Qc3, isEqualRatio: $c3, getXArr: el3, fillSeries: tl3, forecast: nl3, fillExtendNumber: rl3, fillOnlyFormat: il3, fillChnWeek: al2, fillChnNumber: ol2, isLoopSeries: cl2, getLoopSeriesInfo: ll3, fillLoopSeries: ul3, getAutoFillRepeatRange: dl3, needsUpdateCellValue: fl3, removeCellCustom: pl3, reverseIfNeed: ml3, generateNullCellValueRowCol: hl3 }; var $4 = (function(e29) { return e29.COPY = `COPY`, e29.SERIES = `SERIES`, e29.ONLY_FORMAT = `ONLY_FORMAT`, e29.NO_FORMAT = `NO_FORMAT`, e29; })({}); var _l2 = (function(e29) { return e29.NUMBER = `number`, e29.DATE = `date`, e29.EXTEND_NUMBER = `extendNumber`, e29.CHN_NUMBER = `chnNumber`, e29.CHN_WEEK2 = `chnWeek2`, e29.CHN_WEEK3 = `chnWeek3`, e29.LOOP_SERIES = `loopSeries`, e29.FORMULA = `formula`, e29.OTHER = `other`, e29; })({}); var vl3 = (function(e29) { return e29.APPEND = `APPEND`, e29.DEFAULT = `DEFAULT`, e29.ONLY = `ONLY`, e29; })({}); var { chineseToNumber: yl3, fillChnNumber: bl3, fillChnWeek: xl3, fillCopy: Sl2, fillExtendNumber: Cl3, fillLoopSeries: wl2, fillSeries: Tl3, getLoopSeriesInfo: El2, isChnNumber: Dl2, isChnWeek2: Ol2, isChnWeek3: kl2, isEqualDiff: Al2, isLoopSeries: jl2, matchExtendNumber: Ml2, reverseIfNeed: Nl2 } = gl3; var Pl3 = { dateRule: { type: _l2.DATE, priority: 1100, match: (e29, t) => { if (e29 != null && e29.f || e29 != null && e29.si) return false; if ((typeof (e29 == null ? void 0 : e29.v) == `number` || (e29 == null ? void 0 : e29.t) === tr.NUMBER) && e29.s) { if (typeof e29.s == `string`) { var n; let r = t.get(Mu).getCurrentUnitOfType(O.UNIVER_SHEET); if (!r) return false; let i = r.getStyles().get(e29.s), a = i == null || (n = i.n) == null ? void 0 : n.pattern; if (a) return lib_exports.getFormatInfo(a).isDate; } else if (e29.s.n && lib_exports.getFormatInfo(e29.s.n.pattern).isDate) return true; } return false; }, isContinue: (e29, t) => e29.type === _l2.DATE, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29; return n === Fn.LEFT || n === Fn.UP ? (r.reverse(), Tl3(r, t, n).reverse()) : Tl3(r, t, n); } } }, numberRule: { type: _l2.NUMBER, priority: 1e3, match: (e29) => typeof (e29 == null ? void 0 : e29.v) == `number` || (e29 == null ? void 0 : e29.t) === tr.NUMBER, isContinue: (e29, t) => e29.type === _l2.NUMBER, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29; return n === Fn.LEFT || n === Fn.UP ? (r.reverse(), Tl3(r, t, n).reverse()) : Tl3(r, t, n); } } }, extendNumberRule: { type: _l2.EXTEND_NUMBER, priority: 900, match: (e29) => Ml2(`${e29 == null ? void 0 : e29.v}` || ``).isExtendNumber, isContinue: (e29, t) => { if (e29.type === _l2.EXTEND_NUMBER) { var n; let { beforeTxt: r, afterTxt: i } = Ml2(`${(n = e29.cellData) == null ? void 0 : n.v}` || ``), { beforeTxt: a, afterTxt: o } = Ml2(`${t == null ? void 0 : t.v}` || ``); if (r === a && i === o) return true; } return false; }, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29, i = n === Fn.UP || n === Fn.LEFT, a; if (r.length === 1) return a = i ? -1 : 1, Nl2(Cl3(r, t, a), i); let o = []; for (let e30 = 0; e30 < r.length; e30++) { var s; let t2 = `${(s = r[e30]) == null ? void 0 : s.v}`; t2 && o.push(Number(Ml2(t2).matchTxt)); } return i && (r.reverse(), o.reverse()), Al2(o) ? (a = o[1] - o[0], Nl2(Cl3(r, t, a), i)) : Sl2(r, t); } } }, chnNumberRule: { type: _l2.CHN_NUMBER, priority: 830, match: (e29) => !!Dl2(`${e29 == null ? void 0 : e29.v}` || ``), isContinue: (e29, t) => e29.type === _l2.CHN_NUMBER, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29, i = n === Fn.LEFT || n === Fn.UP; if (r.length === 1) { var a; let e30 = `${(a = r[0]) == null ? void 0 : a.v}`, n2; return n2 = i ? -1 : 1, e30 && (e30 === `\u65E5` || yl3(e30) < 7) ? Nl2(xl3(r, t, n2), i) : Nl2(bl3(r, t, n2), i); } let o = false; for (let e30 = 0; e30 < r.length; e30++) { var s; if (((s = r[e30]) == null ? void 0 : s.v) === `\u65E5`) { o = true; break; } } let c = [], l = 0; for (let e30 = 0; e30 < r.length; e30++) { var u; let t2 = `${(u = r[e30]) == null ? void 0 : u.v}`; t2 === `\u65E5` ? e30 === 0 ? c.push(0) : (l++, c.push(l * 7)) : o && yl3(t2) > 0 && yl3(t2) < 7 ? c.push(yl3(t2) + l * 7) : c.push(yl3(t2)); } return i && (r.reverse(), c.reverse()), Al2(c) ? o || c[c.length - 1] < 6 && c[0] > 0 || c[0] < 6 && c[c.length - 1] > 0 ? Nl2(xl3(r, t, c[1] - c[0]), i) : Nl2(bl3(r, t, c[1] - c[0]), i) : Sl2(r, t); } } }, chnWeek2Rule: { type: _l2.CHN_WEEK2, priority: 820, match: (e29) => !!Ol2(`${e29 == null ? void 0 : e29.v}` || ``), isContinue: (e29, t) => e29.type === _l2.CHN_WEEK2, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29, i = n === Fn.LEFT || n === Fn.UP; if (r.length === 1) { let e30; return e30 = i ? -1 : 1, Nl2(xl3(r, t, e30, 1), i); } let a = [], o = 0; for (let e30 = 0; e30 < r.length; e30++) { var s; let t2 = `${(s = r[e30]) == null ? void 0 : s.v}`, n2 = t2 == null ? void 0 : t2.substr(t2.length - 1, 1); t2 === `\u5468\u65E5` ? e30 === 0 ? a.push(0) : (o++, a.push(o * 7)) : a.push(yl3(n2) + o * 7); } return i && (r.reverse(), a.reverse()), Al2(a) ? Nl2(xl3(r, t, a[1] - a[0], 1), i) : Sl2(r, t); } } }, chnWeek3Rule: { type: _l2.CHN_WEEK3, priority: 810, match: (e29) => kl2(`${e29 == null ? void 0 : e29.v}` || ``), isContinue: (e29, t) => e29.type === _l2.CHN_WEEK3, applyFunctions: { [$4.SERIES]: (e29, t, n) => { let { data: r } = e29, i = n === Fn.LEFT || n === Fn.UP; if (r.length === 1) { let e30; return e30 = i ? -1 : 1, Nl2(xl3(r, t, e30, 2), i); } let a = [], o = 0; for (let e30 = 0; e30 < r.length; e30++) { var s; let t2 = `${(s = r[e30]) == null ? void 0 : s.v}`; if (t2) { let n2 = t2.substr(t2.length - 1, 1); t2 === `\u661F\u671F\u65E5` ? e30 === 0 ? a.push(0) : (o++, a.push(o * 7)) : a.push(yl3(n2) + o * 7); } } return i && (r.reverse(), a.reverse()), Al2(a) ? Nl2(xl3(r, t, a[1] - a[0], 2), i) : Sl2(r, t); } } }, loopSeriesRule: { type: _l2.LOOP_SERIES, priority: 800, match: (e29) => jl2(`${e29 == null ? void 0 : e29.v}` || ``), isContinue: (e29, t) => { if (e29.type === _l2.LOOP_SERIES) { var n; return El2(`${(n = e29.cellData) == null ? void 0 : n.v}` || ``).name === El2(`${t == null ? void 0 : t.v}` || ``).name; } return false; }, applyFunctions: { [$4.SERIES]: (e29, t, n) => { var r; let { data: i } = e29, a = n === Fn.LEFT || n === Fn.UP, { series: o } = El2(`${(r = i[0]) == null ? void 0 : r.v}` || ``); if (i.length === 1) { let e30; return e30 = a ? -1 : 1, Nl2(wl2(i, t, e30, o), a); } let s = [], c = 0; for (let e30 = 0; e30 < i.length; e30++) { var l; let t2 = `${(l = i[e30]) == null ? void 0 : l.v}`; t2 && (t2 === o[0] ? e30 === 0 ? s.push(0) : (c++, s.push(c * o.length)) : s.push(o.indexOf(t2) + c * 7)); } return a && (i.reverse(), s.reverse()), Al2(s) ? Nl2(wl2(i, t, s[1] - s[0], o), a) : Sl2(i, t); } } }, otherRule: { type: _l2.OTHER, priority: 0, match: () => true, isContinue: (e29, t) => e29.type === _l2.OTHER } }; var { chnNumberRule: Fl3, chnWeek2Rule: Il3, chnWeek3Rule: Ll3, dateRule: Rl3, extendNumberRule: zl3, loopSeriesRule: Bl3, numberRule: Vl3, otherRule: Hl3 } = Pl3; var Ul2 = class extends E { constructor(e29, t, n, r) { super(), this._commandService = e29, this._undoRedoService = t, this._univerInstanceService = n, this._injector = r, U4(this, `_rules`, []), U4(this, `_hooks`, []), U4(this, `_applyType$`, new BehaviorSubject($4.SERIES)), U4(this, `_isFillingStyle`, true), U4(this, `_prevUndos`, []), U4(this, `_autoFillLocation$`, new BehaviorSubject(null)), U4(this, `autoFillLocation$`, this._autoFillLocation$.asObservable()), U4(this, `_showMenu$`, new BehaviorSubject(false)), U4(this, `showMenu$`, this._showMenu$.asObservable()), U4(this, `_direction`, Fn.DOWN), U4(this, `applyType$`, this._applyType$.asObservable()), U4(this, `_menu$`, new BehaviorSubject([{ label: `autoFill.copy`, value: $4.COPY, disable: false }, { label: `autoFill.series`, value: $4.SERIES, disable: false }, { label: `autoFill.formatOnly`, value: $4.ONLY_FORMAT, disable: false }, { label: `autoFill.noFormat`, value: $4.NO_FORMAT, disable: false }])), U4(this, `menu$`, this._menu$.asObservable()), this._init(); } _init() { this._rules = [Rl3, Vl3, zl3, Fl3, Il3, Ll3, Bl3, Hl3].sort((e29, t) => t.priority - e29.priority), this._isFillingStyle = true; } _getOneByPriority(e29) { return e29.length <= 0 ? [] : [e29.reduce((e30, t) => (t.priority || 0) > (e30.priority || 0) ? t : e30, e29[0])]; } _initPrevUndo() { this._prevUndos = []; } async triggerAutoFill(e29, t, n, r, i) { var a; if (n.startColumn === r.startColumn && n.startRow === r.startRow && n.endColumn === r.endColumn && n.endRow === r.endRow) return false; if (r.endColumn < n.endColumn && r.endColumn > n.startColumn) return this._commandService.executeCommand(Xl3.id, { clearRange: { startRow: r.startRow, endRow: r.endRow, startColumn: r.endColumn + 1, endColumn: n.endColumn }, selectionRange: r }); if (r.endRow < n.endRow && r.endRow > n.startRow) return this._commandService.executeCommand(Xl3.id, { clearRange: { startRow: r.endRow + 1, endRow: n.endRow, startColumn: r.startColumn, endColumn: r.endColumn }, selectionRange: r }); let o = { startRow: r.startRow, endRow: r.endRow, startColumn: r.startColumn, endColumn: r.endColumn }, s = null; if (r.startRow < n.startRow) s = Fn.UP, o.endRow = n.startRow - 1; else if (r.endRow > n.endRow) s = Fn.DOWN, o.startRow = n.endRow + 1; else if (r.startColumn < n.startColumn) s = Fn.LEFT, o.endColumn = n.startColumn - 1; else if (r.endColumn > n.endColumn) s = Fn.RIGHT, o.startColumn = n.endColumn + 1; else return false; this.direction = s; let c = this._injector.invoke((e30) => ki2(n, e30)), l = this._injector.invoke((e30) => ki2(o, e30)); if (!c || !l) return false; this.autoFillLocation = { source: c, target: l, unitId: e29, subUnitId: t }; let u = []; if (this.getActiveHooks().forEach((n2) => { var r2; let i2 = n2 == null || (r2 = n2.onBeforeFillData) == null ? void 0 : r2.call(n2, { source: c, target: l, unitId: e29, subUnitId: t }, s); i2 && u.unshift(i2); }), this._initPrevUndo(), i) return this.fillData(i); for (let e30 = 0; e30 < u.length; e30++) { let t2 = this.menu.find((t3) => t3.value === u[e30]); if (t2 && !t2.disable) return this.fillData(u[e30]); } let d = (a = this.menu.find((e30) => e30.disable === false)) == null ? void 0 : a.value; return d ? this.fillData(d) : false; } addHook(e29) { if (this._hooks.find((t) => t.id === e29.id)) throw Error(`Add hook failed, hook id '${e29.id}' already exist!`); return e29.priority === void 0 && (e29.priority = 0), e29.type === void 0 && (e29.type = vl3.APPEND), this._hooks.push(e29), T2(() => { let t = this._hooks.findIndex((t2) => t2 === e29); t > -1 && this._hooks.splice(t, 1); }); } registerRule(e29) { if (this._rules.find((t2) => t2.type === e29.type)) throw Error(`Registry rule failed, type '${e29.type}' already exist!`); let t = this._rules.findIndex((t2) => t2.priority < e29.priority); this._rules.splice(t === -1 ? this._rules.length : t, 0, e29); } getRules() { return this._rules; } getAllHooks() { return this._hooks; } getActiveHooks() { let { source: e29, target: t, unitId: n, subUnitId: r } = this.autoFillLocation || {}; if (!e29 || !t || !n || !r) return []; let i = this._hooks.filter((i2) => { var a2; return !((a2 = i2.disable) != null && a2.call(i2, { source: e29, target: t, unitId: n, subUnitId: r }, this._direction, this.applyType)); }), a = i.filter((e30) => e30.type === vl3.ONLY); if (a.length > 0) return this._getOneByPriority(a); let o = this._getOneByPriority(i.filter((e30) => e30.type === vl3.DEFAULT)), s = i.filter((e30) => e30.type === vl3.APPEND) || []; return [...o, ...s]; } get applyType() { return this._applyType$.getValue(); } set applyType(e29) { this._applyType$.next(e29); } get menu() { return this._menu$.getValue(); } get direction() { return this._direction; } set direction(e29) { this._direction = e29; } isFillingStyle() { return this._isFillingStyle; } setFillingStyle(e29) { this._isFillingStyle = e29; } get autoFillLocation() { return this._autoFillLocation$.getValue(); } set autoFillLocation(e29) { this._autoFillLocation$.next(e29); } setDisableApplyType(e29, t) { this._menu$.next(this._menu$.getValue().map((n) => n.value === e29 ? { ...n, disable: t } : n)); } setShowMenu(e29) { this._showMenu$.next(e29); } fillData(e29) { var t; this.applyType = e29; let n = this._univerInstanceService.getCurrentUnitOfType(O.UNIVER_SHEET), r = n == null ? void 0 : n.getUnitId(), i = n == null || (t = n.getActiveSheet()) == null ? void 0 : t.getSheetId(), { source: a, target: o, unitId: s = r, subUnitId: c = i } = this.autoFillLocation || {}; if (!a || !o || !s || !c) return false; let l = this._univerInstanceService.getUnit(s, O.UNIVER_SHEET); if (!l) return false; let u = l.getSheetBySheetId(c); if (!u) return false; let d = this.direction; this._prevUndos.length > 0 && this._prevUndos.forEach((e30) => { this._commandService.syncExecuteCommand(e30.id, e30.params); }), this._prevUndos = []; let f = G.union(Oi2(a), Oi2(o)), p = this.getActiveHooks(); s === r && c === i && this._commandService.syncExecuteCommand(X4.id, { selections: [{ primary: Yi2({ startRow: a.rows[0], endRow: a.rows[a.rows.length - 1], startColumn: a.cols[0], endColumn: a.cols[a.cols.length - 1] }, u), range: { ...f, rangeType: B.NORMAL } }], unitId: s, subUnitId: c }); let m = [], h = []; p.forEach((t2) => { var n2; let { undos: r2, redos: i2 } = ((n2 = t2.onFillData) == null ? void 0 : n2.call(t2, { source: a, target: o, unitId: s, subUnitId: c }, d, e29)) || {}; r2 && m.push(...r2), i2 && h.push(...i2); }); let g2 = h.every((e30) => this._commandService.syncExecuteCommand(e30.id, e30.params)), { redos: _2, undos: v } = this._getAutoHeightUndoRedos(h, l, u); return h.push(..._2), m.push(...v), g2 && (this._prevUndos = m, this._undoRedoService.pushUndoRedo({ unitID: s, undoMutations: m, redoMutations: h })), p.forEach((t2) => { var n2; (n2 = t2.onAfterFillData) == null || n2.call(t2, { source: a, target: o, unitId: s, subUnitId: c }, d, e29); }), this.setShowMenu(true), true; } _getAutoHeightUndoRedos(e29, t, n) { if (this.applyType === $4.NO_FORMAT) return { undos: [], redos: [] }; let r = [], i = n.getConfig().defaultRowHeight, a = n.getRowManager(); if (e29.forEach((e30) => { if (e30.id === J4.id) { let { cellValue: o2 } = e30.params; new Sa(o2).forValue((e31, o3, s2) => { let c2 = Object.keys(t.getStyles().get(s2 == null ? void 0 : s2.s) || {}); if (s2 != null && s2.p || c2.length && vc3.some((e32) => c2.includes(e32))) { let t2 = n.getCellHeight(e31, o3), s3 = a.getRow(e31); (!s3 && t2 !== i || s3 && t2 !== a.getRowHeight(e31)) && r.push({ row: e31, autoHeight: t2 }); } }); } }), r.length === 0) return { undos: [], redos: [] }; let o = { unitId: t.getUnitId(), subUnitId: n.getSheetId(), rowsAutoHeightInfo: r }, s = Ir3(o, n), c = { id: zr3.id, params: o }; return this._commandService.syncExecuteCommand(c.id, c.params) ? { redos: [c], undos: [{ id: zr3.id, params: s }] } : { undos: [], redos: [] }; } }; Ul2 = G4([W4(0, ii), W4(1, td), W4(2, Inject(Mu)), W4(3, Inject(Injector))], Ul2); var Wl2 = createIdentifier(`univer.auto-fill-service`); var Gl3 = { type: ri.COMMAND, id: `sheet.command.auto-fill`, handler: async (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { unitId: r, subUnitId: i } = n, { sourceRange: a, targetRange: o, applyType: s } = t; return e29.get(Wl2).triggerAutoFill(r, i, a, o, s); } }; function Kl3(e29, t) { let n = e29.get(Y4).getCurrentLastSelection(); if (!n) return null; let r = V4(e29.get(Mu)); if (!r) return null; let { unitId: i, subUnitId: a } = r, { startRow: o, endRow: s, startColumn: c, endColumn: l } = n.range; return t === `down` ? o === s ? o === 0 ? null : { sourceRange: { startRow: o - 1, endRow: o - 1, startColumn: c, endColumn: l }, targetRange: { startRow: o - 1, endRow: s, startColumn: c, endColumn: l }, unitId: i, subUnitId: a, applyType: $4.COPY } : { sourceRange: { startRow: o, endRow: o, startColumn: c, endColumn: l }, targetRange: { startRow: o, endRow: s, startColumn: c, endColumn: l }, unitId: i, subUnitId: a, applyType: $4.COPY } : c === l ? c === 0 ? null : { sourceRange: { startRow: o, endRow: s, startColumn: c - 1, endColumn: c - 1 }, targetRange: { startRow: o, endRow: s, startColumn: c - 1, endColumn: l }, unitId: i, subUnitId: a, applyType: $4.COPY } : { sourceRange: { startRow: o, endRow: s, startColumn: c, endColumn: c }, targetRange: { startRow: o, endRow: s, startColumn: c, endColumn: l }, unitId: i, subUnitId: a, applyType: $4.COPY }; } async function ql3(e29, t) { let n = Kl3(e29, t); if (!n) return false; let r = await e29.get(ii).executeCommand(Gl3.id, n); return r && e29.get(Wl2).setShowMenu(false), r; } var Jl3 = { type: ri.COMMAND, id: `sheet.command.copy-down`, handler: async (e29) => ql3(e29, `down`) }; var Yl3 = { type: ri.COMMAND, id: `sheet.command.copy-right`, handler: async (e29) => ql3(e29, `right`) }; var Xl3 = { id: `sheet.command.auto-clear-content`, type: ri.COMMAND, handler: async (e29, t) => { let n = V4(e29.get(Mu)); if (!n) return false; let r = e29.get(ii), i = e29.get(td), a = e29.get(K4), o = e29.get(Y4), { unitId: s, subUnitId: c } = n, { clearRange: l, selectionRange: u } = t, { startColumn: d, startRow: f } = u, p = { subUnitId: c, unitId: s, cellValue: Ei2([l]) }, m = gr3(e29, p), h = [{ id: J4.id, params: p }, { id: X4.id, params: { selections: [{ primary: { startColumn: d, startRow: f, endColumn: d, endRow: f, actualRow: f, actualColumn: d, isMerged: false, isMergedMainCell: false }, range: { ...u } }], unitId: s, subUnitId: c } }], g2 = [{ id: J4.id, params: m }, { id: X4.id, params: { selections: [o.getCurrentLastSelection()], unitId: s, subUnitId: c } }]; if (li(h, r)) { let e30 = a.afterCommandExecute({ id: J4.id, params: p }); return li(e30.redos, r), i.pushUndoRedo({ unitID: s, undoMutations: [...g2, ...e30.undos], redoMutations: [...h, ...e30.redos] }), true; } return false; } }; var Zl3 = { id: `sheet.command.clear-selection-content`, type: ri.COMMAND, handler: (e29, t) => { var n; let r = e29.get(Mu), i = e29.get(ii), a = e29.get(Y4), o = e29.get(td), s = e29.get(K4), c = r.getCurrentUnitForType(O.UNIVER_SHEET); if (!c) return false; let l = (t == null ? void 0 : t.unitId) || c.getUnitId(), u = c.getActiveSheet(); if (!u) return false; let d = (t == null ? void 0 : t.subUnitId) || u.getSheetId(), f = (t == null ? void 0 : t.ranges) || ((n = a.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(f != null && f.length)) return false; let p = { subUnitId: d, unitId: l, cellValue: Ei2(Ai2(f, e29, l, d)) }, m = gr3(e29, p), h = s.onCommandExecute({ id: Zl3.id }), g2 = [{ id: J4.id, params: p }, ...h.redos], _2 = [...h.undos, { id: J4.id, params: m }]; return li(g2, i).result ? (o.pushUndoRedo({ unitID: l, undoMutations: _2, redoMutations: g2 }), true) : false; } }; var Ql2 = `sheets.config`; Symbol(Ql2); var $l3 = { largeSheetCellCountThreshold: 6e3, batchSize: 3e3 }; var eu3 = {}; var tu3 = class extends E { constructor(e29, t) { super(), this._commandService = e29, this._univerInstanceService = t, U4(this, `_tasks`, /* @__PURE__ */ new Map()), U4(this, `_idleCallbackId`, null), U4(this, `_beforeUnloadHandler`, null), this._setupBeforeUnloadListener(), this.disposeWithMe(() => { this._cancelAllTasks(), this._removeBeforeUnloadListener(); }); } hasPendingTasks() { return this._tasks.size > 0; } getPendingMutationsCount() { let e29 = 0; for (let t of this._tasks.values()) e29 += t.mutations.length - t.currentIndex; return e29; } scheduleMutations(e29, t, n) { if (n.length === 0) return; let r = `${e29}_${t}`; this._cancelTask(r), this._tasks.set(r, { unitId: e29, subUnitId: t, mutations: n, currentIndex: 0 }), this._scheduleNextIdle(); } cancelScheduledMutations(e29, t) { let n = `${e29}_${t}`; this._cancelTask(n); } _cancelTask(e29) { this._tasks.delete(e29), this._tasks.size === 0 && this._idleCallbackId !== null && (typeof cancelIdleCallback < `u` && cancelIdleCallback(this._idleCallbackId), this._idleCallbackId = null); } _cancelAllTasks() { this._tasks.clear(), this._idleCallbackId !== null && (typeof cancelIdleCallback < `u` && cancelIdleCallback(this._idleCallbackId), this._idleCallbackId = null); } _scheduleNextIdle() { this._idleCallbackId === null && (typeof requestIdleCallback < `u` ? this._idleCallbackId = requestIdleCallback((e29) => this._processIdleTasks(e29), { timeout: 1e3 * 60 }) : this._idleCallbackId = setTimeout(() => { this._processIdleTasks({ didTimeout: false, timeRemaining: () => 16 }); }, 16)); } _processIdleTasks(e29) { this._idleCallbackId = null; for (let [t, n] of this._tasks) { if (!this._isSheetExist(n.unitId, n.subUnitId)) { this._tasks.delete(t); continue; } for (n.currentIndex; n.currentIndex < n.mutations.length; ) { if (e29.timeRemaining() <= 0 && !e29.didTimeout) { this._scheduleNextIdle(); return; } let t2 = n.mutations[n.currentIndex]; this._commandService.syncExecuteCommand(t2.id, t2.params, { onlyLocal: true }), n.currentIndex++; } this._tasks.delete(t); } this._tasks.size > 0 && this._scheduleNextIdle(); } _isSheetExist(e29, t) { let n = this._univerInstanceService.getUnit(e29, O.UNIVER_SHEET); return n ? n.getSheetBySheetId(t) !== null : false; } _setupBeforeUnloadListener() { typeof window > `u` || (this._beforeUnloadHandler = (e29) => { if (this.hasPendingTasks()) return e29.preventDefault(), e29.returnValue = ``, ``; }, window.addEventListener(`beforeunload`, this._beforeUnloadHandler)); } _removeBeforeUnloadListener() { typeof window > `u` || !this._beforeUnloadHandler || (window.removeEventListener(`beforeunload`, this._beforeUnloadHandler), this._beforeUnloadHandler = null); } }; tu3 = G4([W4(0, ii), W4(1, Mu)], tu3); var nu3 = { id: `sheet.mutation.copy-worksheet-end`, type: ri.MUTATION, handler: () => true }; var ru2 = (e29, t) => ({ subUnitId: t.sheet.id, unitId: t.unitId, subUnitName: t.sheet.name }); var iu3 = { id: `sheet.mutation.insert-sheet`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu), { sheet: r, index: i, unitId: a, styles: o } = t, s = n.getUniverSheetInstance(a); return s ? (o && s.addStyles(o), s.addWorksheet(r.id, i, su(r))) : false; } }; function au3(e29) { let t = 0; for (let n of Object.keys(e29)) { let r = e29[Number(n)]; r && (t += Object.keys(r).length); } return t; } function ou3(e29, t, n, r) { let i = [], a = {}, o = 0; for (let e30 in n) { let t2 = Number(e30), s = n[t2]; if (!s) continue; let c = Object.keys(s).length; o > 0 && o + c > r && (i.push(a), a = {}, o = 0), a[t2] = s, o += c, o >= r && (i.push(a), a = {}, o = 0); } return o > 0 && i.push(a), { firstChunkCellData: i.length > 0 ? i[0] : {}, remainingMutations: i.slice(1).map((n2) => ({ id: J4.id, params: { unitId: e29, subUnitId: t, cellValue: n2, __splitChunk__: true } })) }; } var su3 = `sheet.command.copy-sheet`; function cu3(e29, t, n, r, i, a, o) { var s, c; let l = e29.get(Yr).getConfig(Ql2), u = { ...$l3, ...l == null ? void 0 : l.largeSheetOperation }, d = su(n.getConfig()); d.name = uu2(t, a, d.name); let f = O2(); d.id = f; let p = t.getSheetIndex(n), { cellData: m } = d, h = au3(m) >= u.largeSheetCellCountThreshold, g2, _2 = []; if (h) { let { firstChunkCellData: e30, remainingMutations: t2 } = ou3(r, f, m, u.batchSize), n2 = { ...d, cellData: e30 }; g2 = { index: p + 1, sheet: n2, unitId: r }, _2 = t2; } else g2 = { index: p + 1, sheet: d, unitId: r }; let v = ru2(e29, g2), y = o.onCommandExecute({ id: su3, params: { unitId: r, subUnitId: i, targetSubUnitId: d.id } }); return { redos: [...(s = y.preRedos) == null ? [] : s, { id: iu3.id, params: g2 }, ...y.redos], undos: [...(c = y.preUndos) == null ? [] : c, { id: Ro3.id, params: v }, ...y.undos], unitId: r, newSheetId: f, isSplit: h, scheduledMutations: _2 }; } var lu3 = { type: ri.COMMAND, id: su3, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = e29.get(Mu), a = e29.get(K4), o = e29.get(zu), s = e29.get(tu3), c = V4(i, t); if (!c) return false; let { workbook: l, worksheet: u, unitId: d, subUnitId: f } = c, { redos: p, undos: m, newSheetId: h, isSplit: g2, scheduledMutations: _2 } = cu3(e29, l, u, d, f, o, a); if (li(p, n).result) { if (g2) { if (r.pushUndoRedo({ unitID: d, undoMutations: m, redoMutations: [] }), _2.length > 0) { for (let e30 of _2) n.syncExecuteCommand(e30.id, e30.params, { syncOnly: true }); n.syncExecuteCommand(nu3.id, { unitId: d, subUnitId: h }, { syncOnly: true }), s.scheduleMutations(d, h, _2); } } else r.pushUndoRedo({ unitID: d, undoMutations: m, redoMutations: p }); return true; } return false; } }; function uu2(e29, t, n) { let r = `${n} ${t.t(`sheets.tabs.sheetCopy`, ``)}`, i = 2; for (; e29.checkSheetName(r); ) r = `${n} ${t.t(`sheets.tabs.sheetCopy`, `${i}`)}`, i++; return r; } var du3 = { type: ri.COMMAND, id: `sheet.command.delete-range-protection`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), { unitId: i, subUnitId: a, rule: o } = t, s = { unitId: i, subUnitId: a, ruleIds: [o.id] }; return await n.executeCommand(Fi2.id, s) && r.pushUndoRedo({ unitID: i, redoMutations: [{ id: Fi2.id, params: s }], undoMutations: [{ id: Li2.id, params: { unitId: i, subUnitId: a, rules: [o] } }] }), true; } }; var fu2 = { type: ri.COMMAND, id: `sheet.command.delete-worksheet-protection`, handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), { rule: i, unitId: a, subUnitId: o } = t; n.executeCommand(mc3.id, { unitId: a, subUnitId: o }); let s = [{ id: mc3.id, params: { unitId: a, subUnitId: o } }], c = [{ id: pc3.id, params: { unitId: a, rule: i, subUnitId: o } }]; return r.pushUndoRedo({ unitID: a, redoMutations: s, undoMutations: c }), true; } }; var pu2 = { type: ri.COMMAND, id: `sheet.command.remove-worksheet-range-theme-style`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), { unitId: i } = t, a = bn2(e29, t); return n.syncExecuteCommand(yn3.id, t) ? (r.pushUndoRedo({ unitID: i, undoMutations: [{ id: _n3.id, params: a }], redoMutations: [{ id: yn3.id, params: t }] }), true) : false; } }; var mu2 = { id: `sheet.command.insert-defined-name`, type: ri.COMMAND, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td); if (!t) return false; let i = { ...t }; return n.syncExecuteCommand(hr2.id, i) ? (r.pushUndoRedo({ unitID: t.unitId, undoMutations: [{ id: gr2.id, params: i }], redoMutations: [{ id: hr2.id, params: i }] }), true) : false; } }; var hu2 = { id: `sheet.command.insert-sheet`, type: ri.COMMAND, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = e29.get(Mu), a = e29.get(zu), o = Lt2(i, { unitId: t == null ? void 0 : t.unitId }); if (!o) return false; let { unitId: s, workbook: c } = o, l = c.getSheets().length, u = t == null ? void 0 : t.sheet, d = u == null ? void 0 : u.id, f = Su(u || {}); if (t) { var p; l = (p = t.index) == null ? l : p, f.id = d || O2(), f.name = (u == null ? void 0 : u.name) || c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`); } else f.id = O2(), f.name = c.generateNewSheetName(`${a.t(`sheets.tabs.sheet`)}`); let m = { index: l, sheet: f, unitId: s }, h = ru2(e29, m); return n.syncExecuteCommand(iu3.id, m) ? (r.pushUndoRedo({ unitID: s, undoMutations: [{ id: Ro3.id, params: h }], redoMutations: [{ id: iu3.id, params: m }] }), true) : false; } }; var gu2 = { id: `sheet.command.refill`, type: ri.COMMAND, handler: async (e29, t) => e29.get(Wl2).fillData(t.type) }; var _u2 = { id: `sheet.mutation.register-worksheet-range-theme-style`, type: ri.MUTATION, handler: (e29, t) => { if (!V4(e29.get(Mu), t)) return false; let n = e29.get(gn3), { unitId: r, rangeThemeStyleJson: i, themeName: a } = t, o = new en3(a, i); return n.registerRangeThemeStyle(r, o), true; } }; var vu2 = { id: `sheet.mutation.unregister-worksheet-range-theme-style`, type: ri.MUTATION, handler: (e29, t) => { if (!V4(e29.get(Mu), t)) return false; let n = e29.get(gn3), { unitId: r, themeName: i } = t; return n.unregisterRangeThemeStyle(r, i), true; } }; var yu2 = { id: `sheet.command.register-worksheet-range-theme-style`, type: ri.COMMAND, handler: (e29, t) => { if (!t) return false; let { unitId: n, rangeThemeStyle: r } = t, i = e29.get(Mu), a = e29.get(ii), o = e29.get(td); if (!V4(i, t)) return false; let s = { unitId: n, themeName: r.getName(), rangeThemeStyleJson: r.toJson() }, c = { unitId: n, themeName: r.getName() }; return a.syncExecuteCommand(_u2.id, s) && o.pushUndoRedo({ unitID: n, undoMutations: [{ id: vu2.id, params: c }], redoMutations: [{ id: _u2.id, params: s }] }), true; } }; var bu2 = { id: `sheet.command.remove-defined-name`, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(K4); if (!t) return false; let s = { ...t }, c = o.onCommandExecute({ id: bu2.id, params: t }), l = [...(n = c.preRedos) == null ? [] : n, { id: gr2.id, params: s }, ...c.redos], u = [...(r = c.preUndos) == null ? [] : r, { id: hr2.id, params: s }, ...c.undos]; return li(l, i) ? (a.pushUndoRedo({ unitID: t.unitId, undoMutations: u.filter(Boolean), redoMutations: l.filter(Boolean) }), true) : false; } }; var xu2 = { id: `sheet.command.remove-sheet`, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(Mu), s = e29.get(K4), c = e29.get(Yr), l = V4(o, t); if (!l) return false; let { unitId: u, subUnitId: d, workbook: f, worksheet: p } = l; if (f.getSheets().length <= 1) return false; let m = c.getConfig(Ql2), h = { ...$l3, ...m == null ? void 0 : m.largeSheetOperation }, g2 = Yo2(p.getCellMatrix()) >= h.largeSheetCellCountThreshold, _2 = { subUnitId: d, unitId: u, subUnitName: p.getName() }, v = g2 ? null : Lo3(e29, _2), y = s.onCommandExecute({ id: xu2.id, params: { unitId: u, subUnitId: d } }), b = [...(n = y.preRedos) == null ? [] : n, { id: Ro3.id, params: _2 }, ...y.redos], x2 = g2 ? [] : [...(r = y.preUndos) == null ? [] : r, { id: iu3.id, params: v }, ...y.undos]; return li(b, i).result ? (g2 ? a.clearUndoRedo(u) : a.pushUndoRedo({ unitID: u, undoMutations: x2, redoMutations: b }), true) : false; } }; var Su3 = class { constructor() { U4(this, `_borderInfo`, { type: On.ALL, color: `#000000`, style: k.THIN, activeBorderType: false }), U4(this, `_borderInfo$`, new BehaviorSubject(this._borderInfo)), U4(this, `borderInfo$`, this._borderInfo$.asObservable()); } dispose() { this._borderInfo$.complete(); } setType(e29) { this._borderInfo.type = e29, this.setActiveBorderType(true), this._refresh(); } setColor(e29) { this._borderInfo.color = e29, this._refresh(); } setStyle(e29) { this._borderInfo.style = e29, this._refresh(); } setActiveBorderType(e29) { this._borderInfo.activeBorderType = e29; } getBorderInfo() { return this._borderInfo; } _refresh() { this._borderInfo$.next(this._borderInfo); } }; function Cu3(e29, t) { let { startRow: n, startColumn: r, endRow: i, endColumn: a } = e29; for (let e30 = n; e30 <= i; e30++) for (let n2 = r; n2 <= a; n2++) t(e30, n2); } var wu3 = (e29, t, n, r) => { let { mr: i, worksheet: a } = e29; t.startRow < 0 || t.startColumn < 0 || Cu3(t, (e30, t2) => { let o = a.getMergedCell(e30, t2), s = n; if (o && (n.bc_tr || n.ml_tr || n.bl_tr || n.tl_mr || n.tl_bc || n.tl_br)) { if (r) { var c; let e31 = D.deepClone((c = i.getValue(o.startRow, o.startColumn)) == null ? void 0 : c.s); s = e31 != null && e31.bd ? Object.assign(e31.bd, n) : n; } i.setValue(o.startRow, o.startColumn, { s: { bd: s } }); } else { if (r) { var l; let r2 = D.deepClone((l = i.getValue(e30, t2)) == null ? void 0 : l.s); s = r2 != null && r2.bd ? Object.assign(r2.bd, n) : n; } i.setValue(e30, t2, { s: { bd: s } }); } }); }; var Tu3 = (e29) => ({ topRangeOut: { startRow: e29.startRow - 1, startColumn: e29.startColumn, endRow: e29.startRow - 1, endColumn: e29.endColumn }, leftRangeOut: { startRow: e29.startRow, startColumn: e29.startColumn - 1, endRow: e29.endRow, endColumn: e29.startColumn - 1 }, bottomRangeOut: { startRow: e29.endRow + 1, startColumn: e29.startColumn, endRow: e29.endRow + 1, endColumn: e29.endColumn }, rightRangeOut: { startRow: e29.startRow, startColumn: e29.endColumn + 1, endRow: e29.endRow, endColumn: e29.endColumn + 1 }, topRange: { startRow: e29.startRow, startColumn: e29.startColumn, endRow: e29.startRow, endColumn: e29.endColumn }, leftRange: { startRow: e29.startRow, startColumn: e29.startColumn, endRow: e29.endRow, endColumn: e29.startColumn }, bottomRange: { startRow: e29.endRow, startColumn: e29.startColumn, endRow: e29.endRow, endColumn: e29.endColumn }, rightRange: { startRow: e29.startRow, startColumn: e29.endColumn, endRow: e29.endRow, endColumn: e29.endColumn } }); function Eu3(e29, t, n) { let { style: r, color: i, type: o } = e29.getBorderInfo(), s = o === On.TOP || o === On.ALL || o === On.OUTSIDE, c = o === On.LEFT || o === On.ALL || o === On.OUTSIDE, l = o === On.BOTTOM || o === On.ALL || o === On.OUTSIDE, u = o === On.RIGHT || o === On.ALL || o === On.OUTSIDE, d = o === On.VERTICAL || o === On.ALL || o === On.INSIDE, f = o === On.HORIZONTAL || o === On.ALL || o === On.INSIDE, p = o.indexOf(`tlbr`) > -1, m = o.indexOf(`tlbc`) > -1, h = o.indexOf(`tlmr`) > -1, g2 = o.indexOf(`bltr`) > -1, _2 = o.indexOf(`mltr`) > -1, v = o.indexOf(`bctr`) > -1, y = n[0], { topRangeOut: b, leftRangeOut: x2, bottomRangeOut: S4, rightRangeOut: C3, topRange: w2, leftRange: T4, bottomRange: E4, rightRange: ee } = Tu3(y), D4 = new Sa(), { worksheet: te, unitId: ne, subUnitId: O5 } = t; return { worksheet: te, unitId: ne, subUnitId: O5, style: r, color: i, type: o, top: s, left: c, right: u, bottom: l, vertical: d, horizontal: f, tl_br: p, tl_bc: m, tl_mr: h, bl_tr: g2, ml_tr: _2, bc_tr: v, topRangeOut: b, leftRangeOut: x2, bottomRangeOut: S4, rightRangeOut: C3, topRange: w2, leftRange: T4, bottomRange: E4, rightRange: ee, range: y, mr: D4, borderStyle: { s: r, cl: { rgb: i } } }; } var Du3 = (e29) => { let { range: t, mr: n, borderStyle: r, vertical: i, horizontal: a, worksheet: o } = e29; i && Cu3(t, (e30, i2) => { let a2 = o.getMergedCell(e30, i2); if (a2) { var s; let o2 = (s = n.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : s.s; a2.startColumn !== t.startColumn && n.setValue(e30, i2, { s: { bd: o2 != null && o2.bd ? Object.assign(o2.bd, { l: D.deepClone(r) }) : { l: D.deepClone(r) } } }); } else { if (i2 !== t.endColumn) { var c; let t2 = (c = n.getValue(e30, i2)) == null ? void 0 : c.s; n.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { r: D.deepClone(r) }) : { r: D.deepClone(r) } } }); } if (i2 !== t.startColumn) { var l; let t2 = (l = n.getValue(e30, i2)) == null ? void 0 : l.s; n.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { l: D.deepClone(r) }) : { l: D.deepClone(r) } } }); } } }), a && Cu3(t, (e30, i2) => { let a2 = o.getMergedCell(e30, i2); if (a2) { var s; let o2 = (s = n.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : s.s; a2.startRow !== t.startRow && n.setValue(e30, i2, { s: { bd: o2 != null && o2.bd ? Object.assign(o2.bd, { t: D.deepClone(r) }) : { t: D.deepClone(r) } } }); } else { if (e30 !== t.endRow) { var c; let t2 = (c = n.getValue(e30, i2)) == null ? void 0 : c.s; n.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { b: D.deepClone(r) }) : { b: D.deepClone(r) } } }); } if (e30 !== t.startRow) { var l; let t2 = (l = n.getValue(e30, i2)) == null ? void 0 : l.s; n.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { t: D.deepClone(r) }) : { t: D.deepClone(r) } } }); } } }); }; function Ou2(e29) { let { borderStyle: t, tl_br: n, tl_bc: r, tl_mr: i, bl_tr: a, ml_tr: o, bc_tr: s } = e29, c = (t2, n2, r2) => { wu3(e29, t2, n2, r2); }; n && c(e29.range, { tl_br: D.deepClone(t) }, true), r && c(e29.range, { tl_bc: D.deepClone(t) }, true), i && c(e29.range, { tl_mr: D.deepClone(t) }, true), a && c(e29.range, { bl_tr: D.deepClone(t) }, true), o && c(e29.range, { ml_tr: D.deepClone(t) }, true), s && c(e29.range, { bc_tr: D.deepClone(t) }, true); } var ku2 = (e29) => { let { top: t, left: n, right: r, bottom: i, borderStyle: a, bottomRange: o, topRange: s, leftRange: c, rightRange: l, bottomRangeOut: u, topRangeOut: d, leftRangeOut: f, rightRangeOut: p } = e29, m = (t2, n2, r2) => { wu3(e29, t2, n2, r2); }; t && (m(d, { b: null }), m(s, { t: D.deepClone(a) }, true)), i && (m(u, { t: null }), m(o, { b: D.deepClone(a) }, true)), n && (m(f, { r: null }), m(c, { l: D.deepClone(a) }, true)), r && (m(p, { l: null }), m(l, { r: D.deepClone(a) }, true)); }; var Au3 = (e29) => { let { range: t, worksheet: n, mr: r, top: i, bottom: a, left: o, right: s, vertical: c, horizontal: l, tl_br: u, tl_bc: d, tl_mr: f, bl_tr: p, ml_tr: m, bc_tr: h, topRange: g2, bottomRange: _2, leftRange: v, rightRange: y, topRangeOut: b, bottomRangeOut: x2, leftRangeOut: S4, rightRangeOut: C3 } = e29, w2 = (t2, n2, r2) => { wu3(e29, t2, n2, r2); }; !i && !a && !o && !s && !c && !l && !u && !d && !f && !p && !m && !h && (Cu3(t, (e30, i2) => { let a2 = n.getMergedCell(e30, i2); if (a2) { if (a2.endColumn !== t.endColumn) { var o2; let t2 = (o2 = r.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : o2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { r: null }) : { r: null } } }); } if (a2.startColumn !== t.startColumn) { var s2; let t2 = (s2 = r.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : s2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { l: null }) : { l: null } } }); } if (a2.endRow !== t.endRow) { var c2; let t2 = (c2 = r.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : c2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { b: null }) : { b: null } } }); } if (a2.startRow !== t.startRow) { var l2; let t2 = (l2 = r.getValue(a2.startRow, a2.startColumn)) == null ? void 0 : l2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { t: null }) : { t: null } } }); } } else { if (i2 !== t.endColumn) { var u2; let t2 = (u2 = r.getValue(e30, i2)) == null ? void 0 : u2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { r: null }) : { r: null } } }); } if (i2 !== t.startColumn) { var d2; let t2 = (d2 = r.getValue(e30, i2)) == null ? void 0 : d2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { l: null }) : { l: null } } }); } if (e30 !== t.endRow) { var f2; let t2 = (f2 = r.getValue(e30, i2)) == null ? void 0 : f2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { b: null }) : { b: null } } }); } if (e30 !== t.startRow) { var p2; let t2 = (p2 = r.getValue(e30, i2)) == null ? void 0 : p2.s; r.setValue(e30, i2, { s: { bd: t2 != null && t2.bd ? Object.assign(t2.bd, { t: null }) : { t: null } } }); } } }), w2(b, { b: null }), w2(g2, { t: null }, true), w2(x2, { t: null }), w2(_2, { b: null }, true), w2(S4, { r: null }), w2(v, { l: null }, true), w2(C3, { l: null }), w2(y, { r: null }, true), w2(t, { tl_br: null }, true), w2(t, { tl_bc: null }, true), w2(t, { tl_mr: null }, true), w2(t, { bl_tr: null }, true), w2(t, { ml_tr: null }, true), w2(t, { bc_tr: null }, true)); }; var ju3 = { id: `sheet.command.set-border`, type: ri.COMMAND, handler: (e29, t) => { var n; let r = e29.get(ii), i = e29.get(td), a = e29.get(Mu), o = e29.get(Y4), s = e29.get(Su3), c = V4(a, t); if (!c) return false; let l = (t == null ? void 0 : t.ranges) || ((n = o.getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(l != null && l.length)) return false; let { activeBorderType: u } = s.getBorderInfo(); if (!u) return false; let d = Eu3(s, c, l); Du3(d), ku2(d), Ou2(d), Au3(d); let { unitId: f, subUnitId: p, mr: m } = d, h = { unitId: f, subUnitId: p, cellValue: m.getData() }, g2 = gr3(e29, h); return r.syncExecuteCommand(J4.id, h) ? (i.pushUndoRedo({ unitID: f, undoMutations: [{ id: J4.id, params: g2 }], redoMutations: [{ id: J4.id, params: h }] }), true) : false; } }; var Mu3 = { id: `sheet.command.set-border-position`, type: ri.COMMAND, handler: (e29, t) => { if (!t.value) return false; let n = e29.get(ii); return e29.get(Su3).setType(t.value), n.syncExecuteCommand(ju3.id); } }; var Nu3 = { id: `sheet.command.set-border-style`, type: ri.COMMAND, handler: (e29, t) => { let n = e29.get(ii); return e29.get(Su3).setStyle(t.value), n.syncExecuteCommand(ju3.id); } }; var Pu3 = { id: `sheet.command.set-border-color`, type: ri.COMMAND, handler: (e29, t) => { let n = e29.get(ii); return e29.get(Su3).setColor(t.value), n.syncExecuteCommand(ju3.id); } }; var Fu3 = { id: `sheet.command.set-border-basic`, type: ri.COMMAND, handler: (e29, t) => { let { unitId: n, subUnitId: r, value: i, ranges: a } = t, { type: o, color: s, style: c } = i, l = e29.get(ii), u = e29.get(Su3); return u.setType(o), s && u.setColor(s), u.setStyle(c), l.syncExecuteCommand(ju3.id, { unitId: n, subUnitId: r, ranges: a }); } }; var Iu3 = { type: ri.COMMAND, id: `sheet.command.set-col-data`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), t); if (!i) return false; let { columnData: a } = t, { unitId: o, subUnitId: s, worksheet: c } = i, l = { subUnitId: s, unitId: o, columnData: a }, u = zn3(l, c); return n.syncExecuteCommand(Bn3.id, l) ? (r.pushUndoRedo({ unitID: o, undoMutations: [{ id: Bn3.id, params: u }], redoMutations: [{ id: Bn3.id, params: l }] }), true) : false; } }; var Lu3 = { type: ri.COMMAND, id: `sheet.command.set-col-visible-on-cols`, handler: (e29, t) => { let { unitId: n, subUnitId: r, ranges: i } = t, a = e29.get(K4), o = e29.get(ii), s = V4(e29.get(Mu), { unitId: n, subUnitId: r }); if (!s) return false; let { worksheet: c } = s, l = { unitId: n, subUnitId: r, ranges: i }, u = { unitId: n, subUnitId: r, reveal: true, selections: i.map((e30) => ({ range: e30, primary: Yi2(e30, c), style: null })) }, d = Un2(e29, l), f = { unitId: n, subUnitId: r, selections: Vu3(i).map((e30) => ({ range: e30, primary: Yi2(e30, c), style: null })) }, p = li([{ id: Wn3.id, params: l }, { id: X4.id, params: u }], o), m = a.onCommandExecute({ id: Lu3.id, params: t }), h = li([...m.redos], o); if (p.result && h.result) { var g2, _2; let r2 = a.afterCommandExecute({ id: Lu3.id, params: t }); return li(r2.redos, o), e29.get(td).pushUndoRedo({ unitID: n, undoMutations: [{ id: Hn3.id, params: d }, { id: X4.id, params: f }, ...(g2 = m.undos) == null ? [] : g2, ...r2.undos], redoMutations: [...(_2 = m.preRedos) == null ? [] : _2, { id: Wn3.id, params: l }, { id: X4.id, params: u }, ...m.redos, ...r2.redos] }), true; } return true; } }; var Ru3 = { type: ri.COMMAND, id: `sheet.command.set-selected-cols-visible`, handler: (e29) => { var t; let n = e29.get(Y4), r = e29.get(ii), i = (t = n.getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range).filter((e30) => e30.rangeType === B.COLUMN); if (!(i != null && i.length)) return false; let a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, unitId: s, subUnitId: c } = a, l = i.map((e30) => o.getHiddenCols(e30.startColumn, e30.endColumn)).flat(); return r.executeCommand(Lu3.id, { unitId: s, subUnitId: c, ranges: l }); } }; var zu3 = { type: ri.COMMAND, id: `sheet.command.set-col-hidden`, handler: (e29, t) => { var n, r; let i = e29.get(Y4), a = e29.get(K4), o = e29.get(Mu), s = e29.get(ii), c = !(t == null || (n = t.ranges) == null) && n.length ? t.ranges : (r = i.getCurrentSelections()) == null ? void 0 : r.map((e30) => e30.range).filter((e30) => e30.rangeType === B.COLUMN); if (!(c != null && c.length)) return false; let l = V4(o, t); if (!l) return false; let { worksheet: u, unitId: d, subUnitId: f } = l; c = Bu3(l.worksheet, c); let p = { unitId: d, subUnitId: f, ranges: c }, m = { unitId: d, subUnitId: f, selections: Vu3(c).map((e30) => ({ range: e30, primary: Yi2(e30, u), style: null })) }, h = Vn3(e29, p), g2 = { unitId: d, subUnitId: f, reveal: true, selections: c.map((e30) => ({ range: e30, primary: Yi2(e30, u), style: null })) }, _2 = li([{ id: Hn3.id, params: p }, { id: X4.id, params: m }], s), v = a.onCommandExecute({ id: zu3.id, params: p }), y = li([...v.redos], s); if (_2.result && y.result) { var b, x2; let t2 = a.afterCommandExecute({ id: zu3.id, params: p }); return li(t2.redos, s), e29.get(td).pushUndoRedo({ unitID: d, undoMutations: [{ id: Wn3.id, params: h }, { id: X4.id, params: g2 }, ...(b = v.undos) == null ? [] : b, ...t2.undos], redoMutations: [...(x2 = v.preRedos) == null ? [] : x2, { id: Hn3.id, params: p }, { id: X4.id, params: m }, ...v.redos, ...t2.redos] }), true; } return false; } }; function Bu3(e29, t) { let n = e29.getRowCount() - 1, r = e29.getHiddenCols(), i = []; return t.forEach((e30) => { let t2 = r.filter((t3) => t3.startColumn >= e30.startColumn && t3.endColumn <= e30.endColumn); if (t2.length) { let r2 = e30.startColumn; t2.forEach((e31) => { e31.startColumn > r2 && (i.push({ startColumn: r2, endColumn: e31.startColumn - 1, startRow: 0, endRow: n }), r2 = e31.endColumn + 1); }), r2 <= e30.endColumn && i.push({ startColumn: r2, endColumn: e30.endColumn, startRow: 0, endRow: n }); } else i.push(e30); }), i; } function Vu3(e29) { return Hu3(e29).map((e30) => { let t = e30.startColumn === 0 ? e30.endColumn + 1 : e30.startColumn - 1; return { ...e30, startColumn: t, endColumn: t }; }); } function Hu3(e29) { let t = [], n; return e29.sort((e30, t2) => e30.startColumn - t2.startColumn).forEach((e30) => { if (!n) { n = e30; return; } n.endColumn === e30.startColumn - 1 ? n.endColumn = e30.endColumn : (t.push(n), n = e30); }), t.push(n), t; } var Uu3 = { id: `sheet.command.set-defined-name`, type: ri.COMMAND, handler: (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(K4); if (!t) return false; let s = { ...t }, c = mr2(e29, t), l = o.onCommandExecute({ id: Uu3.id, params: t }), u = [...(n = l.preRedos) == null ? [] : n, { id: gr2.id, params: c }, { id: hr2.id, params: s }, ...l.redos], d = [...(r = l.preUndos) == null ? [] : r, { id: gr2.id, params: s }, { id: hr2.id, params: c }, ...l.undos]; return li(u, i) ? (a.pushUndoRedo({ unitID: t.unitId, undoMutations: d.filter(Boolean), redoMutations: u.filter(Boolean) }), true) : false; } }; var Wu2 = (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId); if (r == null) throw Error(`worksheet is null error!`); let i = r.getConfig().freeze; return { unitId: t.unitId, subUnitId: t.subUnitId, ...i }; }; var Gu3 = { id: `sheet.mutation.set-frozen`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) throw Error(`universheet is null error!`); let r = n.getSheetBySheetId(t.subUnitId); if (!r) return false; let i = r.getConfig(), { startRow: a, startColumn: o, ySplit: s, xSplit: c } = t; return i.freeze = { startRow: a, startColumn: o, ySplit: s, xSplit: c }, true; } }; var Ku3 = { type: ri.COMMAND, id: `sheet.command.set-frozen`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), { unitId: t.unitId, subUnitId: t.subUnitId }); if (!i) return false; let { unitId: a, subUnitId: o, worksheet: s } = i, { startColumn: c, startRow: l, xSplit: u, ySplit: d } = t; if (l >= s.getRowCount() || c >= s.getColumnCount() || u >= s.getColumnCount() || d >= s.getRowCount()) return false; let f = { unitId: a, subUnitId: o, ...t }, p = Wu2(e29, f); return n.syncExecuteCommand(Gu3.id, f) ? (r.pushUndoRedo({ unitID: a, undoMutations: [{ id: Gu3.id, params: p }], redoMutations: [{ id: Gu3.id, params: f }] }), true) : false; } }; var qu3 = { type: ri.COMMAND, id: `sheet.command.cancel-frozen`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(Mu), i = e29.get(td), a = V4(r, { unitId: t == null ? void 0 : t.unitId, subUnitId: t == null ? void 0 : t.subUnitId }); if (!a) return false; let { unitId: o, subUnitId: s } = a, c = { unitId: o, subUnitId: s, startRow: -1, startColumn: -1, xSplit: 0, ySplit: 0 }, l = Wu2(e29, c); return n.syncExecuteCommand(Gu3.id, c) && i.pushUndoRedo({ unitID: o, undoMutations: [{ id: Gu3.id, params: l }], redoMutations: [{ id: Gu3.id, params: c }] }), true; } }; var Ju3 = { type: ri.COMMAND, id: `sheet.command.set-gridlines-color`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), t); if (!i) return false; let { worksheet: a } = i, o = a.getConfig().gridlinesColor; if (o === (t == null ? void 0 : t.color)) return false; let { unitId: s, subUnitId: c } = i, l = { color: t == null ? void 0 : t.color, unitId: s, subUnitId: c }, u = { color: o, unitId: s, subUnitId: c }; return n.syncExecuteCommand(Gn3.id, l) ? (r.pushUndoRedo({ unitID: s, undoMutations: [{ id: Gn3.id, params: u }], redoMutations: [{ id: Gn3.id, params: l }] }), true) : false; } }; var Yu3 = { id: `sheet.mutation.set-range-protection`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, rule: i, ruleId: a } = t; return e29.get(Ni2).setRule(n, r, a, i), true; } }; var Zu3 = { id: `sheet.mutation.set-worksheet-protection`, type: ri.MUTATION, handler: (e29, t) => { let { unitId: n, subUnitId: r, rule: i } = t; return e29.get(fc3).setRule(n, r, i), true; } }; var Qu3 = { type: ri.COMMAND, id: `sheet.command.set-protection`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), i = e29.get(Ni2), { rule: a, oldRule: o } = t, { unitId: s, subUnitId: c } = a, l = [], u = []; return (o == null ? void 0 : o.unitType) === a.unitType ? a.unitType === S.Worksheet ? (l.push({ id: Zu3.id, params: { unitId: s, subUnitId: c, rule: a } }), u.push({ id: Zu3.id, params: { unitId: s, subUnitId: c, rule: o } })) : (l.push({ id: Yu3.id, params: { unitId: s, subUnitId: c, rule: a, ruleId: a.id } }), u.push({ id: Yu3.id, params: { unitId: s, subUnitId: c, ruleId: o.id, rule: o } })) : (o && (o.unitType === S.Worksheet ? (l.push({ id: mc3.id, params: { unitId: s, subUnitId: c } }), u.push({ id: pc3.id, params: { unitId: s, rule: o, subUnitId: o.subUnitId } })) : o.unitType === S.SelectRange && (l.push({ id: Fi2.id, params: { unitId: s, subUnitId: c, ruleIds: [o.id] } }), u.push({ id: Li2.id, params: { unitId: s, subUnitId: c, rules: [o] } }))), a.unitType === S.Worksheet ? (l.push({ id: pc3.id, params: { unitId: s, rule: a, subUnitId: a.subUnitId } }), u.unshift({ id: mc3.id, params: { unitId: s, subUnitId: c } })) : a.unitType === S.SelectRange && (a.id = i.createRuleId(s, c), l.push({ id: Li2.id, params: { unitId: s, subUnitId: c, rules: [a] } }), u.unshift({ id: Fi2.id, params: { unitId: s, subUnitId: c, ruleIds: [a.id] } }))), li(l, n) && r.pushUndoRedo({ unitID: s, undoMutations: u, redoMutations: l }), true; } }; var $u2 = { id: `sheet.command.set-range-custom-metadata`, type: ri.COMMAND, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let r = e29.get(ii), { unitId: i, subUnitId: a } = n, { range: o, customMetadata: s } = t, { startRow: c, startColumn: l, endRow: u, endColumn: d } = o, f = D.isArray(s), p = new Sa(); for (let e30 = c; e30 <= u; e30++) for (let t2 = l; t2 <= d; t2++) { let n2 = f ? s[e30 - c][t2 - l] : s; p.setValue(e30, t2, n2); } return r.syncExecuteCommand(J4.id, { unitId: i, subUnitId: a, cellValue: p.getMatrix() }); } }; var ed3 = { type: ri.COMMAND, id: `sheet.command.set-row-data`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), t); if (!i) return false; let { rowData: a } = t, { unitId: o, subUnitId: s, worksheet: c } = i, l = { subUnitId: s, unitId: o, rowData: a }, u = br3(l, c); return n.syncExecuteCommand(xr3.id, l) ? (r.pushUndoRedo({ unitID: o, undoMutations: [{ id: xr3.id, params: u }], redoMutations: [{ id: xr3.id, params: l }] }), true) : false; } }; var td3 = { type: ri.COMMAND, id: `sheet.command.set-specific-rows-visible`, handler: (e29, t) => { let { unitId: n, subUnitId: r, ranges: i } = t, a = e29.get(ii), o = e29.get(td), s = e29.get(K4), c = V4(e29.get(Mu), { unitId: n, subUnitId: r }); if (!c) return false; let { worksheet: l } = c, u = { unitId: n, subUnitId: r, ranges: i }, d = { unitId: n, subUnitId: r, reveal: true, selections: i.map((e30) => ({ range: e30, primary: Yi2(e30, l), style: null })) }, f = Sr3(e29, u), p = { unitId: n, subUnitId: r, selections: ad3(i).map((e30) => ({ range: e30, primary: Yi2(e30, l), style: null })) }, m = li([{ id: Cr3.id, params: u }, { id: X4.id, params: d }], a), h = s.onCommandExecute({ id: td3.id, params: t }), g2 = li([...h.redos], a); if (m.result && g2.result) { var _2, v, y; let e30 = s.afterCommandExecute({ id: td3.id, params: t }); return li(e30.redos, a), o.pushUndoRedo({ unitID: n, undoMutations: [...(_2 = h.preUndos) == null ? [] : _2, { id: Tr3.id, params: f }, { id: X4.id, params: p }, ...(v = h.undos) == null ? [] : v, ...e30.undos], redoMutations: [...(y = h.preRedos) == null ? [] : y, { id: Cr3.id, params: u }, { id: X4.id, params: d }, ...h.redos, ...e30.redos] }), true; } return true; } }; var nd3 = { type: ri.COMMAND, id: `sheet.command.set-selected-rows-visible`, handler: async (e29) => { var t; let n = e29.get(Y4), r = e29.get(Mu), i = e29.get(ii), a = (t = n.getCurrentSelections()) == null ? void 0 : t.map((e30) => e30.range).filter((e30) => e30.rangeType === B.ROW); if (!(a != null && a.length)) return false; let o = V4(r); if (!o) return false; let { worksheet: s, unitId: c, subUnitId: l } = o, u = a.map((e30) => s.getHiddenRows(e30.startRow, e30.endRow)).flat(); return i.executeCommand(td3.id, { unitId: c, subUnitId: l, ranges: u }); } }; var rd3 = { type: ri.COMMAND, id: `sheet.command.set-rows-hidden`, handler: (e29, t) => { var n, r, i; let a = e29.get(Y4), o = e29.get(ii), s = e29.get(td), c = e29.get(Mu), l = e29.get(K4), u = !(t == null || (n = t.ranges) == null) && n.length ? t.ranges : (r = a.getCurrentSelections()) == null ? void 0 : r.map((e30) => e30.range).filter((e30) => e30.rangeType === B.ROW); if (!(u != null && u.length)) return false; let d = V4(c, t); if (!d) return false; u = id3(d.worksheet, u); let { unitId: f, subUnitId: p, worksheet: m } = d, h = { unitId: f, subUnitId: p, ranges: u }, g2 = { unitId: f, subUnitId: p, selections: ad3(u).map((e30) => ({ range: e30, primary: Yi2(e30, m), style: null })) }, _2 = wr3(e29, h), v = { unitId: f, subUnitId: p, reveal: true, selections: u.map((e30) => ({ range: e30, primary: Yi2(e30, m), style: null })) }, y = l.onCommandExecute({ id: rd3.id, params: h }); if (li([...(i = y.preRedos) == null ? [] : i, { id: Tr3.id, params: h }, { id: X4.id, params: g2 }, ...y.redos], o).result) { var b, x2, S4; let e30 = l.afterCommandExecute({ id: rd3.id, params: h }); return li(e30.redos, o), s.pushUndoRedo({ unitID: f, undoMutations: [...(b = y.preUndos) == null ? [] : b, { id: Cr3.id, params: _2 }, { id: X4.id, params: v }, ...(x2 = y.undos) == null ? [] : x2, ...e30.undos], redoMutations: [...(S4 = y.preRedos) == null ? [] : S4, { id: Tr3.id, params: h }, { id: X4.id, params: g2 }, ...y.redos, ...e30.redos] }), true; } return true; } }; function id3(e29, t) { let n = e29.getMaxColumns() - 1, r = e29.getHiddenRows(), i = []; return t.forEach((e30) => { let t2 = r.filter((t3) => t3.startRow >= e30.startRow && t3.endRow <= e30.endRow); if (t2.length) { let r2 = e30.startRow; t2.forEach((e31) => { e31.startRow > r2 && (i.push({ startRow: r2, endRow: e31.startRow - 1, startColumn: 0, endColumn: n }), r2 = e31.endRow + 1); }), r2 <= e30.endRow && i.push({ startRow: r2, endRow: e30.endRow, startColumn: 0, endColumn: n }); } else i.push(e30); }), i; } function ad3(e29) { return od3(e29).map((e30) => { let t = e30.startRow === 0 ? e30.endRow + 1 : e30.startRow - 1; return { ...e30, startRow: t, endRow: t }; }); } function od3(e29) { let t = [], n; return e29.sort((e30, t2) => e30.startRow - t2.startRow).forEach((e30) => { if (!n) { n = e30; return; } e30.startRow === n.endRow + 1 ? n.endRow = e30.endRow : (t.push(n), n = e30); }), t.push(n), t; } var sd3 = (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor; return { ...D.deepClone(t), color: n }; }; var cd3 = { id: `sheet.mutation.set-tab-color`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let r = n.getSheetBySheetId(t.subUnitId); return r ? (r.getConfig().tabColor = t.color, true) : false; } }; var ld2 = { type: ri.COMMAND, id: `sheet.command.set-tab-color`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), t); if (!i) return false; let { unitId: a, subUnitId: o } = i, s = { color: t.value, unitId: a, subUnitId: o }, c = sd3(e29, s); return n.syncExecuteCommand(cd3.id, s) ? (r.pushUndoRedo({ unitID: a, undoMutations: [{ id: cd3.id, params: c }], redoMutations: [{ id: cd3.id, params: s }] }), true) : false; } }; var ud2 = { id: `sheet.mutation.set-workbook-name`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUnit(t.unitId, O.UNIVER_SHEET); return n ? (n.setName(t.name), true) : false; } }; var dd3 = { type: ri.COMMAND, id: `sheet.command.set-workbook-name`, handler: (e29, t) => { var n; let r = e29.get(ii), i = e29.get(K4); if (!Lt2(e29.get(Mu), t)) return false; let a = i.onCommandExecute({ id: dd3.id, params: t }), o = { name: t.name, unitId: t.unitId }; return li([...(n = a.preRedos) == null ? [] : n, { id: ud2.id, params: o }, ...a.redos], r).result; } }; var fd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-activate`, handler: (e29, t, n) => { let r = e29.get(ii), i = V4(e29.get(Mu), t); if (!i) return false; let { unitId: a, subUnitId: o } = i; return new Promise((e30) => { setTimeout(() => { e30(r.syncExecuteCommand(Vr3.id, { unitId: a, subUnitId: o }, n)); }, 4); }); } }; var pd2 = { type: ri.COMMAND, id: `sheet.command.delta-column-width`, handler: async (e29, t) => { let n = e29.get(Y4).getCurrentSelections(); if (!(n != null && n.length)) return false; let r = e29.get(ii), i = e29.get(td), a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, unitId: s, subUnitId: c } = a, { anchorCol: l, deltaX: u } = t, d = o.getColumnWidth(l) + u, f = n.length === 1 && n[0].range.rangeType === B.ALL, p = n.filter((e30) => e30.range.rangeType === B.COLUMN), m = f ? B.ALL : p.some(({ range: e30 }) => { let { startColumn: t2, endColumn: n2 } = e30; return t2 <= l && l <= n2; }) ? B.COLUMN : B.NORMAL, h; if (m === B.ALL) { let e30 = o.getRowCount(); h = { subUnitId: c, unitId: s, colWidth: d, ranges: Array(o.getColumnCount()).fill(void 0).map((t2, n2) => ({ startRow: 0, endRow: e30 - 1, startColumn: n2, endColumn: n2 })) }; } else h = m === B.COLUMN ? { subUnitId: c, unitId: s, ranges: p.map((e30) => G.clone(e30.range)), colWidth: d } : { subUnitId: c, unitId: s, colWidth: d, ranges: [{ startRow: 0, endRow: o.getMaxRows() - 1, startColumn: l, endColumn: l }] }; let g2 = e29.get(Ko2).getSkeleton(s, c), { suitableRanges: _2, remainingRanges: v } = Jo3(h.ranges, g2); qo2(_2, o); let y = e29.get(K4), { undos: b, redos: x2 } = y.onCommandExecute({ id: pd2.id, params: h }), S4 = Er3(h, o), w2 = r.syncExecuteCommand(Dr3.id, h), { undos: T4, redos: E4 } = y.generateMutationsOfAutoHeight({ unitId: s, subUnitId: c, ranges: _2, autoHeightRanges: _2, lazyAutoHeightRanges: v }), { undos: ee, redos: D4 } = e29.get(K4).afterCommandExecute({ id: pd2.id, params: h }), te = li([...x2, ...D4, ...E4], r); return w2 && te.result && i.pushUndoRedo({ unitID: s, undoMutations: [{ id: Dr3.id, params: S4 }, ...b, ...ee, ...T4], redoMutations: [{ id: Dr3.id, params: h }, ...x2, ...D4, ...E4] }), true; } }; var md3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-col-width`, handler: (e29, t) => { var n, r; let i = e29.get(Y4), a = e29.get(ii), o = e29.get(td), s = e29.get(K4), c = !(t == null || (n = t.ranges) == null) && n.length ? t.ranges : (r = i.getCurrentSelections()) == null ? void 0 : r.map((e30) => e30.range); if (!(c != null && c.length)) return false; let l = V4(e29.get(Mu), t); if (!l) return false; let { subUnitId: u, unitId: d, worksheet: f } = l, p = e29.get(Ko2).getSkeleton(d, u), m = { subUnitId: u, unitId: d, ranges: c, colWidth: t.value }, { suitableRanges: h, remainingRanges: g2 } = Jo3(m.ranges, p); qo2(h, f); let _2 = Er3(m, f), v = a.syncExecuteCommand(Dr3.id, m), { undos: y, redos: b } = s.generateMutationsOfAutoHeight({ unitId: d, subUnitId: u, ranges: h, autoHeightRanges: h, lazyAutoHeightRanges: g2 }), x2 = s.onCommandExecute({ id: md3.id, params: m }), S4 = li([...x2.redos, ...b], a); if (v && S4.result) { var w2, T4; let e30 = s.afterCommandExecute({ id: md3.id, params: m }); return li(e30.redos, a), o.pushUndoRedo({ unitID: d, undoMutations: [...(w2 = x2.preUndos) == null ? [] : w2, { id: Dr3.id, params: _2 }, ...x2.undos, ...e30.undos, ...y], redoMutations: [...(T4 = x2.preRedos) == null ? [] : T4, { id: Dr3.id, params: m }, ...x2.redos, ...e30.redos, ...b] }), true; } return false; } }; var hd3 = { type: ri.COMMAND, id: `sheet.command.set-col-is-auto-width`, handler: async (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = e29.get(Y4), a = V4(e29.get(Mu), t); if (!a) return false; let { unitId: o, subUnitId: s } = a, c = []; if (t != null && t.ranges) c = [...t.ranges]; else { let e30 = i.getCurrentSelections(); for (let t2 = 0; t2 < e30.length; t2++) c.push(e30[t2].range); } if (!(c != null && c.length)) return false; let l = { unitId: o, subUnitId: s, ranges: c }, { undos: u, redos: d } = e29.get(K4).onCommandExecute({ id: hd3.id, params: l }); return li([...d], n).result ? (r.pushUndoRedo({ unitID: o, undoMutations: [...u], redoMutations: [...d] }), true) : false; } }; var gd3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-column-count`, handler: (e29, t) => { let { unitId: n, subUnitId: r, columnCount: i } = t, a = e29.get(ii), o = e29.get(td); if (!V4(e29.get(Mu), t)) return false; let s = { unitId: n, subUnitId: r, columnCount: i }, c = Or3(e29, s); return a.syncExecuteCommand(kr3.id, s) ? (o.pushUndoRedo({ unitID: n, undoMutations: [{ id: kr3.id, params: c }], redoMutations: [{ id: kr3.id, params: s }] }), true) : false; } }; var _d2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-default-style`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), { unitId: i } = t, a = jr3(e29, t); return n.syncExecuteCommand(Ar3.id, t) ? (r.pushUndoRedo({ unitID: i, undoMutations: [{ id: Ar3.id, params: a }], redoMutations: [{ id: Ar3.id, params: t }] }), true) : false; } }; var vd3 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetHideMutationFactory]: worksheet is null error!`); let { worksheet: r } = n; return { hidden: r.isSheetHidden(), unitId: t.unitId, subUnitId: r.getSheetId() }; }; var yd3 = { id: `sheet.mutation.set-worksheet-hidden`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) return false; let r = n.getSheetBySheetId(t.subUnitId); return r ? (r.getConfig().hidden = t.hidden, true) : false; } }; var bd3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-hidden`, handler: (e29, t) => { let n = e29.get(ii), i = e29.get(td), a = e29.get(Pl), o = e29.get(zu), s = V4(e29.get(Mu), t); if (!s) return false; let { workbook: c, worksheet: l, unitId: u, subUnitId: d } = s; if (l.getConfig().hidden === A.TRUE) return false; let f = { unitId: u, subUnitId: d, hidden: A.TRUE }, p = vd3(e29, f); return c.getSheets().filter((e30) => e30.getConfig().hidden === A.FALSE).length === 1 ? (a.emit(o.t(`sheets.info.hideSheet`)), false) : n.syncExecuteCommand(yd3.id, f) ? (i.pushUndoRedo({ unitID: u, undoMutations: [{ id: yd3.id, params: p }], redoMutations: [{ id: yd3.id, params: f }] }), true) : false; } }; var xd2 = (e29, t) => { let n = Rt2(e29.get(Mu), t); if (!n) throw Error(`[SetWorksheetNameMutationFactory]: worksheet is null error!`); let { worksheet: r } = n; return { unitId: t.unitId, name: r.getName(), subUnitId: r.getSheetId() }; }; var Sd3 = { id: `sheet.mutation.set-worksheet-name`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (n == null) return false; let r = n.getSheetBySheetId(t.subUnitId); return r ? (r.getConfig().name = t.name, true) : false; } }; var Cd3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-name`, handler: (e29, t) => { var n, r; let i = e29.get(ii), a = e29.get(td), o = e29.get(K4), s = V4(e29.get(Mu), t); if (!s) return false; let { unitId: c, subUnitId: l } = s, u = { subUnitId: l, name: t.name, unitId: c }, d = xd2(e29, u), f = o.onCommandExecute({ id: Cd3.id, params: t }), p = [...(n = f.preRedos) == null ? [] : n, { id: Sd3.id, params: u }, ...f.redos], m = [...(r = f.preUndos) == null ? [] : r, { id: Sd3.id, params: d }, ...f.undos]; return li(p, i).result ? (a.pushUndoRedo({ unitID: c, undoMutations: m, redoMutations: p }), true) : false; } }; var wd3 = (e29, t) => ({ ...D.deepClone(t), toOrder: t.fromOrder, fromOrder: t.toOrder }); var Td3 = { id: `sheet.mutation.set-worksheet-order`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let r = n.getConfig(); return r.sheetOrder.splice(t.fromOrder, 1), r.sheetOrder.splice(t.toOrder, 0, t.subUnitId), n.ensureSheetOrderUnique(), true; } }; var Ed3 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-order`, handler: (e29, t) => { let n = e29.get(ii), r = e29.get(td), i = V4(e29.get(Mu), t); if (!i) return false; let { workbook: a, unitId: o, subUnitId: s } = i, c = { fromOrder: a.getConfig().sheetOrder.indexOf(s), toOrder: t.order, unitId: o, subUnitId: s }, l = wd3(e29, c); return n.syncExecuteCommand(Td3.id, c) ? (r.pushUndoRedo({ unitID: o, undoMutations: [{ id: Td3.id, params: l }], redoMutations: [{ id: Td3.id, params: c }] }), true) : false; } }; var Dd3 = class { constructor() { U4(this, `_model`, /* @__PURE__ */ new Map()), U4(this, `_pointChange`, new Subject()), U4(this, `pointChange$`, this._pointChange.asObservable()); } addRule(e29) { this._ensureSubUnitMap(e29.unitId).set(e29.subUnitId, e29), this._pointChange.next(e29); } deleteRule(e29, t) { var n; let r = (n = this._model.get(e29)) == null ? void 0 : n.get(t); if (r) { var i; (i = this._model) == null || (i = i.get(e29)) == null || i.delete(t), this._pointChange.next(r); } } getRule(e29, t) { var n; return (n = this._model) == null || (n = n.get(e29)) == null ? void 0 : n.get(t); } toObject() { let e29 = {}; return [...this._model.keys()].forEach((t) => { let n = this._model.get(t); n != null && n.size && (e29[t] = [], [...n.keys()].forEach((r) => { let i = n.get(r); i && e29[t].push(i); })); }), e29; } fromObject(e29) { let t = /* @__PURE__ */ new Map(); Object.keys(e29).forEach((n) => { let r = e29[n]; if (r != null && r.length) { let e30 = /* @__PURE__ */ new Map(); r.forEach((t2) => { e30.set(t2.subUnitId, t2); }), t.set(n, e30); } }), this._model = t; } deleteUnitModel(e29) { this._model.delete(e29); } _ensureSubUnitMap(e29) { let t = this._model.get(e29); return t || (t = /* @__PURE__ */ new Map(), this._model.set(e29, t)), t; } getTargetByPermissionId(e29, t) { let n = this._model.get(e29); if (!n) return null; for (let [r, i] of n) if (i.permissionId === t) return [e29, r]; } }; var Od3 = class { constructor(e29, t, n) { U4(this, `type`, S.SelectRange), U4(this, `subType`, R.Delete), U4(this, `status`, Hu.INIT), U4(this, `value`, true), U4(this, `id`, void 0), U4(this, `unitId`, void 0), U4(this, `subUnitId`, void 0), U4(this, `permissionId`, void 0), this.unitId = e29, this.subUnitId = t, this.permissionId = n, this.id = `${S.SelectRange}.${R.Delete}.${n}`; } }; var kd2 = class { constructor(e29, t, n) { U4(this, `type`, S.SelectRange), U4(this, `subType`, R.ManageCollaborator), U4(this, `status`, Hu.INIT), U4(this, `value`, true), U4(this, `id`, void 0), U4(this, `unitId`, void 0), U4(this, `subUnitId`, void 0), U4(this, `permissionId`, void 0), this.unitId = e29, this.subUnitId = t, this.permissionId = n, this.id = `${S.SelectRange}.${R.ManageCollaborator}.${n}`; } }; var Ad2 = () => [fa3, da3, kd2, Od3]; var jd2 = [R.Edit, R.View, R.ManageCollaborator, R.Delete]; var Nd2 = () => [Sa3, Aa3, pa3, Pa2, ma2, Ca2, Oa2, _a3, ba3, Ma2, wa2, xa3, Na2, ka3, ha2, Fa3, ja2, ga3, Da3, Ea3, ya3, va3]; var Pd2 = [R.Edit, R.Print, R.Comment, R.View, R.Copy, R.Export, R.ManageCollaborator, R.CreateSheet, R.DeleteSheet, R.RenameSheet, R.HideSheet, R.Duplicate, R.Share, R.MoveSheet, R.CopySheet, R.RecoverHistory, R.ViewHistory, R.CreatePermissionObject, R.InsertRow, R.InsertColumn, R.DeleteRow, R.DeleteColumn]; var Fd2 = () => [Ba3, to3, Ka3, Ra2]; var Id2 = () => [Ia3, La2, za3, Va2, Ha3, Ua2, Ga2, Wa2, qa3, Xa2, Za3, Qa2, $a3, eo3]; var Ld2 = [R.Copy, R.DeleteColumn, R.DeleteRow, R.EditExtraObject, R.Filter, R.InsertColumn, R.InsertRow, R.InsertHyperlink, R.PivotTable, R.SetCellStyle, R.SetCellValue, R.SetColumnStyle, R.SetRowStyle, R.Sort]; var Rd2 = class extends dn { constructor(e29, t, n, r, i, a, o, s) { super(), this._permissionService = e29, this._univerInstanceService = t, this._injector = n, this._worksheetProtectionRuleModel = r, this._worksheetProtectionPointRuleModel = i, this._resourceManagerService = a, this._rangeProtectionRuleModel = o, this._logService = s, this._init(), this._initRuleChange(), this._initRuleSnapshot(), this._initPointSnapshot(); } _init() { let e29 = (e30) => { let t = e30.getUnitId(), n = (e31) => { let n2 = e31.getSheetId(); [...Fd2(), ...Id2()].forEach((e32) => { let r = new e32(t, n2); this._permissionService.addPermissionPoint(r); }), this._logService.debug(`[WorksheetPermissionService]`, `Initialization completed`, t, n2); }; e30.getSheets().forEach((e31) => { n(e31); }), e30.sheetCreated$.subscribe((e31) => { n(e31); }), e30.sheetDisposed$.subscribe((e31) => { let n2 = e31.getSheetId(); this._rangeProtectionRuleModel.getSubunitRuleList(t, n2).forEach((e32) => { [...Ad2()].forEach((r) => { let i = new r(t, n2, e32.permissionId); this._permissionService.deletePermissionPoint(i.id); }); }), [...Fd2(), ...Id2()].forEach((e32) => { let r = new e32(t, n2); this._permissionService.deletePermissionPoint(r.id); }); }); }; this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).forEach((t) => { e29(t); }), this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).pipe(takeUntil(this.dispose$)).subscribe(e29), this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).pipe(takeUntil(this.dispose$)).subscribe((e30) => { e30.getSheets().forEach((t) => { let n = e30.getUnitId(), r = t.getSheetId(); Fd2().forEach((e31) => { let t2 = new e31(n, r); this._permissionService.deletePermissionPoint(t2.id); }); }); }); } _initRuleChange() { this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe((e29) => { switch (e29.type) { case `add`: break; case `delete`: Fd2().forEach((t) => { let n = new t(e29.unitId, e29.subUnitId); this._permissionService.updatePermissionPoint(n.id, true); }); break; case `set`: Fd2().forEach((t) => { let n = new t(e29.unitId, e29.subUnitId); this._permissionService.updatePermissionPoint(n.id, e29.rule); }); break; } })); } _initRuleSnapshot() { this.disposeWithMe(this._resourceManagerService.registerPluginResource({ toJson: () => { let e29 = this._worksheetProtectionRuleModel.toObject(); return JSON.stringify(e29); }, parseJson: (e29) => { if (!e29) return {}; try { return JSON.parse(e29); } catch { return {}; } }, pluginName: `SHEET_WORKSHEET_PROTECTION_PLUGIN`, businesses: [O.UNIVER_SHEET], onLoad: (e29, t) => { this._worksheetProtectionRuleModel.fromObject(t), Object.keys(t).forEach((t2) => { Fd2().forEach((n) => { let r = new n(e29, t2); r.value = false, this._permissionService.addPermissionPoint(r); }); }), this._worksheetProtectionRuleModel.changeRuleInitState(true); }, onUnLoad: (e29) => { let t = this._univerInstanceService.getUnit(e29); t && (t.getSheets().forEach((t2) => { let n = t2.getSheetId(); [...Fd2(), ...Id2()].forEach((t3) => { let r = new t3(e29, n); this._permissionService.deletePermissionPoint(r.id); }); }), Nd2().forEach((t2) => { let n = new t2(e29); this._permissionService.deletePermissionPoint(n.id); })), this._worksheetProtectionRuleModel.deleteUnitModel(e29); } })); } _initPointSnapshot() { this.disposeWithMe(this._resourceManagerService.registerPluginResource({ toJson: () => { let e29 = this._worksheetProtectionPointRuleModel.toObject(); return JSON.stringify(e29); }, parseJson: (e29) => { if (!e29) return {}; try { return JSON.parse(e29); } catch { return {}; } }, pluginName: `SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN`, businesses: [O.UNIVER_SHEET], onLoad: (e29, t) => { this._worksheetProtectionPointRuleModel.fromObject(t), Object.keys(t).forEach((t2) => { Id2().forEach((n) => { let r = new n(e29, t2); this._permissionService.addPermissionPoint(r); }); }); }, onUnLoad: (e29) => { this._worksheetProtectionPointRuleModel.deleteUnitModel(e29); } })); } }; Rd2 = G4([W4(0, Inject(Uu)), W4(1, Inject(Mu)), W4(2, Inject(Injector)), W4(3, Inject(fc3)), W4(4, Inject(Dd3)), W4(5, Inject(ll)), W4(6, Inject(Ni2)), W4(7, Inject(L))], Rd2); var zd2 = { id: `sheet.mutation.set-worksheet-permission-points`, type: ri.MUTATION, handler: (e29, t) => { let { rule: n } = t; return e29.get(Dd3).addRule(n), true; } }; var Bd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-permission-points`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), { rule: r } = t; return n.executeCommand(zd2.id, { rule: r, unitId: r.unitId, subUnitId: r.subUnitId }), true; } }; var Vd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-protection`, async handler(e29, t) { if (!t) return false; let n = e29.get(ii), r = e29.get(td), { rule: i, permissionId: a, oldRule: o } = t, { unitId: s, subUnitId: c } = i, l = { ...i, permissionId: a }; if (await n.executeCommand(Zu3.id, { unitId: s, subUnitId: c, newRule: l })) { let e30 = [{ id: Zu3.id, params: { unitId: s, subUnitId: c, newRule: l } }], t2 = [{ id: Zu3.id, params: { unitId: s, subUnitId: c, rule: o } }]; r.pushUndoRedo({ unitID: s, redoMutations: e30, undoMutations: t2 }); } return true; } }; var Hd2 = (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().rightToLeft; return { ...D.deepClone(t), rightToLeft: n }; }; var Ud2 = { id: `sheet.mutation.set-worksheet-right-to-left`, type: ri.MUTATION, handler: (e29, t) => { let n = e29.get(Mu).getUniverSheetInstance(t.unitId); if (!n) return false; let r = n.getSheetBySheetId(t.subUnitId); if (!r) return false; let i = r.getConfig(); return i.rightToLeft = t.rightToLeft, true; } }; var Wd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-right-to-left`, handler: async (e29, t) => { let n = e29.get(ii), i = e29.get(td), a = V4(e29.get(Mu), t); if (!a) return false; let { unitId: o, subUnitId: s } = a, c = A.FALSE; if (t) { var l; c = (l = t.rightToLeft) == null ? A.FALSE : l; } let u = { rightToLeft: c, unitId: o, subUnitId: s }, d = Hd2(e29, u); return n.syncExecuteCommand(Ud2.id, u) ? (i.pushUndoRedo({ unitID: o, undoMutations: [{ id: Ud2.id, params: d }], redoMutations: [{ id: Ud2.id, params: u }] }), true) : false; } }; var Gd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-row-count`, handler: (e29, t) => { let { unitId: n, subUnitId: r, rowCount: i } = t, a = e29.get(ii), o = e29.get(td); if (!V4(e29.get(Mu), t)) return false; let s = { unitId: n, subUnitId: r, rowCount: i }, c = Mr3(e29, s); return a.syncExecuteCommand(Nr3.id, s) ? (o.pushUndoRedo({ unitID: n, undoMutations: [{ id: Nr3.id, params: c }], redoMutations: [{ id: Nr3.id, params: s }] }), true) : false; } }; var Kd2 = { type: ri.COMMAND, id: `sheet.command.delta-row-height`, handler: async (e29, t) => { let n = e29.get(Y4).getCurrentSelections(), i = e29.get(K4); if (!(n != null && n.length)) return false; let a = V4(e29.get(Mu)); if (!a) return false; let { worksheet: o, subUnitId: s, unitId: c } = a, { anchorRow: l, deltaY: u } = t, d = o.getRowHeight(l) + u, f = n.length === 1 && n[0].range.rangeType === B.ALL, p = n.filter((e30) => e30.range.rangeType === B.ROW), m = f ? B.ALL : p.some(({ range: e30 }) => { let { startRow: t2, endRow: n2 } = e30; return t2 <= l && l <= n2; }) ? B.ROW : B.NORMAL, h; if (m === B.ALL) { let e30 = o.getColumnCount(); h = { subUnitId: s, unitId: c, rowHeight: d, ranges: Array(o.getRowCount()).fill(void 0).map((t2, n2) => ({ startRow: n2, endRow: n2, startColumn: 0, endColumn: e30 - 1 })) }; } else h = m === B.ROW ? { subUnitId: s, unitId: c, ranges: p.map((e30) => G.clone(e30.range)), rowHeight: d } : { subUnitId: s, unitId: c, rowHeight: d, ranges: [{ startRow: l, endRow: l, startColumn: 0, endColumn: o.getMaxColumns() - 1 }] }; let g2 = Pr3(h, o), _2 = { unitId: c, subUnitId: s, ranges: h.ranges, autoHeightInfo: A.FALSE }, v = Fr3(_2, o), y = e29.get(ii), b = e29.get(td), x2 = i.onCommandExecute({ id: Kd2.id, params: h }), S4 = li([{ id: Lr3.id, params: h }, { id: Rr3.id, params: _2 }], y), w2 = li([...x2.redos], y); if (S4.result && w2.result) { var T4, E4; let e30 = i.afterCommandExecute({ id: Kd2.id, params: h }); return li(e30.redos, y), b.pushUndoRedo({ unitID: c, undoMutations: [...(T4 = x2.preUndos) == null ? [] : T4, { id: Lr3.id, params: g2 }, { id: Rr3.id, params: v }, ...x2.undos, ...e30.undos], redoMutations: [...(E4 = x2.preRedos) == null ? [] : E4, { id: Lr3.id, params: h }, { id: Rr3.id, params: _2 }, ...x2.redos, ...e30.redos] }), true; } return false; } }; var qd2 = { type: ri.COMMAND, id: `sheet.command.set-row-height`, handler: (e29, t) => { var n, i; let a = e29.get(Y4), o = e29.get(ii), s = e29.get(td), c = e29.get(Mu), l = e29.get(K4), u = !(t == null || (n = t.ranges) == null) && n.length ? t.ranges : (i = a.getCurrentSelections()) == null ? void 0 : i.map((e30) => e30.range); if (!(u != null && u.length)) return false; let d = V4(c, t); if (!d) return false; let { unitId: f, subUnitId: p, worksheet: m } = d, h = { subUnitId: p, unitId: f, ranges: u, rowHeight: t.value }, g2 = Pr3(h, m), _2 = { unitId: f, subUnitId: p, ranges: h.ranges, autoHeightInfo: A.FALSE }, v = Fr3(_2, m), y = li([{ id: Lr3.id, params: h }, { id: Rr3.id, params: _2 }], o), b = l.onCommandExecute({ id: qd2.id, params: h }), x2 = li([...b.redos], o); if (y.result && x2.result) { var S4, w2; let e30 = l.afterCommandExecute({ id: qd2.id, params: h }); return li(e30.redos, o), s.pushUndoRedo({ unitID: f, undoMutations: [...(S4 = b.preRedos) == null ? [] : S4, { id: Lr3.id, params: g2 }, { id: Rr3.id, params: v }, ...b.undos, ...e30.undos], redoMutations: [...(w2 = b.preRedos) == null ? [] : w2, { id: Lr3.id, params: h }, { id: Rr3.id, params: _2 }, ...b.redos, ...e30.redos] }), true; } return false; } }; var Jd2 = { type: ri.COMMAND, id: `sheet.command.set-row-is-auto-height`, handler: (e29, t) => { var n, i; let a = e29.get(ii), o = e29.get(td), s = e29.get(Y4), c = V4(e29.get(Mu), t); if (!c) return false; let { unitId: l, subUnitId: u, worksheet: d } = c, f = !(t == null || (n = t.ranges) == null) && n.length ? t.ranges : (i = s.getCurrentSelections()) == null ? void 0 : i.map((e30) => e30.range); if (!(f != null && f.length)) return false; let p = { unitId: l, subUnitId: u, ranges: f, autoHeightInfo: A.TRUE }, m = Fr3(p, d), h = a.syncExecuteCommand(Rr3.id, p), g2 = e29.get(Ko2).getSkeleton(l, u), { suitableRanges: _2, remainingRanges: v } = Jo3(p.ranges, g2), y = e29.get(K4), { undos: b, redos: x2 } = y.generateMutationsOfAutoHeight({ unitId: l, subUnitId: u, ranges: _2, autoHeightRanges: _2, lazyAutoHeightRanges: v }), { undos: S4, redos: w2 } = y.onCommandExecute({ id: Jd2.id, params: p }), T4 = li([...w2, ...x2], a); return h && T4.result ? (o.pushUndoRedo({ unitID: l, undoMutations: [{ id: Rr3.id, params: m }, ...S4, ...b], redoMutations: [{ id: Rr3.id, params: p }, ...w2, ...x2] }), true) : false; } }; var Yd2 = { type: ri.COMMAND, id: `sheet.command.set-worksheet-show`, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { unitId: i, subUnitId: a, worksheet: o } = n; if (o.getConfig().hidden === A.FALSE) return false; let s = e29.get(ii), c = e29.get(td), l = { unitId: i, subUnitId: a, hidden: A.FALSE }, u = vd3(e29, l), d = s.syncExecuteCommand(yd3.id, l), f = { unitId: i, subUnitId: a }, p = s.syncExecuteCommand(Vr3.id, f); return d && p ? (c.pushUndoRedo({ unitID: i, undoMutations: [{ id: yd3.id, params: u }], redoMutations: [{ id: yd3.id, params: l }] }), true) : false; } }; var Xd2 = { type: ri.COMMAND, id: `sheet.command.split-text-to-columns`, handler: (e29, t) => { let n = V4(e29.get(Mu), t); if (!n) return false; let { unitId: r, subUnitId: i, worksheet: a } = n, { range: o, delimiter: s, customDelimiter: c, treatMultipleDelimitersAsOne: l } = t, { lastRow: u, rs: d, maxLength: f } = bi3(a, o, s, c, l), p = a.getColumnCount(), { startColumn: m } = Eo.transformRange(o, a); if (o.startColumn !== o.endColumn) return false; let h = e29.get(ii), g2 = e29.get(td), _2 = [], v = [], y = m + f + 1 - p; if (y > 0) { let t2 = { unitId: r, subUnitId: i, range: { startRow: 0, endRow: a.getRowCount() - 1, startColumn: p - 1, endColumn: p - 1 + y } }; _2.push({ id: wn3.id, params: t2 }); let n2 = Cn3(e29, t2); v.push({ id: Nn3.id, params: n2 }); } let b = { startRow: o.startRow, endRow: u, startColumn: m, endColumn: m + f }, x2 = new Sa(); for (let e30 = b.startRow; e30 <= b.endRow; e30++) for (let t2 = b.startColumn; t2 <= b.endColumn; t2++) { let n2 = d[e30 - b.startRow]; t2 === 0 && (n2 == null ? void 0 : n2.length) === 1 ? x2.setValue(e30, t2, a.getCell(e30, t2)) : x2.setValue(e30, t2, { v: (n2 == null ? void 0 : n2[t2 - b.startColumn]) || null, p: null, f: null, si: null, custom: null }); } let S4 = { unitId: r, subUnitId: i, cellValue: x2.clone() }, w2 = gr3(e29, S4); return _2.push({ id: J4.id, params: S4 }), v.unshift({ id: J4.id, params: w2 }), li(_2, h).result ? (g2.pushUndoRedo({ unitID: r, undoMutations: v, redoMutations: _2 }), true) : false; } }; var Zd2 = createIdentifier(`INumfmtService`); var $d2 = { id: `sheet.mutation.set.numfmt`, type: ri.MUTATION, handler: (e29, t) => { if (!t) return false; let { values: n, refMap: r } = t, i = e29.get(Zd2), a = t.unitId, o = t.subUnitId, s = Object.keys(n).reduce((e30, t2) => { let i2 = r[t2], a2 = n[t2].ranges; return i2 && e30.push({ ...i2, ranges: a2 }), e30; }, []); return i.setValues(a, o, s), true; } }; var ef2 = { id: `sheet.mutation.remove.numfmt`, type: ri.MUTATION, handler: (e29, t) => { if (!t) return false; let { unitId: n, subUnitId: r, ranges: i } = t; return e29.get(Zd2).deleteValues(n, r, i), true; } }; var tf2 = (e29, t) => { let n = e29.get(Zd2), { ranges: r, unitId: i, subUnitId: a } = t, o = []; if (r.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { let r2 = n.getValue(i, a, e31, t2); r2 && o.push({ pattern: r2.pattern, row: e31, col: t2 }); }); }), !o.length) return []; let s = nf2(i, a, o); return Object.keys(s.values).forEach((e30) => { let t2 = s.values[e30]; t2.ranges = ci3(t2.ranges); }), [{ id: $d2.id, params: s }]; }; var nf2 = (e29, t, n) => { let r = xi2(n, `pattern`), i = {}, a = {}, o = Si2(); return Object.keys(r).forEach((e30) => { let t2 = r[e30], n2 = o(); i[n2] = { pattern: e30 }, t2.forEach((e31) => { a[n2] || (a[n2] = { ranges: [] }), a[n2].ranges.push(Ia(e31.row, e31.col)); }); }), { unitId: e29, subUnitId: t, refMap: i, values: a }; }; var rf2 = { id: `sheet.command.text-to-number`, type: ri.COMMAND, handler: (e29, t) => { var n; let r = V4(e29.get(Mu), t); if (!r) return false; let i = (t == null ? void 0 : t.ranges) || ((n = e29.get(Y4).getCurrentSelections()) == null ? void 0 : n.map((e30) => e30.range)); if (!(i != null && i.length)) return false; let a = e29.get(ii), o = e29.get(td), { worksheet: s, unitId: c, subUnitId: u } = r, d = new Sa(), f = []; for (let e30 = 0; e30 < i.length; e30++) for (let t2 = i[e30].startRow; t2 <= i[e30].endRow; t2++) for (let n2 = i[e30].startColumn; n2 <= i[e30].endColumn; n2++) { var p, m; if (d.getValue(t2, n2)) continue; let e31 = s.getCellRaw(t2, n2), r2 = typeof (e31 == null ? void 0 : e31.s) == `string` ? (p = s.getStyleDataByHash(e31.s)) == null || (p = p.n) == null ? void 0 : p.pattern : e31 == null || (m = e31.s) == null || (m = m.n) == null ? void 0 : m.pattern; e31 && e31.v && (e31.t !== tr.NUMBER || aa(r2)) && Ja(e31.v) && (d.setValue(t2, n2, { v: Number(e31.v), t: tr.NUMBER }), aa(r2) && f.push({ startRow: t2, endRow: t2, startColumn: n2, endColumn: n2 })); } let h = { subUnitId: u, unitId: c, cellValue: d.getMatrix() }, g2 = [{ id: J4.id, params: h }], _2 = [{ id: J4.id, params: gr3(e29, h) }]; if (f.length) { let t2 = { unitId: c, subUnitId: u, ranges: f }; g2.push({ id: ef2.id, params: t2 }), _2.push(...tf2(e29, t2)); } return li(g2, a).result ? (o.pushUndoRedo({ unitID: c, undoMutations: _2, redoMutations: g2 }), true) : false; } }; var af2 = { id: `sheet.command.toggle-cell-checkbox`, type: ri.COMMAND, handler: (e29, t) => { if (!t) return false; let { unitId: n, subUnitId: r, row: i, col: a, paragraphIndex: s } = t, c = e29.get(Mu).getUnit(n, O.UNIVER_SHEET), u = c == null ? void 0 : c.getSheetBySheetId(r), d = e29.get(td), f = e29.get(ii); if (!u) return false; let p = u.getCell(i, a); if (!(p != null && p.p)) return false; let m = D.deepClone(p.p), h = new _c(m), g2 = Z.paragraph.bullet.toggleChecklist({ document: h, paragraphIndex: s }); if (!g2) return false; Y.apply(h.getBody(), g2.serialize()); let v = { unitId: n, subUnitId: r, cellValue: { [i]: { [a]: { p: m, t: tr.STRING } } } }, y = { id: J4.id, params: v }, b = gr3(e29, v), x2 = { id: J4.id, params: b }, S4 = [y], w2 = [x2]; return d.pushUndoRedo({ redoMutations: S4, undoMutations: w2, unitID: n }), f.syncExecuteCommand(y.id, y.params); } }; var of3 = { type: ri.COMMAND, id: `sheet.command.toggle-gridlines`, handler: (e29, t) => { let n = e29.get(ii), i = e29.get(td), a = V4(e29.get(Mu), t); if (!a) return false; let { worksheet: o } = a, s = o.getConfig().showGridlines; if (s === (t == null ? void 0 : t.showGridlines)) return false; let { unitId: c, subUnitId: l } = a, u = { showGridlines: s === A.TRUE ? A.FALSE : A.TRUE, unitId: c, subUnitId: l }, d = { showGridlines: s, unitId: c, subUnitId: l }; return n.syncExecuteCommand(Br3.id, u) ? (i.pushUndoRedo({ unitID: c, undoMutations: [{ id: Br3.id, params: d }], redoMutations: [{ id: Br3.id, params: u }] }), true) : false; } }; var sf2 = { id: `sheet.command.unregister-worksheet-range-theme-style`, type: ri.COMMAND, handler: (e29, t) => { var n; if (!t || !V4(e29.get(Mu), t)) return false; let r = e29.get(ii), i = e29.get(td), a = e29.get(gn3), { unitId: o, themeName: s } = t, c = { unitId: o, themeName: s }, l = { unitId: o, themeName: s, rangeThemeStyleJson: (n = a.getRangeThemeStyle(o, s)) == null ? void 0 : n.toJson() }; return r.syncExecuteCommand(_u2.id, t) ? (i.pushUndoRedo({ unitID: o, undoMutations: [{ id: _u2.id, params: l }], redoMutations: [{ id: vu2.id, params: c }] }), true) : false; } }; var cf2 = { id: `sheet.mutation.add-range-theme`, type: ri.MUTATION, handler: (e29, t) => { if (!t) return false; let { styleJSON: n, unitId: r } = t, i = e29.get(gn3), a = new en3(n.name); return a.fromJson(n), i.registerRangeThemeStyle(r, a), true; } }; var lf2 = { id: `sheet.mutation.empty`, type: ri.MUTATION, handler: () => true }; var uf2 = { id: `sheet.operation.mark-dirty-row-auto-height`, type: ri.OPERATION, handler: () => true }; var df2 = { id: `sheet.operation.cancel-mark-dirty-row-auto-height`, type: ri.OPERATION, handler: () => true }; var ff2 = { id: `sheet.mutation.remove-range-theme`, type: ri.MUTATION, handler: (e29, t) => { if (!t) return false; let { styleName: n, unitId: r } = t; return e29.get(gn3).unregisterRangeThemeStyle(r, n), true; } }; var pf2 = { id: `sheet.mutation.set-range-theme`, type: ri.MUTATION, handler: (e29, t) => { if (!t) return false; let { unitId: n, styleName: r, style: i } = t, a = e29.get(gn3).getRangeThemeStyle(n, r); return a && (i.headerRowStyle && a.setHeaderRowStyle(i.headerRowStyle), i.firstRowStyle && a.setFirstRowStyle(i.firstRowStyle), i.secondRowStyle && a.setSecondRowStyle(i.secondRowStyle), i.lastRowStyle && a.setLastRowStyle(i.lastRowStyle)), true; } }; var mf2 = { id: `sheet.operation.scroll-to-cell`, type: ri.OPERATION, handler: () => true }; var { getLenS: hf2, getDataIndex: gf2, fillCopy: _f2, fillCopyStyles: vf2, generateNullCellValueRowCol: yf2 } = gl3; var { otherRule: bf2 } = Pl3; var xf2 = class extends E { constructor(e29, t, n) { super(), this._univerInstanceService = e29, this._autoFillService = t, this._injector = n, U4(this, `_beforeApplyData`, []), U4(this, `_copyData`, []), this._init(); } _init() { this._initDefaultHook(); } quit() { this._beforeApplyData = [], this._copyData = []; } _initDefaultHook() { this.disposeWithMe(this._autoFillService.addHook({ id: `default`, type: vl3.DEFAULT, priority: 0, onBeforeFillData: (e29, t) => this._presetAndCacheData(e29, t), onFillData: (e29, t, n) => this._fillData(e29, t, n) })); } _presetAndCacheData(e29, t) { var n; let { unitId: r, subUnitId: i, target: a } = e29, o = (n = this._univerInstanceService.getUnit(r)) == null ? void 0 : n.getSheetBySheetId(i); if (!o) throw Error(`Worksheet not found for unitId: ${r}, subUnitId: ${i}`); let s = o.getCellMatrix(), c = []; return a.rows.forEach((e30) => { let t2 = []; a.cols.forEach((n2) => { t2.push(D.deepClone(s.getValue(e30, n2))); }), c.push(t2); }), this._beforeApplyData = c, this._copyData = this._getCopyData(e29, t), this._shouldDisableSeries(this._copyData) ? (this._autoFillService.setDisableApplyType($4.SERIES, true), $4.COPY) : (this._autoFillService.setDisableApplyType($4.SERIES, false), this._getPreferredApplyType(this._copyData)); } _getApplyData(e29, t, n, r, i, a = true, o) { let s = [], c = Math.floor(n / t), l = n % t, u = this._autoFillService.getRules(); if (!a && i === $4.ONLY_FORMAT) return console.error(`ERROR: only format can not be applied when hasStyle is false`), []; let d = {}; u.forEach((e30) => { d[e30.type] = []; }), u.forEach((a2) => { let { type: s2, applyFunctions: u2 = {} } = a2, f = e29[s2]; f && f.forEach((a3) => { let f2 = hf2(a3.index, l), p = a3.index.length * c + f2, m = this._applyFunctions(a3, p, r, i, u2, e29, o), h = gf2(t, n, a3.index); d[s2].push({ data: m, index: h }); }); }); for (let e30 = 0; e30 < n; e30++) u.forEach((t2) => { let { type: n2 } = t2, r2 = d[n2]; for (let t3 = 0; t3 < r2.length; t3++) e30 in r2[t3].index && s.push(r2[t3].data[r2[t3].index[e30]]); }); return s; } _applyFunctions(e29, t, n, r, i, a, o) { let { data: s } = e29, c = n === Fn.UP || n === Fn.LEFT; if (r === $4.COPY) { let r2 = i == null ? void 0 : i[$4.COPY]; return r2 ? r2(e29, t, n, a, o) : (c && s.reverse(), _f2(s, t)); } if (r === $4.SERIES) { let r2 = i == null ? void 0 : i[$4.SERIES]; return r2 ? r2(e29, t, n, a) : (c && s.reverse(), i != null && i[$4.COPY] ? i[$4.COPY](e29, t, n, a, o) : _f2(s, t)); } if (r === $4.ONLY_FORMAT) { let r2 = i == null ? void 0 : i[$4.ONLY_FORMAT]; return r2 ? r2(e29, t, n, a) : vf2(s, t); } } _getCopyData(e29, t) { var n; let { unitId: r, subUnitId: i, source: a } = e29, o = (n = this._univerInstanceService.getUnit(r)) == null ? void 0 : n.getSheetBySheetId(i); if (!o) throw Error(`No worksheet found`); let s = o.getCellMatrix(), c = this._autoFillService.getRules(), l = [], u = t === Fn.DOWN || t === Fn.UP, d, f; return u ? (d = a.cols, f = a.rows) : (d = a.rows, f = a.cols), d.forEach((e30) => { let t2 = this._getEmptyCopyDataPiece(), n2 = { type: void 0, cellData: void 0 }; f.forEach((r2) => { let i2; i2 = u ? s.getValue(r2, e30) : s.getValue(e30, r2); let { type: a2, isContinue: o2 } = c.find((e31) => e31.match(i2, this._injector)) || bf2; if (o2(n2, i2)) { let e31 = t2[a2], n3 = e31[e31.length - 1]; n3.data.push(i2), n3.index.push(r2 - f[0]); } else { let e31 = t2[a2]; e31 ? e31.push({ data: [i2], index: [r2 - f[0]] }) : t2[a2] = [{ data: [i2], index: [r2 - f[0]] }]; } n2.type = a2, n2.cellData = i2; }), l.push(t2); }), l; } _getEmptyCopyDataPiece() { let e29 = {}; return this._autoFillService.getRules().forEach((t) => { e29[t.type] = []; }), e29; } _getMergeApplyData(e29, t, n, r, i) { var a; let { unitId: o, subUnitId: s } = i, c = (a = this._univerInstanceService.getUnit(o)) == null ? void 0 : a.getSheetBySheetId(s); if (!c) throw Error(`No active sheet found`); let l = []; for (let i2 = e29.startRow; i2 <= e29.endRow; i2++) for (let a2 = e29.startColumn; a2 <= e29.endColumn; a2++) { let { isMergedMainCell: e30, startRow: o2, startColumn: s2, endRow: u, endColumn: d } = c.getCellInfoInMergeData(i2, a2); if (e30) { if (n === Fn.DOWN) { let e31 = o2 + r, n2 = u + r; for (; n2 <= t.endRow; ) l.push({ startRow: e31, startColumn: s2, endRow: n2, endColumn: d }), e31 += r, n2 += r; } else if (n === Fn.UP) { let e31 = o2 - r, n2 = u - r; for (; e31 >= t.startRow; ) l.push({ startRow: e31, startColumn: s2, endRow: n2, endColumn: d }), e31 -= r, n2 -= r; } else if (n === Fn.RIGHT) { let e31 = s2 + r, n2 = d + r; for (; n2 <= t.endColumn; ) l.push({ startRow: o2, startColumn: e31, endRow: u, endColumn: n2 }), e31 += r, n2 += r; } else if (n === Fn.LEFT) { let e31 = s2 - r, n2 = d - r; for (; e31 >= t.startColumn; ) l.push({ startRow: o2, startColumn: e31, endRow: u, endColumn: n2 }), e31 -= r, n2 -= r; } } } return l; } _fillData(e29, t, n) { var r; let i = [], a = [], o = true; n === $4.NO_FORMAT && (o = false, n = $4.SERIES); let { source: s, target: c, unitId: l, subUnitId: u } = e29; if (!s || !c || t == null) return { undos: i, redos: a }; let d = Oi2(s), f = Oi2(c), { cols: p, rows: h } = c, { cols: g2, rows: _2 } = s, v = this._copyData, y; y = t === Fn.DOWN || t === Fn.UP ? _2.length : g2.length; let b = []; if (t === Fn.DOWN || t === Fn.UP) { let r2 = h.length, i2 = []; p.forEach((a2, s2) => { let c2 = v[s2], l2 = this._getApplyData(c2, y, r2, t, n, o, e29); i2.push(l2); }); for (let e30 = 0; e30 < i2[0].length; e30++) { let t2 = []; for (let n2 = 0; n2 < i2.length; n2++) t2.push({ s: null, ...i2[n2][e30] }); b.push(t2); } } else { let r2 = p.length; h.forEach((i2, a2) => { let s2 = v[a2], c2 = this._getApplyData(s2, y, r2, t, n, o, e29), l2 = []; for (let e30 = 0; e30 < c2.length; e30++) l2.push({ s: null, ...c2[e30] }); b.push(l2); }); } let x2 = [], S4 = (r = this._univerInstanceService.getUnit(l)) == null ? void 0 : r.getStyles(); if (o ? (x2 = this._getMergeApplyData(d, f, t, y, e29), b.forEach((e30) => { e30.forEach((e31) => { e31 && S4 && S4 && (e31.s = S4.getStyleByCell(e31)); }); })) : b.forEach((e30, t2) => { e30.forEach((e31, n2) => { e31 && S4 && (e31.s = S4.getStyleByCell(this._beforeApplyData[t2][n2]) || null); }); }), n === $4.ONLY_FORMAT && b.forEach((e30, t2) => { e30.forEach((e31, n2) => { if (e31) { let r2 = this._beforeApplyData[t2][n2] || {}; e31.f = r2.f, e31.si = r2.si, e31.t = r2.t, e31.v = r2.v; } }); }), o) { var C3; let e30 = [], t2 = (C3 = this._univerInstanceService.getUniverSheetInstance(l)) == null || (C3 = C3.getSheetBySheetId(u)) == null ? void 0 : C3.getMergeData(); if (t2 && t2.forEach((t3) => { G.intersects(t3, f) && e30.push(t3); }), e30.length) { let t3 = { unitId: l, subUnitId: u, ranges: e30 }, n2 = this._injector.invoke(Pn2, t3); a.push({ id: q4.id, params: t3 }), i.unshift({ id: H4.id, params: n2 }); } } let w2 = { subUnitId: u, unitId: l, cellValue: yf2([c]) }, T4 = this._injector.invoke(gr3, w2); a.push({ id: J4.id, params: w2 }), i.unshift({ id: J4.id, params: T4 }); let E4 = new Sa(); h.forEach((e30, t2) => { p.forEach((n2, r2) => { b[t2][r2] && E4.setValue(e30, n2, b[t2][r2]); }); }); let ee = E4.getMatrix(), D4 = { subUnitId: u, unitId: l, cellValue: ee }, te = this._injector.invoke(gr3, D4); if (this._autoFillService.getActiveHooks().forEach((r2) => { var i2; (i2 = r2.onBeforeSubmit) == null || i2.call(r2, e29, t, n, ee); }), i.unshift({ id: J4.id, params: te }), a.push({ id: J4.id, params: D4 }), x2 != null && x2.length) { let e30 = { unitId: l, subUnitId: u, ranges: Ks3(x2) }, t2 = this._injector.invoke(zt2, e30); i.unshift({ id: q4.id, params: t2 }), a.push({ id: H4.id, params: e30 }); } return { undos: i, redos: a }; } _shouldDisableSeries(e29) { return e29.every((e30) => Object.keys(e30).every((t) => { var n; return ((n = e30[t]) == null ? void 0 : n.length) === 0 || [_l2.OTHER, _l2.FORMULA].includes(t); })); } _getPreferredApplyType(e29) { return e29.every((e30) => Object.keys(e30).every((t) => { var n, r; return ((n = e30[t]) == null ? void 0 : n.length) === 0 || ((r = e30[t]) == null ? void 0 : r.length) === 1 && e30[t][0].data.length === 1 && _l2.NUMBER === t; })) ? $4.COPY : $4.SERIES; } }; xf2 = G4([W4(0, Mu), W4(1, Wl2), W4(2, Inject(Injector))], xf2); var Sf2 = `maxCellsPerSheet`; var Cf2 = `AllDefaultWorkbook`; var wf2 = class extends E { constructor(e29, t) { super(), this._definedNamesService = e29, this._resourceManagerService = t, this._initialize(); } _initialize() { this._initSnapshot(); } _initSnapshot() { let e29 = (e30) => { let t2 = this._definedNamesService.getDefinedNameMap(e30); return t2 ? JSON.stringify(t2) : ``; }, t = (e30) => { if (!e30) return {}; try { return JSON.parse(e30); } catch { return {}; } }; this.disposeWithMe(this._resourceManagerService.registerPluginResource({ pluginName: `SHEET_DEFINED_NAME_PLUGIN`, businesses: [O.UNIVER_SHEET], toJson: (t2) => e29(t2), parseJson: (e30) => t(e30), onUnLoad: (e30) => { this._definedNamesService.removeUnitDefinedName(e30); }, onLoad: (e30, t2) => { this._definedNamesService.registerDefinedNames(e30, t2); } })); } }; wf2 = G4([W4(0, pr2), W4(1, ll)], wf2); var Tf2 = [Gu3.id]; var Ef2 = [Sn3.id, wn3.id, jn2.id, Nn3.id, Dn3.id, kn3.id]; var Df2 = class extends E { constructor(e29, t, n) { var r, i; super(), this._univerInstanceService = e29, this._commandService = t, this._configService = n, U4(this, `_d`, new un()), U4(this, `_enabled`, true); let a = (r = (i = this._configService.getConfig(`sheets.config`)) == null ? void 0 : i.freezeSync) == null ? true : r; this.setEnabled(a); } getEnabled() { return this._enabled; } setEnabled(e29) { e29 ? this._d.dispose() : this._initOnlyLocalListener(), this._enabled = e29; } _initOnlyLocalListener() { this._d.add(this._commandService.beforeCommandExecuted((e29, t) => { Tf2.includes(e29.id) && (t || (t = {}), t.onlyLocal = true); })), this._d.add(this._commandService.onCommandExecuted((e29, t) => { if (Ef2.includes(e29.id) && t != null && t.fromCollab) { let { id: n, params: r } = e29; n === Sn3.id ? this._handleInsertRowMutation(r, t) : n === wn3.id ? this._handleInsertColMutation(r, t) : n === jn2.id ? this._handleRemoveRowMutation(r, t) : n === Nn3.id ? this._handleRemoveColMutation(r, t) : n === Dn3.id ? this._handleMoveRowsMutation(r, t) : n === kn3.id && this._handleMoveColsMutation(r, t); } })); } _handleInsertRowMutation(e29, t) { let { range: n, unitId: r, subUnitId: i } = e29, a = this._getFreeze(r, i); if (a && n.startRow < a.startRow) { let e30 = n.endRow - n.startRow + 1, o = { ...a, startRow: Math.max(1, a.startRow + e30), ySplit: Math.max(1, a.ySplit + e30) }; this._sequenceExecute(r, i, o, t); } } _handleInsertColMutation(e29, t) { let { range: n, unitId: r, subUnitId: i } = e29, a = this._getFreeze(r, i); if (a && n.startColumn < a.startColumn) { let e30 = n.endColumn - n.startColumn + 1, o = { ...a, startColumn: Math.max(1, a.startColumn + e30), xSplit: Math.max(1, a.xSplit + e30) }; this._sequenceExecute(r, i, o, t); } } _handleRemoveRowMutation(e29, t) { let { range: n, unitId: r, subUnitId: i } = e29, a = this._getFreeze(r, i); if (a && n.startRow < a.startRow) { let e30 = Math.min(a.startRow, n.endRow + 1) - n.startRow, o = { ...a, startRow: Math.max(1, a.startRow - e30), ySplit: Math.max(1, a.ySplit - e30) }; this._sequenceExecute(r, i, o, t); } } _handleRemoveColMutation(e29, t) { let { range: n, unitId: r, subUnitId: i } = e29, a = this._getFreeze(r, i); if (a && n.startColumn < a.startColumn) { let e30 = Math.min(a.startColumn, n.endColumn + 1) - n.startColumn, o = { ...a, startColumn: Math.max(1, a.startColumn - e30), xSplit: Math.max(1, a.xSplit - e30) }; this._sequenceExecute(r, i, o, t); } } _handleMoveRowsMutation(e29, t) { let { sourceRange: n, targetRange: r, unitId: i, subUnitId: a } = e29, o = this._getFreeze(i, a); if (!o || o.startRow <= 0 || n.startRow >= o.startRow && r.startRow >= o.startRow || n.endRow < o.startRow && r.endRow < o.startRow) return; let s = n.endRow - n.startRow + 1, c = Math.max(Math.min(o.startRow, n.endRow + 1) - n.startRow, 0), l = { ...o }; r.startRow >= o.startRow ? (l.startRow = Math.max(1, o.startRow - c), l.ySplit = Math.max(1, o.ySplit - c)) : (l.startRow = o.startRow + s - c, l.ySplit = o.ySplit + s - c), this._sequenceExecute(i, a, l, t); } _handleMoveColsMutation(e29, t) { let { sourceRange: n, targetRange: r, unitId: i, subUnitId: a } = e29, o = this._getFreeze(i, a); if (!o || o.startColumn <= 0 || n.startColumn >= o.startColumn && r.startColumn >= o.startColumn || n.endColumn < o.startColumn && r.endColumn < o.startColumn) return; let s = n.endColumn - n.startColumn + 1, c = Math.max(Math.min(o.startColumn, n.endColumn + 1) - n.startColumn, 0), l = { ...o }; r.startColumn >= o.startColumn ? (l.startColumn = Math.max(1, o.startColumn - c), l.xSplit = Math.max(1, o.xSplit - c)) : (l.startColumn = o.startColumn + s - c, l.xSplit = o.xSplit + s - c), this._sequenceExecute(i, a, l, t); } _getFreeze(e29, t) { let n = this._univerInstanceService.getUnit(e29, O.UNIVER_SHEET); if (!n) return null; let r = n.getSheetBySheetId(t); return r ? r.getFreeze() : null; } _sequenceExecute(e29, t, n, r) { li([{ id: Gu3.id, params: { ...n, unitId: e29, subUnitId: t, resetScroll: false } }], this._commandService, r); } }; Df2 = G4([W4(0, Inject(Mu)), W4(1, ii), W4(2, Yr)], Df2); var Of2 = class extends E { constructor(e29, t, n, r, i, a, o, s, c, l) { super(), this._commandService = e29, this._univerInstanceService = t, this._permissionService = n, this._selectionManagerService = r, this._rangeProtectionRuleModel = i, this._worksheetProtectionRuleModel = a, this._localeService = o, this._lexerTreeBuilder = s, this._contextService = c, this._definedNamesService = l, U4(this, `disposableCollection`, new un()), U4(this, `_triggerPermissionUIEvent$`, new Subject()), U4(this, `triggerPermissionUIEvent$`, this._triggerPermissionUIEvent$.asObservable()), this._initialize(); } blockExecuteWithoutPermission(e29) { throw this._triggerPermissionUIEvent$.next(e29), new wt(`have no permission`); } _getPermissionCheck(e29, t) { let n = true, r = ``; switch (e29) { case no3.id: Ki(t.value) && t.value.f ? (n = this._permissionCheckWithFormula(t), r = this._localeService.t(`permission.dialog.formulaErr`)) : n = this._permissionCheckBySetRangeValue({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Za3, Ba3] }, t); break; case Zl3.id: n = this.permissionCheckWithRanges({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Za3, Ba3] }, t == null ? void 0 : t.ranges, t == null ? void 0 : t.unitId, t == null ? void 0 : t.subUnitId), r = this._localeService.t(`permission.dialog.editErr`); break; case pd2.id: case md3.id: n = this.permissionCheckWithoutRange({ worksheetTypes: [Qa2] }), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case Kd2.id: case qd2.id: case Jd2.id: n = this.permissionCheckWithoutRange({ worksheetTypes: [$a3] }), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case Wo2.id: case Ho2.id: n = this._permissionCheckByMoveCommand(t), r = this._localeService.t(`permission.dialog.moveRowColErr`); break; case oa3.id: n = this._permissionCheckByMoveRangeCommand(t), r = this._localeService.t(`permission.dialog.moveRangeErr`); break; case Ed3.id: n = this._permissionCheckByWorksheetCommand([Sa3, ka3]), r = this._localeService.t(`permission.dialog.operatorSheetErr`), n === false && this._worksheetProtectionRuleModel.resetOrder(); break; case Cd3.id: n = this._permissionCheckByWorksheetCommand([Sa3, Ma2]), r = this._localeService.t(`permission.dialog.operatorSheetErr`), n === false && this._worksheetProtectionRuleModel.resetOrder(); break; case Yd2.id: { let { unitId: e30, subUnitId: i } = t; n = this._permissionCheckByWorksheetCommand([Sa3, wa2], e30, i), r = this._localeService.t(`permission.dialog.operatorSheetErr`), n === false && this._worksheetProtectionRuleModel.resetOrder(); } break; case Lu3.id: n = this.permissionCheckWithRanges({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Ba3, Qa2] }, t.ranges, t.unitId, t.subUnitId), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case td3.id: n = this.permissionCheckWithRanges({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Ba3, $a3] }, t.ranges, t.unitId, t.subUnitId), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case Ru3.id: n = this.permissionCheckWithRanges({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Ba3, Qa2] }), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case nd3.id: n = this.permissionCheckWithRanges({ workbookTypes: [Sa3], rangeTypes: [da3], worksheetTypes: [Ba3, $a3] }), r = this._localeService.t(`permission.dialog.setRowColStyleErr`); break; case ho2.id: n = this._permissionCheckWithInsertRangeMove(`right`), r = this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`); break; case po2.id: n = this._permissionCheckWithInsertRangeMove(`bottom`), r = this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`); break; case co3.id: n = this._permissionCheckWithInsertRangeMove(`left`), r = this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`); break; case uo3.id: n = this._permissionCheckWithInsertRangeMove(`top`), r = this._localeService.t(`permission.dialog.insertOrDeleteMoveRangeErr`); break; case Gl3.id: n = this._permissionCheckByAutoFillCommand(t), r = this._localeService.t(`permission.dialog.autoFillErr`); break; default: break; } n || this.blockExecuteWithoutPermission(r); } _initialize() { this._commandExecutedListener(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.beforeCommandExecuted((e29) => { this._getPermissionCheck(e29.id, e29 == null ? void 0 : e29.params); })), this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id === Sd3.id) { var t; let { unitId: n = (t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET)) == null ? void 0 : t.getUnitId(), subUnitId: r } = e29.params; if (!n || !r) return; let i = this._worksheetProtectionRuleModel.getRule(n, r), a = this._rangeProtectionRuleModel.getSubunitRuleList(n, r); i && this._worksheetProtectionRuleModel.ruleRefresh(i.permissionId), a.length && this._rangeProtectionRuleModel.ruleRefresh(r); } })); } _permissionCheckWithInsertRangeMove(e29) { var t; let n = V4(this._univerInstanceService); if (!n) return false; let { worksheet: r, unitId: i, subUnitId: a } = n, o = D.deepClone((t = this._selectionManagerService.getCurrentLastSelection()) == null ? void 0 : t.range); return !(!o || (e29 === `top` || e29 === `bottom` ? o.endRow = r.getRowCount() - 1 : (e29 === `left` || e29 === `right`) && (o.endColumn = r.getColumnCount() - 1), this._rangeProtectionRuleModel.getSubunitRuleList(i, a).map((e30) => e30.ranges).flat().some((e30) => G.getIntersects(o, e30)))); } _permissionCheckByWorksheetCommand(e29, t, n) { let r = V4(this._univerInstanceService, { unitId: t, subUnitId: n }); if (!r) return false; let { unitId: i, subUnitId: a } = r, o = this._worksheetProtectionRuleModel.getRule(i, a), s = this._rangeProtectionRuleModel.getSubunitRuleList(i, a).length > 0; if (o || s) { var c, l; return (c = (l = this._permissionService.getPermissionPoint(new Oa2(i).id)) == null ? void 0 : l.value) == null ? false : c; } else return this._permissionService.composePermission(e29.map((e30) => new e30(i).id)).every((e30) => e30.value); } permissionCheckWithoutRange(e29) { var t, n, r, i; let a = V4(this._univerInstanceService); if (!a) return false; let { worksheet: o, unitId: s, subUnitId: c } = a, l = this._selectionManagerService.getCurrentLastSelection(); if (!l) return true; let u = (t = l == null || (n = l.primary) == null ? void 0 : n.actualRow) == null ? 0 : t, d = (r = l == null || (i = l.primary) == null ? void 0 : i.actualColumn) == null ? 0 : r, { workbookTypes: f, worksheetTypes: p, rangeTypes: m } = e29; return !(f && f.some((e30) => { var t2, n2; let r2 = new e30(s); return ((t2 = (n2 = this._permissionService.getPermissionPoint(r2.id)) == null ? void 0 : n2.value) == null ? false : t2) === false; }) === true || p && p.some((e30) => { var t2, n2; let r2 = new e30(s, c); return ((t2 = (n2 = this._permissionService.getPermissionPoint(r2.id)) == null ? void 0 : n2.value) == null ? false : t2) === false; }) === true || m && m.some((e30) => { var t2, n2, r2, i2; let a2 = (t2 = o.getCell(u, d)) == null || (t2 = t2.selectionProtection) == null ? void 0 : t2[0]; if (!(a2 != null && a2.ruleId)) return false; let l2 = (n2 = this._rangeProtectionRuleModel.getRule(s, c, a2.ruleId)) == null ? void 0 : n2.permissionId; if (!l2) return false; let f2 = new e30(s, c, l2); return ((r2 = (i2 = this._permissionService.getPermissionPoint(f2.id)) == null ? void 0 : i2.value) == null ? false : r2) === false; }) === true); } permissionCheckWithRanges(e29, t, n, r) { var i; let a = V4(this._univerInstanceService, { unitId: n, subUnitId: r }); if (!a) return false; let o = t == null ? (i = this._selectionManagerService.getCurrentSelections()) == null ? void 0 : i.map((e30) => e30.range) : t; if (!o) return false; let { unitId: s, subUnitId: c } = a, { workbookTypes: l, worksheetTypes: u, rangeTypes: d } = e29, f = []; return l && f.push(...l.map((e30) => new e30(s).id)), u && f.push(...u.map((e30) => new e30(s, c).id)), d && this._rangeProtectionRuleModel.getSubunitRuleList(s, c).forEach((e30) => { o.some((t2) => e30.ranges.some((e31) => G.intersects(e31, t2))) && f.push(...d.map((t2) => new t2(s, c, e30.permissionId).id)); }), f.length ? this._permissionService.composePermission(f).every((e30) => e30.value) : true; } _permissionCheckByMoveCommand(e29) { let t = V4(this._univerInstanceService, e29); if (!t) return false; let { worksheet: n, unitId: r, subUnitId: i } = t, a = e29.toRange; a.endRow === n.getRowCount() - 1 ? a.endColumn = a.startColumn : a.endRow = a.startRow; let o = this._rangeProtectionRuleModel.getSubunitRuleList(r, i).reduce((e30, t2) => [...e30, ...t2.ranges], []).filter((e30) => G.intersects(e30, a)); return o.length > 0 ? false : (o.forEach((e30) => { for (let r2 = e30.startRow; r2 <= e30.endRow; r2++) for (let i2 = e30.startColumn; i2 <= e30.endColumn; i2++) { var t2; let e31 = (t2 = n.getCell(r2, i2)) == null || (t2 = t2.selectionProtection) == null ? void 0 : t2[0]; if ((e31 == null ? void 0 : e31[R.Edit]) === false) return false; } }), true); } _permissionCheckByMoveRangeCommand(e29) { let t = V4(this._univerInstanceService); if (!t) return false; let { worksheet: n, unitId: r, subUnitId: i } = t, a = e29.toRange, o = this._rangeProtectionRuleModel.getSubunitRuleList(r, i).reduce((e30, t2) => [...e30, ...t2.ranges], []).filter((e30) => G.intersects(e30, a)); return o.length > 0 ? false : (o.forEach((e30) => { for (let r2 = e30.startRow; r2 <= e30.endRow; r2++) for (let i2 = e30.startColumn; i2 <= e30.endColumn; i2++) { var t2; let e31 = (t2 = n.getCell(r2, i2)) == null || (t2 = t2.selectionProtection) == null ? void 0 : t2[0]; if ((e31 == null ? void 0 : e31[R.Edit]) === false) return false; } }), true); } _permissionCheckBySetRangeValue(e29, t) { let n = []; n = t.range ? [t.range] : [new Sa(t.value).getDataRange()]; let { unitId: r, subUnitId: i } = t; return this.permissionCheckWithRanges(e29, n, r, i); } _permissionCheckWithFormula(e29) { let t = e29.value, n = e29.range, r = t.f; if (r) { var i; let t2 = r.substring(1), n2 = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET), s = (i = e29.unitId) == null ? n2.getUnitId() : i, c = this._definedNamesService.getValueByName(s, t2); if (c) { let e30 = c.formulaOrRefString; e30.startsWith(O4.EQUALS) && (e30 = e30.slice(1)); let t3 = e30.split(`,`); for (let e31 = 0; e31 < t3.length; e31++) { let r2 = t3[e31], i2 = Zn2(r2); if (i2.sheetName) { let e32 = n2.getSheetBySheetName(i2.sheetName); if (!e32) return true; let { startRow: t4, endRow: r3, startColumn: o2, endColumn: s2 } = i2.range; for (let n3 = t4; n3 <= r3; n3++) for (let t5 = o2; t5 <= s2; t5++) { var a; let r4 = (a = e32.getCell(n3, t5)) == null || (a = a.selectionProtection) == null ? void 0 : a[0]; if ((r4 == null ? void 0 : r4[R.View]) === false) return false; } } } return true; } else { let e30 = this._lexerTreeBuilder.sequenceNodesBuilder(r); if (!e30) return true; for (let t3 = 0; t3 < e30.length; t3++) { let n3 = e30[t3]; if (typeof n3 == `string` || n3.nodeType !== Xr.REFERENCE) continue; let { token: r2 } = n3, i2 = Jr2(r2), a2 = i2.unitId ? this._univerInstanceService.getUnit(i2.unitId) : this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (!a2) return true; let s2 = i2.sheetName ? a2.getSheetBySheetName(i2.sheetName) : a2.getActiveSheet(), c2 = a2.getUnitId(); if (i2.sheetName) { if (s2 = a2.getSheetBySheetName(i2.sheetName), !s2) return true; let e31 = s2 == null ? void 0 : s2.getSheetId(); if (!this._permissionService.getPermissionPoint(new to3(c2, e31).id)) return false; } if (!s2) return true; let { startRow: l, endRow: u, startColumn: d, endColumn: f } = i2.range; for (let e31 = l; e31 <= u; e31++) for (let t4 = d; t4 <= f; t4++) { var o; let n4 = (o = s2.getCell(e31, t4)) == null || (o = o.selectionProtection) == null ? void 0 : o[0]; if ((n4 == null ? void 0 : n4[R.View]) === false) return false; } } return true; } } if (n) { let t2 = V4(this._univerInstanceService, e29); if (!t2) return false; let { unitId: r2, subUnitId: i2 } = t2, a2 = this._rangeProtectionRuleModel.getSubunitRuleList(r2, i2).filter((e30) => e30.ranges.some((e31) => G.intersects(e31, n))).map((e30) => new da3(r2, i2, e30.permissionId).id); if (!this._permissionService.composePermission(a2).every((e30) => e30.value)) return false; } return true; } _permissionCheckByAutoFillCommand(e29) { if (!e29) return false; let { targetRange: t } = e29, n = V4(this._univerInstanceService, e29); if (!n) return false; let { worksheet: r, unitId: i, subUnitId: a } = n; return !this._rangeProtectionRuleModel.getSubunitRuleList(i, a).reduce((e30, t2) => [...e30, ...t2.ranges], []).filter((e30) => G.intersects(e30, t)).some((e30) => { for (let n2 = e30.startRow; n2 <= e30.endRow; n2++) for (let i2 = e30.startColumn; i2 <= e30.endColumn; i2++) { var t2; let e31 = (t2 = r.getCell(n2, i2)) == null || (t2 = t2.selectionProtection) == null ? void 0 : t2[0]; if ((e31 == null ? void 0 : e31[R.Edit]) === false) return true; } return false; }); } }; Of2 = G4([W4(0, ii), W4(1, Mu), W4(2, Uu), W4(3, Inject(Y4)), W4(4, Inject(Ni2)), W4(5, Inject(fc3)), W4(6, Inject(zu)), W4(7, Inject(ni)), W4(8, Zr), W4(9, pr2)], Of2); var kf2 = class extends E { constructor(e29, t, n, r, i) { super(), this._permissionService = e29, this._univerInstanceService = t, this._rangeProtectionRuleModel = n, this._worksheetProtectionRuleModel = r, this._worksheetProtectionPointModel = i, U4(this, `_unitPermissionInitStateChange`, new BehaviorSubject(false)), U4(this, `unitPermissionInitStateChange$`, this._unitPermissionInitStateChange.asObservable()), this._init(); } _init() { let e29 = (e30) => { let t = e30.getUnitId(); Nd2().forEach((e31) => { let n = new e31(t); this._permissionService.addPermissionPoint(n); }); }; this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).forEach((t) => { e29(t); }), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).subscribe((t) => { e29(t); })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).subscribe((e30) => { let t = e30.getUnitId(); e30.getSheets().forEach((e31) => { let n = e31.getSheetId(); this._rangeProtectionRuleModel.getSubunitRuleList(t, n).forEach((e32) => { [...Ad2()].forEach((r) => { let i = new r(t, n, e32.permissionId); this._permissionService.deletePermissionPoint(i.id); }); }), [...Fd2(), ...Id2()].forEach((e32) => { let r = new e32(t, n); this._permissionService.deletePermissionPoint(r.id); }); }), Nd2().forEach((e31) => { let n = new e31(t); this._permissionService.deletePermissionPoint(n.id); }), this._rangeProtectionRuleModel.deleteUnitModel(t), this._worksheetProtectionPointModel.deleteUnitModel(t), this._worksheetProtectionRuleModel.deleteUnitModel(t); })); } changeUnitInitState(e29) { this._unitPermissionInitStateChange.next(e29); } }; kf2 = G4([W4(0, Inject(Uu)), W4(1, Inject(Mu)), W4(2, Inject(Ni2)), W4(3, Inject(fc3)), W4(4, Inject(Dd3))], kf2); var Af2 = class extends E { constructor(e29, t, n, r, i, a, o, s, c, l) { super(), this._univerInstanceService = e29, this._permissionService = t, this._authzIoService = n, this._rangeProtectionRuleModel = r, this._worksheetProtectionRuleModel = i, this._userManagerService = a, this._worksheetProtectionPointRuleModel = o, this._workbookPermissionService = s, this._undoRedoService = c, this._commandService = l; } initPermission() { this._initRangePermissionFromSnapshot(), this._initRangePermissionChange(), this._initWorksheetPermissionFromSnapshot(), this._initWorksheetPermissionChange(), this._initWorksheetPermissionPointsChange(), this._initWorkbookPermissionFromSnapshot(), this._initUserChange(), this._refreshPermissionByCollaCreate(); } refreshRangeProtectPermission() { this._initRangePermissionFromSnapshot(); } async _initRangePermissionFromSnapshot() { let e29 = async (e30) => { let t = [], n = e30.getUnitId(), r = e30.getSheets(), i = /* @__PURE__ */ new Map(); if (r.forEach((e31) => { let r2 = e31.getSheetId(); this._rangeProtectionRuleModel.getSubunitRuleList(n, r2).forEach((e32) => { i.set(e32.permissionId, e32), t.push({ objectID: e32.permissionId, unitID: n, objectType: S.SelectRange, actions: jd2 }); }); }), !t.length) { this._rangeProtectionRuleModel.changeRuleInitState(true); return; } this._authzIoService.batchAllowed(t).then((e31) => { e31.forEach((e32) => { let t2 = i.get(e32.objectID); if (t2) { if (!this._rangeProtectionRuleModel.getRule(n, t2.subUnitId, t2.id)) return; Ad2().forEach((r2) => { let i2 = new r2(n, t2.subUnitId, e32.objectID), a = i2.subType, o = e32.actions.find((e33) => e33.action === a); (o == null ? void 0 : o.allowed) !== void 0 && this._permissionService.updatePermissionPoint(i2.id, o.allowed); }); } }), this._rangeProtectionRuleModel.changeRuleInitState(true); }); }; await Promise.all(this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).map((t) => e29(t))), this._rangeProtectionRuleModel.changeRuleInitState(true); } _initRangePermissionChange() { this.disposeWithMe(this._rangeProtectionRuleModel.ruleChange$.subscribe((e29) => { e29.type === `delete` ? this._rangeProtectionRuleModel.getSubunitRuleList(e29.unitId, e29.subUnitId).length === 0 && (this._worksheetProtectionPointRuleModel.deleteRule(e29.unitId, e29.subUnitId), [...Id2()].forEach((t) => { let n = new t(e29.unitId, e29.subUnitId); this._permissionService.updatePermissionPoint(n.id, n.value); })) : this._authzIoService.allowed({ objectID: e29.rule.permissionId, unitID: e29.unitId, objectType: S.SelectRange, actions: jd2 }).then((t) => { this._rangeProtectionRuleModel.getRule(e29.unitId, e29.subUnitId, e29.rule.id) && (Ad2().forEach((n) => { if (e29.type === `set`) { let { rule: t2, oldRule: n2 } = e29; if (t2.permissionId === (n2 == null ? void 0 : n2.permissionId)) return; } let r = e29.rule, i = new n(r.unitId, r.subUnitId, r.permissionId), a = i.subType, o = t.find((e30) => e30.action === a); o && this._permissionService.updatePermissionPoint(i.id, o.allowed); }), this._rangeProtectionRuleModel.ruleRefresh(e29.rule.permissionId)); }); })); } async initWorkbookPermissionChange(e29) { var t; let n = e29 || ((t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET)) == null ? void 0 : t.getUnitId()); if (n) return this._authzIoService.allowed({ objectID: n, objectType: S.Workbook, unitID: n, actions: Pd2 }).then((e30) => { Nd2().forEach((t2) => { let r = new t2(n), i = r.subType, a = e30.find((e31) => e31.action === i); a && this._permissionService.updatePermissionPoint(r.id, a.allowed); }); }); } async _initWorkbookPermissionFromSnapshot() { await Promise.all(this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).map((e29) => this.initWorkbookPermissionChange(e29.getUnitId()))), this._workbookPermissionService.changeUnitInitState(true); } _initWorksheetPermissionChange() { this.disposeWithMe(this._worksheetProtectionRuleModel.ruleChange$.subscribe((e29) => { e29.type === `delete` ? ([...Fd2(), ...Id2()].forEach((t) => { let n = new t(e29.unitId, e29.subUnitId); this._permissionService.updatePermissionPoint(n.id, true); }), this._worksheetProtectionPointRuleModel.deleteRule(e29.unitId, e29.subUnitId)) : this._authzIoService.allowed({ objectID: e29.rule.permissionId, unitID: e29.unitId, objectType: S.Worksheet, actions: jd2 }).then((t) => { let n = this._worksheetProtectionRuleModel.getRule(e29.unitId, e29.subUnitId); !n || n.permissionId !== e29.rule.permissionId || (Fd2().forEach((n2) => { let r = new n2(e29.unitId, e29.subUnitId), i = r.subType, a = t.find((e30) => e30.action === i); a && this._permissionService.updatePermissionPoint(r.id, a.allowed); }), this._worksheetProtectionRuleModel.ruleRefresh(e29.rule.permissionId)); }); })); } _initWorksheetPermissionPointsChange() { this.disposeWithMe(this._worksheetProtectionPointRuleModel.pointChange$.subscribe((e29) => { this._authzIoService.allowed({ objectID: e29.permissionId, unitID: e29.unitId, objectType: S.Worksheet, actions: Ld2 }).then((t) => { let n = this._worksheetProtectionPointRuleModel.getRule(e29.unitId, e29.subUnitId); !n || n.permissionId !== e29.permissionId || Id2().forEach((n2) => { let r = new n2(e29.unitId, e29.subUnitId), i = r.subType, a = t.find((e30) => e30.action === i); a && this._permissionService.updatePermissionPoint(r.id, a.allowed); }); }); })); } async _initWorksheetPermissionFromSnapshot() { let e29 = async (e30) => { let t = [], n = e30.getUnitId(), r = e30.getSheets(), i = /* @__PURE__ */ new Map(); if (r.forEach((e31) => { let r2 = e31.getSheetId(), a = this._worksheetProtectionRuleModel.getRule(n, r2); a && (i.set(a.permissionId, a), t.push({ objectID: a.permissionId, unitID: n, objectType: S.Worksheet, actions: jd2 })); let o = this._worksheetProtectionPointRuleModel.getRule(n, r2); o && (i.set(o.permissionId, o), t.push({ objectID: o.permissionId, unitID: n, objectType: S.Worksheet, actions: Ld2 })); }), !t.length) { this._worksheetProtectionRuleModel.changeRuleInitState(true); return; } this._authzIoService.batchAllowed(t).then((e31) => { e31.forEach((e32) => { let t2 = i.get(e32.objectID); if (t2) { let r2 = this._worksheetProtectionRuleModel.getRule(n, t2.subUnitId) || this._worksheetProtectionPointRuleModel.getRule(n, t2.subUnitId); if (!r2 || r2.permissionId !== e32.objectID) return; [...Fd2(), ...Id2()].forEach((r3) => { let i2 = new r3(n, t2.subUnitId), a = i2.subType, o = e32.actions.find((e33) => e33.action === a); (o == null ? void 0 : o.allowed) !== void 0 && this._permissionService.updatePermissionPoint(i2.id, o.allowed); }); } }), this._worksheetProtectionRuleModel.changeRuleInitState(true); }); }; await Promise.all(this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).map((t) => e29(t))), this._worksheetProtectionRuleModel.changeRuleInitState(true); } _initUserChange() { this.disposeWithMe(this._userManagerService.currentUser$.pipe(skip(1)).subscribe(() => { let e29 = this._permissionService.getAllPermissionPoint(); this._permissionService.clearPermissionMap(), this._worksheetProtectionRuleModel.changeRuleInitState(false), this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).forEach((t) => { let n = t.getUnitId(); Nd2().forEach((t2) => { let r = new t2(n); e29.has(r.id) && (r = e29.get(r.id)), this._permissionService.addPermissionPoint(r); }), t.getSheets().forEach((t2) => { let r = t2.getSheetId(); [...Fd2(), ...Id2()].forEach((t3) => { let i = new t3(n, r); e29.has(i.id) && (i = e29.get(i.id)), this._permissionService.addPermissionPoint(i); }), this._rangeProtectionRuleModel.getSubunitRuleList(n, r).forEach((t3) => { Ad2().forEach((i) => { let a = new i(n, r, t3.permissionId); e29.has(a.id) && (a = e29.get(a.id)), this._permissionService.addPermissionPoint(a); }); }); }), this._initWorkbookPermissionFromSnapshot(), this._initWorksheetPermissionFromSnapshot(), this._initRangePermissionFromSnapshot(); }); })); } refreshPermission(e29, t) { let n = this._worksheetProtectionRuleModel.getTargetByPermissionId(e29, t), r = false; if (n) { let [i2, a2] = n; this._authzIoService.allowed({ objectID: t, unitID: e29, objectType: S.Worksheet, actions: jd2 }).then((n2) => { if (!this._worksheetProtectionRuleModel.getTargetByPermissionId(e29, t)) return; let i3 = ``; Fd2().forEach((t2) => { let o = new t2(e29, a2), s = o.subType, c = n2.find((e30) => e30.action === s); if (c) { var l; ((l = this._permissionService.getPermissionPoint(o.id)) == null ? void 0 : l.value) !== c.allowed && (r = true), this._permissionService.updatePermissionPoint(o.id, c.allowed), i3 += `${c.action}_${c.allowed}`; } }), this._worksheetProtectionRuleModel.ruleRefresh(`${t}_${i3}`), r && this._undoRedoService.clearUndoRedo(e29); }); } let i = this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e29, t); if (i) { let [n2, a2] = i; this._authzIoService.allowed({ objectID: t, unitID: e29, objectType: S.Worksheet, actions: Ld2 }).then((n3) => { this._worksheetProtectionPointRuleModel.getTargetByPermissionId(e29, t) && (Id2().forEach((t2) => { let i2 = new t2(e29, a2), o = i2.subType, s = n3.find((e30) => e30.action === o); if (s) { var c; ((c = this._permissionService.getPermissionPoint(i2.id)) == null ? void 0 : c.value) !== s.allowed && (r = true), this._permissionService.updatePermissionPoint(i2.id, s.allowed); } }), r && this._undoRedoService.clearUndoRedo(e29)); }); } let a = this._rangeProtectionRuleModel.getTargetByPermissionId(e29, t); if (a) { let [n2, i2] = a; this._authzIoService.allowed({ objectID: t, unitID: e29, objectType: S.SelectRange, actions: jd2 }).then((n3) => { if (!this._rangeProtectionRuleModel.getTargetByPermissionId(e29, t)) return; let a2 = ``; Ad2().forEach((o) => { let s = new o(e29, i2, t), c = s.subType, l = n3.find((e30) => e30.action === c); if (l) { var u; ((u = this._permissionService.getPermissionPoint(s.id)) == null ? void 0 : u.value) !== l.allowed && (r = true), this._permissionService.updatePermissionPoint(s.id, l.allowed), a2 += `${l.action}_${l.allowed}`; } }), this._rangeProtectionRuleModel.ruleRefresh(`${t}_${a2}`), r && this._undoRedoService.clearUndoRedo(e29); }); } } _refreshPermissionByCollaCreate() { this.disposeWithMe(this._commandService.onCommandExecuted((e29, t) => { if (t != null && t.fromCollab && (e29.id === Li2.id || e29.id === pc3.id || e29.id === zd2.id)) { let t2 = e29.params; this._undoRedoService.clearUndoRedo(t2.unitId); } })); } }; Af2 = G4([W4(0, Mu), W4(1, Uu), W4(2, hl), W4(3, Inject(Ni2)), W4(4, Inject(fc3)), W4(5, Inject(pl)), W4(6, Inject(Dd3)), W4(7, Inject(kf2)), W4(8, Inject(td)), W4(9, Inject(ii))], Af2); var jf2 = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._sheetRangeThemeModel = t, this._univerInstanceService = n, U4(this, `_zebraCacheUpdateSubject`, new Subject()), this._init(); } _init() { this._initializeCommandListener(), this._initTriggerCacheUpdateListener(); } updateZebraCrossingCache(e29, t) { this._zebraCacheUpdateSubject.next({ unitId: e29, subUnitId: t }); } _initializeCommandListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { let { id: t } = e29, n, r; switch (t) { case Sn3.id: { let t2 = e29.params; n = t2.unitId, r = t2.subUnitId; } break; case Cr3.id: { let t2 = e29.params; n = t2.unitId, r = t2.subUnitId; } break; case Tr3.id: { let t2 = e29.params; n = t2.unitId, r = t2.subUnitId; } break; case jn2.id: { let t2 = e29.params; n = t2.unitId, r = t2.subUnitId; } break; case Lr3.id: { let t2 = e29.params; n = t2.unitId, r = t2.subUnitId; } break; default: break; } n && r && (this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(n, r), this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(n, r)); })); } _initTriggerCacheUpdateListener() { this.disposeWithMe(this._zebraCacheUpdateSubject.subscribe(({ unitId: e29, subUnitId: t }) => { this._sheetRangeThemeModel.refreshSheetRowVisibleFuncSet(e29, t), this._sheetRangeThemeModel.refreshZebraCrossingCacheBySheet(e29, t); })); } }; jf2 = G4([W4(0, Inject(ii)), W4(1, Inject(gn3)), W4(2, Inject(Mu))], jf2); var Mf2 = class { constructor(e29, t) { this._selectionProtectionRuleModel = e29, this._permissionService = t, U4(this, `_cache`, new so(1e4)), this._init(); } _init() { this._permissionService.permissionPointUpdate$.pipe(filter((e29) => e29.type === S.SelectRange), filter((e29) => Ad2().some((t) => e29 instanceof t)), map((e29) => e29)).subscribe((e29) => { let t = this._selectionProtectionRuleModel.getSubunitRuleList(e29.unitId, e29.subUnitId); for (let n of t) n.permissionId === e29.permissionId && n.ranges.forEach((t2) => { Eo.foreach(t2, (t3, n2) => { let r = this._createKey(e29.unitId, e29.subUnitId, t3, n2); this._cache.delete(r); }); }); }), this._selectionProtectionRuleModel.ruleChange$.subscribe((e29) => { if (e29.rule.ranges.forEach((t2) => { Eo.foreach(t2, (t3, n) => { let r = this._createKey(e29.unitId, e29.subUnitId, t3, n); this._cache.delete(r); }); }), e29.type === `set`) { var t; (t = e29.oldRule) == null || t.ranges.forEach((t2) => { Eo.foreach(t2, (t3, n) => { let r = this._createKey(e29.unitId, e29.subUnitId, t3, n); this._cache.delete(r); }); }); } }); } _createKey(e29, t, n, r) { return `${e29}_${t}_${n}_${r}`; } getCellInfo(e29, t, n, r) { let i = this._selectionProtectionRuleModel.getSubunitRuleList(e29, t), a = []; if (!i || !i.length) return a; let o = this._createKey(e29, t, n, r), s = this._cache.get(o); if (s) return s; let c = []; for (let a2 of i) if (a2.ranges.some((e30) => e30.startRow <= n && e30.endRow >= n && e30.startColumn <= r && e30.endColumn >= r)) { let n2 = Ad2().reduce((n3, r2) => { var i2; let o2 = new r2(e29, t, a2.permissionId), s2 = this._permissionService.getPermissionPoint(o2.id); return n3[o2.subType] = (i2 = s2 == null ? void 0 : s2.value) == null ? o2.value : i2, n3; }, {}); c.push({ ...n2, ruleId: a2.id, ranges: a2.ranges }); } return this._cache.set(o, c), c; } clear() { this._cache.clear(); } }; Mf2 = G4([W4(0, Inject(Ni2)), W4(1, Inject(Uu))], Mf2); var Nf2 = class extends E { constructor(e29, t, n) { super(), this._ruleModel = e29, this._permissionService = t, this._univerInstanceService = n, U4(this, `_cellRuleCache`, /* @__PURE__ */ new Map()), U4(this, `_permissionIdCache`, /* @__PURE__ */ new Map()), U4(this, `_cellInfoCache`, /* @__PURE__ */ new Map()), U4(this, `_rowInfoCache`, /* @__PURE__ */ new Map()), U4(this, `_colInfoCache`, /* @__PURE__ */ new Map()), this._initUpdateCellRuleCache(), this._initUpdateCellInfoCache(), this._initUpdateRowColInfoCache(), this._initCache(); } _initCache() { this._univerInstanceService.getAllUnitsForType(O.UNIVER_SHEET).forEach((e29) => { e29.getSheets().forEach((t) => { let n = e29.getUnitId(), r = t.getSheetId(); this.reBuildCache(n, r); }); }); } _initUpdateCellInfoCache() { this._permissionService.permissionPointUpdate$.pipe(filter((e29) => e29.type === S.SelectRange), map((e29) => e29)).subscribe((e29) => { let { subUnitId: t, unitId: n, permissionId: r } = e29, i = this._permissionIdCache.get(r); if (!i) return; let a = this._ruleModel.getRule(n, t, i); if (!a) return; let o = this._ensureCellInfoMap(n, t); a.ranges.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: i2 } = e30; for (let e31 = t2; e31 <= n2; e31++) for (let t3 = r2; t3 <= i2; t3++) o.delete(`${e31}-${t3}`); }); }), this._ruleModel.ruleChange$.subscribe((e29) => { let { unitId: t, subUnitId: n } = e29, r = this._ensureCellInfoMap(t, n); if (e29.rule.ranges.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { r.delete(`${e31}-${t2}`); }); }), e29.type === `set`) { var i; (i = e29.oldRule) == null || i.ranges.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { this._cellInfoCache.delete(`${e31}-${t2}`); }); }); } }); } _initUpdateCellRuleCache() { this._ruleModel.ruleChange$.subscribe((e29) => { let { type: t } = e29; t === `add` ? this._addCellRuleCache(e29) : t === `delete` ? this._deleteCellRuleCache(e29) : (this._deleteCellRuleCache({ ...e29, rule: e29.oldRule }), this._addCellRuleCache(e29)); }); } _ensureRuleMap(e29, t) { let n = this._cellRuleCache.get(e29); n || (n = /* @__PURE__ */ new Map(), this._cellRuleCache.set(e29, n)); let r = n.get(t); return r || (r = /* @__PURE__ */ new Map(), n.set(t, r)), r; } _ensureCellInfoMap(e29, t) { let n = this._cellInfoCache.get(e29); n || (n = /* @__PURE__ */ new Map(), this._cellInfoCache.set(e29, n)); let r = n.get(t); return r || (r = /* @__PURE__ */ new Map(), n.set(t, r)), r; } _ensureRowColInfoMap(e29, t, n) { let r = n === `row` ? this._rowInfoCache.get(e29) : this._colInfoCache.get(e29); r || (r = /* @__PURE__ */ new Map(), n === `row` ? this._rowInfoCache.set(e29, r) : this._colInfoCache.set(e29, r)); let i = r.get(t); return i || (i = /* @__PURE__ */ new Map(), r.set(t, i)), i; } _addCellRuleCache(e29) { let { subUnitId: t, unitId: n, rule: r } = e29, i = this._ensureRuleMap(n, t); r.ranges.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: a, endColumn: o } = e30; for (let e31 = t2; e31 <= n2; e31++) for (let t3 = a; t3 <= o; t3++) i.set(`${e31}-${t3}`, r.id); }), this._permissionIdCache.set(r.permissionId, r.id); } _deleteCellRuleCache(e29) { let { subUnitId: t, unitId: n, rule: r } = e29, i = this._ensureRuleMap(n, t), a = this._ensureCellInfoMap(n, t); r.ranges.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: o } = e30; for (let e31 = t2; e31 <= n2; e31++) for (let t3 = r2; t3 <= o; t3++) i.delete(`${e31}-${t3}`), a.delete(`${e31}-${t3}`); }), this._permissionIdCache.delete(r.permissionId); } _getSelectionActions(e29, t, n) { var r, i, a, o, s, c, l, u, d, f, p, m; let h = (r = (i = this._permissionService.getPermissionPoint((a = new da3(e29, t, n.permissionId)) == null ? void 0 : a.id)) == null ? void 0 : i.value) == null ? false : r, g2 = (o = (s = this._permissionService.getPermissionPoint((c = new fa3(e29, t, n.permissionId)) == null ? void 0 : c.id)) == null ? void 0 : s.value) == null ? false : o, _2 = (l = (u = this._permissionService.getPermissionPoint((d = new kd2(e29, t, n.permissionId)) == null ? void 0 : d.id)) == null ? void 0 : u.value) == null ? false : l, v = (f = (p = this._permissionService.getPermissionPoint((m = new Od3(e29, t, n.permissionId)) == null ? void 0 : m.id)) == null ? void 0 : p.value) == null ? false : f; return { [R.Edit]: h, [R.View]: g2, [R.ManageCollaborator]: _2, [R.Delete]: v }; } reBuildCache(e29, t) { let n = this._ensureRuleMap(e29, t), r = this._ensureCellInfoMap(e29, t); n.clear(), r.clear(); let i = this._ensureRowColInfoMap(e29, t, `row`), a = this._ensureRowColInfoMap(e29, t, `col`); i.clear(), a.clear(), this._ruleModel.getSubunitRuleList(e29, t).forEach((o) => { let s = this._getSelectionActions(e29, t, o), c = { ...s, ruleId: o.id, ranges: o.ranges }; o.ranges.forEach((e30) => { let { startRow: t2, endRow: l, startColumn: u, endColumn: d } = e30; for (let e31 = t2; e31 <= l; e31++) { let t3 = i.get(`${e31}`); t3 ? t3.set(o.id, s) : i.set(`${e31}`, /* @__PURE__ */ new Map([[o.id, s]])); for (let t4 = u; t4 <= d; t4++) { n.set(`${e31}-${t4}`, o.id), r.set(`${e31}-${t4}`, c); let i2 = a.get(`${t4}`); i2 ? i2.set(o.id, s) : a.set(`${t4}`, /* @__PURE__ */ new Map([[o.id, s]])); } } }), this._permissionIdCache.set(o.permissionId, o.id); }); } getRowPermissionInfo(e29, t, n, r) { var i; let a = (i = this._rowInfoCache.get(e29)) == null ? void 0 : i.get(t); if (!a) return true; let o = a.get(`${n}`); return o ? r.every((e30) => { for (let t2 of o.values()) if (t2[e30] === false) return false; return true; }) : true; } getColPermissionInfo(e29, t, n, r) { var i; let a = (i = this._colInfoCache.get(e29)) == null ? void 0 : i.get(t); if (!a) return true; let o = a.get(`${n}`); return o ? r.every((e30) => { for (let t2 of o.values()) if (t2[e30] === false) return false; return true; }) : true; } _initUpdateRowColInfoCache() { this._permissionService.permissionPointUpdate$.pipe(filter((e29) => e29.type === S.SelectRange), map((e29) => e29)).subscribe({ next: (e29) => { let { subUnitId: t, unitId: n, permissionId: r } = e29, i = this._permissionIdCache.get(r); if (!i) return; let a = this._ruleModel.getRule(n, t, i); if (!a) return; let o = this._ensureRowColInfoMap(n, t, `row`), s = this._ensureRowColInfoMap(n, t, `col`), c = this._getSelectionActions(n, t, a); a.ranges.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: a2 } = e30; for (let e31 = t2; e31 <= n2; e31++) { let t3 = o.get(`${e31}`); t3 ? t3.set(i, c) : o.set(`${e31}`, /* @__PURE__ */ new Map([[i, c]])); for (let e32 = r2; e32 <= a2; e32++) { let t4 = s.get(`${e32}`); t4 ? t4.set(i, c) : s.set(`${e32}`, /* @__PURE__ */ new Map([[i, c]])); } } }); } }), this._ruleModel.ruleChange$.subscribe((e29) => { if (e29.type === `delete`) { let { unitId: t, subUnitId: n, rule: r } = e29, i = this._ensureRowColInfoMap(t, n, `row`), a = this._ensureRowColInfoMap(t, n, `col`); r.ranges.forEach((e30) => { let { startRow: t2, endRow: n2, startColumn: o, endColumn: s } = e30; for (let e31 = t2; e31 <= n2; e31++) { let t3 = i.get(`${e31}`); t3 == null || t3.delete(r.id); for (let e32 = o; e32 <= s; e32++) { let t4 = a.get(`${e32}`); t4 == null || t4.delete(r.id); } } }); } }); } getCellInfo(e29, t, n, r) { var i; let a = this._ensureCellInfoMap(e29, t), o = a.get(`${n}-${r}`); if (o) return o; let s = (i = this._cellRuleCache.get(e29)) == null || (i = i.get(t)) == null ? void 0 : i.get(`${n}-${r}`); if (!s) return; let c = this._ruleModel.getRule(e29, t, s); if (c) { let i2 = { ...this._getSelectionActions(e29, t, c), ruleId: s, ranges: c.ranges }; return a.set(`${n}-${r}`, i2), i2; } } deleteUnit(e29) { this._cellRuleCache.delete(e29), this._cellInfoCache.delete(e29), this._rowInfoCache.delete(e29), this._colInfoCache.delete(e29); let t = this._univerInstanceService.getUnit(e29); t == null || t.getSheets().forEach((t2) => { let n = t2.getSheetId(); this._ruleModel.getSubunitRuleList(e29, n).forEach((e30) => { this._permissionIdCache.delete(e30.permissionId); }); }); } }; Nf2 = G4([W4(0, Inject(Ni2)), W4(1, Inject(Uu)), W4(2, Inject(Mu))], Nf2); var Pf2 = `@univerjs/sheets`; var Ff2 = `0.19.0`; var If2 = class extends E { constructor(e29, t) { super(), this._commandService = e29, this._univerInstanceService = t, U4(this, `_previousSheetIndex`, -1), this.disposeWithMe(this._commandService.beforeCommandExecuted((e30) => { if (e30.id === Ro3.id) return this._beforeAdjustActiveSheetOnRemoveSheet(e30); })), this.disposeWithMe(this._commandService.onCommandExecuted((e30, t2) => { if (e30.id === Ro3.id) return this._adjustActiveSheetOnRemoveSheet(e30); if (e30.id === yd3.id && e30.params.hidden) return this._adjustActiveSheetOnHideSheet(e30); if (t2 != null && t2.fromCollab) return false; if (e30.id === iu3.id) return this._adjustActiveSheetOnInsertSheet(e30); if (e30.id === yd3.id && !e30.params.hidden) return this._adjustActiveSheetOnShowSheet(e30); if (e30.id === X4.id) return this._adjustActiveSheetOnSelection(e30); })); } _adjustActiveSheetOnHideSheet(e29) { var t; let { unitId: n, subUnitId: r } = e29.params, i = this._univerInstanceService.getUniverSheetInstance(n); if (!i || ((t = i.getActiveSheet()) == null ? void 0 : t.getSheetId()) !== r) return; let a = Lf2(i, i.getActiveSheetIndex()); this._switchToNextSheet(n, a); } _beforeAdjustActiveSheetOnRemoveSheet(e29) { let { unitId: t, subUnitId: n } = e29.params, r = this._univerInstanceService.getUniverSheetInstance(t); if (!r) return; let i = r.getSheetBySheetId(n); i && (this._previousSheetIndex = r.getSheetIndex(i)); } _adjustActiveSheetOnRemoveSheet(e29) { if (this._previousSheetIndex === -1) return; let { unitId: t } = e29.params, n = this._univerInstanceService.getUniverSheetInstance(t); if (n && n.getActiveSheet().getSheetId() === e29.params.subUnitId) { let e30 = this._previousSheetIndex, r = Lf2(n, e30 >= 1 ? e30 - 1 : 0); this._switchToNextSheet(t, r); } } _adjustActiveSheetOnInsertSheet(e29) { let { unitId: t, sheet: n } = e29.params; this._switchToNextSheet(t, n.id); } _adjustActiveSheetOnShowSheet(e29) { let { unitId: t, subUnitId: n } = e29.params; this._switchToNextSheet(t, n); } _adjustActiveSheetOnSelection(e29) { var t; let { unitId: n, subUnitId: r } = e29.params; r !== ((t = this._univerInstanceService.getUnit(n)) == null ? void 0 : t.getActiveSheet().getSheetId()) && this._switchToNextSheet(n, r); } _switchToNextSheet(e29, t) { this._commandService.executeCommand(Vr3.id, { unitId: e29, subUnitId: t }); } }; If2 = G4([W4(0, ii), W4(1, Mu)], If2); function Lf2(e29, t) { let n = e29.getSheetSize(); for (let n2 = t; n2 > -1; n2--) { let t2 = e29.getSheetByIndex(n2); if (!t2.getConfig().hidden) return t2.getSheetId(); } for (let r = t; r < n; r++) { let t2 = e29.getSheetByIndex(r); if (!t2.getConfig().hidden) return t2.getSheetId(); } throw Error(`[ActiveWorksheetController]: could not find the next unhidden sheet! Collaboration error perhaps.`); } var Rf2 = class extends E { constructor(e29, t, n) { var r; super(), this._commandService = e29, this._configService = t, this._dataSyncPrimaryController = n, [J4, wn3, Sn3, iu3, Tn3, Dn3, kn3, Nn3, jn2, Ro3, q4, ef2, H4, ud2, Sd3, $d2, In2, lf2, Tr3, Cr3, uf2, df2, nu3, Nr3, kr3].forEach((e30) => { var t2; this._commandService.registerCommand(e30), (t2 = this._dataSyncPrimaryController) == null || t2.registerSyncingMutations(e30); }), (r = this._configService.getConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`)) != null && r || [oc3, sc3, cc3, lc3, _c3, Wi2, Zl3, Gi2, lu3, co3, uo3, pd2, Kd2, Do3, Eo3, Oo3, ko3, To3, wo3, po2, ho2, bo3, yo3, So2, xo2, vo2, _o3, hu2, Wo2, oa3, Ho2, Mo3, Io3, Fo3, No3, xu2, Zo3, $s3, Ac3, Oc3, kc3, Fu3, Pu3, ju3, Mu3, Nu3, zu3, Hn3, Wn3, md3, Iu3, Bn3, Ku3, Gu3, qu3, Mc3, $u2, no3, qd2, rd3, ed3, xr3, Ru3, nd3, Lu3, td3, yc3, ld2, cd3, Dc3, Pc3, Nc3, jc3, dd3, fd2, Vr3, bd3, yd3, Cd3, Ed3, Td3, zr3, Lr3, Jd2, Rr3, Dr3, Gd2, gd3, ia2, X4, mf2, mu2, bu2, Uu3, Yd2, of3, Br3, Ju3, Gn3, rf2, Bd2, pc3, Zu3, mc3, zd2, Ri2, Qu3, du3, hc3, fu2, Vd2, Li2, Fi2, Yu3, af2, Ar3, _d2, Xd2, yn3, _n3, vu2, _u2, sf2, yu2, gc3, pu2, cf2, pf2, ff2, Gl3, Jl3, Yl3, Xl3, gu2].forEach((e30) => this.disposeWithMe(this._commandService.registerCommand(e30))), this._configService.setConfig(Sf2, 3e6); } }; Rf2 = G4([W4(0, ii), W4(1, Yr), W4(2, Optional(K2))], Rf2); var zf2 = class extends E { constructor(e29, t) { super(), this._univerInstanceService = e29, this._commandService = t, this._initialize(); } _initialize() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.id !== Tr2.id) return; let { unitData: t } = e29.params, n = Object.keys(t), r = []; for (let e30 = 0; e30 < n.length; e30++) { let i = n[e30], a = t[i]; if (a == null) continue; let o = Object.keys(a); for (let e31 = 0; e31 < o.length; e31++) { let t2 = o[e31], n2 = a[t2]; if (n2 == null) continue; let s = { subUnitId: t2, unitId: i, cellValue: this._getMergedCellData(i, t2, n2) }; r.push({ id: J4.id, params: s }); } } return li(r, this._commandService, { onlyLocal: true, fromFormula: true, applyFormulaCalculationResult: true }); })); } _getMergedCellData(e29, t, n) { let r = this._univerInstanceService.getUniverSheetInstance(e29), i = r == null ? void 0 : r.getStyles(), a = r == null ? void 0 : r.getSheetBySheetId(t), o = a == null ? void 0 : a.getCellMatrix(), s = new Sa(n); return s.forValue((e30, t2, n2) => { let r2 = ki(o == null ? void 0 : o.getValue(e30, t2), n2, i); s.setValue(e30, t2, r2); }), s.getMatrix(); } }; zf2 = G4([W4(0, Inject(Mu)), W4(1, ii)], zf2); var Bf2 = class extends E { constructor(e29) { super(), this._sheetInterceptorService = e29, this._initialize(); } _initialize() { this._initInterceptorCellContent(); } _initInterceptorCellContent() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { priority: 11, effect: At.Value | At.Style, handler: (e29, t, n) => { var r; if (!e29) return n(e29); let i = t.workbook.getStyles().getStyleByCell(e29); return oa(i == null || (r = i.n) == null ? void 0 : r.pattern) && (e29 == null ? void 0 : e29.t) === tr.NUMBER && e29.v !== void 0 && e29.v !== null && Ja(e29.v) ? ((!e29 || e29 === t.rawData) && (e29 = { ...t.rawData }), e29.v = aa2(Number(e29.v)), n(e29)) : n(e29); } })); } }; Bf2 = G4([W4(0, Inject(K4))], Bf2); var Vf2 = class extends E { constructor(e29, t, n, r) { super(), this._permissionService = e29, this._worksheetProtectionRuleModel = t, this._sheetInterceptorService = n, this._rangeProtectionCache = r, this._initViewModelByRangeInterceptor(), this._initViewModelBySheetInterceptor(); } _initViewModelByRangeInterceptor() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { priority: 999, effect: At.Value | At.Style, handler: (e29, t, n) => { let { unitId: r, subUnitId: i, row: a, col: o } = t, s = this._rangeProtectionCache.getCellInfo(r, i, a, o); if (s) { let r2 = s[R.View] === false, i2 = !e29 || e29 === t.rawData ? { ...t.rawData } : e29; return i2.selectionProtection = [s], r2 ? (delete i2.s, delete i2.v, delete i2.p, i2) : n(i2); } return n(e29); } })); } _initViewModelBySheetInterceptor() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { priority: 999, effect: At.Value | At.Style, handler: (e29, t, n) => { let { unitId: r, subUnitId: i } = t, a = this._worksheetProtectionRuleModel.getRule(r, i); if (a != null && a.permissionId) { var o, s, c, l, u; let a2 = [{ [R.View]: (o = (s = this._permissionService.getPermissionPoint(new to3(r, i).id)) == null ? void 0 : s.value) == null ? false : o, [R.Edit]: (c = (l = this._permissionService.getPermissionPoint(new Ba3(r, i).id)) == null ? void 0 : l.value) == null ? false : c }], d = !((u = a2[0]) != null && u[R.View]), f = !e29 || e29 === t.rawData ? { ...e29 } : e29; return f.hasWorksheetRule = true, f.selectionProtection = a2, d ? (delete f.s, delete f.v, delete f.p, f) : n(f); } return n(e29); } })); } }; Vf2 = G4([W4(0, Uu), W4(1, Inject(fc3)), W4(2, Inject(K4)), W4(3, Inject(Nf2))], Vf2); var Hf2 = createIdentifier(`univer.exclusive-range-service`); var Uf2 = class extends E { constructor(...e29) { super(...e29), U4(this, `_exclusiveRanges`, /* @__PURE__ */ new Map()), U4(this, `_exclusiveRangesChange$`, new Subject()), U4(this, `exclusiveRangesChange$`, this._exclusiveRangesChange$.asObservable()); } _ensureUnitMap(e29) { return this._exclusiveRanges.has(e29) || this._exclusiveRanges.set(e29, /* @__PURE__ */ new Map()), this._exclusiveRanges.get(e29); } _ensureSubunitMap(e29, t) { let n = this._ensureUnitMap(e29); return n.has(t) || n.set(t, /* @__PURE__ */ new Map()), n.get(t); } _ensureFeature(e29, t, n) { let r = this._ensureSubunitMap(e29, t); return r.has(n) || r.set(n, []), r.get(n); } addExclusiveRange(e29, t, n, r) { let i = this._ensureFeature(e29, t, n); i.push(...r), this._exclusiveRangesChange$.next({ unitId: e29, subUnitId: t, ranges: i.map((e30) => e30.range) }); } getExclusiveRanges(e29, t, n) { var r; return (r = this._exclusiveRanges.get(e29)) == null || (r = r.get(t)) == null ? void 0 : r.get(n); } clearExclusiveRanges(e29, t, n) { let r = this.getExclusiveRanges(e29, t, n); this._exclusiveRangesChange$.next({ unitId: e29, subUnitId: t, ranges: (r == null ? void 0 : r.map((e30) => e30.range)) || [] }), this._ensureFeature(e29, t, n), this._exclusiveRanges.get(e29).get(t).set(n, []); } clearExclusiveRangesByGroupId(e29, t, n, r) { let i = this.getExclusiveRanges(e29, t, n); this._exclusiveRangesChange$.next({ unitId: e29, subUnitId: t, ranges: (i == null ? void 0 : i.map((e30) => e30.range)) || [] }); let a = this.getExclusiveRanges(e29, t, n); if (a) { let i2 = a.filter((e30) => e30.groupId !== r); this._exclusiveRanges.get(e29).get(t).set(n, i2); } } getInterestGroupId(e29) { let t = []; return e29.forEach((e30) => { var n; let r = e30.range, { unitId: i, sheetId: a } = r; if (!i || !a) return; let o = (n = this._exclusiveRanges.get(i)) == null ? void 0 : n.get(a); if (o) for (let e31 of o.keys()) { let n2 = o.get(e31); if (n2) { for (let i2 of n2) if (G.intersects(r, i2.range)) { t.push(e31); break; } } } }), t; } }; var Wf2 = class extends E { constructor(e29, t, n) { super(), this._resourceManagerService = e29, this._univerInstanceService = t, this._logService = n; } getValue(e29, t, n, r) { let i = this._univerInstanceService.getUniverSheetInstance(e29); if (!i) return; let a = i == null ? void 0 : i.getSheetBySheetId(t); if (!a) return; let o = i.getStyles(), s = a.getCellRaw(n, r); if (s != null && s.s) { let e30 = o.get(s.s); if (e30 != null && e30.n) return e30.n; } return null; } deleteValues(e29, t, n) { let r = this._univerInstanceService.getUniverSheetInstance(e29); if (!r) return; let i = r == null ? void 0 : r.getSheetBySheetId(t); if (!i) return; let a = r.getStyles(); n.forEach((e30) => { Eo.foreach(e30, (e31, t2) => { let n2 = i.getCellRaw(e31, t2); if (!n2) return; let r2 = n2 == null ? void 0 : n2.s, o = { ...r2 && a.get(r2) || {} }; delete o.n, n2.s = a.setValue(o); }); }); } setValues(e29, t, n) { let r = this._univerInstanceService.getUniverSheetInstance(e29); if (!r) return; let i = r == null ? void 0 : r.getSheetBySheetId(t); if (!i) return; let a = r.getStyles(), o = i.getCellMatrix(); n.forEach((e30) => { e30.ranges.forEach((t2) => { Eo.foreach(t2, (t3, n2) => { let r2 = i.getCellRaw(t3, n2); if (r2) { let t4 = { ...a.getStyleByCell(r2) || {}, n: { pattern: e30.pattern } }; r2.s = a.setValue(t4); } else { let r3 = { n: { pattern: e30.pattern } }, i2 = a.setValue(r3); i2 && o.setValue(t3, n2, { s: i2 }); } }); }); }); } }; Wf2 = G4([W4(0, ll), W4(1, Mu), W4(2, L)], Wf2); var Gf2 = [wn3.id, Sn3.id, Nn3.id, jn2.id]; var Kf2 = [Dn3.id, kn3.id]; var qf2 = class extends E { constructor(e29, t, n, r, i, a, o, s) { super(), this._selectionProtectionRuleModel = e29, this._univerInstanceService = t, this._commandService = n, this._refRangeService = r, this._selectionProtectionRenderModel = i, this._rangeProtectionCache = a, this._sheetInterceptorService = o, this._rangeProtectionRuleModel = s, U4(this, `disposableCollection`, new un()), this._onRefRangeChange(), this._correctPermissionRange(), this._initReBuildCache(), this._initRemoveSheet(); } _onRefRangeChange() { let e29 = (e30, t2) => { let n = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (!n || !(n != null && n.getSheetBySheetId(t2))) return; this.disposableCollection.dispose(); let r = (n2) => this.refRangeHandle(n2, e30, t2); this._selectionProtectionRuleModel.getSubunitRuleList(e30, t2).reduce((e31, t3) => [...e31, ...t3.ranges], []).forEach((n2) => { this.disposableCollection.add(this._refRangeService.registerRefRange(n2, r, e30, t2)); }); }; this.disposeWithMe(this._commandService.onCommandExecuted((t2) => { if (t2.id === fd2.id) { let n = t2.params, r = n.subUnitId, i = n.unitId; if (!r || !i) return; e29(i, r); } if (t2.id === Yu3.id || t2.id === Li2.id) { let n = t2.params, r = n.subUnitId, i = n.unitId; if (!r || !i) return; e29(i, r); } })); let t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (t) { let n = t.getActiveSheet(); if (!n) return; e29(t.getUnitId(), n.getSheetId()); } } refRangeHandle(e29, t, n) { switch (e29.id) { case Ho2.id: return this._getRefRangeMutationsByMoveRows(e29.params, t, n); case Wo2.id: return this._getRefRangeMutationsByMoveCols(e29.params, t, n); case _o3.id: return this._getRefRangeMutationsByInsertRows(e29.params, t, n); case wo3.id: return this._getRefRangeMutationsByInsertCols(e29.params, t, n); case Io3.id: return this._getRefRangeMutationsByDeleteCols(e29.params, t, n); case No3.id: return this._getRefRangeMutationsByDeleteRows(e29.params, t, n); default: break; } return { redos: [], undos: [] }; } _getRefRangeMutationsByDeleteCols(e29, t, n) { let r = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((t2) => t2.ranges.some((t3) => G.intersects(t3, e29.range))), i = e29.range; if (r.length) { let e30 = [], a = []; return r.forEach((r2) => { let o = D.deepClone(r2); o.ranges = o.ranges.reduce((e31, t2) => { if (G.intersects(t2, i)) { let n2 = D.deepClone(t2), { startColumn: r3, endColumn: a2 } = i; if (r3 <= n2.startColumn && a2 >= n2.endColumn) return e31; r3 >= n2.startColumn && a2 <= n2.endColumn ? n2.endColumn -= a2 - r3 + 1 : r3 < n2.startColumn ? (n2.startColumn = r3, n2.endColumn -= a2 - r3 + 1) : a2 > n2.endColumn && (n2.endColumn = r3 - 1), this._checkIsRightRange(n2) && e31.push(n2); } return e31; }, []), o.ranges.length ? (e30.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: o, ruleId: r2.id } }), a.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: r2, ruleId: r2.id } })) : (e30.push({ id: Fi2.id, params: { unitId: t, subUnitId: n, ruleIds: [r2.id] } }), a.push({ id: Li2.id, params: { unitId: t, subUnitId: n, name: ``, rules: [r2] } })); }), { redos: e30, undos: a }; } return { undos: [], redos: [] }; } _getRefRangeMutationsByDeleteRows(e29, t, n) { let r = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((t2) => t2.ranges.some((t3) => G.intersects(t3, e29.range))), i = e29.range; if (r.length) { let e30 = [], a = []; return r.forEach((r2) => { let o = D.deepClone(r2); o.ranges = o.ranges.reduce((e31, t2) => { if (G.intersects(t2, i)) { let n2 = D.deepClone(t2), { startRow: r3, endRow: a2 } = i; if (r3 <= n2.startRow && a2 >= n2.endRow) return e31; r3 >= n2.startRow && a2 <= n2.endRow ? n2.endRow -= a2 - r3 + 1 : r3 < n2.startRow ? (n2.startRow = r3, n2.endRow -= a2 - r3 + 1) : a2 > n2.endRow && (n2.endRow = r3 - 1), this._checkIsRightRange(n2) && e31.push(n2); } return e31; }, []), e30.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: o, ruleId: r2.id } }), a.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: r2, ruleId: r2.id } }); }), { redos: e30, undos: a }; } return { undos: [], redos: [] }; } _getRefRangeMutationsByInsertCols(e29, t, n) { let r = e29.range.startColumn, i = e29.range.endColumn - e29.range.startColumn + 1, a = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((e30) => e30.ranges.some((e31) => r > e31.startColumn && r <= e31.endColumn)); if (a.length) { let e30 = [], o = []; return a.forEach((a2) => { let s = D.deepClone(a2), c = false; s.ranges.forEach((e31) => { r > e31.startColumn && r <= e31.endColumn && (e31.endColumn += i, c = true); }), c && (e30.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: s, ruleId: a2.id } }), o.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: a2, ruleId: a2.id } })); }), { redos: e30, undos: o }; } return { undos: [], redos: [] }; } _getRefRangeMutationsByInsertRows(e29, t, n) { let r = e29.range.startRow, i = e29.range.endRow - e29.range.startRow + 1, a = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((e30) => e30.ranges.some((e31) => r > e31.startRow && r <= e31.endRow)); if (a.length) { let e30 = [], o = []; return a.forEach((a2) => { let s = D.deepClone(a2), c = false; s.ranges.forEach((e31) => { r > e31.startRow && r <= e31.endRow && (e31.endRow += i, c = true); }), c && (e30.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: s, ruleId: a2.id } }), o.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: a2, ruleId: a2.id } })); }), { redos: e30, undos: o }; } return { undos: [], redos: [] }; } _getRefRangeMutationsByMoveRows(e29, t, n) { let r = e29.toRange, i = r.startRow, a = r.endRow - r.startRow + 1, o = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((e30) => e30.ranges.some((e31) => i > e31.startRow && i <= e31.endRow)); if (o.length) { let r2 = [], s = []; return o.forEach((o2) => { let c = D.deepClone(o2), l = e29.fromRange.startRow, u = false; c.ranges.forEach((e30) => { i > e30.startRow && i <= e30.endRow && (l < e30.startRow && (e30.startRow -= a, e30.endRow -= a), e30.endRow += a, u = true); }), u && (r2.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: c, ruleId: o2.id } }), s.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: o2, ruleId: o2.id } })); }), { redos: r2, undos: s }; } return { undos: [], redos: [] }; } _getRefRangeMutationsByMoveCols(e29, t, n) { let r = e29.toRange, i = r.startColumn, a = r.endColumn - r.startColumn + 1, o = this._selectionProtectionRuleModel.getSubunitRuleList(t, n).filter((e30) => e30.ranges.some((e31) => i > e31.startColumn && i <= e31.endColumn)); if (o.length) { let r2 = [], s = []; return o.forEach((o2) => { let c = D.deepClone(o2), l = e29.fromRange.startColumn, u = false; c.ranges.forEach((e30) => { i > e30.startColumn && i <= e30.endColumn && (l < e30.startColumn && (e30.startColumn -= a, e30.endColumn -= a), e30.endColumn += a, u = true); }), u && (r2.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: c, ruleId: o2.id } }), s.push({ id: Yu3.id, params: { unitId: t, subUnitId: n, rule: o2, ruleId: o2.id } })); }), { redos: r2, undos: s }; } return { undos: [], redos: [] }; } _correctPermissionRange() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (Kf2.includes(e29.id)) { if (!e29.params) return; let t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (!t) return; let n = t.getSheetBySheetId(e29.params.subUnitId); if (!n) return; let { sourceRange: r, targetRange: i } = e29.params, a = r.startColumn === i.startColumn && r.endColumn === i.endColumn, o = a ? r.endRow - r.startRow + 1 : r.endColumn - r.startColumn + 1, s = a ? r.startRow : r.startColumn, c = a ? i.startRow : i.startColumn; this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(), n.getSheetId()).forEach((e30) => { e30.ranges.forEach((e31) => { let { startRow: t2, endRow: n2, startColumn: i2, endColumn: l2 } = e31; G.intersects(e31, r) || (a ? s < t2 && c > n2 ? (t2 -= o, n2 -= o) : s > n2 && c <= t2 && (t2 += o, n2 += o) : s < i2 && c > l2 ? (i2 -= o, l2 -= o) : s > l2 && c <= i2 && (i2 += o, l2 += o)), this._checkIsRightRange({ startRow: t2, endRow: n2, startColumn: i2, endColumn: l2 }) && (e31.startColumn = i2, e31.endColumn = l2, e31.startRow = t2, e31.endRow = n2); }); }), this.disposableCollection.dispose(); let { unitId: l, subUnitId: u } = e29.params, d = (e30) => this.refRangeHandle(e30, l, u); this._selectionProtectionRuleModel.getSubunitRuleList(l, u).reduce((e30, t2) => [...e30, ...t2.ranges], []).forEach((e30) => { this.disposableCollection.add(this._refRangeService.registerRefRange(e30, d, l, u)); }), this._selectionProtectionRenderModel.clear(); } if (Gf2.includes(e29.id)) { let t = this._univerInstanceService.getUniverSheetInstance(e29.params.unitId); if (!t) return; let n = t.getSheetBySheetId(e29.params.subUnitId); if (!n) return; let r = e29.params; if (!r) return; let { range: i } = r, a = e29.id.includes(`row`), o = e29.id.includes(`insert`), s = a ? i.startRow : i.startColumn, c = a ? i.endRow : i.endColumn, l = c - s + 1; this._selectionProtectionRuleModel.getSubunitRuleList(t.getUnitId(), n.getSheetId()).forEach((e30) => { e30.ranges.forEach((e31) => { let { startRow: t2, endRow: n2, startColumn: r2, endColumn: i2 } = e31; o ? a ? s <= t2 && (t2 += l, n2 += l) : s <= r2 && (r2 += l, i2 += l) : a ? c < t2 && (t2 -= l, n2 -= l) : c < r2 && (r2 -= l, i2 -= l), this._checkIsRightRange({ startRow: t2, endRow: n2, startColumn: r2, endColumn: i2 }) && (e31.startColumn = r2, e31.endColumn = i2, e31.startRow = t2, e31.endRow = n2); }); }), this.disposableCollection.dispose(); let { unitId: u, subUnitId: d } = e29.params, f = (e30) => this.refRangeHandle(e30, u, d); this._selectionProtectionRuleModel.getSubunitRuleList(u, d).reduce((e30, t2) => [...e30, ...t2.ranges], []).forEach((e30) => { this.disposableCollection.add(this._refRangeService.registerRefRange(e30, f, u, d)); }), this._selectionProtectionRenderModel.clear(); } })); } _checkIsRightRange(e29) { return e29.startRow <= e29.endRow && e29.startColumn <= e29.endColumn; } _initReBuildCache() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (Gf2.includes(e29.id) || Kf2.includes(e29.id)) { let { unitId: t, subUnitId: n } = e29.params; this._rangeProtectionCache.reBuildCache(t, n); } })); } _initRemoveSheet() { this._sheetInterceptorService.interceptCommand({ getMutations: (e29) => { let t = [], n = [], r = [], i = []; if (e29.id === xu2.id) { let n2 = e29.params, i2 = [], a = []; this._rangeProtectionRuleModel.getSubunitRuleList(n2.unitId, n2.subUnitId).forEach((e30) => { i2.push(e30.id), a.push(e30); }), i2.length && a.length && (r.push({ id: Fi2.id, params: { unitId: n2.unitId, subUnitId: n2.subUnitId, ruleIds: i2 } }), t.push({ id: Li2.id, params: { unitId: n2.unitId, subUnitId: n2.subUnitId, name: ``, rules: a } })); } return { redos: n, undos: t, preRedos: r, preUndos: i }; } }); } }; qf2 = G4([W4(0, Inject(Ni2)), W4(1, Inject(Mu)), W4(2, ii), W4(3, Inject(zs3)), W4(4, Inject(Mf2)), W4(5, Inject(Nf2)), W4(6, Inject(K4)), W4(7, Inject(Ni2))], qf2); var Jf2 = class extends E { constructor(e29, t, n, r, i) { super(), this._selectionProtectionRuleModel = e29, this._permissionService = t, this._resourceManagerService = n, this._selectionProtectionCache = r, this._univerInstanceService = i, this._initSnapshot(), this._initRuleChange(); } _initRuleChange() { this.disposeWithMe(this._selectionProtectionRuleModel.ruleChange$.subscribe((e29) => { switch (e29.type) { case `add`: Ad2().forEach((t) => { let n = new t(e29.unitId, e29.subUnitId, e29.rule.permissionId); this._permissionService.addPermissionPoint(n); }); break; case `delete`: Ad2().forEach((t) => { let n = new t(e29.unitId, e29.subUnitId, e29.rule.permissionId); this._permissionService.deletePermissionPoint(n.id); }); break; case `set`: e29.oldRule.permissionId !== e29.rule.permissionId && Ad2().forEach((t) => { let n = new t(e29.unitId, e29.subUnitId, e29.oldRule.permissionId); this._permissionService.deletePermissionPoint(n.id); let r = new t(e29.unitId, e29.subUnitId, e29.rule.permissionId); this._permissionService.addPermissionPoint(r); }); break; } })); } _initSnapshot() { this.disposeWithMe(this._resourceManagerService.registerPluginResource({ toJson: (e29) => { let t = this._selectionProtectionRuleModel.toObject()[e29]; return t ? JSON.stringify(t) : ``; }, parseJson: (e29) => { if (!e29) return {}; try { return JSON.parse(e29); } catch { return {}; } }, pluginName: `SHEET_RANGE_PROTECTION_PLUGIN`, businesses: [O.UNIVER_SHEET], onLoad: (e29, t) => { let n = this._selectionProtectionRuleModel.toObject(); n[e29] = t, this._selectionProtectionRuleModel.fromObject(n); let r = []; Object.keys(t).forEach((n2) => { let i = t[n2]; this._selectionProtectionRuleModel.getSubunitRuleList(e29, n2).forEach((t2) => { r.push({ objectID: t2.permissionId, unitID: e29, objectType: S.SelectRange, actions: jd2 }); }), i.forEach((t2) => { Ad2().forEach((r2) => { let i2 = new r2(e29, n2, t2.permissionId); i2.value = false, this._permissionService.addPermissionPoint(i2); }); }), this._selectionProtectionCache.reBuildCache(e29, n2); }); }, onUnLoad: (e29) => { this._selectionProtectionCache.deleteUnit(e29); } })); } }; Jf2 = G4([W4(0, Inject(Ni2)), W4(1, Inject(Uu)), W4(2, Inject(ll)), W4(3, Inject(Nf2)), W4(4, Inject(Mu))], Jf2); var Yf2 = class extends E { constructor(e29) { super(), this._sheetRangeThemeModel = e29; } registerRangeTheme(e29, t) { this._sheetRangeThemeModel.registerRangeThemeStyle(e29, t); } removeRangeThemeRule(e29, t) { this._sheetRangeThemeModel.removeRangeThemeRule(e29, t); } getALLRegisterThemes(e29) { return this._sheetRangeThemeModel.getALLRegisteredTheme(e29); } registerRangeThemeStyle(e29, t) { this._sheetRangeThemeModel.registerRangeThemeRule(e29, t); } getAppliedRangeThemeStyle(e29) { return this._sheetRangeThemeModel.getRegisteredRangeThemeStyle(e29); } getRegisteredRangeThemes() { return this._sheetRangeThemeModel.getRegisteredRangeThemes(); } }; Yf2 = G4([W4(0, Inject(gn3))], Yf2); var Xf2 = class extends qu { constructor(e29 = eu3, t, n) { super(), this._config = e29, this._injector = t, this._configService = n; let { ...r } = merge_default({}, eu3, this._config); this._configService.setConfig(Ql2, r), this._initConfig(), this._initDependencies(); } _initConfig() { var t, n, r; (t = this._config) != null && t.onlyRegisterFormulaRelatedMutations && this._configService.setConfig(`ONLY_REGISTER_FORMULA_RELATED_MUTATIONS_KEY`, true), (n = this._config) != null && n.isRowStylePrecedeColumnStyle && this._configService.setConfig(gt, true), (r = this._config) != null && r.autoHeightForMergedCells && this._configService.setConfig(_t, true); } _initDependencies() { var e29; let t = [[Su3], [tu3], [Y4], [zs3], [kf2], [Zd2, { useClass: Wf2 }], [K4], [Yf2], [Ko2], [Rf2], [Js3], [Bf2], [wf2], [jf2], [Df2], [Rd2], [fc3], [Dd3], [Vf2], [Af2], [Of2], [gn3], [Mf2], [Ni2], [Nf2], [qf2], [Jf2], [Hf2, { useClass: Uf2, deps: [Y4] }], [Wl2, { useClass: Ul2 }], [xf2]]; (e29 = this._config) != null && e29.notExecuteFormula || t.push([zf2]), xt(this._injector, Gu(t, this._config.override)), St(this._injector, [[K4], [Jf2], [Hf2], [Af2], [Df2]]); } onStarting() { var e29; St(this._injector, [[Rf2], [Js3], [kf2], [Rd2], [Vf2], [Ko2], [xf2]]), (e29 = this._config) != null && e29.onlyRegisterFormulaRelatedMutations || this._injector.add([If2]); } onRendered() { St(this._injector, [[Zd2]]); } onReady() { St(this._injector, [[If2], [zf2], [wf2], [jf2], [gn3], [Bf2], [Mf2], [qf2], [zs3], [Of2]]); } }; U4(Xf2, `pluginName`, `SHEET_PLUGIN`), U4(Xf2, `packageName`, Pf2), U4(Xf2, `version`, Ff2), U4(Xf2, `type`, O.UNIVER_SHEET), Xf2 = G4([Yu(Yy), W4(1, Inject(Injector)), W4(2, Yr)], Xf2); // node_modules/@univerjs/sheets-formula/lib/es/index.js var Fn4 = { id: `formula.command.insert-function`, type: ri.COMMAND, handler: async (e29, t) => { let { list: n, listOfRangeHasNumber: r } = t, i = e29.get(ii), a = new Sa(); n.forEach((e30) => { let { range: t2, primary: n2, formula: r2 } = e30, { row: i2, column: o2 } = n2, s = O2(6); a.setValue(i2, o2, { f: r2, si: s }); let { startRow: c, startColumn: l, endRow: u, endColumn: d } = t2; for (let e31 = c; e31 <= u; e31++) for (let t3 = l; t3 <= d; t3++) (e31 !== i2 || t3 !== o2) && a.setValue(e31, t3, { si: s }); }), r && r.length > 0 && r.forEach((e30) => { let { primary: t2, formula: n2 } = e30; a.setValue(t2.row, t2.column, { f: n2 }); }); let o = { value: a.getData() }; return i.executeCommand(no3.id, o); } }; var In3 = { id: `sheets-formula.command.quick-sum`, type: ri.COMMAND, handler: async (e29) => { let t = e29.get(Y4).getCurrentLastSelection(); if (!t) return false; let n = V4(e29.get(Mu)); if (!n) return false; let r = t.range, { worksheet: i } = n, a = wi2(r, i); if (!a) return false; a = Ki3(a, i); let o = ni2({ startRow: a.startRow, startColumn: a.startColumn, endRow: r.endRow, endColumn: r.endColumn }, { left: true, right: true, up: true, down: true }, i), s = new Sa(), c = Ki3({ startRow: o.endRow, endRow: o.endRow, startColumn: o.startColumn, endColumn: o.endColumn }, i); if (!G.equals(c, o)) for (let e30 of i.iterateByColumn(c)) (!e30.value || !i.cellHasValue(e30.value)) && s.setValue(e30.row, e30.col, { f: `=SUM(${Gn2({ startColumn: e30.col, endColumn: e30.col, startRow: o.startRow, endRow: e30.row - 1 })})` }); let l = Ki3({ startRow: o.startRow, startColumn: o.endColumn, endRow: o.endRow, endColumn: o.endColumn }, i); if (!G.equals(l, o)) for (let e30 of i.iterateByRow(l)) (!e30.value || !i.cellHasValue(e30.value)) && s.setValue(e30.row, e30.col, { f: `=SUM(${Gn2({ startColumn: o.startColumn, endColumn: e30.col - 1, startRow: e30.row, endRow: e30.row })})` }); let d = e29.get(ii); return (await ui([{ id: no3.id, params: { range: o, value: s.getMatrix() } }, { id: X4.id, params: { unitId: n.unitId, subUnitId: n.subUnitId, selections: [{ range: o, primary: G.contains(o, t.primary) ? t.primary : { ...a, actualRow: a.startRow, actualColumn: a.startColumn }, style: null }] } }], d)).result; } }; var Ln4 = `sheets-formula.base.config`; Symbol(Ln4); var Rn4 = (function(e29) { return e29[e29.FORCED = 0] = `FORCED`, e29[e29.WHEN_EMPTY = 1] = `WHEN_EMPTY`, e29[e29.NO_CALCULATION = 2] = `NO_CALCULATION`, e29; })({}); var zn4 = {}; var Bn4 = `sheets-formula.remote.config`; Symbol(Bn4); var Vn4 = {}; function J5(e29, t) { return function(n, r) { t(n, r, e29); }; } function Y5(e29, t, n, r) { var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o; if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e29, t, n, r); else for (var s = e29.length - 1; s >= 0; s--) (o = e29[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a); return i > 3 && a && Object.defineProperty(t, n, a), a; } var Hn4 = class extends E { constructor(e29, t) { super(), this._autoFillService = e29, this._lexerTreeBuilder = t, this._registerAutoFill(); } _registerAutoFill() { let e29 = { type: _l2.FORMULA, priority: 1001, match: (e30) => ka(e30 == null ? void 0 : e30.f) || Aa(e30 == null ? void 0 : e30.si), isContinue: (e30, t) => e30.type === _l2.FORMULA, applyFunctions: { [$4.COPY]: (e30, t, n, r, i) => { let { data: a, index: o } = e30; return this._fillCopyFormula(a, t, n, o, r, i); } } }; this._autoFillService.registerRule(e29); } _fillCopyFormula(e29, t, n, r, i, a) { let o = Wn4(i), s = [], c = /* @__PURE__ */ new Map(); for (let i2 = 1; i2 <= t; i2++) { let d = (i2 - 1) % e29.length, f = r[d], p = D.deepClone(e29[d]); if (p) { var l, u; let r2 = ((l = e29[d]) == null ? void 0 : l.f) || ``, i3 = ((u = e29[d]) == null ? void 0 : u.si) || ``, m = ka(r2); if (Aa(i3)) p.si = i3, p.f = null, p.v = null, p.p = null, p.t = null, s.push(p); else if (m) { let e30 = c.get(d); if (e30) p.si = e30, p.f = null, p.v = null, p.p = null, p.t = null; else { e30 = O2(6), c.set(d, e30); let { offsetX: i4, offsetY: s2 } = Un3(o, t, n, a, f), l2 = this._lexerTreeBuilder.moveFormulaRefOffset(r2, i4, s2); p.si = e30, p.f = l2, p.v = null, p.p = null, p.t = null; } s.push(p); } } } return s; } }; Hn4 = Y5([J5(0, Wl2), J5(1, Inject(ni))], Hn4); function Un3(e29, t, n, r, i) { let { source: a, target: s } = r, { rows: c } = s, { rows: l } = a, u = 0, d = 0; switch (n) { case Fn.UP: d = c[i] - l[i]; break; case Fn.RIGHT: u = e29; break; case Fn.DOWN: d = c[i] - l[i]; break; case Fn.LEFT: u = -e29 * t; break; } return { offsetX: u, offsetY: d }; } function Wn4(e29) { let t = 0; for (let n in e29) e29[n].forEach((e30) => { t += e30.data.length; }); return t; } function Gn4(e29) { "@babel/helpers - typeof"; return Gn4 = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e30) { return typeof e30; } : function(e30) { return e30 && typeof Symbol == `function` && e30.constructor === Symbol && e30 !== Symbol.prototype ? `symbol` : typeof e30; }, Gn4(e29); } function Kn4(e29, t) { if (Gn4(e29) != `object` || !e29) return e29; var n = e29[Symbol.toPrimitive]; if (n !== void 0) { var r = n.call(e29, t || `default`); if (Gn4(r) != `object`) return r; throw TypeError(`@@toPrimitive must return a primitive value.`); } return (t === `string` ? String : Number)(e29); } function qn4(e29) { var t = Kn4(e29, `string`); return Gn4(t) == `symbol` ? t : t + ``; } function X5(e29, t, n) { return (t = qn4(t)) in e29 ? Object.defineProperty(e29, t, { value: n, enumerable: true, configurable: true, writable: true }) : e29[t] = n, e29; } var Jn4 = class extends E { constructor(e29, t, n) { super(), this._commandService = e29, this._sheetInterceptorService = t, this._formulaDataModel = n, X5(this, `_errorValueCell`, { v: D3.VALUE, t: tr.STRING }), X5(this, `_refreshRender`, void 0), this._initialize(); } _initialize() { this._commandExecutedListener(), this._initInterceptorCellContent(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted(async (e29) => { if (e29.id === Fr2.id) { let t = e29.params; if (!t) return; let { imageFormulaData: n } = t; if (!n || n.length === 0) return; let r = await Promise.all(n.map((e30) => this._getImageNatureSize(e30))), i = {}; r.forEach((e30) => { let { unitId: t2, sheetId: n2, row: r2, column: a, ...o } = e30; i[t2] || (i[t2] = {}), i[t2][n2] || (i[t2][n2] = new Sa()), i[t2][n2].setValue(r2, a, o); }), this._formulaDataModel.mergeUnitImageFormulaData(i), this._refreshRender(); } })); } _initInterceptorCellContent() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { priority: Vt2.CELL_IMAGE, effect: At.Value | At.Style, handler: (e29, r, i) => { var a; let { unitId: o, subUnitId: s, row: c, col: u } = r, d = this._formulaDataModel.getUnitImageFormulaData(), f = d == null || (a = d[o]) == null || (a = a[s]) == null ? void 0 : a.getValue(c, u); if (!f) return i(e29); let { source: p, height: h, width: g2, isErrorImage: _2, imageNaturalWidth: v, imageNaturalHeight: y } = f; if (_2) return i(this._errorValueCell); let S4 = g2 || v, C3 = h || y, T4 = ql(``, {}), E4 = { unitId: o, subUnitId: s, drawingId: O2(), drawingType: Ir.DRAWING_IMAGE, imageSourceType: Fl.URL, source: p, transform: { left: 0, top: 0, width: S4, height: C3 }, docTransform: { size: { width: S4, height: C3 }, positionH: { relativeFrom: Dr.PAGE, posOffset: 0 }, positionV: { relativeFrom: Or.PARAGRAPH, posOffset: 0 }, angle: 0 }, behindDoc: A.FALSE, title: ``, description: ``, layoutType: gr.INLINE, wrapText: hr.BOTH_SIDES, distB: 0, distL: 0, distR: 0, distT: 0 }, D4 = Z.drawing.add({ documentDataModel: T4, drawings: [E4], selection: { collapsed: true, startOffset: 0, endOffset: 0 } }); return D4 ? (T4.apply(D4), i({ ...e29, p: T4.getSnapshot() })) : i(this._errorValueCell); } })); } async _getImageNatureSize(e29) { let t = await this._getImageSize(e29.source); return t.image ? { ...e29, isErrorImage: false, imageNaturalHeight: t.height, imageNaturalWidth: t.width } : { ...e29, isErrorImage: true }; } async _getImageSize(e29) { return new Promise((t) => { let n = new Image(); n.src = e29, n.onload = () => { t({ width: n.width, height: n.height, image: n }); }, n.onerror = () => { t({ width: 0, height: 0, image: null }); }; }); } registerRefreshRenderFunction(e29) { this._refreshRender = e29; } }; Jn4 = Y5([J5(0, ii), J5(1, Inject(K4)), J5(2, Inject(ai2))], Jn4); var Yn4 = { done: 0, count: 0 }; var Xn4 = { onlyLocal: true }; var Zn4 = class extends E { _emitProgress(e29) { this._progress$.next({ done: this._doneCalculationTaskCount, count: this._totalCalculationTaskCount, label: e29 }); } _startProgress() { this._doneCalculationTaskCount = 0, this._totalCalculationTaskCount = 1; let e29 = this._localeService.t(`formula.progress.analyzing`); this._emitProgress(e29); } _calculateProgress(e29) { if (this._executionInProgressParams) { let { totalFormulasToCalculate: t, completedFormulasCount: n, totalArrayFormulasToCalculate: r, completedArrayFormulasCount: i } = this._executionInProgressParams; if (this._doneCalculationTaskCount = n + i, this._totalCalculationTaskCount = t + r, this._totalCalculationTaskCount === 0) return; this._emitProgress(e29); } } _completeProgress() { this._doneCalculationTaskCount = this._totalCalculationTaskCount = 1; let e29 = this._localeService.t(`formula.progress.done`); this._emitProgress(e29); } clearProgress() { this._doneCalculationTaskCount = 0, this._totalCalculationTaskCount = 0, this._emitProgress(); } constructor(e29, t, n, r, i, a, o) { super(), this._commandService = e29, this._activeDirtyManagerService = t, this._logService = n, this._configService = r, this._formulaDataModel = i, this._localeService = a, this._registerOtherFormulaService = o, X5(this, `_waitingCommandQueue`, []), X5(this, `_executingDirtyData`, { forceCalculation: false, dirtyRanges: [], dirtyNameMap: {}, dirtyDefinedNameMap: {}, dirtyUnitFeatureMap: {}, dirtyUnitOtherFormulaMap: {}, clearDependencyTreeCache: {} }), X5(this, `_setTimeoutKey`, -1), X5(this, `_startExecutionTime`, 0), X5(this, `_totalCalculationTaskCount`, 0), X5(this, `_doneCalculationTaskCount`, 0), X5(this, `_executionInProgressParams`, null), X5(this, `_restartCalculation`, false), X5(this, `_progress$`, new BehaviorSubject(Yn4)), X5(this, `progress$`, this._progress$.asObservable()), this._commandExecutedListener(), this._initialExecuteFormulaProcessListener(), this._initialExecuteFormula(); } dispose() { super.dispose(), this._progress$.next(Yn4), this._progress$.complete(), clearTimeout(this._setTimeoutKey); } _getCalculationMode() { var e29; let t = this._configService.getConfig(Ln4); return (e29 = t == null ? void 0 : t.initialFormulaComputing) == null ? Rn4.WHEN_EMPTY : e29; } _commandExecutedListener() { this.disposeWithMe(this._commandService.beforeCommandExecuted((e29) => { if (e29.id === yr2.id || e29.id === xr2.id) { let t = e29.params; e29.id === yr2.id && (t.isCalculateTreeModel = this._configService.getConfig(Gr2) || false), t.maxIteration = this._configService.getConfig(Wr2), t.rowData = this._formulaDataModel.getHiddenRowsFiltered(); } })), this.disposeWithMe(this._commandService.onCommandExecuted((e29, t) => { if (this._activeDirtyManagerService.get(e29.id)) { if (e29.id === J4.id) { let n = e29.params; if (t && t.onlyLocal === true || n.trigger === yc3.id || n.trigger === ju3.id || n.trigger === Gi2.id) return; } this._waitingCommandQueue.push(e29), clearTimeout(this._setTimeoutKey), this._setTimeoutKey = setTimeout(() => { let e30 = this._generateDirty(this._waitingCommandQueue); this._executingDirtyData = this._mergeDirty(this._executingDirtyData, e30), this._executionInProgressParams == null ? this._commandService.executeCommand(yr2.id, { ...this._executingDirtyData }, Xn4) : (this._restartCalculation = true, this._commandService.executeCommand(Cr2.id, {})), this._waitingCommandQueue = []; }, 100); } })); } _generateDirty(e29) { let t = [], n = {}, r = {}, i = {}, a = {}, o = {}, s = false; for (let c of e29) { let e30 = this._activeDirtyManagerService.get(c.id); if (e30 == null) continue; let { dirtyRanges: l, dirtyNameMap: u, dirtyDefinedNameMap: d, dirtyUnitFeatureMap: f, dirtyUnitOtherFormulaMap: p, clearDependencyTreeCache: m, forceCalculation: h = false } = e30.getDirtyData(c); l != null && this._mergeDirtyRanges(t, l), u != null && this._mergeDirtyNameMap(n, u), d != null && this._mergeDirtyNameMap(r, d), f != null && this._mergeDirtyUnitFeatureOrOtherFormulaMap(i, f), p != null && this._mergeDirtyUnitFeatureOrOtherFormulaMap(a, p), m != null && this._mergeDirtyNameMap(o, m), s = s || h; } return { dirtyRanges: t, dirtyNameMap: n, dirtyDefinedNameMap: r, dirtyUnitFeatureMap: i, dirtyUnitOtherFormulaMap: a, forceCalculation: s, clearDependencyTreeCache: o }; } _mergeDirty(e29, t) { let n = [...e29.dirtyRanges, ...t.dirtyRanges], r = { ...e29.dirtyNameMap }, i = { ...e29.dirtyDefinedNameMap }, a = { ...e29.dirtyUnitFeatureMap }, o = { ...e29.dirtyUnitOtherFormulaMap }, s = { ...e29.clearDependencyTreeCache }; return this._mergeDirtyNameMap(r, t.dirtyNameMap), this._mergeDirtyNameMap(i, t.dirtyDefinedNameMap), this._mergeDirtyUnitFeatureOrOtherFormulaMap(a, t.dirtyUnitFeatureMap), this._mergeDirtyUnitFeatureOrOtherFormulaMap(o, t.dirtyUnitOtherFormulaMap), this._mergeDirtyNameMap(s, t.clearDependencyTreeCache), { dirtyRanges: n, dirtyNameMap: r, dirtyDefinedNameMap: i, dirtyUnitFeatureMap: a, dirtyUnitOtherFormulaMap: o, forceCalculation: e29.forceCalculation || t.forceCalculation, clearDependencyTreeCache: s }; } _mergeDirtyRanges(e29, t) { for (let n of t) { let t2 = false; for (let r of e29) if (n.unitId === r.unitId && n.sheetId === r.sheetId) { let { startRow: e30, startColumn: i, endRow: a, endColumn: o } = n.range, { startRow: s, startColumn: c, endRow: l, endColumn: u } = r.range; if (e30 === s && i === c && a === l && o === u) { t2 = true; break; } } t2 || e29.push(n); } } _mergeDirtyNameMap(e29, t) { Object.keys(t).forEach((n) => { e29[n] == null && (e29[n] = {}), Object.keys(t[n]).forEach((r) => { var i; (i = t[n]) != null && i[r] && (e29[n][r] = t[n][r]); }); }); } _mergeDirtyUnitFeatureOrOtherFormulaMap(e29, t) { Object.keys(t).forEach((n) => { e29[n] == null && (e29[n] = {}), Object.keys(t[n]).forEach((r) => { e29[n][r] == null && (e29[n][r] = {}), Object.keys(t[n][r]).forEach((i) => { e29[n][r][i] = t[n][r][i] || false; }); }); }); } _initialExecuteFormulaProcessListener() { let e29 = null, t = 0; this.disposeWithMe(this._commandService.onCommandExecuted((n) => { if (n.id === Cr2.id && this.clearProgress(), n.id !== wr2.id) return; let r = n.params; if (r.stageInfo != null) { let { stage: n2 } = r.stageInfo; if (n2 === Wa.START) t === 0 && (this._startExecutionTime = performance.now()), t++, e29 !== null && (clearTimeout(e29), e29 = null), e29 = setTimeout(() => { e29 = null, this._startProgress(); }, 1e3); else if (n2 === Wa.CURRENTLY_CALCULATING) { if (this._executionInProgressParams = r.stageInfo, e29 === null) { let e30 = this._localeService.t(`formula.progress.calculating`); this._calculateProgress(e30); } } else if (n2 === Wa.START_DEPENDENCY_ARRAY_FORMULA) { if (this._executionInProgressParams = r.stageInfo, e29 === null) { let e30 = this._localeService.t(`formula.progress.array-analysis`); this._calculateProgress(e30); } } else if (n2 === Wa.CURRENTLY_CALCULATING_ARRAY_FORMULA && (this._executionInProgressParams = r.stageInfo, e29 === null)) { let e30 = this._localeService.t(`formula.progress.array-calculation`); this._calculateProgress(e30); } } else { let n2 = r.functionsExecutedState, i = ``; switch (t--, n2) { case Ga.NOT_EXECUTED: i = `No tasks are being executed anymore`, this._resetExecutingDirtyData(); break; case Ga.STOP_EXECUTION: i = `The execution of the formula has been stopped`, t = 0; break; case Ga.SUCCESS: i = `Formula calculation succeeded`, (t === 0 || t === -1) && (i += `. Total time consumed: ${performance.now() - this._startExecutionTime} ms`), this._resetExecutingDirtyData(); break; case Ga.INITIAL: i = `Waiting for calculation`, this._resetExecutingDirtyData(); break; } (t === 0 || t === -1) && (e29 ? (clearTimeout(e29), e29 = null, this.clearProgress()) : this._completeProgress(), t = 0, this._doneCalculationTaskCount = 0, this._totalCalculationTaskCount = 0), n2 === Ga.STOP_EXECUTION && this._restartCalculation ? (this._restartCalculation = false, this._commandService.executeCommand(yr2.id, { ...this._executingDirtyData }, Xn4)) : this._executionInProgressParams = null, this._logService.debug(`[TriggerCalculationController]`, i); } })); } _resetExecutingDirtyData() { this._executingDirtyData = { dirtyRanges: [], dirtyNameMap: {}, dirtyDefinedNameMap: {}, dirtyUnitFeatureMap: {}, dirtyUnitOtherFormulaMap: {}, forceCalculation: false, clearDependencyTreeCache: {} }; } _initialExecuteFormula() { let e29 = this._getCalculationMode(), t = this._getDirtyDataByCalculationMode(e29); this._commandService.executeCommand(br2.id, t, Xn4), this._registerOtherFormulaService.calculateStarted$.next(true); } _getDirtyDataByCalculationMode(e29) { return { forceCalculation: e29 === Rn4.FORCED, dirtyRanges: e29 === Rn4.WHEN_EMPTY ? this._formulaDataModel.getFormulaDirtyRanges() : [], dirtyNameMap: {}, dirtyDefinedNameMap: {}, dirtyUnitFeatureMap: {}, dirtyUnitOtherFormulaMap: {}, clearDependencyTreeCache: {} }; } }; Zn4 = Y5([J5(0, ii), J5(1, Gy), J5(2, L), J5(3, Yr), J5(4, Inject(ai2)), J5(5, Inject(zu)), J5(6, Inject(Jy))], Zn4); function Qn4(e29, t, n) { var r; return e29 == null || e29[t] == null || ((r = e29[t]) == null ? void 0 : r[n]) == null; } function $n4(e29, t, n) { if (n) { var r; if (e29 && e29[t] && (r = e29[t]) != null && r[n]) return delete e29[t][n], { [t]: { [n]: null } }; } else if (e29 && e29[t]) return delete e29[t], { [t]: null }; } var Z5 = (function(e29) { return e29[e29.MoveRange = 0] = `MoveRange`, e29[e29.MoveRows = 1] = `MoveRows`, e29[e29.MoveCols = 2] = `MoveCols`, e29[e29.InsertRow = 3] = `InsertRow`, e29[e29.InsertColumn = 4] = `InsertColumn`, e29[e29.RemoveRow = 5] = `RemoveRow`, e29[e29.RemoveColumn = 6] = `RemoveColumn`, e29[e29.DeleteMoveLeft = 7] = `DeleteMoveLeft`, e29[e29.DeleteMoveUp = 8] = `DeleteMoveUp`, e29[e29.InsertMoveDown = 9] = `InsertMoveDown`, e29[e29.InsertMoveRight = 10] = `InsertMoveRight`, e29[e29.SetName = 11] = `SetName`, e29[e29.RemoveSheet = 12] = `RemoveSheet`, e29[e29.SetDefinedName = 13] = `SetDefinedName`, e29[e29.RemoveDefinedName = 14] = `RemoveDefinedName`, e29; })({}); var er4 = [Z5.SetName, Z5.RemoveSheet, Z5.SetDefinedName, Z5.RemoveDefinedName]; function tr3(e29, t, n) { let { type: r } = n; return er4.includes(r) ? nr4(e29, t) : rr4(e29, t, n); } function nr4(e29, t) { let n = [], r = []; return Object.keys(t).forEach((i) => { let a = t[i], o = e29[i]; if (a == null || o == null) return true; Object.keys(a).forEach((e30) => { let t2 = new Sa(a[e30] || {}), s = new Sa(o[e30] || {}), c = new Sa(), l = new Sa(); if (t2.forValue((e31, t3, n2) => { if (n2 == null) return true; let r2 = Sr4(n2); r2 !== null && (c.setValue(e31, t3, r2), l.setValue(e31, t3, s.getValue(e31, t3))); }), c.getSizeOf() === 0) return; let u = { subUnitId: e30, unitId: i, cellValue: c.getMatrix() }, d = { id: J4.id, params: u }; r.push(d); let f = { subUnitId: e30, unitId: i, cellValue: l.getMatrix() }, p = { id: J4.id, params: f }; n.push(p); }); }), { undos: n, redos: r }; } function rr4(e29, t, n) { let { redoFormulaData: r, undoFormulaData: i } = ir4(e29, t, n), a = [], o = []; return Object.keys(r).forEach((e30) => { Object.keys(r[e30]).forEach((t2) => { if (Object.keys(r[e30][t2]).length !== 0) { let n2 = { subUnitId: t2, unitId: e30, cellValue: r[e30][t2] }, i2 = { id: J4.id, params: n2 }; a.push(i2); } }); }), Object.keys(i).forEach((e30) => { Object.keys(i[e30]).forEach((t2) => { if (Object.keys(i[e30][t2]).length !== 0) { let n2 = { subUnitId: t2, unitId: e30, cellValue: i[e30][t2] }, r2 = { id: J4.id, params: n2 }; o.push(r2); } }); }), { undos: o, redos: a }; } function ir4(e29, t, n) { var r, i; let a = {}, o = {}, { unitId: s, sheetId: c } = n, l = (r = n.targetUnitId) == null ? s : r, u = (i = n.targetSheetId) == null ? c : i, d = s !== l || c !== u; return (/* @__PURE__ */ new Set([...Object.keys(e29), ...Object.keys(t)])).forEach((r2) => { Qn4(e29, r2, c) || (/* @__PURE__ */ new Set([...Object.keys(e29[r2] || {}), ...Object.keys(t[r2] || {})])).forEach((i2) => { var l2, u2; let f = (l2 = e29[r2]) == null ? void 0 : l2[i2], p = (u2 = t[r2]) == null ? void 0 : u2[i2], m = new Sa(f || {}), h = new Sa(p || {}), g2 = []; g2 = d || r2 !== s || i2 !== c ? or4(h) : ar4(m, h, n); let _2 = br4(g2, m, h), v = xr4(g2, m); a[r2] || (a[r2] = {}), o[r2] || (o[r2] = {}), a[r2][i2] = { ...a[r2][i2], ..._2 }, o[r2][i2] = { ...o[r2][i2], ...v }; }); }), { redoFormulaData: a, undoFormulaData: o }; } function ar4(e29, t, n) { let { type: r, from: i, to: a, range: o } = n, s = []; return e29.forValue((e30, c, l) => { if (l == null || !wr4(l)) return true; let u = Ia(e30, c), d = null, f = false; if ([Z5.MoveRange, Z5.MoveRows, Z5.MoveCols].includes(r)) d = sr4(r, i, a, u); else if (o != null) { let e31 = cr4(u, n); d = e31.newCell, f = e31.isReverse; } if (D.diffValue(u, d) && !t.getValue(e30, c)) return true; f ? s.unshift({ oldCell: u, newCell: d }) : s.push({ oldCell: u, newCell: d }); }), s; } function or4(e29) { let t = []; return e29.forValue((e30, n, r) => { if (r == null || !wr4(r)) return true; let i = Ia(e30, n); t.push({ oldCell: i, newCell: i }); }), t; } function sr4(e29, t, n, r) { if (t == null || n == null) return null; switch (e29) { case Z5.MoveRange: return lr4(t, n, r); case Z5.MoveRows: return ur4(t, n, r); case Z5.MoveCols: return dr4(t, n, r); default: return null; } } function cr4(e29, t) { let { type: n, rangeFilteredRows: r } = t, i = t.range, a = null, o = false; switch (n) { case Z5.InsertRow: a = fr4(i, e29), o = true; break; case Z5.InsertColumn: a = pr4(i, e29), o = true; break; case Z5.RemoveRow: a = mr4(i, e29, r); break; case Z5.RemoveColumn: a = hr4(i, e29); break; case Z5.DeleteMoveLeft: a = gr4(i, e29); break; case Z5.DeleteMoveUp: a = _r4(i, e29); break; case Z5.InsertMoveDown: a = vr4(i, e29), o = true; break; case Z5.InsertMoveRight: a = yr4(i, e29), o = true; break; default: break; } return { newCell: a, isReverse: o }; } function lr4(e29, t, n) { return Ds3(os3({ id: Z4.MoveRangeCommandId, params: { toRange: t, fromRange: e29 } }, n), n); } function ur4(e29, t, n) { return Ds3(ts3({ id: Z4.MoveRowsCommandId, params: { toRange: t, fromRange: e29 } }, n), n); } function dr4(e29, t, n) { return Ds3(is3({ id: Z4.MoveColsCommandId, params: { toRange: t, fromRange: e29 } }, n), n); } function fr4(e29, t) { return Ds3(ms3({ id: Z4.InsertRowCommandId, params: { range: e29, unitId: ``, subUnitId: ``, direction: Fn.DOWN } }, t), t); } function pr4(e29, t) { return Ds3(hs3({ id: Z4.InsertColCommandId, params: { range: e29, unitId: ``, subUnitId: ``, direction: Fn.RIGHT } }, t), t); } function mr4(e29, t, n) { return Ds3(us3({ id: Z4.RemoveRowCommandId, params: { range: e29 } }, t, n), t); } function hr4(e29, t) { return Ds3(ls3({ id: Z4.RemoveColCommandId, params: { range: e29 } }, t), t); } function gr4(e29, t) { return Ds3(bs3({ id: Z4.DeleteRangeMoveLeftCommandId, params: { range: e29 } }, t), t); } function _r4(e29, t) { return Ds3(Ss3({ id: Z4.DeleteRangeMoveUpCommandId, params: { range: e29 } }, t), t); } function vr4(e29, t) { return Ds3(gs3({ id: Z4.InsertRangeMoveDownCommandId, params: { range: e29 } }, t), t); } function yr4(e29, t) { return Ds3(vs3({ id: Z4.InsertRangeMoveRightCommandId, params: { range: e29 } }, t), t); } function br4(e29, t, n) { let r = new Sa({}); for (let s = 0; s < e29.length; s++) { var i, a; let { oldCell: c, newCell: l } = e29[s]; if ((i = r.getValue(c.startRow, c.startColumn)) != null && i.f || (a = r.getValue(c.startRow, c.startColumn)) != null && a.si || r.setValue(c.startRow, c.startColumn, { f: null, si: null }), l) { var o; let e30 = Sr4((o = n.getValue(c.startRow, c.startColumn)) == null ? t.getValue(c.startRow, c.startColumn) : o); r.setValue(l.startRow, l.startColumn, e30); } } return r.getMatrix(); } function xr4(e29, t) { let n = new Sa({}); for (let r = e29.length - 1; r >= 0; r--) { let { oldCell: i, newCell: a } = e29[r], o = Sr4(t.getValue(i.startRow, i.startColumn)); if (n.setValue(i.startRow, i.startColumn, o), a) { let e30 = Sr4(t.getValue(a.startRow, a.startColumn)); n.setValue(a.startRow, a.startColumn, e30 == null ? { f: null, si: null } : e30); } } return n.getMatrix(); } function Sr4(e29) { if (e29 === void 0) return; if (e29 === null) return { f: null, si: null }; let { f: t, si: n, x: r = 0, y: i = 0 } = e29, a = ka(t), o = Aa(n); if (!a && !o) return { f: null, si: null }; let s = {}; return o && (s.si = n), a && r === 0 && i === 0 && (s.f = t), s.f === void 0 && (s.f = null), s.si === void 0 && (s.si = null), s; } function Cr4(e29, t) { let n = new Sa({}); return new Sa(e29).forValue((e30, r, i) => { var a; let o = Sr4(i); o !== void 0 && (t && (a = t[e30]) != null && a[r] && (o != null && o.f || o != null && o.si) && (o.v = null, o.t = null), n.setValue(e30, r, o)); }), n.getMatrix(); } function wr4(e29) { let t = (e29 == null ? void 0 : e29.f) || ``, n = (e29 == null ? void 0 : e29.si) || ``, r = ka(t), i = Aa(n); return !!(r || i); } function Tr4(e29, t, n, r, i, a) { if ((i == null || i.length === 0) && (a == null || a.length === 0)) { if (e29 === n && t === r) return true; } else if ((e29 === i || i == null || i.length === 0) && t === a) return true; return false; } function Er4(e29, t, n = 0, r = 0) { let i = []; for (let a = 0, o = e29.length; a < o; a++) { let o2 = e29[a]; if (typeof o2 == `string` || o2.nodeType !== Xr.REFERENCE || t.includes(a)) { i.push(o2); continue; } let { token: s } = o2, { range: c, sheetName: l, unitId: u } = Jr2(s), d = G.moveOffset(c, n, r); i.push({ ...o2, token: Jn2({ range: d, unitId: u, sheetName: l }) }); } return i; } var Q5 = (function(e29) { return e29[e29.UP = 0] = `UP`, e29[e29.DOWN = 1] = `DOWN`, e29[e29.LEFT = 2] = `LEFT`, e29[e29.RIGHT = 3] = `RIGHT`, e29[e29.ALL = 4] = `ALL`, e29; })({}); function Dr4(e29, t, n, r, i = {}) { let { type: a, unitId: s, sheetId: c, targetUnitId: l, targetSheetId: u, targetSheetName: d, range: f, from: p, to: m, rangeFilteredRows: h } = t, { range: g2, sheetId: _2, unitId: v, sheetName: y, refOffsetX: b, refOffsetY: x2 } = e29, { preserveSheetQualifier: S4 = false, inCrossSheetCutRange: C3 = false } = i; if (!Tr4(s, c, n, r, v, _2)) return; let w2 = G.moveOffset(g2, b, x2), D4 = null; if (a === Z5.MoveRange) { if (p == null || m == null) return; let e30 = kr4(w2, p), t2 = Po(w2, p); if (t2 == null || e30 !== Q5.ALL) return; let n2 = Ds3(os3({ id: Z4.MoveRangeCommandId, params: { toRange: m, fromRange: p } }, t2), t2); if (n2 == null) return D3.REF; D4 = Or4(e30, n2, p, m, w2, t2); } else if (a === Z5.MoveRows) { if (p == null || m == null) return; let e30 = kr4(w2, p), t2 = Po(w2, p); if (t2 == null && (p.endRow < w2.startRow && m.endRow <= w2.startRow || p.startRow > w2.endRow && m.startRow > w2.endRow)) return; t2 == null && (t2 = { startRow: w2.startRow, endRow: w2.endRow, startColumn: w2.startColumn, endColumn: w2.endColumn, rangeType: B.NORMAL }); let n2 = Ds3(ts3({ id: Z4.MoveRowsCommandId, params: { toRange: m, fromRange: p } }, t2), t2); if (n2 == null) return D3.REF; D4 = Or4(e30, n2, p, m, w2, t2); } else if (a === Z5.MoveCols) { if (p == null || m == null) return; let e30 = kr4(w2, p), t2 = Po(w2, p); if (t2 == null && (p.endColumn < w2.startColumn && m.endColumn <= w2.startColumn || p.startColumn > w2.endColumn && m.startColumn > w2.endColumn)) return; t2 == null && (t2 = { startRow: w2.startRow, endRow: w2.endRow, startColumn: w2.startColumn, endColumn: w2.endColumn, rangeType: B.NORMAL }); let n2 = Ds3(is3({ id: Z4.MoveColsCommandId, params: { toRange: m, fromRange: p } }, t2), t2); if (n2 == null) return D3.REF; D4 = Or4(e30, n2, p, m, w2, t2); } if (f != null) { if (a === Z5.InsertRow) { let e30 = Ds3(ms3({ id: Z4.InsertRowCommandId, params: { range: f, unitId: ``, subUnitId: ``, direction: Fn.DOWN } }, w2), w2); if (e30 == null) return; D4 = { ...w2, ...e30 }; } else if (a === Z5.InsertColumn) { let e30 = Ds3(hs3({ id: Z4.InsertColCommandId, params: { range: f, unitId: ``, subUnitId: ``, direction: Fn.RIGHT } }, w2), w2); if (e30 == null) return; D4 = { ...w2, ...e30 }; } else if (a === Z5.RemoveRow) { let e30 = Ds3(us3({ id: Z4.RemoveRowCommandId, params: { range: f } }, w2, h), w2); if (e30 == null) return D3.REF; D4 = { ...w2, ...e30 }; } else if (a === Z5.RemoveColumn) { let e30 = Ds3(ls3({ id: Z4.RemoveColCommandId, params: { range: f } }, w2), w2); if (e30 == null) return D3.REF; D4 = { ...w2, ...e30 }; } else if (a === Z5.DeleteMoveLeft) { let e30 = Ds3(bs3({ id: Z4.DeleteRangeMoveLeftCommandId, params: { range: f } }, w2), w2); if (e30 == null) return D3.REF; D4 = { ...w2, ...e30 }; } else if (a === Z5.DeleteMoveUp) { let e30 = Ds3(Ss3({ id: Z4.DeleteRangeMoveUpCommandId, params: { range: f } }, w2), w2); if (e30 == null) return D3.REF; D4 = { ...w2, ...e30 }; } else if (a === Z5.InsertMoveDown) { let e30 = Ds3(gs3({ id: Z4.InsertRangeMoveDownCommandId, params: { range: f } }, w2), w2); if (e30 == null) return; D4 = { ...w2, ...e30 }; } else if (a === Z5.InsertMoveRight) { let e30 = Ds3(vs3({ id: Z4.InsertRangeMoveRightCommandId, params: { range: f } }, w2), w2); if (e30 == null) return; D4 = { ...w2, ...e30 }; } } if (D4 == null) return; let O5 = a === Z5.MoveRange && !!u && u !== c && !C3, ee = O5 ? u : _2, k4 = O5 && d || y, te = O5 && l || v, ne = te == null || te.length === 0 || te === n; return Jn2({ range: D4, sheetName: S4 || !(ne && ee === r) ? k4 : ``, unitId: ne ? `` : te }); } function Or4(e29, t, n, r, i, a) { let { startRow: o, endRow: s, startColumn: c, endColumn: l, rangeType: u } = Mr4(t), { startRow: d, startColumn: f, endRow: p, endColumn: m, rangeType: h = B.NORMAL } = Mr4(n), { startRow: g2, startColumn: _2, endRow: v, endColumn: y } = Mr4(r), { startRow: b, endRow: x2, startColumn: S4, endColumn: C3 } = Mr4(a), { startRow: w2, endRow: E4, startColumn: D4, endColumn: O5, rangeType: ee = B.NORMAL } = Mr4(i), k4 = { ...i }; function te() { return u === B.COLUMN && ee === B.COLUMN ? true : c >= D4 && l <= O5; } function ne() { return u === B.ROW && ee === B.ROW ? true : o >= w2 && s <= E4; } if (e29 === Q5.UP) if (te()) if (o < w2) k4.startRow = o; else if (o >= E4) k4.endRow -= p + 1 - w2; else return; else return; else if (e29 === Q5.DOWN) if (te()) if (s > E4) k4.endRow = s; else if (s <= w2) k4.startRow += E4 - d + 1; else return; else return; else if (e29 === Q5.LEFT) if (ne()) if (c < D4) k4.startColumn = c; else if (c >= O5) k4.endColumn -= m + 1 - D4; else return; else return; else if (e29 === Q5.RIGHT) if (ne()) if (l > O5) k4.endColumn = l; else if (l <= D4) k4.startColumn += O5 - f + 1; else return; else return; else e29 === Q5.ALL ? (k4.startRow = o, k4.startColumn = c, k4.endRow = s, k4.endColumn = l) : f <= D4 && m >= O5 || h === B.ROW && ee === B.ROW ? n.endRow < w2 ? (g2 >= w2 && (k4.startRow -= p - d + 1), g2 >= E4 && (k4.endRow -= p - d + 1)) : n.startRow > E4 ? (v <= E4 && (k4.endRow += p - d + 1), v <= w2 && (k4.startRow += p - d + 1)) : n.startRow >= w2 && n.endRow <= E4 && (g2 <= w2 ? k4.startRow += p - d + 1 : g2 >= E4 && (k4.endRow -= p - d + 1)) : d <= w2 && p >= E4 || h === B.COLUMN && ee === B.COLUMN ? n.endColumn < D4 ? (_2 >= D4 && (k4.startColumn -= m - f + 1), _2 >= O5 && (k4.endColumn -= m - f + 1)) : n.startColumn > O5 ? (y <= O5 && (k4.endColumn += m - f + 1), y <= D4 && (k4.startColumn += m - f + 1)) : n.startColumn >= D4 && n.endColumn <= O5 && (_2 <= D4 ? k4.startColumn += m - f + 1 : _2 >= O5 && (k4.endColumn -= m - f + 1)) : ((_2 <= C3 + 1 && y >= O5 || _2 <= D4 && y >= S4 - 1) && g2 <= w2 && v >= E4 || g2 <= x2 + 1 && v >= E4 || g2 <= w2 && b - 1, k4.startRow = o, k4.startColumn = c, k4.endRow = s, k4.endColumn = l); return k4; } function kr4(e29, t) { let n = Ar4(e29.startRow), r = jr4(e29.endRow), i = Ar4(e29.startColumn), a = jr4(e29.endColumn), o = Ar4(t.startRow), s = jr4(t.endRow), c = Ar4(t.startColumn), l = jr4(t.endColumn); function u() { return e29.rangeType === B.COLUMN && t.rangeType === B.COLUMN ? true : n >= o && r <= s; } function d() { return e29.rangeType === B.ROW && t.rangeType === B.ROW ? true : i >= c && a <= l; } function f() { return e29.rangeType === B.ALL && t.rangeType === B.ALL; } return u() && d() || f() ? Q5.ALL : d() && n >= o && n <= s && r > s ? Q5.UP : d() && r >= o && r <= s && n < o ? Q5.DOWN : u() && i >= c && i <= l && a > l ? Q5.LEFT : u() && a >= c && a <= l && i < c ? Q5.RIGHT : null; } function Ar4(e29) { return isNaN(e29) ? -1 / 0 : e29; } function jr4(e29) { return isNaN(e29) ? 1 / 0 : e29; } function Mr4(e29) { let { startRow: t, endRow: n, startColumn: r, endColumn: i } = e29; return { ...e29, startRow: Ar4(t), endRow: jr4(n), startColumn: Ar4(r), endColumn: jr4(i) }; } function Nr4(e29, t) { let { id: n } = t, r = null; switch (n) { case oa3.id: r = Pr4(t, e29); break; case Ho2.id: r = Fr4(t, e29); break; case Wo2.id: r = Ir4(t, e29); break; case _o3.id: r = Lr4(t); break; case wo3.id: r = Rr4(t); break; case ho2.id: r = zr4(t, e29); break; case po2.id: r = Br4(t, e29); break; case No3.id: r = Vr4(t, e29); break; case Io3.id: r = Hr4(t, e29); break; case uo3.id: r = Ur4(t, e29); break; case co3.id: r = Wr4(t, e29); break; case Cd3.id: r = Gr4(t, e29); break; case xu2.id: r = Kr3(t, e29); break; case Uu3.id: r = qr3(t, e29); break; case bu2.id: r = Jr4(t, e29); break; } return r; } function $5(e29) { var t; return { unitId: e29.getUnitId(), sheetId: ((t = e29.getActiveSheet()) == null ? void 0 : t.getSheetId()) || `` }; } function Pr4(e29, t) { var n, r; let { params: i } = e29; if (!i) return null; let { fromRange: a, toRange: o, fromUnitId: s, fromSubUnitId: c, toUnitId: l, toSubUnitId: u } = i; if (!a || !o) return null; let { unitId: d, sheetId: f } = $5(t), p = s || l || d, m = c || f, h = (n = t.getSheetBySheetId(m)) == null ? void 0 : n.getName(), g2 = u || c || f, _2 = l || s || d, v = (r = t.getSheetBySheetId(g2)) == null ? void 0 : r.getName(); return { type: Z5.MoveRange, from: a, to: o, unitId: p, sheetId: m, sheetName: h, targetUnitId: _2, targetSheetId: g2, targetSheetName: v }; } function Fr4(e29, t) { let { params: n } = e29; if (!n) return null; let { fromRange: { startRow: r, endRow: i }, toRange: { startRow: a, endRow: o } } = n, s = t.getUnitId(), c = t.getActiveSheet(); if (!c) return null; let l = c.getSheetId(), u = { startRow: r, startColumn: 0, endRow: i, endColumn: c.getColumnCount() - 1, rangeType: B.ROW }, d = { startRow: a, startColumn: 0, endRow: o, endColumn: c.getColumnCount() - 1, rangeType: B.ROW }; return { type: Z5.MoveRows, from: u, to: d, unitId: s, sheetId: l }; } function Ir4(e29, t) { let { params: n } = e29; if (!n) return null; let { fromRange: { startColumn: r, endColumn: i }, toRange: { startColumn: a, endColumn: o } } = n, s = t.getUnitId(), c = t.getActiveSheet(); if (!c) return null; let l = c.getSheetId(), u = { startRow: 0, startColumn: r, endRow: c.getRowCount() - 1, endColumn: i, rangeType: B.COLUMN }, d = { startRow: 0, startColumn: a, endRow: c.getRowCount() - 1, endColumn: o, rangeType: B.COLUMN }; return { type: Z5.MoveCols, from: u, to: d, unitId: s, sheetId: l }; } function Lr4(e29) { let { params: t } = e29; if (!t) return null; let { range: n, unitId: r, subUnitId: i } = t; return { type: Z5.InsertRow, range: n, unitId: r, sheetId: i }; } function Rr4(e29) { let { params: t } = e29; if (!t) return null; let { range: n, unitId: r, subUnitId: i } = t; return { type: Z5.InsertColumn, range: n, unitId: r, sheetId: i }; } function zr4(e29, t) { let { params: n } = e29; if (!n) return null; let { range: r } = n, { unitId: i, sheetId: a } = $5(t); return { type: Z5.InsertMoveRight, range: r, unitId: i, sheetId: a }; } function Br4(e29, t) { let { params: n } = e29; if (!n) return null; let { range: r } = n, { unitId: i, sheetId: a } = $5(t); return { type: Z5.InsertMoveDown, range: r, unitId: i, sheetId: a }; } function Vr4(e29, t) { var n, r; let { params: i } = e29; if (!i) return null; let { range: a } = i, { unitId: o, sheetId: s } = $5(t); return { type: Z5.RemoveRow, range: a, unitId: o, sheetId: s, rangeFilteredRows: (n = (r = t.getSheetBySheetId(s)) == null ? void 0 : r.getRangeFilterRows(a)) == null ? [] : n }; } function Hr4(e29, t) { let { params: n } = e29; if (!n) return null; let { range: r } = n, { unitId: i, sheetId: a } = $5(t); return { type: Z5.RemoveColumn, range: r, unitId: i, sheetId: a }; } function Ur4(e29, t) { let { params: n } = e29; if (!n) return null; let { range: r } = n, { unitId: i, sheetId: a } = $5(t); return { type: Z5.DeleteMoveUp, range: r, unitId: i, sheetId: a }; } function Wr4(e29, t) { let { params: n } = e29; if (!n) return null; let { range: r } = n, { unitId: i, sheetId: a } = $5(t); return { type: Z5.DeleteMoveLeft, range: r, unitId: i, sheetId: a }; } function Gr4(e29, t) { let { params: n } = e29; if (!n) return null; let { unitId: r, subUnitId: i, name: a } = n, { unitId: o, sheetId: s } = $5(t); return { type: Z5.SetName, unitId: r || o, sheetId: i || s, sheetName: a }; } function Kr3(e29, t) { let { params: n } = e29; if (!n) return null; let { unitId: r, subUnitId: i } = n, { unitId: a, sheetId: o } = $5(t); return { type: Z5.RemoveSheet, unitId: r || a, sheetId: i || o }; } function qr3(e29, t) { let { params: n } = e29; if (!n) return null; let { unitId: r, name: i, id: a } = n, { sheetId: o } = $5(t); return { type: Z5.SetDefinedName, unitId: r, sheetId: o, definedName: i, definedNameId: a }; } function Jr4(e29, t) { let { params: n } = e29; if (!n) return null; let { unitId: r, name: i, id: a } = n, { sheetId: o } = $5(t); return { type: Z5.RemoveDefinedName, unitId: r, sheetId: o, definedName: i, definedNameId: a }; } var Yr4 = class extends E { constructor(e29, t, n, r) { super(), this._definedNamesService = e29, this._univerInstanceService = t, this._sheetInterceptorService = n, this._lexerTreeBuilder = r, this._initialize(); } _initialize() { this._commandExecutedListener(); } _commandExecutedListener() { this.disposeWithMe(this._sheetInterceptorService.interceptCommand({ getMutations: (e29) => { if (e29.id === Uu3.id || e29.id === bu2.id) return { redos: [], undos: [] }; let t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (t == null) return { redos: [], undos: [] }; let n = Nr4(t, e29); return n ? this._getUpdateDefinedNameMutations(t, n) : { redos: [], undos: [] }; } })); } _getUpdateDefinedNameMutations(e29, t) { let { type: n, unitId: r, sheetId: i } = t, a = this._definedNamesService.getDefinedNameMap(r); if (!a) return { redos: [], undos: [] }; let o = [], s = []; return Object.values(a).forEach((a2) => { let { formulaOrRefString: c } = a2, l = this._lexerTreeBuilder.sequenceNodesBuilder(c); if (l == null) return true; let u = false, d = []; for (let o2 = 0, s2 = l.length; o2 < s2; o2++) { var f; let s3 = l[o2]; if (typeof s3 == `string` || s3.nodeType !== Xr.REFERENCE) continue; let { token: c2 } = s3, { range: p2, sheetName: m2, unitId: h2 } = Jr2(c2), g2 = ((f = e29.getSheetBySheetName(m2)) == null ? void 0 : f.getSheetId()) || ``, _2 = { range: p2, sheetId: g2, unitId: h2, sheetName: m2, refOffsetX: 0, refOffsetY: 0 }, v = null; if (n === Z5.RemoveSheet) v = this._removeSheet(a2, r, i); else if (n === Z5.SetName) { let { sheetId: e30, sheetName: n2 } = t; if (n2 == null || g2 == null || g2.length === 0 || e30 !== g2) continue; v = Jn2({ range: p2, sheetName: n2, unitId: h2 }); } else v = Dr4(_2, t, r, i, { preserveSheetQualifier: true }); v != null && (l[o2] = { ...s3, token: v }, u = true, d.push(o2)); } if (!u) return true; let p = Zr2(Er4(l, d)), m = { id: hr2.id, params: { unitId: r, ...a2, formulaOrRefString: p } }; o.push(m); let h = { id: hr2.id, params: { unitId: r, ...a2 } }; s.push(h); }), { redos: o, undos: s }; } _removeSheet(e29, t, n) { var r; let { formulaOrRefString: i } = e29; return ((r = this._definedNamesService.getWorksheetByRef(t, i)) == null ? void 0 : r.getSheetId()) === n ? D3.REF : null; } }; Yr4 = Y5([J5(0, pr2), J5(1, Mu), J5(2, Inject(K4)), J5(3, Inject(ni))], Yr4); var Xr3 = class extends E { constructor(e29, t, n, r, i, a, o, s) { super(), this._univerInstanceService = e29, this._commandService = t, this._lexerTreeBuilder = n, this._formulaDataModel = r, this._sheetInterceptorService = i, this._definedNamesService = a, this._configService = o, this._injector = s, this._commandExecutedListener(); } _commandExecutedListener() { this.disposeWithMe(this._sheetInterceptorService.interceptCommand({ getMutations: (e29) => this._getUpdateFormula(e29) })), this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { if (e29.params) if (e29.id === Ro3.id) { let { subUnitId: t, unitId: n } = e29.params; this._handleWorkbookDisposed(n, t); } else e29.id === iu3.id && this._handleInsertSheetMutation(e29.params); })), this.disposeWithMe(this._commandService.beforeCommandExecuted((e29, t) => { if (e29.id === J4.id) { let n = e29.params; if (t && t.onlyLocal === true || t && t.syncOnly === true || t && t.fromChangeset === true || n.trigger === yc3.id || n.trigger === ju3.id || n.trigger === Gi2.id || n.trigger === $u2.id) return; this._handleSetRangeValuesMutation(n); } })), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(O.UNIVER_SHEET).subscribe((e29) => this._handleWorkbookAdded(e29))), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(O.UNIVER_SHEET).pipe(map((e29) => e29.getUnitId())).subscribe((e29) => this._handleWorkbookDisposed(e29))); } _handleSetRangeValuesMutation(e29) { let { subUnitId: t, unitId: n, cellValue: r } = e29; if (r == null) return; let i = this._formulaDataModel.updateFormulaData(n, t, r); if (Object.keys(i).length === 0) return; let a = { [n]: { [t]: i } }; this._commandService.executeCommand(J4.id, { unitId: n, subUnitId: t, cellValue: Cr4(i, r) }, { onlyLocal: true, fromFormula: true }), this._formulaDataModel.updateArrayFormulaCellData(n, t, r), this._formulaDataModel.updateArrayFormulaRange(n, t, r), this._formulaDataModel.updateImageFormulaData(n, t, r), this._commandService.executeCommand(Pr2.id, { formulaData: a }, { onlyLocal: true }), this._commandService.executeCommand(zn2.id, { arrayFormulaRange: this._formulaDataModel.getArrayFormulaRange(), arrayFormulaCellData: this._formulaDataModel.getArrayFormulaCellData() }, { onlyLocal: true, remove: true }); } _handleWorkbookDisposed(e29, t) { let n = $n4(this._formulaDataModel.getFormulaData(), e29, t), r = this._formulaDataModel.getArrayFormulaRange(), i = $n4(r, e29, t), a = this._formulaDataModel.getArrayFormulaCellData(), o = $n4(a, e29, t); n && this._commandService.executeCommand(Pr2.id, { formulaData: n }, { onlyLocal: true }), i && o && this._commandService.executeCommand(zn2.id, { arrayFormulaRange: r, arrayFormulaCellData: a }, { onlyLocal: true }); } _handleInsertSheetMutation(e29) { let { sheet: t, unitId: n } = e29, r = this._formulaDataModel.getFormulaData(), { id: i, cellData: a } = t, o = oi2(r, n, i, new Sa(a)); this._commandService.executeCommand(Pr2.id, { formulaData: o }, { onlyLocal: true }); } _handleWorkbookAdded(e29) { var t; let n = {}, r = e29.getUnitId(), i = { [r]: {} }; e29.getSheets().forEach((e30) => { var t2; let a2 = e30.getCellMatrix(), o2 = e30.getSheetId(), s2 = oi2(n, r, o2, a2); i[r][o2] = (t2 = s2[r]) == null ? void 0 : t2[o2]; }), this._commandService.executeCommand(Pr2.id, { formulaData: i }, { onlyLocal: true }); let a = this._configService.getConfig(Ln4), o = (t = a == null ? void 0 : a.initialFormulaComputing) == null ? Rn4.WHEN_EMPTY : t, s = this._getDirtyDataByCalculationMode(o); this._commandService.executeCommand(br2.id, s, { onlyLocal: true }); } _getDirtyDataByCalculationMode(e29) { return { forceCalculation: e29 === Rn4.FORCED, dirtyRanges: e29 === Rn4.WHEN_EMPTY ? this._formulaDataModel.getFormulaDirtyRanges() : [], dirtyNameMap: {}, dirtyDefinedNameMap: {}, dirtyUnitFeatureMap: {}, dirtyUnitOtherFormulaMap: {}, clearDependencyTreeCache: {} }; } _getUpdateFormula(e29) { let t = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET); if (!t) return { undos: [], redos: [] }; let n = Nr4(t, e29); if (n) { let { unitSheetNameMap: e30 } = this._formulaDataModel.getCalculateData(), t2 = this._formulaDataModel.getFormulaData(), { newFormulaData: r } = this._getFormulaReferenceMoveInfo(t2, e30, n), { undos: i, redos: a } = tr3(t2, r, n); return { undos: i, redos: a }; } return { undos: [], redos: [] }; } _getFormulaReferenceMoveInfo(e29, t, n) { if (!D.isDefine(e29)) return { newFormulaData: {} }; let r = Object.keys(e29); if (r.length === 0) return { newFormulaData: {} }; let i = {}, { unitId: a, sheetId: o, sheetName: s, targetUnitId: c, targetSheetId: l, type: u, from: d, to: f } = n, p = []; for (let f2 of r) { let r2 = e29[f2]; if (r2 == null) continue; let m2 = Object.keys(r2); D.isDefine(i[f2]) || (i[f2] = {}); for (let e30 of m2) { let m3 = new Sa(r2[e30] || {}), h2 = new Sa(), g3 = []; m3.forValue((r3, i2, m4) => { if (!m4) return true; let { f: _3, x: v, y, si: b } = m4, x2 = this._lexerTreeBuilder.sequenceNodesBuilder(_3); if (x2 == null) return true; let S4 = false, C3 = [], w2 = u === Z5.MoveRange && (c !== a || l !== o) && f2 === a && e30 === o && d && d.startRow <= r3 && r3 <= d.endRow && d.startColumn <= i2 && i2 <= d.endColumn, T4 = [...x2]; for (let r4 = 0, i3 = x2.length; r4 < i3; r4++) { var D4; let i4 = x2[r4]; if (typeof i4 == `string`) continue; let { token: l2, nodeType: d2 } = i4; if ((u === Z5.SetDefinedName || u === Z5.RemoveDefinedName) && (d2 === Xr.DEFINED_NAME || d2 === Xr.FUNCTION)) { let { definedNameId: e31, definedName: t2 } = n; if (e31 === void 0 || t2 === void 0) continue; let a2 = this._definedNamesService.getValueById(f2, e31); if (a2 == null || a2.name !== l2) continue; x2[r4] = { ...i4, token: u === Z5.SetDefinedName ? t2 : D3.REF }, S4 = true, C3.push(r4); continue; } else if (d2 !== Xr.REFERENCE) continue; let { range: p2, sheetName: m5, unitId: h3 } = Jr2(l2), _4 = h3 == null || h3.length === 0 ? f2 : h3, O6 = (t == null || (D4 = t[_4]) == null ? void 0 : D4[m5]) || ``; if (!Tr4(n.unitId, n.sheetId, f2, e30, h3, O6)) continue; let ee = { range: p2, sheetId: O6, unitId: h3, sheetName: m5, refOffsetX: v || 0, refOffsetY: y || 0 }, k4 = null; if (u === Z5.SetName) { let { unitId: e31, sheetId: t2, sheetName: r5 } = n; if (r5 == null || O6 == null || O6.length === 0 || t2 !== O6) continue; k4 = Jn2({ range: p2, sheetName: r5, unitId: h3 }); } else if (u === Z5.RemoveSheet) { let { unitId: e31, sheetId: t2, sheetName: r5 } = n; if (O6 == null || O6.length === 0 || t2 !== O6) continue; k4 = D3.REF; } else u !== Z5.SetDefinedName && (k4 = Dr4(ee, n, f2, e30, { inCrossSheetCutRange: w2 })); if (k4 != null && (x2[r4] = { ...i4, token: k4 }, S4 = true, C3.push(r4), b && (v == null ? 0 : v) === 0 && (y == null ? 0 : y) === 0 && g3.push(b)), w2) { if (k4 != null) T4[r4] = { ...i4, token: k4 }; else if ((!h3 || h3 === a) && (!O6 || O6 === o)) { let e31 = G.moveOffset(p2, v || 0, y || 0); T4[r4] = { ...i4, token: Jn2({ range: e31, sheetName: s || m5, unitId: c === a ? `` : a }) }, S4 = true; } } } if (!S4) if (b && [Z5.MoveRows, Z5.MoveCols, Z5.MoveRange].includes(u)) { if (d && d.startRow <= r3 && r3 <= d.endRow && d.startColumn <= i2 && i2 <= d.endColumn) (v == null ? 0 : v) === 0 && (y == null ? 0 : y) === 0 && g3.push(b); else if (!g3.includes(b)) return true; } else return true; if (w2) { let e31 = Er4(T4, C3, v, y); return p.push({ fromRow: r3, fromColumn: i2, formulaString: `=${Zr2(e31)}` }), true; } let O5 = Er4(x2, C3, v, y); h2.setValue(r3, i2, { f: `=${Zr2(O5)}` }); }), i[f2] && (i[f2][e30] = h2.getData()); } } if (p.length > 0 && c && l) { i[c] || (i[c] = {}), i[c][l] || (i[c][l] = {}); for (let e30 of p) { var m, h, g2, _2; let { fromRow: t2, fromColumn: n2, formulaString: r2 } = e30, a2 = t2 + (((m = f == null ? void 0 : f.startRow) == null ? 0 : m) - ((h = d == null ? void 0 : d.startRow) == null ? 0 : h)), o2 = n2 + (((g2 = f == null ? void 0 : f.startColumn) == null ? 0 : g2) - ((_2 = d == null ? void 0 : d.startColumn) == null ? 0 : _2)); i[c][l][a2] || (i[c][l][a2] = {}), i[c][l][a2][o2] = { f: r2 }; } } return { newFormulaData: i }; } }; Xr3 = Y5([J5(0, Mu), J5(1, ii), J5(2, Inject(ni)), J5(3, Inject(ai2)), J5(4, Inject(K4)), J5(5, pr2), J5(6, Yr), J5(7, Inject(Injector))], Xr3); var Zr4 = `@univerjs/sheets-formula`; var Qr3 = `0.19.0`; var $r4 = class extends E { constructor(e29, t, n) { super(), this._activeDirtyManagerService = e29, this._univerInstanceService = t, this._formulaDataModel = n, this._initialize(); } _initialize() { this._initialConversion(); } _initialConversion() { this._activeDirtyManagerService.register(J4.id, { commandId: J4.id, getDirtyData: (e29) => { let t = e29.params; return t.trigger === yc3.id ? {} : { dirtyRanges: this._getSetRangeValuesMutationDirtyRange(t) }; } }), this._initialMove(), this._initialRowAndColumn(), this._initialHideRow(), this._initialSheet(), this._initialDefinedName(); } _initialMove() { this._activeDirtyManagerService.register(Tn3.id, { commandId: Tn3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getMoveRangeMutationDirtyRange(t), clearDependencyTreeCache: { [t.unitId]: { [t.to.subUnitId]: `1`, [t.from.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(Dn3.id, { commandId: Dn3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getMoveRowsMutationDirtyRange(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(kn3.id, { commandId: kn3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getMoveRowsMutationDirtyRange(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(In2.id, { commandId: In2.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getReorderRangeMutationDirtyRange(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }); } _initialRowAndColumn() { this._activeDirtyManagerService.register(jn2.id, { commandId: jn2.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getRemoveRowOrColumnMutation(t, true), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(Nn3.id, { commandId: Nn3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getRemoveRowOrColumnMutation(t, false), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(wn3.id, { commandId: wn3.id, getDirtyData: (e29) => { let t = e29.params; return { clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(Sn3.id, { commandId: Sn3.id, getDirtyData: (e29) => { let t = e29.params; return { clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }); } _initialHideRow() { this._activeDirtyManagerService.register(Tr3.id, { commandId: Tr3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getHideRowMutation(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(Cr3.id, { commandId: Cr3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyRanges: this._getHideRowMutation(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }); } _initialSheet() { this._activeDirtyManagerService.register(br2.id, { commandId: br2.id, getDirtyData: (e29) => ({ ...e29.params }) }), this._activeDirtyManagerService.register(Ro3.id, { commandId: Ro3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyNameMap: this._getRemoveSheetMutation(t), clearDependencyTreeCache: { [t.unitId]: { [t.subUnitId]: `1` } } }; } }), this._activeDirtyManagerService.register(iu3.id, { commandId: iu3.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyNameMap: this._getInsertSheetMutation(t) }; } }); } _initialDefinedName() { this._activeDirtyManagerService.register(hr2.id, { commandId: hr2.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyDefinedNameMap: this._getDefinedNameMutation(t) }; } }), this._activeDirtyManagerService.register(gr2.id, { commandId: gr2.id, getDirtyData: (e29) => { let t = e29.params; return { dirtyDefinedNameMap: this._getDefinedNameMutation(t) }; } }); } _getDefinedNameMutation(e29) { let { unitId: t, name: n, formulaOrRefString: r } = e29, i = {}; return e29 == null ? {} : (i[t] = {}, i[t][n] = r, i); } _getSetRangeValuesMutationDirtyRange(e29) { let { subUnitId: t, unitId: n, cellValue: r } = e29, i = []; return r == null ? i : (i.push(...this._getDirtyRangesByCellValue(n, t, r)), i.push(...this._getDirtyRangesForArrayFormula(n, t, r)), i); } _getMoveRangeMutationDirtyRange(e29) { let { unitId: t, from: n, to: r } = e29, i = []; return i.push(...this._getDirtyRangesByCellValue(t, n.subUnitId, n.value)), i.push(...this._getDirtyRangesByCellValue(t, r.subUnitId, r.value)), i.push(...this._getDirtyRangesForArrayFormula(t, r.subUnitId, r.value)), i; } _getMoveRowsMutationDirtyRange(e29) { let { subUnitId: t, unitId: n, sourceRange: r, targetRange: i } = e29, a = [], o = this._rangeToMatrix(r).getData(), s = this._rangeToMatrix(i).getData(); return a.push(...this._getDirtyRangesByCellValue(n, t, o)), a.push(...this._getDirtyRangesByCellValue(n, t, s)), a.push(...this._getDirtyRangesForArrayFormula(n, t, s)), a; } _getReorderRangeMutationDirtyRange(e29) { let { unitId: t, subUnitId: n, range: r } = e29, i = this._rangeToMatrix(r).getData(), a = []; return a.push(...this._getDirtyRangesByCellValue(t, n, i)), a.push(...this._getDirtyRangesForArrayFormula(t, n, i)), a; } _getRemoveRowOrColumnMutation(e29, t = true) { let { subUnitId: n, unitId: r, range: i } = e29, a = [], o = this._univerInstanceService.getUniverSheetInstance(r), s = o == null ? void 0 : o.getSheetBySheetId(n), c = (s == null ? void 0 : s.getRowCount()) || 0, l = (s == null ? void 0 : s.getColumnCount()) || 0, u = null, { startRow: d, endRow: f, startColumn: p, endColumn: m } = i; u = t === true ? this._rangeToMatrix({ startRow: d, startColumn: 0, endRow: f, endColumn: l - 1 }) : this._rangeToMatrix({ startRow: 0, startColumn: p, endRow: c, endColumn: m }); let h = u.getData(); return a.push(...this._getDirtyRangesByCellValue(r, n, h)), a.push(...this._getDirtyRangesForArrayFormula(r, n, h)), a; } _getHideRowMutation(e29) { let { subUnitId: t, unitId: n, ranges: r } = e29, i = []; return r.forEach((e30) => { let r2 = this._rangeToMatrix(e30).getMatrix(); i.push(...this._getDirtyRangesByCellValue(n, t, r2)); }), i; } _getRemoveSheetMutation(e29) { let t = {}, { subUnitId: n, unitId: r, subUnitName: i } = e29; return t[r] == null && (t[r] = {}), t[r][n] = i, t; } _getInsertSheetMutation(e29) { let t = {}, { sheet: n, unitId: r } = e29; return t[r] == null && (t[r] = {}), t[r][n.id] = n.name, t; } _rangeToMatrix(e29) { let t = new Sa(), { startRow: n, startColumn: r, endRow: i, endColumn: a } = e29; for (let e30 = n; e30 <= i; e30++) for (let n2 = r; n2 <= a; n2++) t.setValue(e30, n2, {}); return t; } _getDirtyRangesByCellValue(e29, t, n) { let r = []; return n == null || new Sa(n).getDiscreteRanges().forEach((n2) => { r.push({ unitId: e29, sheetId: t, range: n2 }); }), r; } _getDirtyRangesForArrayFormula(e29, t, n) { var r; let i = []; if (n == null) return i; let a = new Sa(n), o = this._formulaDataModel.getArrayFormulaRange(); if (!(o == null || (r = o[e29]) == null) && r[t]) { var s; let n2 = new Sa(o == null || (s = o[e29]) == null ? void 0 : s[t]); a.forValue((r2, a2) => { n2.forValue((n3, o2, s2) => { if (s2 == null) return true; let { startRow: c, startColumn: l, endRow: u, endColumn: d } = s2; r2 >= c && r2 <= u && a2 >= l && a2 <= d && i.push({ unitId: e29, sheetId: t, range: { startRow: c, startColumn: l, endRow: c, endColumn: l } }); }); }); } return i; } }; $r4 = Y5([J5(0, Gy), J5(1, Mu), J5(2, Inject(ai2))], $r4); var ei3 = class extends E { constructor(e29, t, n, r, i, a, o) { super(), this._commandService = e29, this._configService = t, this._sheetInterceptorService = n, this._formulaDataModel = r, this._lexerTreeBuilder = i, this._functionService = a, this._definedNamesService = o, this._initialize(); } _initialize() { this._commandExecutedListener(), this._initInterceptorCellContent(); } _commandExecutedListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29) => { var t; let n = (t = this._configService.getConfig(`sheets-formula.base.config`)) == null ? void 0 : t.writeArrayFormulaToSnapshot; if (e29.id === zn2.id) { let t2 = e29.params; if (t2 == null) return; let { arrayFormulaRange: r, arrayFormulaCellData: i, arrayFormulaEmbedded: a } = t2; this._formulaDataModel.setArrayFormulaRange(r), this._formulaDataModel.setArrayFormulaCellData(i), n && this._writeArrayFormulaToSnapshot(r, i, a); } else e29.id === Tr2.id && n && (this._addPrefixToFunctionSnapshot(), this._addPrefixToDefinedNamesFunctionSnapshot()); })); } _addPrefixToDefinedNamesFunctionSnapshot() { let e29 = this._definedNamesService.getAllDefinedNames(); Object.entries(e29).forEach(([e30, t]) => { t && Array.from(Object.entries(t)).forEach(([t2, n]) => { let { formulaOrRefString: r } = n; if (r.substring(0, 1) === `=`) { let t3 = this._lexerTreeBuilder.getNewFormulaWithPrefix(r, this._functionService.hasExecutor.bind(this._functionService)); t3 && this._commandService.executeCommand(hr2.id, { ...n, unitId: e30, formulaOrRefStringWithPrefix: t3 }, { onlyLocal: true, fromFormula: true }); } }); }); } _addPrefixToFunctionSnapshot() { let e29 = this._formulaDataModel.getFormulaData(), t = /* @__PURE__ */ new Map(); Object.entries(e29).forEach(([e30, n]) => { n && Array.from(Object.entries(n)).forEach(([n2, r]) => { if (!r) return; let i = new Sa(); new Sa(r).forValue((e31, n3, r2) => { let a = r2 == null ? void 0 : r2.f; if ((r2 == null ? void 0 : r2.x) != null || !a || a.length === 0) return; if (t.has(a)) { let r3 = t.get(a); i.setValue(e31, n3, { xf: r3 }); return; } let o = this._lexerTreeBuilder.getNewFormulaWithPrefix(a, this._functionService.hasExecutor.bind(this._functionService)); o && (i.setValue(e31, n3, { xf: o }), t.set(a, o)); }), this._commandService.executeCommand(J4.id, { unitId: e30, subUnitId: n2, cellValue: i.getMatrix() }, { onlyLocal: true, fromFormula: true }); }); }), t.clear(); } _writeArrayFormulaToSnapshot(e29, t, n) { e29 && Object.entries(e29).forEach(([e30, t2]) => { t2 && Array.from(Object.entries(t2)).forEach(([t3, n2]) => { let r = new Sa(); new Sa(n2).forValue((e31, t4, n3) => { r.setValue(e31, t4, { ref: Gn2(n3) }); }), this._commandService.executeCommand(J4.id, { unitId: e30, subUnitId: t3, cellValue: r.getMatrix() }, { onlyLocal: true, fromFormula: true }); }); }), n && Object.entries(n).forEach(([t2, n2]) => { n2 && Array.from(Object.entries(n2)).forEach(([n3, r]) => { let i = new Sa(); new Sa(r).forValue((r2, a) => { var o; !(e29 == null || (o = e29[t2]) == null || (o = o[n3]) == null || (o = o[r2]) == null) && o[a] || i.setValue(r2, a, { ref: Gn2({ startRow: r2, endRow: r2, startColumn: a, endColumn: a }) }); }), this._commandService.executeCommand(J4.id, { unitId: t2, subUnitId: n3, cellValue: i.getMatrix() }, { onlyLocal: true, fromFormula: true }); }); }), t && Object.entries(t).forEach(([e30, t2]) => { t2 && Array.from(Object.entries(t2)).forEach(([t3, n2]) => { this._commandService.executeCommand(J4.id, { unitId: e30, subUnitId: t3, cellValue: n2 }, { onlyLocal: true, fromFormula: true }); }); }); } _initInterceptorCellContent() { this.disposeWithMe(this._sheetInterceptorService.intercept(Bt3.CELL_CONTENT, { priority: 100, effect: At.Value, handler: (e29, t, n) => { var i; let a = e29, { unitId: o, subUnitId: s, row: c, col: l } = t, u = this._formulaDataModel.getArrayFormulaCellData(), d = u == null || (i = u[o]) == null || (i = i[s]) == null || (i = i[c]) == null ? void 0 : i[l]; return d == null ? n(a) : ((!a || a === t.rawData) && (a = { ...t.rawData }), d.v == null && d.t == null ? (a.v = 0, a.t = tr.NUMBER, n(a)) : (a == null ? void 0 : a.t) === tr.NUMBER && a.v !== void 0 && a.v !== null && Ja(a.v) ? (a.v = aa2(Number(a.v)), n(a)) : (a.v = d.v, a.t = d.t, n(a))); } })); } }; ei3 = Y5([J5(0, ii), J5(1, Yr), J5(2, Inject(K4)), J5(3, Inject(ai2)), J5(4, Inject(ni)), J5(5, uo2), J5(6, pr2)], ei3); var ti3 = [{ functionName: Cs2.ARRAY_CONSTRAIN, functionType: Dt2.Array, description: `formula.functionList.ARRAY_CONSTRAIN.description`, abstract: `formula.functionList.ARRAY_CONSTRAIN.abstract`, functionParameter: [{ name: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.inputRange.name`, detail: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.inputRange.detail`, example: `A1:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.numRows.name`, detail: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.numRows.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.numCols.name`, detail: `formula.functionList.ARRAY_CONSTRAIN.functionParameter.numCols.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: Cs2.FLATTEN, functionType: Dt2.Array, description: `formula.functionList.FLATTEN.description`, abstract: `formula.functionList.FLATTEN.abstract`, functionParameter: [{ name: `formula.functionList.FLATTEN.functionParameter.range1.name`, detail: `formula.functionList.FLATTEN.functionParameter.range1.detail`, example: `A1:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.FLATTEN.functionParameter.range2.name`, detail: `formula.functionList.FLATTEN.functionParameter.range2.detail`, example: `D1:F3`, require: 0, repeat: 1 }] }]; var ni3 = [{ functionName: zl2.BETADIST, functionType: Dt2.Compatibility, description: `formula.functionList.BETADIST.description`, abstract: `formula.functionList.BETADIST.abstract`, functionParameter: [{ name: `formula.functionList.BETADIST.functionParameter.x.name`, detail: `formula.functionList.BETADIST.functionParameter.x.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.BETADIST.functionParameter.alpha.name`, detail: `formula.functionList.BETADIST.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.BETADIST.functionParameter.beta.name`, detail: `formula.functionList.BETADIST.functionParameter.beta.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BETADIST.functionParameter.A.name`, detail: `formula.functionList.BETADIST.functionParameter.A.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.BETADIST.functionParameter.B.name`, detail: `formula.functionList.BETADIST.functionParameter.B.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: zl2.BETAINV, functionType: Dt2.Compatibility, description: `formula.functionList.BETAINV.description`, abstract: `formula.functionList.BETAINV.abstract`, functionParameter: [{ name: `formula.functionList.BETAINV.functionParameter.probability.name`, detail: `formula.functionList.BETAINV.functionParameter.probability.detail`, example: `0.685470581`, require: 1, repeat: 0 }, { name: `formula.functionList.BETAINV.functionParameter.alpha.name`, detail: `formula.functionList.BETAINV.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.BETAINV.functionParameter.beta.name`, detail: `formula.functionList.BETAINV.functionParameter.beta.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BETAINV.functionParameter.A.name`, detail: `formula.functionList.BETAINV.functionParameter.A.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.BETAINV.functionParameter.B.name`, detail: `formula.functionList.BETAINV.functionParameter.B.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: zl2.BINOMDIST, functionType: Dt2.Compatibility, description: `formula.functionList.BINOMDIST.description`, abstract: `formula.functionList.BINOMDIST.abstract`, functionParameter: [{ name: `formula.functionList.BINOMDIST.functionParameter.numberS.name`, detail: `formula.functionList.BINOMDIST.functionParameter.numberS.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOMDIST.functionParameter.trials.name`, detail: `formula.functionList.BINOMDIST.functionParameter.trials.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOMDIST.functionParameter.probabilityS.name`, detail: `formula.functionList.BINOMDIST.functionParameter.probabilityS.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOMDIST.functionParameter.cumulative.name`, detail: `formula.functionList.BINOMDIST.functionParameter.cumulative.detail`, example: `false`, require: 1, repeat: 0 }] }, { functionName: zl2.CHIDIST, functionType: Dt2.Compatibility, description: `formula.functionList.CHIDIST.description`, abstract: `formula.functionList.CHIDIST.abstract`, functionParameter: [{ name: `formula.functionList.CHIDIST.functionParameter.x.name`, detail: `formula.functionList.CHIDIST.functionParameter.x.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CHIDIST.functionParameter.degFreedom.name`, detail: `formula.functionList.CHIDIST.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: zl2.CHIINV, functionType: Dt2.Compatibility, description: `formula.functionList.CHIINV.description`, abstract: `formula.functionList.CHIINV.abstract`, functionParameter: [{ name: `formula.functionList.CHIINV.functionParameter.probability.name`, detail: `formula.functionList.CHIINV.functionParameter.probability.detail`, example: `0.93`, require: 1, repeat: 0 }, { name: `formula.functionList.CHIINV.functionParameter.degFreedom.name`, detail: `formula.functionList.CHIINV.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: zl2.CHITEST, functionType: Dt2.Compatibility, description: `formula.functionList.CHITEST.description`, abstract: `formula.functionList.CHITEST.abstract`, functionParameter: [{ name: `formula.functionList.CHITEST.functionParameter.actualRange.name`, detail: `formula.functionList.CHITEST.functionParameter.actualRange.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.CHITEST.functionParameter.expectedRange.name`, detail: `formula.functionList.CHITEST.functionParameter.expectedRange.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: zl2.CONFIDENCE, functionType: Dt2.Compatibility, description: `formula.functionList.CONFIDENCE.description`, abstract: `formula.functionList.CONFIDENCE.abstract`, functionParameter: [{ name: `formula.functionList.CONFIDENCE.functionParameter.alpha.name`, detail: `formula.functionList.CONFIDENCE.functionParameter.alpha.detail`, example: `0.05`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE.functionParameter.standardDev.name`, detail: `formula.functionList.CONFIDENCE.functionParameter.standardDev.detail`, example: `2.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE.functionParameter.size.name`, detail: `formula.functionList.CONFIDENCE.functionParameter.size.detail`, example: `50`, require: 1, repeat: 0 }] }, { functionName: zl2.COVAR, functionType: Dt2.Compatibility, description: `formula.functionList.COVAR.description`, abstract: `formula.functionList.COVAR.abstract`, functionParameter: [{ name: `formula.functionList.COVAR.functionParameter.array1.name`, detail: `formula.functionList.COVAR.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.COVAR.functionParameter.array2.name`, detail: `formula.functionList.COVAR.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: zl2.CRITBINOM, functionType: Dt2.Compatibility, description: `formula.functionList.CRITBINOM.description`, abstract: `formula.functionList.CRITBINOM.abstract`, functionParameter: [{ name: `formula.functionList.CRITBINOM.functionParameter.trials.name`, detail: `formula.functionList.CRITBINOM.functionParameter.trials.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.CRITBINOM.functionParameter.probabilityS.name`, detail: `formula.functionList.CRITBINOM.functionParameter.probabilityS.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CRITBINOM.functionParameter.alpha.name`, detail: `formula.functionList.CRITBINOM.functionParameter.alpha.detail`, example: `0.75`, require: 1, repeat: 0 }] }, { functionName: zl2.EXPONDIST, functionType: Dt2.Compatibility, description: `formula.functionList.EXPONDIST.description`, abstract: `formula.functionList.EXPONDIST.abstract`, functionParameter: [{ name: `formula.functionList.EXPONDIST.functionParameter.x.name`, detail: `formula.functionList.EXPONDIST.functionParameter.x.detail`, example: `0.2`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPONDIST.functionParameter.lambda.name`, detail: `formula.functionList.EXPONDIST.functionParameter.lambda.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPONDIST.functionParameter.cumulative.name`, detail: `formula.functionList.EXPONDIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: zl2.FDIST, functionType: Dt2.Compatibility, description: `formula.functionList.FDIST.description`, abstract: `formula.functionList.FDIST.abstract`, functionParameter: [{ name: `formula.functionList.FDIST.functionParameter.x.name`, detail: `formula.functionList.FDIST.functionParameter.x.detail`, example: `15.2069`, require: 1, repeat: 0 }, { name: `formula.functionList.FDIST.functionParameter.degFreedom1.name`, detail: `formula.functionList.FDIST.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.FDIST.functionParameter.degFreedom2.name`, detail: `formula.functionList.FDIST.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: zl2.FINV, functionType: Dt2.Compatibility, description: `formula.functionList.FINV.description`, abstract: `formula.functionList.FINV.abstract`, functionParameter: [{ name: `formula.functionList.FINV.functionParameter.probability.name`, detail: `formula.functionList.FINV.functionParameter.probability.detail`, example: `0.01`, require: 1, repeat: 0 }, { name: `formula.functionList.FINV.functionParameter.degFreedom1.name`, detail: `formula.functionList.FINV.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.FINV.functionParameter.degFreedom2.name`, detail: `formula.functionList.FINV.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: zl2.FTEST, functionType: Dt2.Compatibility, description: `formula.functionList.FTEST.description`, abstract: `formula.functionList.FTEST.abstract`, functionParameter: [{ name: `formula.functionList.FTEST.functionParameter.array1.name`, detail: `formula.functionList.FTEST.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.FTEST.functionParameter.array2.name`, detail: `formula.functionList.FTEST.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: zl2.GAMMADIST, functionType: Dt2.Compatibility, description: `formula.functionList.GAMMADIST.description`, abstract: `formula.functionList.GAMMADIST.abstract`, functionParameter: [{ name: `formula.functionList.GAMMADIST.functionParameter.x.name`, detail: `formula.functionList.GAMMADIST.functionParameter.x.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMADIST.functionParameter.alpha.name`, detail: `formula.functionList.GAMMADIST.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMADIST.functionParameter.beta.name`, detail: `formula.functionList.GAMMADIST.functionParameter.beta.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMADIST.functionParameter.cumulative.name`, detail: `formula.functionList.GAMMADIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: zl2.GAMMAINV, functionType: Dt2.Compatibility, description: `formula.functionList.GAMMAINV.description`, abstract: `formula.functionList.GAMMAINV.abstract`, functionParameter: [{ name: `formula.functionList.GAMMAINV.functionParameter.probability.name`, detail: `formula.functionList.GAMMAINV.functionParameter.probability.detail`, example: `0.068094`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMAINV.functionParameter.alpha.name`, detail: `formula.functionList.GAMMAINV.functionParameter.alpha.detail`, example: `9`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMAINV.functionParameter.beta.name`, detail: `formula.functionList.GAMMAINV.functionParameter.beta.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: zl2.HYPGEOMDIST, functionType: Dt2.Compatibility, description: `formula.functionList.HYPGEOMDIST.description`, abstract: `formula.functionList.HYPGEOMDIST.abstract`, functionParameter: [{ name: `formula.functionList.HYPGEOMDIST.functionParameter.sampleS.name`, detail: `formula.functionList.HYPGEOMDIST.functionParameter.sampleS.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOMDIST.functionParameter.numberSample.name`, detail: `formula.functionList.HYPGEOMDIST.functionParameter.numberSample.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOMDIST.functionParameter.populationS.name`, detail: `formula.functionList.HYPGEOMDIST.functionParameter.populationS.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOMDIST.functionParameter.numberPop.name`, detail: `formula.functionList.HYPGEOMDIST.functionParameter.numberPop.detail`, example: `20`, require: 1, repeat: 0 }] }, { functionName: zl2.LOGINV, functionType: Dt2.Compatibility, description: `formula.functionList.LOGINV.description`, abstract: `formula.functionList.LOGINV.abstract`, functionParameter: [{ name: `formula.functionList.LOGINV.functionParameter.probability.name`, detail: `formula.functionList.LOGINV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGINV.functionParameter.mean.name`, detail: `formula.functionList.LOGINV.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGINV.functionParameter.standardDev.name`, detail: `formula.functionList.LOGINV.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: zl2.LOGNORMDIST, functionType: Dt2.Compatibility, description: `formula.functionList.LOGNORMDIST.description`, abstract: `formula.functionList.LOGNORMDIST.abstract`, functionParameter: [{ name: `formula.functionList.LOGNORMDIST.functionParameter.x.name`, detail: `formula.functionList.LOGNORMDIST.functionParameter.x.detail`, example: `42`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORMDIST.functionParameter.mean.name`, detail: `formula.functionList.LOGNORMDIST.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORMDIST.functionParameter.standardDev.name`, detail: `formula.functionList.LOGNORMDIST.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: zl2.MODE, functionType: Dt2.Compatibility, description: `formula.functionList.MODE.description`, abstract: `formula.functionList.MODE.abstract`, functionParameter: [{ name: `formula.functionList.MODE.functionParameter.number1.name`, detail: `formula.functionList.MODE.functionParameter.number1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.MODE.functionParameter.number2.name`, detail: `formula.functionList.MODE.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: zl2.NEGBINOMDIST, functionType: Dt2.Compatibility, description: `formula.functionList.NEGBINOMDIST.description`, abstract: `formula.functionList.NEGBINOMDIST.abstract`, functionParameter: [{ name: `formula.functionList.NEGBINOMDIST.functionParameter.numberF.name`, detail: `formula.functionList.NEGBINOMDIST.functionParameter.numberF.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.NEGBINOMDIST.functionParameter.numberS.name`, detail: `formula.functionList.NEGBINOMDIST.functionParameter.numberS.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.NEGBINOMDIST.functionParameter.probabilityS.name`, detail: `formula.functionList.NEGBINOMDIST.functionParameter.probabilityS.detail`, example: `0.25`, require: 1, repeat: 0 }] }, { functionName: zl2.NORMDIST, functionType: Dt2.Compatibility, description: `formula.functionList.NORMDIST.description`, abstract: `formula.functionList.NORMDIST.abstract`, functionParameter: [{ name: `formula.functionList.NORMDIST.functionParameter.x.name`, detail: `formula.functionList.NORMDIST.functionParameter.x.detail`, example: `42`, require: 1, repeat: 0 }, { name: `formula.functionList.NORMDIST.functionParameter.mean.name`, detail: `formula.functionList.NORMDIST.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.NORMDIST.functionParameter.standardDev.name`, detail: `formula.functionList.NORMDIST.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.NORMDIST.functionParameter.cumulative.name`, detail: `formula.functionList.NORMDIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: zl2.NORMINV, functionType: Dt2.Compatibility, description: `formula.functionList.NORMINV.description`, abstract: `formula.functionList.NORMINV.abstract`, functionParameter: [{ name: `formula.functionList.NORMINV.functionParameter.probability.name`, detail: `formula.functionList.NORMINV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }, { name: `formula.functionList.NORMINV.functionParameter.mean.name`, detail: `formula.functionList.NORMINV.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.NORMINV.functionParameter.standardDev.name`, detail: `formula.functionList.NORMINV.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: zl2.NORMSDIST, functionType: Dt2.Compatibility, description: `formula.functionList.NORMSDIST.description`, abstract: `formula.functionList.NORMSDIST.abstract`, functionParameter: [{ name: `formula.functionList.NORMSDIST.functionParameter.z.name`, detail: `formula.functionList.NORMSDIST.functionParameter.z.detail`, example: `1.333333`, require: 1, repeat: 0 }] }, { functionName: zl2.NORMSINV, functionType: Dt2.Compatibility, description: `formula.functionList.NORMSINV.description`, abstract: `formula.functionList.NORMSINV.abstract`, functionParameter: [{ name: `formula.functionList.NORMSINV.functionParameter.probability.name`, detail: `formula.functionList.NORMSINV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }] }, { functionName: zl2.PERCENTILE, functionType: Dt2.Compatibility, description: `formula.functionList.PERCENTILE.description`, abstract: `formula.functionList.PERCENTILE.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTILE.functionParameter.array.name`, detail: `formula.functionList.PERCENTILE.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTILE.functionParameter.k.name`, detail: `formula.functionList.PERCENTILE.functionParameter.k.detail`, example: `0.3`, require: 1, repeat: 0 }] }, { functionName: zl2.PERCENTRANK, functionType: Dt2.Compatibility, description: `formula.functionList.PERCENTRANK.description`, abstract: `formula.functionList.PERCENTRANK.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTRANK.functionParameter.array.name`, detail: `formula.functionList.PERCENTRANK.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK.functionParameter.x.name`, detail: `formula.functionList.PERCENTRANK.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK.functionParameter.significance.name`, detail: `formula.functionList.PERCENTRANK.functionParameter.significance.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: zl2.POISSON, functionType: Dt2.Compatibility, description: `formula.functionList.POISSON.description`, abstract: `formula.functionList.POISSON.abstract`, functionParameter: [{ name: `formula.functionList.POISSON.functionParameter.x.name`, detail: `formula.functionList.POISSON.functionParameter.x.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.POISSON.functionParameter.mean.name`, detail: `formula.functionList.POISSON.functionParameter.mean.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.POISSON.functionParameter.cumulative.name`, detail: `formula.functionList.POISSON.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: zl2.QUARTILE, functionType: Dt2.Compatibility, description: `formula.functionList.QUARTILE.description`, abstract: `formula.functionList.QUARTILE.abstract`, functionParameter: [{ name: `formula.functionList.QUARTILE.functionParameter.array.name`, detail: `formula.functionList.QUARTILE.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.QUARTILE.functionParameter.quart.name`, detail: `formula.functionList.QUARTILE.functionParameter.quart.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: zl2.RANK, functionType: Dt2.Compatibility, description: `formula.functionList.RANK.description`, abstract: `formula.functionList.RANK.abstract`, functionParameter: [{ name: `formula.functionList.RANK.functionParameter.number.name`, detail: `formula.functionList.RANK.functionParameter.number.detail`, example: `A3`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK.functionParameter.ref.name`, detail: `formula.functionList.RANK.functionParameter.ref.detail`, example: `A2:A6`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK.functionParameter.order.name`, detail: `formula.functionList.RANK.functionParameter.order.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: zl2.STDEV, functionType: Dt2.Compatibility, description: `formula.functionList.STDEV.description`, abstract: `formula.functionList.STDEV.abstract`, functionParameter: [{ name: `formula.functionList.STDEV.functionParameter.number1.name`, detail: `formula.functionList.STDEV.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEV.functionParameter.number2.name`, detail: `formula.functionList.STDEV.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: zl2.STDEVP, functionType: Dt2.Compatibility, description: `formula.functionList.STDEVP.description`, abstract: `formula.functionList.STDEVP.abstract`, functionParameter: [{ name: `formula.functionList.STDEVP.functionParameter.number1.name`, detail: `formula.functionList.STDEVP.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEVP.functionParameter.number2.name`, detail: `formula.functionList.STDEVP.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: zl2.TDIST, functionType: Dt2.Compatibility, description: `formula.functionList.TDIST.description`, abstract: `formula.functionList.TDIST.abstract`, functionParameter: [{ name: `formula.functionList.TDIST.functionParameter.x.name`, detail: `formula.functionList.TDIST.functionParameter.x.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.TDIST.functionParameter.degFreedom.name`, detail: `formula.functionList.TDIST.functionParameter.degFreedom.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.TDIST.functionParameter.tails.name`, detail: `formula.functionList.TDIST.functionParameter.tails.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: zl2.TINV, functionType: Dt2.Compatibility, description: `formula.functionList.TINV.description`, abstract: `formula.functionList.TINV.abstract`, functionParameter: [{ name: `formula.functionList.TINV.functionParameter.probability.name`, detail: `formula.functionList.TINV.functionParameter.probability.detail`, example: `0.75`, require: 1, repeat: 0 }, { name: `formula.functionList.TINV.functionParameter.degFreedom.name`, detail: `formula.functionList.TINV.functionParameter.degFreedom.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: zl2.TTEST, functionType: Dt2.Compatibility, description: `formula.functionList.TTEST.description`, abstract: `formula.functionList.TTEST.abstract`, functionParameter: [{ name: `formula.functionList.TTEST.functionParameter.array1.name`, detail: `formula.functionList.TTEST.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.TTEST.functionParameter.array2.name`, detail: `formula.functionList.TTEST.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }, { name: `formula.functionList.TTEST.functionParameter.tails.name`, detail: `formula.functionList.TTEST.functionParameter.tails.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.TTEST.functionParameter.type.name`, detail: `formula.functionList.TTEST.functionParameter.type.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: zl2.VAR, functionType: Dt2.Compatibility, description: `formula.functionList.VAR.description`, abstract: `formula.functionList.VAR.abstract`, functionParameter: [{ name: `formula.functionList.VAR.functionParameter.number1.name`, detail: `formula.functionList.VAR.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VAR.functionParameter.number2.name`, detail: `formula.functionList.VAR.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: zl2.VARP, functionType: Dt2.Compatibility, description: `formula.functionList.VARP.description`, abstract: `formula.functionList.VARP.abstract`, functionParameter: [{ name: `formula.functionList.VARP.functionParameter.number1.name`, detail: `formula.functionList.VARP.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VARP.functionParameter.number2.name`, detail: `formula.functionList.VARP.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: zl2.WEIBULL, functionType: Dt2.Compatibility, description: `formula.functionList.WEIBULL.description`, abstract: `formula.functionList.WEIBULL.abstract`, functionParameter: [{ name: `formula.functionList.WEIBULL.functionParameter.x.name`, detail: `formula.functionList.WEIBULL.functionParameter.x.detail`, example: `105`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL.functionParameter.alpha.name`, detail: `formula.functionList.WEIBULL.functionParameter.alpha.detail`, example: `20`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL.functionParameter.beta.name`, detail: `formula.functionList.WEIBULL.functionParameter.beta.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL.functionParameter.cumulative.name`, detail: `formula.functionList.WEIBULL.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: zl2.ZTEST, functionType: Dt2.Compatibility, description: `formula.functionList.ZTEST.description`, abstract: `formula.functionList.ZTEST.abstract`, functionParameter: [{ name: `formula.functionList.ZTEST.functionParameter.array.name`, detail: `formula.functionList.ZTEST.functionParameter.array.detail`, example: `A2:A11`, require: 1, repeat: 0 }, { name: `formula.functionList.ZTEST.functionParameter.x.name`, detail: `formula.functionList.ZTEST.functionParameter.x.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.ZTEST.functionParameter.sigma.name`, detail: `formula.functionList.ZTEST.functionParameter.sigma.detail`, example: `10`, require: 0, repeat: 0 }] }]; var ri4 = [{ functionName: Jl2.CUBEKPIMEMBER, functionType: Dt2.Cube, description: `formula.functionList.CUBEKPIMEMBER.description`, abstract: `formula.functionList.CUBEKPIMEMBER.abstract`, functionParameter: [{ name: `formula.functionList.CUBEKPIMEMBER.functionParameter.number1.name`, detail: `formula.functionList.CUBEKPIMEMBER.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBEKPIMEMBER.functionParameter.number2.name`, detail: `formula.functionList.CUBEKPIMEMBER.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBEMEMBER, functionType: Dt2.Cube, description: `formula.functionList.CUBEMEMBER.description`, abstract: `formula.functionList.CUBEMEMBER.abstract`, functionParameter: [{ name: `formula.functionList.CUBEMEMBER.functionParameter.number1.name`, detail: `formula.functionList.CUBEMEMBER.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBEMEMBER.functionParameter.number2.name`, detail: `formula.functionList.CUBEMEMBER.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBEMEMBERPROPERTY, functionType: Dt2.Cube, description: `formula.functionList.CUBEMEMBERPROPERTY.description`, abstract: `formula.functionList.CUBEMEMBERPROPERTY.abstract`, functionParameter: [{ name: `formula.functionList.CUBEMEMBERPROPERTY.functionParameter.number1.name`, detail: `formula.functionList.CUBEMEMBERPROPERTY.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBEMEMBERPROPERTY.functionParameter.number2.name`, detail: `formula.functionList.CUBEMEMBERPROPERTY.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBERANKEDMEMBER, functionType: Dt2.Cube, description: `formula.functionList.CUBERANKEDMEMBER.description`, abstract: `formula.functionList.CUBERANKEDMEMBER.abstract`, functionParameter: [{ name: `formula.functionList.CUBERANKEDMEMBER.functionParameter.number1.name`, detail: `formula.functionList.CUBERANKEDMEMBER.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBERANKEDMEMBER.functionParameter.number2.name`, detail: `formula.functionList.CUBERANKEDMEMBER.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBESET, functionType: Dt2.Cube, description: `formula.functionList.CUBESET.description`, abstract: `formula.functionList.CUBESET.abstract`, functionParameter: [{ name: `formula.functionList.CUBESET.functionParameter.number1.name`, detail: `formula.functionList.CUBESET.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBESET.functionParameter.number2.name`, detail: `formula.functionList.CUBESET.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBESETCOUNT, functionType: Dt2.Cube, description: `formula.functionList.CUBESETCOUNT.description`, abstract: `formula.functionList.CUBESETCOUNT.abstract`, functionParameter: [{ name: `formula.functionList.CUBESETCOUNT.functionParameter.number1.name`, detail: `formula.functionList.CUBESETCOUNT.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBESETCOUNT.functionParameter.number2.name`, detail: `formula.functionList.CUBESETCOUNT.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: Jl2.CUBEVALUE, functionType: Dt2.Cube, description: `formula.functionList.CUBEVALUE.description`, abstract: `formula.functionList.CUBEVALUE.abstract`, functionParameter: [{ name: `formula.functionList.CUBEVALUE.functionParameter.number1.name`, detail: `formula.functionList.CUBEVALUE.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CUBEVALUE.functionParameter.number2.name`, detail: `formula.functionList.CUBEVALUE.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }]; var ii3 = [{ functionName: pu.DAVERAGE, functionType: Dt2.Database, description: `formula.functionList.DAVERAGE.description`, abstract: `formula.functionList.DAVERAGE.abstract`, functionParameter: [{ name: `formula.functionList.DAVERAGE.functionParameter.database.name`, detail: `formula.functionList.DAVERAGE.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DAVERAGE.functionParameter.field.name`, detail: `formula.functionList.DAVERAGE.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DAVERAGE.functionParameter.criteria.name`, detail: `formula.functionList.DAVERAGE.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DCOUNT, functionType: Dt2.Database, description: `formula.functionList.DCOUNT.description`, abstract: `formula.functionList.DCOUNT.abstract`, functionParameter: [{ name: `formula.functionList.DCOUNT.functionParameter.database.name`, detail: `formula.functionList.DCOUNT.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DCOUNT.functionParameter.field.name`, detail: `formula.functionList.DCOUNT.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DCOUNT.functionParameter.criteria.name`, detail: `formula.functionList.DCOUNT.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DCOUNTA, functionType: Dt2.Database, description: `formula.functionList.DCOUNTA.description`, abstract: `formula.functionList.DCOUNTA.abstract`, functionParameter: [{ name: `formula.functionList.DCOUNTA.functionParameter.database.name`, detail: `formula.functionList.DCOUNTA.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DCOUNTA.functionParameter.field.name`, detail: `formula.functionList.DCOUNTA.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DCOUNTA.functionParameter.criteria.name`, detail: `formula.functionList.DCOUNTA.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DGET, functionType: Dt2.Database, description: `formula.functionList.DGET.description`, abstract: `formula.functionList.DGET.abstract`, functionParameter: [{ name: `formula.functionList.DGET.functionParameter.database.name`, detail: `formula.functionList.DGET.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DGET.functionParameter.field.name`, detail: `formula.functionList.DGET.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DGET.functionParameter.criteria.name`, detail: `formula.functionList.DGET.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DMAX, functionType: Dt2.Database, description: `formula.functionList.DMAX.description`, abstract: `formula.functionList.DMAX.abstract`, functionParameter: [{ name: `formula.functionList.DMAX.functionParameter.database.name`, detail: `formula.functionList.DMAX.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DMAX.functionParameter.field.name`, detail: `formula.functionList.DMAX.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DMAX.functionParameter.criteria.name`, detail: `formula.functionList.DMAX.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DMIN, functionType: Dt2.Database, description: `formula.functionList.DMIN.description`, abstract: `formula.functionList.DMIN.abstract`, functionParameter: [{ name: `formula.functionList.DMIN.functionParameter.database.name`, detail: `formula.functionList.DMIN.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DMIN.functionParameter.field.name`, detail: `formula.functionList.DMIN.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DMIN.functionParameter.criteria.name`, detail: `formula.functionList.DMIN.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DPRODUCT, functionType: Dt2.Database, description: `formula.functionList.DPRODUCT.description`, abstract: `formula.functionList.DPRODUCT.abstract`, functionParameter: [{ name: `formula.functionList.DPRODUCT.functionParameter.database.name`, detail: `formula.functionList.DPRODUCT.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DPRODUCT.functionParameter.field.name`, detail: `formula.functionList.DPRODUCT.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DPRODUCT.functionParameter.criteria.name`, detail: `formula.functionList.DPRODUCT.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DSTDEV, functionType: Dt2.Database, description: `formula.functionList.DSTDEV.description`, abstract: `formula.functionList.DSTDEV.abstract`, functionParameter: [{ name: `formula.functionList.DSTDEV.functionParameter.database.name`, detail: `formula.functionList.DSTDEV.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DSTDEV.functionParameter.field.name`, detail: `formula.functionList.DSTDEV.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DSTDEV.functionParameter.criteria.name`, detail: `formula.functionList.DSTDEV.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DSTDEVP, functionType: Dt2.Database, description: `formula.functionList.DSTDEVP.description`, abstract: `formula.functionList.DSTDEVP.abstract`, functionParameter: [{ name: `formula.functionList.DSTDEVP.functionParameter.database.name`, detail: `formula.functionList.DSTDEVP.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DSTDEVP.functionParameter.field.name`, detail: `formula.functionList.DSTDEVP.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DSTDEVP.functionParameter.criteria.name`, detail: `formula.functionList.DSTDEVP.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DSUM, functionType: Dt2.Database, description: `formula.functionList.DSUM.description`, abstract: `formula.functionList.DSUM.abstract`, functionParameter: [{ name: `formula.functionList.DSUM.functionParameter.database.name`, detail: `formula.functionList.DSUM.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DSUM.functionParameter.field.name`, detail: `formula.functionList.DSUM.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DSUM.functionParameter.criteria.name`, detail: `formula.functionList.DSUM.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DVAR, functionType: Dt2.Database, description: `formula.functionList.DVAR.description`, abstract: `formula.functionList.DVAR.abstract`, functionParameter: [{ name: `formula.functionList.DVAR.functionParameter.database.name`, detail: `formula.functionList.DVAR.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DVAR.functionParameter.field.name`, detail: `formula.functionList.DVAR.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DVAR.functionParameter.criteria.name`, detail: `formula.functionList.DVAR.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }, { functionName: pu.DVARP, functionType: Dt2.Database, description: `formula.functionList.DVARP.description`, abstract: `formula.functionList.DVARP.abstract`, functionParameter: [{ name: `formula.functionList.DVARP.functionParameter.database.name`, detail: `formula.functionList.DVARP.functionParameter.database.detail`, example: `A4:E10`, require: 1, repeat: 0 }, { name: `formula.functionList.DVARP.functionParameter.field.name`, detail: `formula.functionList.DVARP.functionParameter.field.detail`, example: `D4`, require: 1, repeat: 0 }, { name: `formula.functionList.DVARP.functionParameter.criteria.name`, detail: `formula.functionList.DVARP.functionParameter.criteria.detail`, example: `A1:B2`, require: 1, repeat: 0 }] }]; var ai4 = [{ functionName: eo2.DATE, functionType: Dt2.Date, description: `formula.functionList.DATE.description`, abstract: `formula.functionList.DATE.abstract`, functionParameter: [{ name: `formula.functionList.DATE.functionParameter.year.name`, detail: `formula.functionList.DATE.functionParameter.year.detail`, example: `2024`, require: 1, repeat: 0 }, { name: `formula.functionList.DATE.functionParameter.month.name`, detail: `formula.functionList.DATE.functionParameter.month.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.DATE.functionParameter.day.name`, detail: `formula.functionList.DATE.functionParameter.day.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: eo2.DATEDIF, functionType: Dt2.Date, description: `formula.functionList.DATEDIF.description`, abstract: `formula.functionList.DATEDIF.abstract`, functionParameter: [{ name: `formula.functionList.DATEDIF.functionParameter.startDate.name`, detail: `formula.functionList.DATEDIF.functionParameter.startDate.detail`, example: `"2001-6-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.DATEDIF.functionParameter.endDate.name`, detail: `formula.functionList.DATEDIF.functionParameter.endDate.detail`, example: `"2002-8-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.DATEDIF.functionParameter.method.name`, detail: `formula.functionList.DATEDIF.functionParameter.method.detail`, example: `"D"`, require: 1, repeat: 0 }] }, { functionName: eo2.DATEVALUE, functionType: Dt2.Date, description: `formula.functionList.DATEVALUE.description`, abstract: `formula.functionList.DATEVALUE.abstract`, functionParameter: [{ name: `formula.functionList.DATEVALUE.functionParameter.dateText.name`, detail: `formula.functionList.DATEVALUE.functionParameter.dateText.detail`, example: `"2024-8-8"`, require: 1, repeat: 0 }] }, { functionName: eo2.DAY, functionType: Dt2.Date, description: `formula.functionList.DAY.description`, abstract: `formula.functionList.DAY.abstract`, functionParameter: [{ name: `formula.functionList.DAY.functionParameter.serialNumber.name`, detail: `formula.functionList.DAY.functionParameter.serialNumber.detail`, example: `"1969-7-20"`, require: 1, repeat: 0 }] }, { functionName: eo2.DAYS, functionType: Dt2.Date, description: `formula.functionList.DAYS.description`, abstract: `formula.functionList.DAYS.abstract`, functionParameter: [{ name: `formula.functionList.DAYS.functionParameter.endDate.name`, detail: `formula.functionList.DAYS.functionParameter.endDate.detail`, example: `"2021-12-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.DAYS.functionParameter.startDate.name`, detail: `formula.functionList.DAYS.functionParameter.startDate.detail`, example: `"2021-1-1"`, require: 1, repeat: 0 }] }, { functionName: eo2.DAYS360, functionType: Dt2.Date, description: `formula.functionList.DAYS360.description`, abstract: `formula.functionList.DAYS360.abstract`, functionParameter: [{ name: `formula.functionList.DAYS360.functionParameter.startDate.name`, detail: `formula.functionList.DAYS360.functionParameter.startDate.detail`, example: `"2021-1-29"`, require: 1, repeat: 0 }, { name: `formula.functionList.DAYS360.functionParameter.endDate.name`, detail: `formula.functionList.DAYS360.functionParameter.endDate.detail`, example: `"2021-3-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.DAYS360.functionParameter.method.name`, detail: `formula.functionList.DAYS360.functionParameter.method.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: eo2.EDATE, functionType: Dt2.Date, description: `formula.functionList.EDATE.description`, abstract: `formula.functionList.EDATE.abstract`, functionParameter: [{ name: `formula.functionList.EDATE.functionParameter.startDate.name`, detail: `formula.functionList.EDATE.functionParameter.startDate.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.EDATE.functionParameter.months.name`, detail: `formula.functionList.EDATE.functionParameter.months.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: eo2.EOMONTH, functionType: Dt2.Date, description: `formula.functionList.EOMONTH.description`, abstract: `formula.functionList.EOMONTH.abstract`, functionParameter: [{ name: `formula.functionList.EOMONTH.functionParameter.startDate.name`, detail: `formula.functionList.EOMONTH.functionParameter.startDate.detail`, example: `"2011-1-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.EOMONTH.functionParameter.months.name`, detail: `formula.functionList.EOMONTH.functionParameter.months.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: eo2.EPOCHTODATE, functionType: Dt2.Date, description: `formula.functionList.EPOCHTODATE.description`, abstract: `formula.functionList.EPOCHTODATE.abstract`, functionParameter: [{ name: `formula.functionList.EPOCHTODATE.functionParameter.timestamp.name`, detail: `formula.functionList.EPOCHTODATE.functionParameter.timestamp.detail`, example: `1655906710`, require: 1, repeat: 0 }, { name: `formula.functionList.EPOCHTODATE.functionParameter.unit.name`, detail: `formula.functionList.EPOCHTODATE.functionParameter.unit.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: eo2.HOUR, functionType: Dt2.Date, description: `formula.functionList.HOUR.description`, abstract: `formula.functionList.HOUR.abstract`, functionParameter: [{ name: `formula.functionList.HOUR.functionParameter.serialNumber.name`, detail: `formula.functionList.HOUR.functionParameter.serialNumber.detail`, example: `"2011-7-18 7:45"`, require: 1, repeat: 0 }] }, { functionName: eo2.ISOWEEKNUM, functionType: Dt2.Date, description: `formula.functionList.ISOWEEKNUM.description`, abstract: `formula.functionList.ISOWEEKNUM.abstract`, functionParameter: [{ name: `formula.functionList.ISOWEEKNUM.functionParameter.date.name`, detail: `formula.functionList.ISOWEEKNUM.functionParameter.date.detail`, example: `"2012-3-9"`, require: 1, repeat: 0 }] }, { functionName: eo2.MINUTE, functionType: Dt2.Date, description: `formula.functionList.MINUTE.description`, abstract: `formula.functionList.MINUTE.abstract`, functionParameter: [{ name: `formula.functionList.MINUTE.functionParameter.serialNumber.name`, detail: `formula.functionList.MINUTE.functionParameter.serialNumber.detail`, example: `"12:45"`, require: 1, repeat: 0 }] }, { functionName: eo2.MONTH, functionType: Dt2.Date, description: `formula.functionList.MONTH.description`, abstract: `formula.functionList.MONTH.abstract`, functionParameter: [{ name: `formula.functionList.MONTH.functionParameter.serialNumber.name`, detail: `formula.functionList.MONTH.functionParameter.serialNumber.detail`, example: `"1969-7-20"`, require: 1, repeat: 0 }] }, { functionName: eo2.NETWORKDAYS, functionType: Dt2.Date, description: `formula.functionList.NETWORKDAYS.description`, abstract: `formula.functionList.NETWORKDAYS.abstract`, functionParameter: [{ name: `formula.functionList.NETWORKDAYS.functionParameter.startDate.name`, detail: `formula.functionList.NETWORKDAYS.functionParameter.startDate.detail`, example: `"2012-10-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.NETWORKDAYS.functionParameter.endDate.name`, detail: `formula.functionList.NETWORKDAYS.functionParameter.endDate.detail`, example: `"2013-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.NETWORKDAYS.functionParameter.holidays.name`, detail: `formula.functionList.NETWORKDAYS.functionParameter.holidays.detail`, example: `"2012-11-22"`, require: 0, repeat: 0 }] }, { functionName: eo2.NETWORKDAYS_INTL, functionType: Dt2.Date, description: `formula.functionList.NETWORKDAYS_INTL.description`, abstract: `formula.functionList.NETWORKDAYS_INTL.abstract`, functionParameter: [{ name: `formula.functionList.NETWORKDAYS_INTL.functionParameter.startDate.name`, detail: `formula.functionList.NETWORKDAYS_INTL.functionParameter.startDate.detail`, example: `"2012-10-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.NETWORKDAYS_INTL.functionParameter.endDate.name`, detail: `formula.functionList.NETWORKDAYS_INTL.functionParameter.endDate.detail`, example: `"2013-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.NETWORKDAYS_INTL.functionParameter.weekend.name`, detail: `formula.functionList.NETWORKDAYS_INTL.functionParameter.weekend.detail`, example: `6`, require: 0, repeat: 0 }, { name: `formula.functionList.NETWORKDAYS_INTL.functionParameter.holidays.name`, detail: `formula.functionList.NETWORKDAYS_INTL.functionParameter.holidays.detail`, example: `"2012-11-22"`, require: 0, repeat: 0 }] }, { functionName: eo2.NOW, functionType: Dt2.Date, description: `formula.functionList.NOW.description`, abstract: `formula.functionList.NOW.abstract`, functionParameter: [] }, { functionName: eo2.SECOND, functionType: Dt2.Date, description: `formula.functionList.SECOND.description`, abstract: `formula.functionList.SECOND.abstract`, functionParameter: [{ name: `formula.functionList.SECOND.functionParameter.serialNumber.name`, detail: `formula.functionList.SECOND.functionParameter.serialNumber.detail`, example: `"4:48:18"`, require: 1, repeat: 0 }] }, { functionName: eo2.TIME, functionType: Dt2.Date, description: `formula.functionList.TIME.description`, abstract: `formula.functionList.TIME.abstract`, functionParameter: [{ name: `formula.functionList.TIME.functionParameter.hour.name`, detail: `formula.functionList.TIME.functionParameter.hour.detail`, example: `15`, require: 1, repeat: 0 }, { name: `formula.functionList.TIME.functionParameter.minute.name`, detail: `formula.functionList.TIME.functionParameter.minute.detail`, example: `20`, require: 1, repeat: 0 }, { name: `formula.functionList.TIME.functionParameter.second.name`, detail: `formula.functionList.TIME.functionParameter.second.detail`, example: `59`, require: 1, repeat: 0 }] }, { functionName: eo2.TIMEVALUE, functionType: Dt2.Date, description: `formula.functionList.TIMEVALUE.description`, abstract: `formula.functionList.TIMEVALUE.abstract`, functionParameter: [{ name: `formula.functionList.TIMEVALUE.functionParameter.timeText.name`, detail: `formula.functionList.TIMEVALUE.functionParameter.timeText.detail`, example: `"15:20:59"`, require: 1, repeat: 0 }] }, { functionName: eo2.TO_DATE, functionType: Dt2.Date, description: `formula.functionList.TO_DATE.description`, abstract: `formula.functionList.TO_DATE.abstract`, functionParameter: [{ name: `formula.functionList.TO_DATE.functionParameter.value.name`, detail: `formula.functionList.TO_DATE.functionParameter.value.detail`, example: `40826.4375`, require: 1, repeat: 0 }] }, { functionName: eo2.TODAY, functionType: Dt2.Date, description: `formula.functionList.TODAY.description`, abstract: `formula.functionList.TODAY.abstract`, functionParameter: [] }, { functionName: eo2.WEEKDAY, functionType: Dt2.Date, description: `formula.functionList.WEEKDAY.description`, abstract: `formula.functionList.WEEKDAY.abstract`, functionParameter: [{ name: `formula.functionList.WEEKDAY.functionParameter.serialNumber.name`, detail: `formula.functionList.WEEKDAY.functionParameter.serialNumber.detail`, example: `"2008-2-14"`, require: 1, repeat: 0 }, { name: `formula.functionList.WEEKDAY.functionParameter.returnType.name`, detail: `formula.functionList.WEEKDAY.functionParameter.returnType.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: eo2.WEEKNUM, functionType: Dt2.Date, description: `formula.functionList.WEEKNUM.description`, abstract: `formula.functionList.WEEKNUM.abstract`, functionParameter: [{ name: `formula.functionList.WEEKNUM.functionParameter.serialNumber.name`, detail: `formula.functionList.WEEKNUM.functionParameter.serialNumber.detail`, example: `"2012-3-9"`, require: 1, repeat: 0 }, { name: `formula.functionList.WEEKNUM.functionParameter.returnType.name`, detail: `formula.functionList.WEEKNUM.functionParameter.returnType.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: eo2.WORKDAY, functionType: Dt2.Date, description: `formula.functionList.WORKDAY.description`, abstract: `formula.functionList.WORKDAY.abstract`, functionParameter: [{ name: `formula.functionList.WORKDAY.functionParameter.startDate.name`, detail: `formula.functionList.WORKDAY.functionParameter.startDate.detail`, example: `"2008-10-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.WORKDAY.functionParameter.days.name`, detail: `formula.functionList.WORKDAY.functionParameter.days.detail`, example: `151`, require: 1, repeat: 0 }, { name: `formula.functionList.WORKDAY.functionParameter.holidays.name`, detail: `formula.functionList.WORKDAY.functionParameter.holidays.detail`, example: `"2008-11-26"`, require: 0, repeat: 0 }] }, { functionName: eo2.WORKDAY_INTL, functionType: Dt2.Date, description: `formula.functionList.WORKDAY_INTL.description`, abstract: `formula.functionList.WORKDAY_INTL.abstract`, functionParameter: [{ name: `formula.functionList.WORKDAY_INTL.functionParameter.startDate.name`, detail: `formula.functionList.WORKDAY_INTL.functionParameter.startDate.detail`, example: `"2008-10-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.WORKDAY_INTL.functionParameter.days.name`, detail: `formula.functionList.WORKDAY_INTL.functionParameter.days.detail`, example: `151`, require: 1, repeat: 0 }, { name: `formula.functionList.WORKDAY_INTL.functionParameter.weekend.name`, detail: `formula.functionList.WORKDAY_INTL.functionParameter.weekend.detail`, example: `6`, require: 0, repeat: 0 }, { name: `formula.functionList.WORKDAY_INTL.functionParameter.holidays.name`, detail: `formula.functionList.WORKDAY_INTL.functionParameter.holidays.detail`, example: `"2008-11-26"`, require: 0, repeat: 0 }] }, { functionName: eo2.YEAR, functionType: Dt2.Date, description: `formula.functionList.YEAR.description`, abstract: `formula.functionList.YEAR.abstract`, functionParameter: [{ name: `formula.functionList.YEAR.functionParameter.serialNumber.name`, detail: `formula.functionList.YEAR.functionParameter.serialNumber.detail`, example: `"1969-7-20"`, require: 1, repeat: 0 }] }, { functionName: eo2.YEARFRAC, functionType: Dt2.Date, description: `formula.functionList.YEARFRAC.description`, abstract: `formula.functionList.YEARFRAC.abstract`, functionParameter: [{ name: `formula.functionList.YEARFRAC.functionParameter.startDate.name`, detail: `formula.functionList.YEARFRAC.functionParameter.startDate.detail`, example: `"2012-1-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.YEARFRAC.functionParameter.endDate.name`, detail: `formula.functionList.YEARFRAC.functionParameter.endDate.detail`, example: `"2012-7-30"`, require: 1, repeat: 0 }, { name: `formula.functionList.YEARFRAC.functionParameter.basis.name`, detail: `formula.functionList.YEARFRAC.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }]; var oi4 = [{ functionName: U3.BESSELI, functionType: Dt2.Engineering, description: `formula.functionList.BESSELI.description`, abstract: `formula.functionList.BESSELI.abstract`, functionParameter: [{ name: `formula.functionList.BESSELI.functionParameter.x.name`, detail: `formula.functionList.BESSELI.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BESSELI.functionParameter.n.name`, detail: `formula.functionList.BESSELI.functionParameter.n.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.BESSELJ, functionType: Dt2.Engineering, description: `formula.functionList.BESSELJ.description`, abstract: `formula.functionList.BESSELJ.abstract`, functionParameter: [{ name: `formula.functionList.BESSELJ.functionParameter.x.name`, detail: `formula.functionList.BESSELJ.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BESSELJ.functionParameter.n.name`, detail: `formula.functionList.BESSELJ.functionParameter.n.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.BESSELK, functionType: Dt2.Engineering, description: `formula.functionList.BESSELK.description`, abstract: `formula.functionList.BESSELK.abstract`, functionParameter: [{ name: `formula.functionList.BESSELK.functionParameter.x.name`, detail: `formula.functionList.BESSELK.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BESSELK.functionParameter.n.name`, detail: `formula.functionList.BESSELK.functionParameter.n.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.BESSELY, functionType: Dt2.Engineering, description: `formula.functionList.BESSELY.description`, abstract: `formula.functionList.BESSELY.abstract`, functionParameter: [{ name: `formula.functionList.BESSELY.functionParameter.x.name`, detail: `formula.functionList.BESSELY.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BESSELY.functionParameter.n.name`, detail: `formula.functionList.BESSELY.functionParameter.n.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.BIN2DEC, functionType: Dt2.Engineering, description: `formula.functionList.BIN2DEC.description`, abstract: `formula.functionList.BIN2DEC.abstract`, functionParameter: [{ name: `formula.functionList.BIN2DEC.functionParameter.number.name`, detail: `formula.functionList.BIN2DEC.functionParameter.number.detail`, example: `1100100`, require: 1, repeat: 0 }] }, { functionName: U3.BIN2HEX, functionType: Dt2.Engineering, description: `formula.functionList.BIN2HEX.description`, abstract: `formula.functionList.BIN2HEX.abstract`, functionParameter: [{ name: `formula.functionList.BIN2HEX.functionParameter.number.name`, detail: `formula.functionList.BIN2HEX.functionParameter.number.detail`, example: `11111011`, require: 1, repeat: 0 }, { name: `formula.functionList.BIN2HEX.functionParameter.places.name`, detail: `formula.functionList.BIN2HEX.functionParameter.places.detail`, example: `4`, require: 0, repeat: 0 }] }, { functionName: U3.BIN2OCT, functionType: Dt2.Engineering, description: `formula.functionList.BIN2OCT.description`, abstract: `formula.functionList.BIN2OCT.abstract`, functionParameter: [{ name: `formula.functionList.BIN2OCT.functionParameter.number.name`, detail: `formula.functionList.BIN2OCT.functionParameter.number.detail`, example: `1001`, require: 1, repeat: 0 }, { name: `formula.functionList.BIN2OCT.functionParameter.places.name`, detail: `formula.functionList.BIN2OCT.functionParameter.places.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: U3.BITAND, functionType: Dt2.Engineering, description: `formula.functionList.BITAND.description`, abstract: `formula.functionList.BITAND.abstract`, functionParameter: [{ name: `formula.functionList.BITAND.functionParameter.number1.name`, detail: `formula.functionList.BITAND.functionParameter.number1.detail`, example: `13`, require: 1, repeat: 0 }, { name: `formula.functionList.BITAND.functionParameter.number2.name`, detail: `formula.functionList.BITAND.functionParameter.number2.detail`, example: `25`, require: 1, repeat: 0 }] }, { functionName: U3.BITLSHIFT, functionType: Dt2.Engineering, description: `formula.functionList.BITLSHIFT.description`, abstract: `formula.functionList.BITLSHIFT.abstract`, functionParameter: [{ name: `formula.functionList.BITLSHIFT.functionParameter.number.name`, detail: `formula.functionList.BITLSHIFT.functionParameter.number.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.BITLSHIFT.functionParameter.shiftAmount.name`, detail: `formula.functionList.BITLSHIFT.functionParameter.shiftAmount.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: U3.BITOR, functionType: Dt2.Engineering, description: `formula.functionList.BITOR.description`, abstract: `formula.functionList.BITOR.abstract`, functionParameter: [{ name: `formula.functionList.BITOR.functionParameter.number1.name`, detail: `formula.functionList.BITOR.functionParameter.number1.detail`, example: `23`, require: 1, repeat: 0 }, { name: `formula.functionList.BITOR.functionParameter.number2.name`, detail: `formula.functionList.BITOR.functionParameter.number2.detail`, example: `10`, require: 1, repeat: 0 }] }, { functionName: U3.BITRSHIFT, functionType: Dt2.Engineering, description: `formula.functionList.BITRSHIFT.description`, abstract: `formula.functionList.BITRSHIFT.abstract`, functionParameter: [{ name: `formula.functionList.BITRSHIFT.functionParameter.number.name`, detail: `formula.functionList.BITRSHIFT.functionParameter.number.detail`, example: `13`, require: 1, repeat: 0 }, { name: `formula.functionList.BITRSHIFT.functionParameter.shiftAmount.name`, detail: `formula.functionList.BITRSHIFT.functionParameter.shiftAmount.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: U3.BITXOR, functionType: Dt2.Engineering, description: `formula.functionList.BITXOR.description`, abstract: `formula.functionList.BITXOR.abstract`, functionParameter: [{ name: `formula.functionList.BITXOR.functionParameter.number1.name`, detail: `formula.functionList.BITXOR.functionParameter.number1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.BITXOR.functionParameter.number2.name`, detail: `formula.functionList.BITXOR.functionParameter.number2.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: U3.COMPLEX, functionType: Dt2.Engineering, description: `formula.functionList.COMPLEX.description`, abstract: `formula.functionList.COMPLEX.abstract`, functionParameter: [{ name: `formula.functionList.COMPLEX.functionParameter.realNum.name`, detail: `formula.functionList.COMPLEX.functionParameter.realNum.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.COMPLEX.functionParameter.iNum.name`, detail: `formula.functionList.COMPLEX.functionParameter.iNum.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.COMPLEX.functionParameter.suffix.name`, detail: `formula.functionList.COMPLEX.functionParameter.suffix.detail`, example: `"i"`, require: 0, repeat: 0 }] }, { functionName: U3.CONVERT, functionType: Dt2.Engineering, description: `formula.functionList.CONVERT.description`, abstract: `formula.functionList.CONVERT.abstract`, functionParameter: [{ name: `formula.functionList.CONVERT.functionParameter.number.name`, detail: `formula.functionList.CONVERT.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.CONVERT.functionParameter.fromUnit.name`, detail: `formula.functionList.CONVERT.functionParameter.fromUnit.detail`, example: `"lbm"`, require: 1, repeat: 0 }, { name: `formula.functionList.CONVERT.functionParameter.toUnit.name`, detail: `formula.functionList.CONVERT.functionParameter.toUnit.detail`, example: `"kg"`, require: 1, repeat: 0 }] }, { functionName: U3.DEC2BIN, functionType: Dt2.Engineering, description: `formula.functionList.DEC2BIN.description`, abstract: `formula.functionList.DEC2BIN.abstract`, functionParameter: [{ name: `formula.functionList.DEC2BIN.functionParameter.number.name`, detail: `formula.functionList.DEC2BIN.functionParameter.number.detail`, example: `9`, require: 1, repeat: 0 }, { name: `formula.functionList.DEC2BIN.functionParameter.places.name`, detail: `formula.functionList.DEC2BIN.functionParameter.places.detail`, example: `4`, require: 0, repeat: 0 }] }, { functionName: U3.DEC2HEX, functionType: Dt2.Engineering, description: `formula.functionList.DEC2HEX.description`, abstract: `formula.functionList.DEC2HEX.abstract`, functionParameter: [{ name: `formula.functionList.DEC2HEX.functionParameter.number.name`, detail: `formula.functionList.DEC2HEX.functionParameter.number.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.DEC2HEX.functionParameter.places.name`, detail: `formula.functionList.DEC2HEX.functionParameter.places.detail`, example: `4`, require: 0, repeat: 0 }] }, { functionName: U3.DEC2OCT, functionType: Dt2.Engineering, description: `formula.functionList.DEC2OCT.description`, abstract: `formula.functionList.DEC2OCT.abstract`, functionParameter: [{ name: `formula.functionList.DEC2OCT.functionParameter.number.name`, detail: `formula.functionList.DEC2OCT.functionParameter.number.detail`, example: `58`, require: 1, repeat: 0 }, { name: `formula.functionList.DEC2OCT.functionParameter.places.name`, detail: `formula.functionList.DEC2OCT.functionParameter.places.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: U3.DELTA, functionType: Dt2.Engineering, description: `formula.functionList.DELTA.description`, abstract: `formula.functionList.DELTA.abstract`, functionParameter: [{ name: `formula.functionList.DELTA.functionParameter.number1.name`, detail: `formula.functionList.DELTA.functionParameter.number1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.DELTA.functionParameter.number2.name`, detail: `formula.functionList.DELTA.functionParameter.number2.detail`, example: `4`, require: 0, repeat: 0 }] }, { functionName: U3.ERF, functionType: Dt2.Engineering, description: `formula.functionList.ERF.description`, abstract: `formula.functionList.ERF.abstract`, functionParameter: [{ name: `formula.functionList.ERF.functionParameter.lowerLimit.name`, detail: `formula.functionList.ERF.functionParameter.lowerLimit.detail`, example: `0.745`, require: 1, repeat: 0 }, { name: `formula.functionList.ERF.functionParameter.upperLimit.name`, detail: `formula.functionList.ERF.functionParameter.upperLimit.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: U3.ERF_PRECISE, functionType: Dt2.Engineering, description: `formula.functionList.ERF_PRECISE.description`, abstract: `formula.functionList.ERF_PRECISE.abstract`, functionParameter: [{ name: `formula.functionList.ERF_PRECISE.functionParameter.x.name`, detail: `formula.functionList.ERF_PRECISE.functionParameter.x.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.ERFC, functionType: Dt2.Engineering, description: `formula.functionList.ERFC.description`, abstract: `formula.functionList.ERFC.abstract`, functionParameter: [{ name: `formula.functionList.ERFC.functionParameter.x.name`, detail: `formula.functionList.ERFC.functionParameter.x.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.ERFC_PRECISE, functionType: Dt2.Engineering, description: `formula.functionList.ERFC_PRECISE.description`, abstract: `formula.functionList.ERFC_PRECISE.abstract`, functionParameter: [{ name: `formula.functionList.ERFC_PRECISE.functionParameter.x.name`, detail: `formula.functionList.ERFC_PRECISE.functionParameter.x.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: U3.GESTEP, functionType: Dt2.Engineering, description: `formula.functionList.GESTEP.description`, abstract: `formula.functionList.GESTEP.abstract`, functionParameter: [{ name: `formula.functionList.GESTEP.functionParameter.number.name`, detail: `formula.functionList.GESTEP.functionParameter.number.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.GESTEP.functionParameter.step.name`, detail: `formula.functionList.GESTEP.functionParameter.step.detail`, example: `4`, require: 0, repeat: 0 }] }, { functionName: U3.HEX2BIN, functionType: Dt2.Engineering, description: `formula.functionList.HEX2BIN.description`, abstract: `formula.functionList.HEX2BIN.abstract`, functionParameter: [{ name: `formula.functionList.HEX2BIN.functionParameter.number.name`, detail: `formula.functionList.HEX2BIN.functionParameter.number.detail`, example: `"F"`, require: 1, repeat: 0 }, { name: `formula.functionList.HEX2BIN.functionParameter.places.name`, detail: `formula.functionList.HEX2BIN.functionParameter.places.detail`, example: `8`, require: 0, repeat: 0 }] }, { functionName: U3.HEX2DEC, functionType: Dt2.Engineering, description: `formula.functionList.HEX2DEC.description`, abstract: `formula.functionList.HEX2DEC.abstract`, functionParameter: [{ name: `formula.functionList.HEX2DEC.functionParameter.number.name`, detail: `formula.functionList.HEX2DEC.functionParameter.number.detail`, example: `"A5"`, require: 1, repeat: 0 }] }, { functionName: U3.HEX2OCT, functionType: Dt2.Engineering, description: `formula.functionList.HEX2OCT.description`, abstract: `formula.functionList.HEX2OCT.abstract`, functionParameter: [{ name: `formula.functionList.HEX2OCT.functionParameter.number.name`, detail: `formula.functionList.HEX2OCT.functionParameter.number.detail`, example: `"F"`, require: 1, repeat: 0 }, { name: `formula.functionList.HEX2OCT.functionParameter.places.name`, detail: `formula.functionList.HEX2OCT.functionParameter.places.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: U3.IMABS, functionType: Dt2.Engineering, description: `formula.functionList.IMABS.description`, abstract: `formula.functionList.IMABS.abstract`, functionParameter: [{ name: `formula.functionList.IMABS.functionParameter.inumber.name`, detail: `formula.functionList.IMABS.functionParameter.inumber.detail`, example: `"5+12i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMAGINARY, functionType: Dt2.Engineering, description: `formula.functionList.IMAGINARY.description`, abstract: `formula.functionList.IMAGINARY.abstract`, functionParameter: [{ name: `formula.functionList.IMAGINARY.functionParameter.inumber.name`, detail: `formula.functionList.IMAGINARY.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMARGUMENT, functionType: Dt2.Engineering, description: `formula.functionList.IMARGUMENT.description`, abstract: `formula.functionList.IMARGUMENT.abstract`, functionParameter: [{ name: `formula.functionList.IMARGUMENT.functionParameter.inumber.name`, detail: `formula.functionList.IMARGUMENT.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCONJUGATE, functionType: Dt2.Engineering, description: `formula.functionList.IMCONJUGATE.description`, abstract: `formula.functionList.IMCONJUGATE.abstract`, functionParameter: [{ name: `formula.functionList.IMCONJUGATE.functionParameter.inumber.name`, detail: `formula.functionList.IMCONJUGATE.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCOS, functionType: Dt2.Engineering, description: `formula.functionList.IMCOS.description`, abstract: `formula.functionList.IMCOS.abstract`, functionParameter: [{ name: `formula.functionList.IMCOS.functionParameter.inumber.name`, detail: `formula.functionList.IMCOS.functionParameter.inumber.detail`, example: `"1+i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCOSH, functionType: Dt2.Engineering, description: `formula.functionList.IMCOSH.description`, abstract: `formula.functionList.IMCOSH.abstract`, functionParameter: [{ name: `formula.functionList.IMCOSH.functionParameter.inumber.name`, detail: `formula.functionList.IMCOSH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCOT, functionType: Dt2.Engineering, description: `formula.functionList.IMCOT.description`, abstract: `formula.functionList.IMCOT.abstract`, functionParameter: [{ name: `formula.functionList.IMCOT.functionParameter.inumber.name`, detail: `formula.functionList.IMCOT.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCOTH, functionType: Dt2.Engineering, description: `formula.functionList.IMCOTH.description`, abstract: `formula.functionList.IMCOTH.abstract`, functionParameter: [{ name: `formula.functionList.IMCOTH.functionParameter.inumber.name`, detail: `formula.functionList.IMCOTH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCSC, functionType: Dt2.Engineering, description: `formula.functionList.IMCSC.description`, abstract: `formula.functionList.IMCSC.abstract`, functionParameter: [{ name: `formula.functionList.IMCSC.functionParameter.inumber.name`, detail: `formula.functionList.IMCSC.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMCSCH, functionType: Dt2.Engineering, description: `formula.functionList.IMCSCH.description`, abstract: `formula.functionList.IMCSCH.abstract`, functionParameter: [{ name: `formula.functionList.IMCSCH.functionParameter.inumber.name`, detail: `formula.functionList.IMCSCH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMDIV, functionType: Dt2.Engineering, description: `formula.functionList.IMDIV.description`, abstract: `formula.functionList.IMDIV.abstract`, functionParameter: [{ name: `formula.functionList.IMDIV.functionParameter.inumber1.name`, detail: `formula.functionList.IMDIV.functionParameter.inumber1.detail`, example: `"-238+240i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMDIV.functionParameter.inumber2.name`, detail: `formula.functionList.IMDIV.functionParameter.inumber2.detail`, example: `"10+24i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMEXP, functionType: Dt2.Engineering, description: `formula.functionList.IMEXP.description`, abstract: `formula.functionList.IMEXP.abstract`, functionParameter: [{ name: `formula.functionList.IMEXP.functionParameter.inumber.name`, detail: `formula.functionList.IMEXP.functionParameter.inumber.detail`, example: `"1+i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMLN, functionType: Dt2.Engineering, description: `formula.functionList.IMLN.description`, abstract: `formula.functionList.IMLN.abstract`, functionParameter: [{ name: `formula.functionList.IMLN.functionParameter.inumber.name`, detail: `formula.functionList.IMLN.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMLOG, functionType: Dt2.Engineering, description: `formula.functionList.IMLOG.description`, abstract: `formula.functionList.IMLOG.abstract`, functionParameter: [{ name: `formula.functionList.IMLOG.functionParameter.inumber.name`, detail: `formula.functionList.IMLOG.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMLOG.functionParameter.base.name`, detail: `formula.functionList.IMLOG.functionParameter.base.detail`, example: `10`, require: 0, repeat: 0 }] }, { functionName: U3.IMLOG10, functionType: Dt2.Engineering, description: `formula.functionList.IMLOG10.description`, abstract: `formula.functionList.IMLOG10.abstract`, functionParameter: [{ name: `formula.functionList.IMLOG10.functionParameter.inumber.name`, detail: `formula.functionList.IMLOG10.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMLOG2, functionType: Dt2.Engineering, description: `formula.functionList.IMLOG2.description`, abstract: `formula.functionList.IMLOG2.abstract`, functionParameter: [{ name: `formula.functionList.IMLOG2.functionParameter.inumber.name`, detail: `formula.functionList.IMLOG2.functionParameter.inumber.detail`, example: `"3+4i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMPOWER, functionType: Dt2.Engineering, description: `formula.functionList.IMPOWER.description`, abstract: `formula.functionList.IMPOWER.abstract`, functionParameter: [{ name: `formula.functionList.IMPOWER.functionParameter.inumber.name`, detail: `formula.functionList.IMPOWER.functionParameter.inumber.detail`, example: `"2+3i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMPOWER.functionParameter.number.name`, detail: `formula.functionList.IMPOWER.functionParameter.number.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: U3.IMPRODUCT, functionType: Dt2.Engineering, description: `formula.functionList.IMPRODUCT.description`, abstract: `formula.functionList.IMPRODUCT.abstract`, functionParameter: [{ name: `formula.functionList.IMPRODUCT.functionParameter.inumber1.name`, detail: `formula.functionList.IMPRODUCT.functionParameter.inumber1.detail`, example: `"3+4i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMPRODUCT.functionParameter.inumber2.name`, detail: `formula.functionList.IMPRODUCT.functionParameter.inumber2.detail`, example: `"5-3i"`, require: 0, repeat: 1 }] }, { functionName: U3.IMREAL, functionType: Dt2.Engineering, description: `formula.functionList.IMREAL.description`, abstract: `formula.functionList.IMREAL.abstract`, functionParameter: [{ name: `formula.functionList.IMREAL.functionParameter.inumber.name`, detail: `formula.functionList.IMREAL.functionParameter.inumber.detail`, example: `"6-9i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSEC, functionType: Dt2.Engineering, description: `formula.functionList.IMSEC.description`, abstract: `formula.functionList.IMSEC.abstract`, functionParameter: [{ name: `formula.functionList.IMSEC.functionParameter.inumber.name`, detail: `formula.functionList.IMSEC.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSECH, functionType: Dt2.Engineering, description: `formula.functionList.IMSECH.description`, abstract: `formula.functionList.IMSECH.abstract`, functionParameter: [{ name: `formula.functionList.IMSECH.functionParameter.inumber.name`, detail: `formula.functionList.IMSECH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSIN, functionType: Dt2.Engineering, description: `formula.functionList.IMSIN.description`, abstract: `formula.functionList.IMSIN.abstract`, functionParameter: [{ name: `formula.functionList.IMSIN.functionParameter.inumber.name`, detail: `formula.functionList.IMSIN.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSINH, functionType: Dt2.Engineering, description: `formula.functionList.IMSINH.description`, abstract: `formula.functionList.IMSINH.abstract`, functionParameter: [{ name: `formula.functionList.IMSINH.functionParameter.inumber.name`, detail: `formula.functionList.IMSINH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSQRT, functionType: Dt2.Engineering, description: `formula.functionList.IMSQRT.description`, abstract: `formula.functionList.IMSQRT.abstract`, functionParameter: [{ name: `formula.functionList.IMSQRT.functionParameter.inumber.name`, detail: `formula.functionList.IMSQRT.functionParameter.inumber.detail`, example: `"1+i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSUB, functionType: Dt2.Engineering, description: `formula.functionList.IMSUB.description`, abstract: `formula.functionList.IMSUB.abstract`, functionParameter: [{ name: `formula.functionList.IMSUB.functionParameter.inumber1.name`, detail: `formula.functionList.IMSUB.functionParameter.inumber1.detail`, example: `"13+4i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMSUB.functionParameter.inumber2.name`, detail: `formula.functionList.IMSUB.functionParameter.inumber2.detail`, example: `"5+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMSUM, functionType: Dt2.Engineering, description: `formula.functionList.IMSUM.description`, abstract: `formula.functionList.IMSUM.abstract`, functionParameter: [{ name: `formula.functionList.IMSUM.functionParameter.inumber1.name`, detail: `formula.functionList.IMSUM.functionParameter.inumber1.detail`, example: `"3+4i"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMSUM.functionParameter.inumber2.name`, detail: `formula.functionList.IMSUM.functionParameter.inumber2.detail`, example: `"5-3i"`, require: 0, repeat: 1 }] }, { functionName: U3.IMTAN, functionType: Dt2.Engineering, description: `formula.functionList.IMTAN.description`, abstract: `formula.functionList.IMTAN.abstract`, functionParameter: [{ name: `formula.functionList.IMTAN.functionParameter.inumber.name`, detail: `formula.functionList.IMTAN.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.IMTANH, functionType: Dt2.Engineering, description: `formula.functionList.IMTANH.description`, abstract: `formula.functionList.IMTANH.abstract`, functionParameter: [{ name: `formula.functionList.IMTANH.functionParameter.inumber.name`, detail: `formula.functionList.IMTANH.functionParameter.inumber.detail`, example: `"4+3i"`, require: 1, repeat: 0 }] }, { functionName: U3.OCT2BIN, functionType: Dt2.Engineering, description: `formula.functionList.OCT2BIN.description`, abstract: `formula.functionList.OCT2BIN.abstract`, functionParameter: [{ name: `formula.functionList.OCT2BIN.functionParameter.number.name`, detail: `formula.functionList.OCT2BIN.functionParameter.number.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.OCT2BIN.functionParameter.places.name`, detail: `formula.functionList.OCT2BIN.functionParameter.places.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: U3.OCT2DEC, functionType: Dt2.Engineering, description: `formula.functionList.OCT2DEC.description`, abstract: `formula.functionList.OCT2DEC.abstract`, functionParameter: [{ name: `formula.functionList.OCT2DEC.functionParameter.number.name`, detail: `formula.functionList.OCT2DEC.functionParameter.number.detail`, example: `54`, require: 1, repeat: 0 }] }, { functionName: U3.OCT2HEX, functionType: Dt2.Engineering, description: `formula.functionList.OCT2HEX.description`, abstract: `formula.functionList.OCT2HEX.abstract`, functionParameter: [{ name: `formula.functionList.OCT2HEX.functionParameter.number.name`, detail: `formula.functionList.OCT2HEX.functionParameter.number.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.OCT2HEX.functionParameter.places.name`, detail: `formula.functionList.OCT2HEX.functionParameter.places.detail`, example: `4`, require: 0, repeat: 0 }] }]; var si4 = [{ functionName: W3.ACCRINT, functionType: Dt2.Financial, description: `formula.functionList.ACCRINT.description`, abstract: `formula.functionList.ACCRINT.abstract`, functionParameter: [{ name: `formula.functionList.ACCRINT.functionParameter.issue.name`, detail: `formula.functionList.ACCRINT.functionParameter.issue.detail`, example: `"2008-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.firstInterest.name`, detail: `formula.functionList.ACCRINT.functionParameter.firstInterest.detail`, example: `"2008-8-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.settlement.name`, detail: `formula.functionList.ACCRINT.functionParameter.settlement.detail`, example: `"2008-5-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.rate.name`, detail: `formula.functionList.ACCRINT.functionParameter.rate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.par.name`, detail: `formula.functionList.ACCRINT.functionParameter.par.detail`, example: `1000`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.frequency.name`, detail: `formula.functionList.ACCRINT.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.basis.name`, detail: `formula.functionList.ACCRINT.functionParameter.basis.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.ACCRINT.functionParameter.calcMethod.name`, detail: `formula.functionList.ACCRINT.functionParameter.calcMethod.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: W3.ACCRINTM, functionType: Dt2.Financial, description: `formula.functionList.ACCRINTM.description`, abstract: `formula.functionList.ACCRINTM.abstract`, functionParameter: [{ name: `formula.functionList.ACCRINTM.functionParameter.issue.name`, detail: `formula.functionList.ACCRINTM.functionParameter.issue.detail`, example: `"2008-4-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINTM.functionParameter.settlement.name`, detail: `formula.functionList.ACCRINTM.functionParameter.settlement.detail`, example: `"2008-6-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINTM.functionParameter.rate.name`, detail: `formula.functionList.ACCRINTM.functionParameter.rate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINTM.functionParameter.par.name`, detail: `formula.functionList.ACCRINTM.functionParameter.par.detail`, example: `1000`, require: 1, repeat: 0 }, { name: `formula.functionList.ACCRINTM.functionParameter.basis.name`, detail: `formula.functionList.ACCRINTM.functionParameter.basis.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: W3.AMORDEGRC, functionType: Dt2.Financial, description: `formula.functionList.AMORDEGRC.description`, abstract: `formula.functionList.AMORDEGRC.abstract`, functionParameter: [{ name: `formula.functionList.AMORDEGRC.functionParameter.number1.name`, detail: `formula.functionList.AMORDEGRC.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORDEGRC.functionParameter.number2.name`, detail: `formula.functionList.AMORDEGRC.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: W3.AMORLINC, functionType: Dt2.Financial, description: `formula.functionList.AMORLINC.description`, abstract: `formula.functionList.AMORLINC.abstract`, functionParameter: [{ name: `formula.functionList.AMORLINC.functionParameter.cost.name`, detail: `formula.functionList.AMORLINC.functionParameter.cost.detail`, example: `2400`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.datePurchased.name`, detail: `formula.functionList.AMORLINC.functionParameter.datePurchased.detail`, example: `"2008-8-19"`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.firstPeriod.name`, detail: `formula.functionList.AMORLINC.functionParameter.firstPeriod.detail`, example: `"2008-12-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.salvage.name`, detail: `formula.functionList.AMORLINC.functionParameter.salvage.detail`, example: `300`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.period.name`, detail: `formula.functionList.AMORLINC.functionParameter.period.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.rate.name`, detail: `formula.functionList.AMORLINC.functionParameter.rate.detail`, example: `15%`, require: 1, repeat: 0 }, { name: `formula.functionList.AMORLINC.functionParameter.basis.name`, detail: `formula.functionList.AMORLINC.functionParameter.basis.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.COUPDAYBS, functionType: Dt2.Financial, description: `formula.functionList.COUPDAYBS.description`, abstract: `formula.functionList.COUPDAYBS.abstract`, functionParameter: [{ name: `formula.functionList.COUPDAYBS.functionParameter.settlement.name`, detail: `formula.functionList.COUPDAYBS.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYBS.functionParameter.maturity.name`, detail: `formula.functionList.COUPDAYBS.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYBS.functionParameter.frequency.name`, detail: `formula.functionList.COUPDAYBS.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYBS.functionParameter.basis.name`, detail: `formula.functionList.COUPDAYBS.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.COUPDAYS, functionType: Dt2.Financial, description: `formula.functionList.COUPDAYS.description`, abstract: `formula.functionList.COUPDAYS.abstract`, functionParameter: [{ name: `formula.functionList.COUPDAYS.functionParameter.settlement.name`, detail: `formula.functionList.COUPDAYS.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYS.functionParameter.maturity.name`, detail: `formula.functionList.COUPDAYS.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYS.functionParameter.frequency.name`, detail: `formula.functionList.COUPDAYS.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYS.functionParameter.basis.name`, detail: `formula.functionList.COUPDAYS.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.COUPDAYSNC, functionType: Dt2.Financial, description: `formula.functionList.COUPDAYSNC.description`, abstract: `formula.functionList.COUPDAYSNC.abstract`, functionParameter: [{ name: `formula.functionList.COUPDAYSNC.functionParameter.settlement.name`, detail: `formula.functionList.COUPDAYSNC.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYSNC.functionParameter.maturity.name`, detail: `formula.functionList.COUPDAYSNC.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYSNC.functionParameter.frequency.name`, detail: `formula.functionList.COUPDAYSNC.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPDAYSNC.functionParameter.basis.name`, detail: `formula.functionList.COUPDAYSNC.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.COUPNCD, functionType: Dt2.Financial, description: `formula.functionList.COUPNCD.description`, abstract: `formula.functionList.COUPNCD.abstract`, functionParameter: [{ name: `formula.functionList.COUPNCD.functionParameter.settlement.name`, detail: `formula.functionList.COUPNCD.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNCD.functionParameter.maturity.name`, detail: `formula.functionList.COUPNCD.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNCD.functionParameter.frequency.name`, detail: `formula.functionList.COUPNCD.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNCD.functionParameter.basis.name`, detail: `formula.functionList.COUPNCD.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.COUPNUM, functionType: Dt2.Financial, description: `formula.functionList.COUPNUM.description`, abstract: `formula.functionList.COUPNUM.abstract`, functionParameter: [{ name: `formula.functionList.COUPNUM.functionParameter.settlement.name`, detail: `formula.functionList.COUPNUM.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNUM.functionParameter.maturity.name`, detail: `formula.functionList.COUPNUM.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNUM.functionParameter.frequency.name`, detail: `formula.functionList.COUPNUM.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPNUM.functionParameter.basis.name`, detail: `formula.functionList.COUPNUM.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.COUPPCD, functionType: Dt2.Financial, description: `formula.functionList.COUPPCD.description`, abstract: `formula.functionList.COUPPCD.abstract`, functionParameter: [{ name: `formula.functionList.COUPPCD.functionParameter.settlement.name`, detail: `formula.functionList.COUPPCD.functionParameter.settlement.detail`, example: `"2011-1-25"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPPCD.functionParameter.maturity.name`, detail: `formula.functionList.COUPPCD.functionParameter.maturity.detail`, example: `"2011-11-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPPCD.functionParameter.frequency.name`, detail: `formula.functionList.COUPPCD.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.COUPPCD.functionParameter.basis.name`, detail: `formula.functionList.COUPPCD.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.CUMIPMT, functionType: Dt2.Financial, description: `formula.functionList.CUMIPMT.description`, abstract: `formula.functionList.CUMIPMT.abstract`, functionParameter: [{ name: `formula.functionList.CUMIPMT.functionParameter.rate.name`, detail: `formula.functionList.CUMIPMT.functionParameter.rate.detail`, example: `9%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMIPMT.functionParameter.nper.name`, detail: `formula.functionList.CUMIPMT.functionParameter.nper.detail`, example: `30*12`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMIPMT.functionParameter.pv.name`, detail: `formula.functionList.CUMIPMT.functionParameter.pv.detail`, example: `125000`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMIPMT.functionParameter.startPeriod.name`, detail: `formula.functionList.CUMIPMT.functionParameter.startPeriod.detail`, example: `13`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMIPMT.functionParameter.endPeriod.name`, detail: `formula.functionList.CUMIPMT.functionParameter.endPeriod.detail`, example: `24`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMIPMT.functionParameter.type.name`, detail: `formula.functionList.CUMIPMT.functionParameter.type.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: W3.CUMPRINC, functionType: Dt2.Financial, description: `formula.functionList.CUMPRINC.description`, abstract: `formula.functionList.CUMPRINC.abstract`, functionParameter: [{ name: `formula.functionList.CUMPRINC.functionParameter.rate.name`, detail: `formula.functionList.CUMPRINC.functionParameter.rate.detail`, example: `9%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMPRINC.functionParameter.nper.name`, detail: `formula.functionList.CUMPRINC.functionParameter.nper.detail`, example: `30*12`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMPRINC.functionParameter.pv.name`, detail: `formula.functionList.CUMPRINC.functionParameter.pv.detail`, example: `125000`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMPRINC.functionParameter.startPeriod.name`, detail: `formula.functionList.CUMPRINC.functionParameter.startPeriod.detail`, example: `13`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMPRINC.functionParameter.endPeriod.name`, detail: `formula.functionList.CUMPRINC.functionParameter.endPeriod.detail`, example: `24`, require: 1, repeat: 0 }, { name: `formula.functionList.CUMPRINC.functionParameter.type.name`, detail: `formula.functionList.CUMPRINC.functionParameter.type.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: W3.DB, functionType: Dt2.Financial, description: `formula.functionList.DB.description`, abstract: `formula.functionList.DB.abstract`, functionParameter: [{ name: `formula.functionList.DB.functionParameter.cost.name`, detail: `formula.functionList.DB.functionParameter.cost.detail`, example: `10000000`, require: 1, repeat: 0 }, { name: `formula.functionList.DB.functionParameter.salvage.name`, detail: `formula.functionList.DB.functionParameter.salvage.detail`, example: `1000000`, require: 1, repeat: 0 }, { name: `formula.functionList.DB.functionParameter.life.name`, detail: `formula.functionList.DB.functionParameter.life.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.DB.functionParameter.period.name`, detail: `formula.functionList.DB.functionParameter.period.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.DB.functionParameter.month.name`, detail: `formula.functionList.DB.functionParameter.month.detail`, example: `7`, require: 0, repeat: 0 }] }, { functionName: W3.DDB, functionType: Dt2.Financial, description: `formula.functionList.DDB.description`, abstract: `formula.functionList.DDB.abstract`, functionParameter: [{ name: `formula.functionList.DDB.functionParameter.cost.name`, detail: `formula.functionList.DDB.functionParameter.cost.detail`, example: `24000`, require: 1, repeat: 0 }, { name: `formula.functionList.DDB.functionParameter.salvage.name`, detail: `formula.functionList.DDB.functionParameter.salvage.detail`, example: `3000`, require: 1, repeat: 0 }, { name: `formula.functionList.DDB.functionParameter.life.name`, detail: `formula.functionList.DDB.functionParameter.life.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.DDB.functionParameter.period.name`, detail: `formula.functionList.DDB.functionParameter.period.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.DDB.functionParameter.factor.name`, detail: `formula.functionList.DDB.functionParameter.factor.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: W3.DISC, functionType: Dt2.Financial, description: `formula.functionList.DISC.description`, abstract: `formula.functionList.DISC.abstract`, functionParameter: [{ name: `formula.functionList.DISC.functionParameter.settlement.name`, detail: `formula.functionList.DISC.functionParameter.settlement.detail`, example: `"2018-7-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.DISC.functionParameter.maturity.name`, detail: `formula.functionList.DISC.functionParameter.maturity.detail`, example: `"2048-1-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.DISC.functionParameter.pr.name`, detail: `formula.functionList.DISC.functionParameter.pr.detail`, example: `97.975`, require: 1, repeat: 0 }, { name: `formula.functionList.DISC.functionParameter.redemption.name`, detail: `formula.functionList.DISC.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.DISC.functionParameter.basis.name`, detail: `formula.functionList.DISC.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.DOLLARDE, functionType: Dt2.Financial, description: `formula.functionList.DOLLARDE.description`, abstract: `formula.functionList.DOLLARDE.abstract`, functionParameter: [{ name: `formula.functionList.DOLLARDE.functionParameter.fractionalDollar.name`, detail: `formula.functionList.DOLLARDE.functionParameter.fractionalDollar.detail`, example: `1.02`, require: 1, repeat: 0 }, { name: `formula.functionList.DOLLARDE.functionParameter.fraction.name`, detail: `formula.functionList.DOLLARDE.functionParameter.fraction.detail`, example: `16`, require: 1, repeat: 0 }] }, { functionName: W3.DOLLARFR, functionType: Dt2.Financial, description: `formula.functionList.DOLLARFR.description`, abstract: `formula.functionList.DOLLARFR.abstract`, functionParameter: [{ name: `formula.functionList.DOLLARFR.functionParameter.decimalDollar.name`, detail: `formula.functionList.DOLLARFR.functionParameter.decimalDollar.detail`, example: `1.125`, require: 1, repeat: 0 }, { name: `formula.functionList.DOLLARFR.functionParameter.fraction.name`, detail: `formula.functionList.DOLLARFR.functionParameter.fraction.detail`, example: `16`, require: 1, repeat: 0 }] }, { functionName: W3.DURATION, functionType: Dt2.Financial, description: `formula.functionList.DURATION.description`, abstract: `formula.functionList.DURATION.abstract`, functionParameter: [{ name: `formula.functionList.DURATION.functionParameter.settlement.name`, detail: `formula.functionList.DURATION.functionParameter.settlement.detail`, example: `"2018-7-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.DURATION.functionParameter.maturity.name`, detail: `formula.functionList.DURATION.functionParameter.maturity.detail`, example: `"2048-1-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.DURATION.functionParameter.coupon.name`, detail: `formula.functionList.DURATION.functionParameter.coupon.detail`, example: `8%`, require: 1, repeat: 0 }, { name: `formula.functionList.DURATION.functionParameter.yld.name`, detail: `formula.functionList.DURATION.functionParameter.yld.detail`, example: `9%`, require: 1, repeat: 0 }, { name: `formula.functionList.DURATION.functionParameter.frequency.name`, detail: `formula.functionList.DURATION.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.DURATION.functionParameter.basis.name`, detail: `formula.functionList.DURATION.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.EFFECT, functionType: Dt2.Financial, description: `formula.functionList.EFFECT.description`, abstract: `formula.functionList.EFFECT.abstract`, functionParameter: [{ name: `formula.functionList.EFFECT.functionParameter.nominalRate.name`, detail: `formula.functionList.EFFECT.functionParameter.nominalRate.detail`, example: `5.25%`, require: 1, repeat: 0 }, { name: `formula.functionList.EFFECT.functionParameter.npery.name`, detail: `formula.functionList.EFFECT.functionParameter.npery.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: W3.FV, functionType: Dt2.Financial, description: `formula.functionList.FV.description`, abstract: `formula.functionList.FV.abstract`, functionParameter: [{ name: `formula.functionList.FV.functionParameter.rate.name`, detail: `formula.functionList.FV.functionParameter.rate.detail`, example: `6%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.FV.functionParameter.nper.name`, detail: `formula.functionList.FV.functionParameter.nper.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.FV.functionParameter.pmt.name`, detail: `formula.functionList.FV.functionParameter.pmt.detail`, example: `-200`, require: 1, repeat: 0 }, { name: `formula.functionList.FV.functionParameter.pv.name`, detail: `formula.functionList.FV.functionParameter.pv.detail`, example: `-500`, require: 0, repeat: 0 }, { name: `formula.functionList.FV.functionParameter.type.name`, detail: `formula.functionList.FV.functionParameter.type.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.FVSCHEDULE, functionType: Dt2.Financial, description: `formula.functionList.FVSCHEDULE.description`, abstract: `formula.functionList.FVSCHEDULE.abstract`, functionParameter: [{ name: `formula.functionList.FVSCHEDULE.functionParameter.principal.name`, detail: `formula.functionList.FVSCHEDULE.functionParameter.principal.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.FVSCHEDULE.functionParameter.schedule.name`, detail: `formula.functionList.FVSCHEDULE.functionParameter.schedule.detail`, example: `A1:A4`, require: 1, repeat: 0 }] }, { functionName: W3.INTRATE, functionType: Dt2.Financial, description: `formula.functionList.INTRATE.description`, abstract: `formula.functionList.INTRATE.abstract`, functionParameter: [{ name: `formula.functionList.INTRATE.functionParameter.settlement.name`, detail: `formula.functionList.INTRATE.functionParameter.settlement.detail`, example: `"2008-2-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.INTRATE.functionParameter.maturity.name`, detail: `formula.functionList.INTRATE.functionParameter.maturity.detail`, example: `"2008-5-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.INTRATE.functionParameter.investment.name`, detail: `formula.functionList.INTRATE.functionParameter.investment.detail`, example: `10000000`, require: 1, repeat: 0 }, { name: `formula.functionList.INTRATE.functionParameter.redemption.name`, detail: `formula.functionList.INTRATE.functionParameter.redemption.detail`, example: `10144200`, require: 1, repeat: 0 }, { name: `formula.functionList.INTRATE.functionParameter.basis.name`, detail: `formula.functionList.INTRATE.functionParameter.basis.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: W3.IPMT, functionType: Dt2.Financial, description: `formula.functionList.IPMT.description`, abstract: `formula.functionList.IPMT.abstract`, functionParameter: [{ name: `formula.functionList.IPMT.functionParameter.rate.name`, detail: `formula.functionList.IPMT.functionParameter.rate.detail`, example: `10%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.IPMT.functionParameter.per.name`, detail: `formula.functionList.IPMT.functionParameter.per.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.IPMT.functionParameter.nper.name`, detail: `formula.functionList.IPMT.functionParameter.nper.detail`, example: `3*12`, require: 1, repeat: 0 }, { name: `formula.functionList.IPMT.functionParameter.pv.name`, detail: `formula.functionList.IPMT.functionParameter.pv.detail`, example: `80000`, require: 1, repeat: 0 }, { name: `formula.functionList.IPMT.functionParameter.fv.name`, detail: `formula.functionList.IPMT.functionParameter.fv.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.IPMT.functionParameter.type.name`, detail: `formula.functionList.IPMT.functionParameter.type.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.IRR, functionType: Dt2.Financial, description: `formula.functionList.IRR.description`, abstract: `formula.functionList.IRR.abstract`, functionParameter: [{ name: `formula.functionList.IRR.functionParameter.values.name`, detail: `formula.functionList.IRR.functionParameter.values.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.IRR.functionParameter.guess.name`, detail: `formula.functionList.IRR.functionParameter.guess.detail`, example: `0.1`, require: 0, repeat: 0 }] }, { functionName: W3.ISPMT, functionType: Dt2.Financial, description: `formula.functionList.ISPMT.description`, abstract: `formula.functionList.ISPMT.abstract`, functionParameter: [{ name: `formula.functionList.ISPMT.functionParameter.rate.name`, detail: `formula.functionList.ISPMT.functionParameter.rate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.ISPMT.functionParameter.per.name`, detail: `formula.functionList.ISPMT.functionParameter.per.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ISPMT.functionParameter.nper.name`, detail: `formula.functionList.ISPMT.functionParameter.nper.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.ISPMT.functionParameter.pv.name`, detail: `formula.functionList.ISPMT.functionParameter.pv.detail`, example: `1000`, require: 1, repeat: 0 }] }, { functionName: W3.MDURATION, functionType: Dt2.Financial, description: `formula.functionList.MDURATION.description`, abstract: `formula.functionList.MDURATION.abstract`, functionParameter: [{ name: `formula.functionList.MDURATION.functionParameter.settlement.name`, detail: `formula.functionList.MDURATION.functionParameter.settlement.detail`, example: `"2018-7-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.MDURATION.functionParameter.maturity.name`, detail: `formula.functionList.MDURATION.functionParameter.maturity.detail`, example: `"2048-1-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.MDURATION.functionParameter.coupon.name`, detail: `formula.functionList.MDURATION.functionParameter.coupon.detail`, example: `8%`, require: 1, repeat: 0 }, { name: `formula.functionList.MDURATION.functionParameter.yld.name`, detail: `formula.functionList.MDURATION.functionParameter.yld.detail`, example: `9%`, require: 1, repeat: 0 }, { name: `formula.functionList.MDURATION.functionParameter.frequency.name`, detail: `formula.functionList.MDURATION.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.MDURATION.functionParameter.basis.name`, detail: `formula.functionList.MDURATION.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.MIRR, functionType: Dt2.Financial, description: `formula.functionList.MIRR.description`, abstract: `formula.functionList.MIRR.abstract`, functionParameter: [{ name: `formula.functionList.MIRR.functionParameter.values.name`, detail: `formula.functionList.MIRR.functionParameter.values.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.MIRR.functionParameter.financeRate.name`, detail: `formula.functionList.MIRR.functionParameter.financeRate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.MIRR.functionParameter.reinvestRate.name`, detail: `formula.functionList.MIRR.functionParameter.reinvestRate.detail`, example: `12%`, require: 1, repeat: 0 }] }, { functionName: W3.NOMINAL, functionType: Dt2.Financial, description: `formula.functionList.NOMINAL.description`, abstract: `formula.functionList.NOMINAL.abstract`, functionParameter: [{ name: `formula.functionList.NOMINAL.functionParameter.effectRate.name`, detail: `formula.functionList.NOMINAL.functionParameter.effectRate.detail`, example: `5.3543%`, require: 1, repeat: 0 }, { name: `formula.functionList.NOMINAL.functionParameter.npery.name`, detail: `formula.functionList.NOMINAL.functionParameter.npery.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: W3.NPER, functionType: Dt2.Financial, description: `formula.functionList.NPER.description`, abstract: `formula.functionList.NPER.abstract`, functionParameter: [{ name: `formula.functionList.NPER.functionParameter.rate.name`, detail: `formula.functionList.NPER.functionParameter.rate.detail`, example: `12%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.NPER.functionParameter.pmt.name`, detail: `formula.functionList.NPER.functionParameter.pmt.detail`, example: `-100`, require: 1, repeat: 0 }, { name: `formula.functionList.NPER.functionParameter.pv.name`, detail: `formula.functionList.NPER.functionParameter.pv.detail`, example: `-1000`, require: 1, repeat: 0 }, { name: `formula.functionList.NPER.functionParameter.fv.name`, detail: `formula.functionList.NPER.functionParameter.fv.detail`, example: `10000`, require: 0, repeat: 0 }, { name: `formula.functionList.NPER.functionParameter.type.name`, detail: `formula.functionList.NPER.functionParameter.type.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.NPV, functionType: Dt2.Financial, description: `formula.functionList.NPV.description`, abstract: `formula.functionList.NPV.abstract`, functionParameter: [{ name: `formula.functionList.NPV.functionParameter.rate.name`, detail: `formula.functionList.NPV.functionParameter.rate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.NPV.functionParameter.value1.name`, detail: `formula.functionList.NPV.functionParameter.value1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.NPV.functionParameter.value2.name`, detail: `formula.functionList.NPV.functionParameter.value2.detail`, example: `-9000`, require: 0, repeat: 1 }] }, { functionName: W3.ODDFPRICE, functionType: Dt2.Financial, description: `formula.functionList.ODDFPRICE.description`, abstract: `formula.functionList.ODDFPRICE.abstract`, functionParameter: [{ name: `formula.functionList.ODDFPRICE.functionParameter.settlement.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.maturity.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.issue.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.issue.detail`, example: `"2008-10-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.firstCoupon.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.firstCoupon.detail`, example: `"2009-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.rate.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.rate.detail`, example: `7.85%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.yld.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.yld.detail`, example: `6.25%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.redemption.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.frequency.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFPRICE.functionParameter.basis.name`, detail: `formula.functionList.ODDFPRICE.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.ODDFYIELD, functionType: Dt2.Financial, description: `formula.functionList.ODDFYIELD.description`, abstract: `formula.functionList.ODDFYIELD.abstract`, functionParameter: [{ name: `formula.functionList.ODDFYIELD.functionParameter.settlement.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.maturity.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.issue.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.issue.detail`, example: `"2008-10-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.firstCoupon.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.firstCoupon.detail`, example: `"2009-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.rate.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.rate.detail`, example: `5.75%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.pr.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.pr.detail`, example: `84.5`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.redemption.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.frequency.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDFYIELD.functionParameter.basis.name`, detail: `formula.functionList.ODDFYIELD.functionParameter.basis.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.ODDLPRICE, functionType: Dt2.Financial, description: `formula.functionList.ODDLPRICE.description`, abstract: `formula.functionList.ODDLPRICE.abstract`, functionParameter: [{ name: `formula.functionList.ODDLPRICE.functionParameter.settlement.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.settlement.detail`, example: `"2008-2-7"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.maturity.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.maturity.detail`, example: `"2008-6-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.lastInterest.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.lastInterest.detail`, example: `"2007-10-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.rate.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.rate.detail`, example: `3.75%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.yld.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.yld.detail`, example: `4.05%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.redemption.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.frequency.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLPRICE.functionParameter.basis.name`, detail: `formula.functionList.ODDLPRICE.functionParameter.basis.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.ODDLYIELD, functionType: Dt2.Financial, description: `formula.functionList.ODDLYIELD.description`, abstract: `formula.functionList.ODDLYIELD.abstract`, functionParameter: [{ name: `formula.functionList.ODDLYIELD.functionParameter.settlement.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.settlement.detail`, example: `"2008-4-20"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.maturity.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.maturity.detail`, example: `"2008-6-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.lastInterest.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.lastInterest.detail`, example: `"2007-12-24"`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.rate.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.rate.detail`, example: `3.75%`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.pr.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.pr.detail`, example: `99.875`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.redemption.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.frequency.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ODDLYIELD.functionParameter.basis.name`, detail: `formula.functionList.ODDLYIELD.functionParameter.basis.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.PDURATION, functionType: Dt2.Financial, description: `formula.functionList.PDURATION.description`, abstract: `formula.functionList.PDURATION.abstract`, functionParameter: [{ name: `formula.functionList.PDURATION.functionParameter.rate.name`, detail: `formula.functionList.PDURATION.functionParameter.rate.detail`, example: `2.5%`, require: 1, repeat: 0 }, { name: `formula.functionList.PDURATION.functionParameter.pv.name`, detail: `formula.functionList.PDURATION.functionParameter.pv.detail`, example: `2000`, require: 1, repeat: 0 }, { name: `formula.functionList.PDURATION.functionParameter.fv.name`, detail: `formula.functionList.PDURATION.functionParameter.fv.detail`, example: `2200`, require: 1, repeat: 0 }] }, { functionName: W3.PMT, functionType: Dt2.Financial, description: `formula.functionList.PMT.description`, abstract: `formula.functionList.PMT.abstract`, functionParameter: [{ name: `formula.functionList.PMT.functionParameter.rate.name`, detail: `formula.functionList.PMT.functionParameter.rate.detail`, example: `8%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.PMT.functionParameter.nper.name`, detail: `formula.functionList.PMT.functionParameter.nper.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.PMT.functionParameter.pv.name`, detail: `formula.functionList.PMT.functionParameter.pv.detail`, example: `10000`, require: 1, repeat: 0 }, { name: `formula.functionList.PMT.functionParameter.fv.name`, detail: `formula.functionList.PMT.functionParameter.fv.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.PMT.functionParameter.type.name`, detail: `formula.functionList.PMT.functionParameter.type.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.PPMT, functionType: Dt2.Financial, description: `formula.functionList.PPMT.description`, abstract: `formula.functionList.PPMT.abstract`, functionParameter: [{ name: `formula.functionList.PPMT.functionParameter.rate.name`, detail: `formula.functionList.PPMT.functionParameter.rate.detail`, example: `10%/12`, require: 1, repeat: 0 }, { name: `formula.functionList.PPMT.functionParameter.per.name`, detail: `formula.functionList.PPMT.functionParameter.per.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.PPMT.functionParameter.nper.name`, detail: `formula.functionList.PPMT.functionParameter.nper.detail`, example: `3*12`, require: 1, repeat: 0 }, { name: `formula.functionList.PPMT.functionParameter.pv.name`, detail: `formula.functionList.PPMT.functionParameter.pv.detail`, example: `80000`, require: 1, repeat: 0 }, { name: `formula.functionList.PPMT.functionParameter.fv.name`, detail: `formula.functionList.PPMT.functionParameter.fv.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.PPMT.functionParameter.type.name`, detail: `formula.functionList.PPMT.functionParameter.type.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.PRICE, functionType: Dt2.Financial, description: `formula.functionList.PRICE.description`, abstract: `formula.functionList.PRICE.abstract`, functionParameter: [{ name: `formula.functionList.PRICE.functionParameter.settlement.name`, detail: `formula.functionList.PRICE.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.maturity.name`, detail: `formula.functionList.PRICE.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.rate.name`, detail: `formula.functionList.PRICE.functionParameter.rate.detail`, example: `7.85%`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.yld.name`, detail: `formula.functionList.PRICE.functionParameter.yld.detail`, example: `6.25%`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.redemption.name`, detail: `formula.functionList.PRICE.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.frequency.name`, detail: `formula.functionList.PRICE.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICE.functionParameter.basis.name`, detail: `formula.functionList.PRICE.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.PRICEDISC, functionType: Dt2.Financial, description: `formula.functionList.PRICEDISC.description`, abstract: `formula.functionList.PRICEDISC.abstract`, functionParameter: [{ name: `formula.functionList.PRICEDISC.functionParameter.settlement.name`, detail: `formula.functionList.PRICEDISC.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEDISC.functionParameter.maturity.name`, detail: `formula.functionList.PRICEDISC.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEDISC.functionParameter.discount.name`, detail: `formula.functionList.PRICEDISC.functionParameter.discount.detail`, example: `6.25%`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEDISC.functionParameter.redemption.name`, detail: `formula.functionList.PRICEDISC.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEDISC.functionParameter.basis.name`, detail: `formula.functionList.PRICEDISC.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.PRICEMAT, functionType: Dt2.Financial, description: `formula.functionList.PRICEMAT.description`, abstract: `formula.functionList.PRICEMAT.abstract`, functionParameter: [{ name: `formula.functionList.PRICEMAT.functionParameter.settlement.name`, detail: `formula.functionList.PRICEMAT.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEMAT.functionParameter.maturity.name`, detail: `formula.functionList.PRICEMAT.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEMAT.functionParameter.issue.name`, detail: `formula.functionList.PRICEMAT.functionParameter.issue.detail`, example: `"2008-10-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEMAT.functionParameter.rate.name`, detail: `formula.functionList.PRICEMAT.functionParameter.rate.detail`, example: `7.85%`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEMAT.functionParameter.yld.name`, detail: `formula.functionList.PRICEMAT.functionParameter.yld.detail`, example: `6.25%`, require: 1, repeat: 0 }, { name: `formula.functionList.PRICEMAT.functionParameter.basis.name`, detail: `formula.functionList.PRICEMAT.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.PV, functionType: Dt2.Financial, description: `formula.functionList.PV.description`, abstract: `formula.functionList.PV.abstract`, functionParameter: [{ name: `formula.functionList.PV.functionParameter.rate.name`, detail: `formula.functionList.PV.functionParameter.rate.detail`, example: `2%`, require: 1, repeat: 0 }, { name: `formula.functionList.PV.functionParameter.nper.name`, detail: `formula.functionList.PV.functionParameter.nper.detail`, example: `12`, require: 1, repeat: 0 }, { name: `formula.functionList.PV.functionParameter.pmt.name`, detail: `formula.functionList.PV.functionParameter.pmt.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.PV.functionParameter.fv.name`, detail: `formula.functionList.PV.functionParameter.fv.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.PV.functionParameter.type.name`, detail: `formula.functionList.PV.functionParameter.type.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: W3.RATE, functionType: Dt2.Financial, description: `formula.functionList.RATE.description`, abstract: `formula.functionList.RATE.abstract`, functionParameter: [{ name: `formula.functionList.RATE.functionParameter.nper.name`, detail: `formula.functionList.RATE.functionParameter.nper.detail`, example: `4*12`, require: 1, repeat: 0 }, { name: `formula.functionList.RATE.functionParameter.pmt.name`, detail: `formula.functionList.RATE.functionParameter.pmt.detail`, example: `-200`, require: 1, repeat: 0 }, { name: `formula.functionList.RATE.functionParameter.pv.name`, detail: `formula.functionList.RATE.functionParameter.pv.detail`, example: `8000`, require: 1, repeat: 0 }, { name: `formula.functionList.RATE.functionParameter.fv.name`, detail: `formula.functionList.RATE.functionParameter.fv.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.RATE.functionParameter.type.name`, detail: `formula.functionList.RATE.functionParameter.type.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.RATE.functionParameter.guess.name`, detail: `formula.functionList.RATE.functionParameter.guess.detail`, example: `0.1`, require: 0, repeat: 0 }] }, { functionName: W3.RECEIVED, functionType: Dt2.Financial, description: `formula.functionList.RECEIVED.description`, abstract: `formula.functionList.RECEIVED.abstract`, functionParameter: [{ name: `formula.functionList.RECEIVED.functionParameter.settlement.name`, detail: `formula.functionList.RECEIVED.functionParameter.settlement.detail`, example: `"2008-2-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.RECEIVED.functionParameter.maturity.name`, detail: `formula.functionList.RECEIVED.functionParameter.maturity.detail`, example: `"2008-3-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.RECEIVED.functionParameter.investment.name`, detail: `formula.functionList.RECEIVED.functionParameter.investment.detail`, example: `10000000`, require: 1, repeat: 0 }, { name: `formula.functionList.RECEIVED.functionParameter.discount.name`, detail: `formula.functionList.RECEIVED.functionParameter.discount.detail`, example: `5.75%`, require: 1, repeat: 0 }, { name: `formula.functionList.RECEIVED.functionParameter.basis.name`, detail: `formula.functionList.RECEIVED.functionParameter.basis.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: W3.RRI, functionType: Dt2.Financial, description: `formula.functionList.RRI.description`, abstract: `formula.functionList.RRI.abstract`, functionParameter: [{ name: `formula.functionList.RRI.functionParameter.nper.name`, detail: `formula.functionList.RRI.functionParameter.nper.detail`, example: `96`, require: 1, repeat: 0 }, { name: `formula.functionList.RRI.functionParameter.pv.name`, detail: `formula.functionList.RRI.functionParameter.pv.detail`, example: `10000`, require: 1, repeat: 0 }, { name: `formula.functionList.RRI.functionParameter.fv.name`, detail: `formula.functionList.RRI.functionParameter.fv.detail`, example: `11000`, require: 1, repeat: 0 }] }, { functionName: W3.SLN, functionType: Dt2.Financial, description: `formula.functionList.SLN.description`, abstract: `formula.functionList.SLN.abstract`, functionParameter: [{ name: `formula.functionList.SLN.functionParameter.cost.name`, detail: `formula.functionList.SLN.functionParameter.cost.detail`, example: `300000`, require: 1, repeat: 0 }, { name: `formula.functionList.SLN.functionParameter.salvage.name`, detail: `formula.functionList.SLN.functionParameter.salvage.detail`, example: `75000`, require: 1, repeat: 0 }, { name: `formula.functionList.SLN.functionParameter.life.name`, detail: `formula.functionList.SLN.functionParameter.life.detail`, example: `10`, require: 1, repeat: 0 }] }, { functionName: W3.SYD, functionType: Dt2.Financial, description: `formula.functionList.SYD.description`, abstract: `formula.functionList.SYD.abstract`, functionParameter: [{ name: `formula.functionList.SYD.functionParameter.cost.name`, detail: `formula.functionList.SYD.functionParameter.cost.detail`, example: `300000`, require: 1, repeat: 0 }, { name: `formula.functionList.SYD.functionParameter.salvage.name`, detail: `formula.functionList.SYD.functionParameter.salvage.detail`, example: `75000`, require: 1, repeat: 0 }, { name: `formula.functionList.SYD.functionParameter.life.name`, detail: `formula.functionList.SYD.functionParameter.life.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.SYD.functionParameter.per.name`, detail: `formula.functionList.SYD.functionParameter.per.detail`, example: `10`, require: 1, repeat: 0 }] }, { functionName: W3.TBILLEQ, functionType: Dt2.Financial, description: `formula.functionList.TBILLEQ.description`, abstract: `formula.functionList.TBILLEQ.abstract`, functionParameter: [{ name: `formula.functionList.TBILLEQ.functionParameter.settlement.name`, detail: `formula.functionList.TBILLEQ.functionParameter.settlement.detail`, example: `"2008-3-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLEQ.functionParameter.maturity.name`, detail: `formula.functionList.TBILLEQ.functionParameter.maturity.detail`, example: `"2008-6-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLEQ.functionParameter.discount.name`, detail: `formula.functionList.TBILLEQ.functionParameter.discount.detail`, example: `9.14%`, require: 1, repeat: 0 }] }, { functionName: W3.TBILLPRICE, functionType: Dt2.Financial, description: `formula.functionList.TBILLPRICE.description`, abstract: `formula.functionList.TBILLPRICE.abstract`, functionParameter: [{ name: `formula.functionList.TBILLPRICE.functionParameter.settlement.name`, detail: `formula.functionList.TBILLPRICE.functionParameter.settlement.detail`, example: `"2008-3-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLPRICE.functionParameter.maturity.name`, detail: `formula.functionList.TBILLPRICE.functionParameter.maturity.detail`, example: `"2008-6-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLPRICE.functionParameter.discount.name`, detail: `formula.functionList.TBILLPRICE.functionParameter.discount.detail`, example: `9.14%`, require: 1, repeat: 0 }] }, { functionName: W3.TBILLYIELD, functionType: Dt2.Financial, description: `formula.functionList.TBILLYIELD.description`, abstract: `formula.functionList.TBILLYIELD.abstract`, functionParameter: [{ name: `formula.functionList.TBILLYIELD.functionParameter.settlement.name`, detail: `formula.functionList.TBILLYIELD.functionParameter.settlement.detail`, example: `"2008-3-31"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLYIELD.functionParameter.maturity.name`, detail: `formula.functionList.TBILLYIELD.functionParameter.maturity.detail`, example: `"2008-6-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.TBILLYIELD.functionParameter.pr.name`, detail: `formula.functionList.TBILLYIELD.functionParameter.pr.detail`, example: `98.45`, require: 1, repeat: 0 }] }, { functionName: W3.VDB, functionType: Dt2.Financial, description: `formula.functionList.VDB.description`, abstract: `formula.functionList.VDB.abstract`, functionParameter: [{ name: `formula.functionList.VDB.functionParameter.cost.name`, detail: `formula.functionList.VDB.functionParameter.cost.detail`, example: `2400`, require: 1, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.salvage.name`, detail: `formula.functionList.VDB.functionParameter.salvage.detail`, example: `300`, require: 1, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.life.name`, detail: `formula.functionList.VDB.functionParameter.life.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.startPeriod.name`, detail: `formula.functionList.VDB.functionParameter.startPeriod.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.endPeriod.name`, detail: `formula.functionList.VDB.functionParameter.endPeriod.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.factor.name`, detail: `formula.functionList.VDB.functionParameter.factor.detail`, example: `2`, require: 0, repeat: 0 }, { name: `formula.functionList.VDB.functionParameter.noSwitch.name`, detail: `formula.functionList.VDB.functionParameter.noSwitch.detail`, example: `false`, require: 0, repeat: 0 }] }, { functionName: W3.XIRR, functionType: Dt2.Financial, description: `formula.functionList.XIRR.description`, abstract: `formula.functionList.XIRR.abstract`, functionParameter: [{ name: `formula.functionList.XIRR.functionParameter.values.name`, detail: `formula.functionList.XIRR.functionParameter.values.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.XIRR.functionParameter.dates.name`, detail: `formula.functionList.XIRR.functionParameter.dates.detail`, example: `B1:B4`, require: 1, repeat: 0 }, { name: `formula.functionList.XIRR.functionParameter.guess.name`, detail: `formula.functionList.XIRR.functionParameter.guess.detail`, example: `0.1`, require: 0, repeat: 0 }] }, { functionName: W3.XNPV, functionType: Dt2.Financial, description: `formula.functionList.XNPV.description`, abstract: `formula.functionList.XNPV.abstract`, functionParameter: [{ name: `formula.functionList.XNPV.functionParameter.rate.name`, detail: `formula.functionList.XNPV.functionParameter.rate.detail`, example: `10%`, require: 1, repeat: 0 }, { name: `formula.functionList.XNPV.functionParameter.values.name`, detail: `formula.functionList.XNPV.functionParameter.values.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.XNPV.functionParameter.dates.name`, detail: `formula.functionList.XNPV.functionParameter.dates.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: W3.YIELD, functionType: Dt2.Financial, description: `formula.functionList.YIELD.description`, abstract: `formula.functionList.YIELD.abstract`, functionParameter: [{ name: `formula.functionList.YIELD.functionParameter.settlement.name`, detail: `formula.functionList.YIELD.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.maturity.name`, detail: `formula.functionList.YIELD.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.rate.name`, detail: `formula.functionList.YIELD.functionParameter.rate.detail`, example: `7.85%`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.pr.name`, detail: `formula.functionList.YIELD.functionParameter.pr.detail`, example: `98.45`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.redemption.name`, detail: `formula.functionList.YIELD.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.frequency.name`, detail: `formula.functionList.YIELD.functionParameter.frequency.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELD.functionParameter.basis.name`, detail: `formula.functionList.YIELD.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.YIELDDISC, functionType: Dt2.Financial, description: `formula.functionList.YIELDDISC.description`, abstract: `formula.functionList.YIELDDISC.abstract`, functionParameter: [{ name: `formula.functionList.YIELDDISC.functionParameter.settlement.name`, detail: `formula.functionList.YIELDDISC.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDDISC.functionParameter.maturity.name`, detail: `formula.functionList.YIELDDISC.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDDISC.functionParameter.pr.name`, detail: `formula.functionList.YIELDDISC.functionParameter.pr.detail`, example: `98.45`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDDISC.functionParameter.redemption.name`, detail: `formula.functionList.YIELDDISC.functionParameter.redemption.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDDISC.functionParameter.basis.name`, detail: `formula.functionList.YIELDDISC.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: W3.YIELDMAT, functionType: Dt2.Financial, description: `formula.functionList.YIELDMAT.description`, abstract: `formula.functionList.YIELDMAT.abstract`, functionParameter: [{ name: `formula.functionList.YIELDMAT.functionParameter.settlement.name`, detail: `formula.functionList.YIELDMAT.functionParameter.settlement.detail`, example: `"2008-11-11"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDMAT.functionParameter.maturity.name`, detail: `formula.functionList.YIELDMAT.functionParameter.maturity.detail`, example: `"2021-3-1"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDMAT.functionParameter.issue.name`, detail: `formula.functionList.YIELDMAT.functionParameter.issue.detail`, example: `"2008-10-15"`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDMAT.functionParameter.rate.name`, detail: `formula.functionList.YIELDMAT.functionParameter.rate.detail`, example: `7.85%`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDMAT.functionParameter.pr.name`, detail: `formula.functionList.YIELDMAT.functionParameter.pr.detail`, example: `98.45`, require: 1, repeat: 0 }, { name: `formula.functionList.YIELDMAT.functionParameter.basis.name`, detail: `formula.functionList.YIELDMAT.functionParameter.basis.detail`, example: `1`, require: 0, repeat: 0 }] }]; var ci4 = [{ functionName: to2.CELL, functionType: Dt2.Information, description: `formula.functionList.CELL.description`, abstract: `formula.functionList.CELL.abstract`, functionParameter: [{ name: `formula.functionList.CELL.functionParameter.infoType.name`, detail: `formula.functionList.CELL.functionParameter.infoType.detail`, example: `"type"`, require: 1, repeat: 0 }, { name: `formula.functionList.CELL.functionParameter.reference.name`, detail: `formula.functionList.CELL.functionParameter.reference.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ERROR_TYPE, functionType: Dt2.Information, description: `formula.functionList.ERROR_TYPE.description`, abstract: `formula.functionList.ERROR_TYPE.abstract`, functionParameter: [{ name: `formula.functionList.ERROR_TYPE.functionParameter.errorVal.name`, detail: `formula.functionList.ERROR_TYPE.functionParameter.errorVal.detail`, example: `"#NULL!"`, require: 1, repeat: 0 }] }, { functionName: to2.INFO, functionType: Dt2.Information, description: `formula.functionList.INFO.description`, abstract: `formula.functionList.INFO.abstract`, functionParameter: [{ name: `formula.functionList.INFO.functionParameter.number1.name`, detail: `formula.functionList.INFO.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.INFO.functionParameter.number2.name`, detail: `formula.functionList.INFO.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: to2.ISBETWEEN, functionType: Dt2.Information, description: `formula.functionList.ISBETWEEN.description`, abstract: `formula.functionList.ISBETWEEN.abstract`, functionParameter: [{ name: `formula.functionList.ISBETWEEN.functionParameter.valueToCompare.name`, detail: `formula.functionList.ISBETWEEN.functionParameter.valueToCompare.detail`, example: `7.9`, require: 1, repeat: 0 }, { name: `formula.functionList.ISBETWEEN.functionParameter.lowerValue.name`, detail: `formula.functionList.ISBETWEEN.functionParameter.lowerValue.detail`, example: `1.2`, require: 1, repeat: 0 }, { name: `formula.functionList.ISBETWEEN.functionParameter.upperValue.name`, detail: `formula.functionList.ISBETWEEN.functionParameter.upperValue.detail`, example: `12.45`, require: 1, repeat: 0 }, { name: `formula.functionList.ISBETWEEN.functionParameter.lowerValueIsInclusive.name`, detail: `formula.functionList.ISBETWEEN.functionParameter.lowerValueIsInclusive.detail`, example: `true`, require: 0, repeat: 0 }, { name: `formula.functionList.ISBETWEEN.functionParameter.upperValueIsInclusive.name`, detail: `formula.functionList.ISBETWEEN.functionParameter.upperValueIsInclusive.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: to2.ISBLANK, functionType: Dt2.Information, description: `formula.functionList.ISBLANK.description`, abstract: `formula.functionList.ISBLANK.abstract`, functionParameter: [{ name: `formula.functionList.ISBLANK.functionParameter.value.name`, detail: `formula.functionList.ISBLANK.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISDATE, functionType: Dt2.Information, description: `formula.functionList.ISDATE.description`, abstract: `formula.functionList.ISDATE.abstract`, functionParameter: [{ name: `formula.functionList.ISDATE.functionParameter.value.name`, detail: `formula.functionList.ISDATE.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISEMAIL, functionType: Dt2.Information, description: `formula.functionList.ISEMAIL.description`, abstract: `formula.functionList.ISEMAIL.abstract`, functionParameter: [{ name: `formula.functionList.ISEMAIL.functionParameter.value.name`, detail: `formula.functionList.ISEMAIL.functionParameter.value.detail`, example: `"developer@univer.ai"`, require: 1, repeat: 0 }] }, { functionName: to2.ISERR, functionType: Dt2.Information, description: `formula.functionList.ISERR.description`, abstract: `formula.functionList.ISERR.abstract`, functionParameter: [{ name: `formula.functionList.ISERR.functionParameter.value.name`, detail: `formula.functionList.ISERR.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISERROR, functionType: Dt2.Information, description: `formula.functionList.ISERROR.description`, abstract: `formula.functionList.ISERROR.abstract`, functionParameter: [{ name: `formula.functionList.ISERROR.functionParameter.value.name`, detail: `formula.functionList.ISERROR.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISEVEN, functionType: Dt2.Information, description: `formula.functionList.ISEVEN.description`, abstract: `formula.functionList.ISEVEN.abstract`, functionParameter: [{ name: `formula.functionList.ISEVEN.functionParameter.value.name`, detail: `formula.functionList.ISEVEN.functionParameter.value.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: to2.ISFORMULA, functionType: Dt2.Information, description: `formula.functionList.ISFORMULA.description`, abstract: `formula.functionList.ISFORMULA.abstract`, functionParameter: [{ name: `formula.functionList.ISFORMULA.functionParameter.reference.name`, detail: `formula.functionList.ISFORMULA.functionParameter.reference.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISLOGICAL, functionType: Dt2.Information, description: `formula.functionList.ISLOGICAL.description`, abstract: `formula.functionList.ISLOGICAL.abstract`, functionParameter: [{ name: `formula.functionList.ISLOGICAL.functionParameter.value.name`, detail: `formula.functionList.ISLOGICAL.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISNA, functionType: Dt2.Information, description: `formula.functionList.ISNA.description`, abstract: `formula.functionList.ISNA.abstract`, functionParameter: [{ name: `formula.functionList.ISNA.functionParameter.value.name`, detail: `formula.functionList.ISNA.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISNONTEXT, functionType: Dt2.Information, description: `formula.functionList.ISNONTEXT.description`, abstract: `formula.functionList.ISNONTEXT.abstract`, functionParameter: [{ name: `formula.functionList.ISNONTEXT.functionParameter.value.name`, detail: `formula.functionList.ISNONTEXT.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISNUMBER, functionType: Dt2.Information, description: `formula.functionList.ISNUMBER.description`, abstract: `formula.functionList.ISNUMBER.abstract`, functionParameter: [{ name: `formula.functionList.ISNUMBER.functionParameter.value.name`, detail: `formula.functionList.ISNUMBER.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISODD, functionType: Dt2.Information, description: `formula.functionList.ISODD.description`, abstract: `formula.functionList.ISODD.abstract`, functionParameter: [{ name: `formula.functionList.ISODD.functionParameter.value.name`, detail: `formula.functionList.ISODD.functionParameter.value.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: to2.ISOMITTED, functionType: Dt2.Information, description: `formula.functionList.ISOMITTED.description`, abstract: `formula.functionList.ISOMITTED.abstract`, functionParameter: [{ name: `formula.functionList.ISOMITTED.functionParameter.number1.name`, detail: `formula.functionList.ISOMITTED.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.ISOMITTED.functionParameter.number2.name`, detail: `formula.functionList.ISOMITTED.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: to2.ISREF, functionType: Dt2.Information, description: `formula.functionList.ISREF.description`, abstract: `formula.functionList.ISREF.abstract`, functionParameter: [{ name: `formula.functionList.ISREF.functionParameter.value.name`, detail: `formula.functionList.ISREF.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISTEXT, functionType: Dt2.Information, description: `formula.functionList.ISTEXT.description`, abstract: `formula.functionList.ISTEXT.abstract`, functionParameter: [{ name: `formula.functionList.ISTEXT.functionParameter.value.name`, detail: `formula.functionList.ISTEXT.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.ISURL, functionType: Dt2.Information, description: `formula.functionList.ISURL.description`, abstract: `formula.functionList.ISURL.abstract`, functionParameter: [{ name: `formula.functionList.ISURL.functionParameter.value.name`, detail: `formula.functionList.ISURL.functionParameter.value.detail`, example: `"univer.ai"`, require: 1, repeat: 0 }] }, { functionName: to2.N, functionType: Dt2.Information, description: `formula.functionList.N.description`, abstract: `formula.functionList.N.abstract`, functionParameter: [{ name: `formula.functionList.N.functionParameter.value.name`, detail: `formula.functionList.N.functionParameter.value.detail`, example: `7`, require: 1, repeat: 0 }] }, { functionName: to2.NA, functionType: Dt2.Information, description: `formula.functionList.NA.description`, abstract: `formula.functionList.NA.abstract`, functionParameter: [] }, { functionName: to2.SHEET, functionType: Dt2.Information, description: `formula.functionList.SHEET.description`, abstract: `formula.functionList.SHEET.abstract`, functionParameter: [{ name: `formula.functionList.SHEET.functionParameter.value.name`, detail: `formula.functionList.SHEET.functionParameter.value.detail`, example: `A1`, require: 1, repeat: 0 }] }, { functionName: to2.SHEETS, functionType: Dt2.Information, description: `formula.functionList.SHEETS.description`, abstract: `formula.functionList.SHEETS.abstract`, functionParameter: [] }, { functionName: to2.TYPE, functionType: Dt2.Information, description: `formula.functionList.TYPE.description`, abstract: `formula.functionList.TYPE.abstract`, functionParameter: [{ name: `formula.functionList.TYPE.functionParameter.value.name`, detail: `formula.functionList.TYPE.functionParameter.value.detail`, example: `A2`, require: 1, repeat: 0 }] }]; var li3 = [{ functionName: no2.AND, functionType: Dt2.Logical, description: `formula.functionList.AND.description`, abstract: `formula.functionList.AND.abstract`, functionParameter: [{ name: `formula.functionList.AND.functionParameter.logical1.name`, detail: `formula.functionList.AND.functionParameter.logical1.detail`, example: `A1=1`, require: 1, repeat: 0 }, { name: `formula.functionList.AND.functionParameter.logical2.name`, detail: `formula.functionList.AND.functionParameter.logical2.detail`, example: `A2=2`, require: 0, repeat: 1 }] }, { functionName: no2.BYCOL, functionType: Dt2.Logical, description: `formula.functionList.BYCOL.description`, abstract: `formula.functionList.BYCOL.abstract`, functionParameter: [{ name: `formula.functionList.BYCOL.functionParameter.array.name`, detail: `formula.functionList.BYCOL.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.BYCOL.functionParameter.lambda.name`, detail: `formula.functionList.BYCOL.functionParameter.lambda.detail`, example: `LAMBDA(array, MAX(array))`, require: 1, repeat: 0 }] }, { functionName: no2.BYROW, functionType: Dt2.Logical, description: `formula.functionList.BYROW.description`, abstract: `formula.functionList.BYROW.abstract`, functionParameter: [{ name: `formula.functionList.BYROW.functionParameter.array.name`, detail: `formula.functionList.BYROW.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.BYROW.functionParameter.lambda.name`, detail: `formula.functionList.BYROW.functionParameter.lambda.detail`, example: `LAMBDA(array, MAX(array))`, require: 1, repeat: 0 }] }, { functionName: no2.FALSE, functionType: Dt2.Logical, description: `formula.functionList.FALSE.description`, abstract: `formula.functionList.FALSE.abstract`, functionParameter: [] }, { functionName: no2.IF, functionType: Dt2.Logical, description: `formula.functionList.IF.description`, abstract: `formula.functionList.IF.abstract`, functionParameter: [{ name: `formula.functionList.IF.functionParameter.logicalTest.name`, detail: `formula.functionList.IF.functionParameter.logicalTest.detail`, example: `A2 = "foo"`, require: 1, repeat: 0 }, { name: `formula.functionList.IF.functionParameter.valueIfTrue.name`, detail: `formula.functionList.IF.functionParameter.valueIfTrue.detail`, example: `"A2 is foo"`, require: 1, repeat: 0 }, { name: `formula.functionList.IF.functionParameter.valueIfFalse.name`, detail: `formula.functionList.IF.functionParameter.valueIfFalse.detail`, example: `"A2 is not foo"`, require: 0, repeat: 0 }] }, { functionName: no2.IFERROR, functionType: Dt2.Logical, description: `formula.functionList.IFERROR.description`, abstract: `formula.functionList.IFERROR.abstract`, functionParameter: [{ name: `formula.functionList.IFERROR.functionParameter.value.name`, detail: `formula.functionList.IFERROR.functionParameter.value.detail`, example: `A2/B2`, require: 1, repeat: 0 }, { name: `formula.functionList.IFERROR.functionParameter.valueIfError.name`, detail: `formula.functionList.IFERROR.functionParameter.valueIfError.detail`, example: `"Error in calculation"`, require: 1, repeat: 0 }] }, { functionName: no2.IFNA, functionType: Dt2.Logical, description: `formula.functionList.IFNA.description`, abstract: `formula.functionList.IFNA.abstract`, functionParameter: [{ name: `formula.functionList.IFNA.functionParameter.value.name`, detail: `formula.functionList.IFNA.functionParameter.value.detail`, example: `VLOOKUP(C3,C6:D11,2,FALSE)`, require: 1, repeat: 0 }, { name: `formula.functionList.IFNA.functionParameter.valueIfNa.name`, detail: `formula.functionList.IFNA.functionParameter.valueIfNa.detail`, example: `"Not Found"`, require: 1, repeat: 0 }] }, { functionName: no2.IFS, functionType: Dt2.Logical, description: `formula.functionList.IFS.description`, abstract: `formula.functionList.IFS.abstract`, functionParameter: [{ name: `formula.functionList.IFS.functionParameter.logicalTest1.name`, detail: `formula.functionList.IFS.functionParameter.logicalTest1.detail`, example: `A2 = "foo"`, require: 1, repeat: 0 }, { name: `formula.functionList.IFS.functionParameter.valueIfTrue1.name`, detail: `formula.functionList.IFS.functionParameter.valueIfTrue1.detail`, example: `"A2 is foo"`, require: 1, repeat: 0 }, { name: `formula.functionList.IFS.functionParameter.logicalTest2.name`, detail: `formula.functionList.IFS.functionParameter.logicalTest2.detail`, example: `F2=1`, require: 0, repeat: 1 }, { name: `formula.functionList.IFS.functionParameter.valueIfTrue2.name`, detail: `formula.functionList.IFS.functionParameter.valueIfTrue2.detail`, example: `D2`, require: 0, repeat: 1 }] }, { functionName: no2.LAMBDA, functionType: Dt2.Logical, description: `formula.functionList.LAMBDA.description`, abstract: `formula.functionList.LAMBDA.abstract`, functionParameter: [{ name: `formula.functionList.LAMBDA.functionParameter.parameter.name`, detail: `formula.functionList.LAMBDA.functionParameter.parameter.detail`, example: `[x, y, \u2026,]`, require: 0, repeat: 1 }, { name: `formula.functionList.LAMBDA.functionParameter.calculation.name`, detail: `formula.functionList.LAMBDA.functionParameter.calculation.detail`, example: `x+y`, require: 1, repeat: 0 }] }, { functionName: no2.LET, functionType: Dt2.Logical, description: `formula.functionList.LET.description`, abstract: `formula.functionList.LET.abstract`, functionParameter: [{ name: `formula.functionList.LET.functionParameter.name1.name`, detail: `formula.functionList.LET.functionParameter.name1.detail`, example: `x`, require: 1, repeat: 0 }, { name: `formula.functionList.LET.functionParameter.nameValue1.name`, detail: `formula.functionList.LET.functionParameter.nameValue1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.LET.functionParameter.calculationOrName2.name`, detail: `formula.functionList.LET.functionParameter.calculationOrName2.detail`, example: `y`, require: 1, repeat: 0 }, { name: `formula.functionList.LET.functionParameter.nameValue2.name`, detail: `formula.functionList.LET.functionParameter.nameValue2.detail`, example: `6`, require: 0, repeat: 1 }, { name: `formula.functionList.LET.functionParameter.calculationOrName3.name`, detail: `formula.functionList.LET.functionParameter.calculationOrName3.detail`, example: `SUM(x,y)`, require: 0, repeat: 1 }] }, { functionName: no2.MAKEARRAY, aliasFunctionName: `formula.functionList.MAKEARRAY.aliasFunctionName`, functionType: Dt2.Logical, description: `formula.functionList.MAKEARRAY.description`, abstract: `formula.functionList.MAKEARRAY.abstract`, functionParameter: [{ name: `formula.functionList.MAKEARRAY.functionParameter.number1.name`, detail: `formula.functionList.MAKEARRAY.functionParameter.number1.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.MAKEARRAY.functionParameter.number2.name`, detail: `formula.functionList.MAKEARRAY.functionParameter.number2.detail`, example: `7`, require: 1, repeat: 0 }, { name: `formula.functionList.MAKEARRAY.functionParameter.value3.name`, detail: `formula.functionList.MAKEARRAY.functionParameter.value3.detail`, example: `LAMBDA(r,c, r*c)`, require: 1, repeat: 0 }] }, { functionName: no2.MAP, functionType: Dt2.Logical, description: `formula.functionList.MAP.description`, abstract: `formula.functionList.MAP.abstract`, functionParameter: [{ name: `formula.functionList.MAP.functionParameter.array1.name`, detail: `formula.functionList.MAP.functionParameter.array1.detail`, example: `D2:D11`, require: 1, repeat: 0 }, { name: `formula.functionList.MAP.functionParameter.array2.name`, detail: `formula.functionList.MAP.functionParameter.array2.detail`, example: `E2:E11`, require: 0, repeat: 1 }, { name: `formula.functionList.MAP.functionParameter.lambda.name`, detail: `formula.functionList.MAP.functionParameter.lambda.detail`, example: `LAMBDA(s,c,AND(s="Large",c="Red"))`, require: 1, repeat: 0 }] }, { functionName: no2.NOT, functionType: Dt2.Logical, description: `formula.functionList.NOT.description`, abstract: `formula.functionList.NOT.abstract`, functionParameter: [{ name: `formula.functionList.NOT.functionParameter.logical.name`, detail: `formula.functionList.NOT.functionParameter.logical.detail`, example: `A2>100`, require: 1, repeat: 0 }] }, { functionName: no2.OR, functionType: Dt2.Logical, description: `formula.functionList.OR.description`, abstract: `formula.functionList.OR.abstract`, functionParameter: [{ name: `formula.functionList.OR.functionParameter.logical1.name`, detail: `formula.functionList.OR.functionParameter.logical1.detail`, example: `A1=1`, require: 1, repeat: 0 }, { name: `formula.functionList.OR.functionParameter.logical2.name`, detail: `formula.functionList.OR.functionParameter.logical2.detail`, example: `A2=2`, require: 0, repeat: 1 }] }, { functionName: no2.REDUCE, functionType: Dt2.Logical, description: `formula.functionList.REDUCE.description`, abstract: `formula.functionList.REDUCE.abstract`, functionParameter: [{ name: `formula.functionList.REDUCE.functionParameter.initialValue.name`, detail: `formula.functionList.REDUCE.functionParameter.initialValue.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.REDUCE.functionParameter.array.name`, detail: `formula.functionList.REDUCE.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.REDUCE.functionParameter.lambda.name`, detail: `formula.functionList.REDUCE.functionParameter.lambda.detail`, example: `LAMBDA(a,b,a+b^2)`, require: 1, repeat: 0 }] }, { functionName: no2.SCAN, functionType: Dt2.Logical, description: `formula.functionList.SCAN.description`, abstract: `formula.functionList.SCAN.abstract`, functionParameter: [{ name: `formula.functionList.SCAN.functionParameter.initialValue.name`, detail: `formula.functionList.SCAN.functionParameter.initialValue.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.SCAN.functionParameter.array.name`, detail: `formula.functionList.SCAN.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.SCAN.functionParameter.lambda.name`, detail: `formula.functionList.SCAN.functionParameter.lambda.detail`, example: `LAMBDA(a,b,a+b^2)`, require: 1, repeat: 0 }] }, { functionName: no2.SWITCH, functionType: Dt2.Logical, description: `formula.functionList.SWITCH.description`, abstract: `formula.functionList.SWITCH.abstract`, functionParameter: [{ name: `formula.functionList.SWITCH.functionParameter.expression.name`, detail: `formula.functionList.SWITCH.functionParameter.expression.detail`, example: `WEEKDAY(A2)`, require: 1, repeat: 0 }, { name: `formula.functionList.SWITCH.functionParameter.value1.name`, detail: `formula.functionList.SWITCH.functionParameter.value1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.SWITCH.functionParameter.result1.name`, detail: `formula.functionList.SWITCH.functionParameter.result1.detail`, example: `"Sunday"`, require: 1, repeat: 0 }, { name: `formula.functionList.SWITCH.functionParameter.defaultOrValue2.name`, detail: `formula.functionList.SWITCH.functionParameter.defaultOrValue2.detail`, example: `2`, require: 0, repeat: 1 }, { name: `formula.functionList.SWITCH.functionParameter.result2.name`, detail: `formula.functionList.SWITCH.functionParameter.result2.detail`, example: `"Monday"`, require: 0, repeat: 1 }] }, { functionName: no2.TRUE, functionType: Dt2.Logical, description: `formula.functionList.TRUE.description`, abstract: `formula.functionList.TRUE.abstract`, functionParameter: [] }, { functionName: no2.XOR, functionType: Dt2.Logical, description: `formula.functionList.XOR.description`, abstract: `formula.functionList.XOR.abstract`, functionParameter: [{ name: `formula.functionList.XOR.functionParameter.logical1.name`, detail: `formula.functionList.XOR.functionParameter.logical1.detail`, example: `3>0`, require: 1, repeat: 0 }, { name: `formula.functionList.XOR.functionParameter.logical2.name`, detail: `formula.functionList.XOR.functionParameter.logical2.detail`, example: `2<9`, require: 0, repeat: 1 }] }]; var ui3 = [{ functionName: G3.ADDRESS, functionType: Dt2.Lookup, description: `formula.functionList.ADDRESS.description`, abstract: `formula.functionList.ADDRESS.abstract`, functionParameter: [{ name: `formula.functionList.ADDRESS.functionParameter.row_num.name`, detail: `formula.functionList.ADDRESS.functionParameter.row_num.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ADDRESS.functionParameter.column_num.name`, detail: `formula.functionList.ADDRESS.functionParameter.column_num.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.ADDRESS.functionParameter.abs_num.name`, detail: `formula.functionList.ADDRESS.functionParameter.abs_num.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.ADDRESS.functionParameter.a1.name`, detail: `formula.functionList.ADDRESS.functionParameter.a1.detail`, example: `TRUE`, require: 0, repeat: 0 }, { name: `formula.functionList.ADDRESS.functionParameter.sheet_text.name`, detail: `formula.functionList.ADDRESS.functionParameter.sheet_text.detail`, example: `"Sheet2"`, require: 0, repeat: 0 }] }, { functionName: G3.AREAS, functionType: Dt2.Lookup, description: `formula.functionList.AREAS.description`, abstract: `formula.functionList.AREAS.abstract`, functionParameter: [{ name: `formula.functionList.AREAS.functionParameter.reference.name`, detail: `formula.functionList.AREAS.functionParameter.reference.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.CHOOSE, functionType: Dt2.Lookup, description: `formula.functionList.CHOOSE.description`, abstract: `formula.functionList.CHOOSE.abstract`, functionParameter: [{ name: `formula.functionList.CHOOSE.functionParameter.indexNum.name`, detail: `formula.functionList.CHOOSE.functionParameter.indexNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSE.functionParameter.value1.name`, detail: `formula.functionList.CHOOSE.functionParameter.value1.detail`, example: `"Hello"`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSE.functionParameter.value2.name`, detail: `formula.functionList.CHOOSE.functionParameter.value2.detail`, example: `"Univer"`, require: 0, repeat: 1 }] }, { functionName: G3.CHOOSECOLS, functionType: Dt2.Lookup, description: `formula.functionList.CHOOSECOLS.description`, abstract: `formula.functionList.CHOOSECOLS.abstract`, functionParameter: [{ name: `formula.functionList.CHOOSECOLS.functionParameter.array.name`, detail: `formula.functionList.CHOOSECOLS.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSECOLS.functionParameter.colNum1.name`, detail: `formula.functionList.CHOOSECOLS.functionParameter.colNum1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSECOLS.functionParameter.colNum2.name`, detail: `formula.functionList.CHOOSECOLS.functionParameter.colNum2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: G3.CHOOSEROWS, functionType: Dt2.Lookup, description: `formula.functionList.CHOOSEROWS.description`, abstract: `formula.functionList.CHOOSEROWS.abstract`, functionParameter: [{ name: `formula.functionList.CHOOSEROWS.functionParameter.array.name`, detail: `formula.functionList.CHOOSEROWS.functionParameter.array.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSEROWS.functionParameter.rowNum1.name`, detail: `formula.functionList.CHOOSEROWS.functionParameter.rowNum1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.CHOOSEROWS.functionParameter.rowNum2.name`, detail: `formula.functionList.CHOOSEROWS.functionParameter.rowNum2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: G3.COLUMN, functionType: Dt2.Lookup, description: `formula.functionList.COLUMN.description`, abstract: `formula.functionList.COLUMN.abstract`, functionParameter: [{ name: `formula.functionList.COLUMN.functionParameter.reference.name`, detail: `formula.functionList.COLUMN.functionParameter.reference.detail`, example: `A1:A20`, require: 0, repeat: 0 }] }, { functionName: G3.COLUMNS, functionType: Dt2.Lookup, description: `formula.functionList.COLUMNS.description`, abstract: `formula.functionList.COLUMNS.abstract`, functionParameter: [{ name: `formula.functionList.COLUMNS.functionParameter.array.name`, detail: `formula.functionList.COLUMNS.functionParameter.array.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.DROP, functionType: Dt2.Lookup, description: `formula.functionList.DROP.description`, abstract: `formula.functionList.DROP.abstract`, functionParameter: [{ name: `formula.functionList.DROP.functionParameter.array.name`, detail: `formula.functionList.DROP.functionParameter.array.detail`, example: `A2:C4`, require: 1, repeat: 0 }, { name: `formula.functionList.DROP.functionParameter.rows.name`, detail: `formula.functionList.DROP.functionParameter.rows.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.DROP.functionParameter.columns.name`, detail: `formula.functionList.DROP.functionParameter.columns.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: G3.EXPAND, functionType: Dt2.Lookup, description: `formula.functionList.EXPAND.description`, abstract: `formula.functionList.EXPAND.abstract`, functionParameter: [{ name: `formula.functionList.EXPAND.functionParameter.array.name`, detail: `formula.functionList.EXPAND.functionParameter.array.detail`, example: `A2`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPAND.functionParameter.rows.name`, detail: `formula.functionList.EXPAND.functionParameter.rows.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPAND.functionParameter.columns.name`, detail: `formula.functionList.EXPAND.functionParameter.columns.detail`, example: `3`, require: 0, repeat: 0 }, { name: `formula.functionList.EXPAND.functionParameter.padWith.name`, detail: `formula.functionList.EXPAND.functionParameter.padWith.detail`, example: `"-"`, require: 0, repeat: 0 }] }, { functionName: G3.FILTER, functionType: Dt2.Lookup, description: `formula.functionList.FILTER.description`, abstract: `formula.functionList.FILTER.abstract`, functionParameter: [{ name: `formula.functionList.FILTER.functionParameter.array.name`, detail: `formula.functionList.FILTER.functionParameter.array.detail`, example: `A5:D20`, require: 1, repeat: 0 }, { name: `formula.functionList.FILTER.functionParameter.include.name`, detail: `formula.functionList.FILTER.functionParameter.include.detail`, example: `(C5:C20="Apple")*(A5:A20="East")`, require: 1, repeat: 0 }, { name: `formula.functionList.FILTER.functionParameter.ifEmpty.name`, detail: `formula.functionList.FILTER.functionParameter.ifEmpty.detail`, example: `""`, require: 0, repeat: 0 }] }, { functionName: G3.FORMULATEXT, functionType: Dt2.Lookup, description: `formula.functionList.FORMULATEXT.description`, abstract: `formula.functionList.FORMULATEXT.abstract`, functionParameter: [{ name: `formula.functionList.FORMULATEXT.functionParameter.reference.name`, detail: `formula.functionList.FORMULATEXT.functionParameter.reference.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.GETPIVOTDATA, functionType: Dt2.Lookup, description: `formula.functionList.GETPIVOTDATA.description`, abstract: `formula.functionList.GETPIVOTDATA.abstract`, functionParameter: [{ name: `formula.functionList.GETPIVOTDATA.functionParameter.number1.name`, detail: `formula.functionList.GETPIVOTDATA.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.GETPIVOTDATA.functionParameter.number2.name`, detail: `formula.functionList.GETPIVOTDATA.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.HLOOKUP, functionType: Dt2.Lookup, description: `formula.functionList.HLOOKUP.description`, abstract: `formula.functionList.HLOOKUP.abstract`, functionParameter: [{ name: `formula.functionList.HLOOKUP.functionParameter.lookupValue.name`, detail: `formula.functionList.HLOOKUP.functionParameter.lookupValue.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.HLOOKUP.functionParameter.tableArray.name`, detail: `formula.functionList.HLOOKUP.functionParameter.tableArray.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.HLOOKUP.functionParameter.rowIndexNum.name`, detail: `formula.functionList.HLOOKUP.functionParameter.rowIndexNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.HLOOKUP.functionParameter.rangeLookup.name`, detail: `formula.functionList.HLOOKUP.functionParameter.rangeLookup.detail`, example: `false`, require: 0, repeat: 0 }] }, { functionName: G3.HSTACK, functionType: Dt2.Lookup, description: `formula.functionList.HSTACK.description`, abstract: `formula.functionList.HSTACK.abstract`, functionParameter: [{ name: `formula.functionList.HSTACK.functionParameter.array1.name`, detail: `formula.functionList.HSTACK.functionParameter.array1.detail`, example: `A2:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.HSTACK.functionParameter.array2.name`, detail: `formula.functionList.HSTACK.functionParameter.array2.detail`, example: `E2:G3`, require: 0, repeat: 1 }] }, { functionName: G3.HYPERLINK, functionType: Dt2.Lookup, description: `formula.functionList.HYPERLINK.description`, abstract: `formula.functionList.HYPERLINK.abstract`, functionParameter: [{ name: `formula.functionList.HYPERLINK.functionParameter.url.name`, detail: `formula.functionList.HYPERLINK.functionParameter.url.detail`, example: `"https://univer.ai/"`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPERLINK.functionParameter.linkLabel.name`, detail: `formula.functionList.HYPERLINK.functionParameter.linkLabel.detail`, example: `"Univer"`, require: 0, repeat: 0 }] }, { functionName: G3.IMAGE, functionType: Dt2.Lookup, description: `formula.functionList.IMAGE.description`, abstract: `formula.functionList.IMAGE.abstract`, functionParameter: [{ name: `formula.functionList.IMAGE.functionParameter.source.name`, detail: `formula.functionList.IMAGE.functionParameter.source.detail`, example: `"https://github.com/dream-num.png"`, require: 1, repeat: 0 }, { name: `formula.functionList.IMAGE.functionParameter.altText.name`, detail: `formula.functionList.IMAGE.functionParameter.altText.detail`, example: `"Univer Logo"`, require: 0, repeat: 0 }, { name: `formula.functionList.IMAGE.functionParameter.sizing.name`, detail: `formula.functionList.IMAGE.functionParameter.sizing.detail`, example: `3`, require: 0, repeat: 0 }, { name: `formula.functionList.IMAGE.functionParameter.height.name`, detail: `formula.functionList.IMAGE.functionParameter.height.detail`, example: `100`, require: 0, repeat: 0 }, { name: `formula.functionList.IMAGE.functionParameter.width.name`, detail: `formula.functionList.IMAGE.functionParameter.width.detail`, example: `100`, require: 0, repeat: 0 }] }, { functionName: G3.INDEX, functionType: Dt2.Lookup, description: `formula.functionList.INDEX.description`, abstract: `formula.functionList.INDEX.abstract`, functionParameter: [{ name: `formula.functionList.INDEX.functionParameter.reference.name`, detail: `formula.functionList.INDEX.functionParameter.reference.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.INDEX.functionParameter.rowNum.name`, detail: `formula.functionList.INDEX.functionParameter.rowNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.INDEX.functionParameter.columnNum.name`, detail: `formula.functionList.INDEX.functionParameter.columnNum.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.INDEX.functionParameter.areaNum.name`, detail: `formula.functionList.INDEX.functionParameter.areaNum.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: G3.INDIRECT, functionType: Dt2.Lookup, description: `formula.functionList.INDIRECT.description`, abstract: `formula.functionList.INDIRECT.abstract`, functionParameter: [{ name: `formula.functionList.INDIRECT.functionParameter.refText.name`, detail: `formula.functionList.INDIRECT.functionParameter.refText.detail`, example: `"A1"`, require: 1, repeat: 0 }, { name: `formula.functionList.INDIRECT.functionParameter.a1.name`, detail: `formula.functionList.INDIRECT.functionParameter.a1.detail`, example: `TRUE`, require: 0, repeat: 0 }] }, { functionName: G3.LOOKUP, functionType: Dt2.Lookup, description: `formula.functionList.LOOKUP.description`, abstract: `formula.functionList.LOOKUP.abstract`, functionParameter: [{ name: `formula.functionList.LOOKUP.functionParameter.lookupValue.name`, detail: `formula.functionList.LOOKUP.functionParameter.lookupValue.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.LOOKUP.functionParameter.lookupVectorOrArray.name`, detail: `formula.functionList.LOOKUP.functionParameter.lookupVectorOrArray.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.LOOKUP.functionParameter.resultVector.name`, detail: `formula.functionList.LOOKUP.functionParameter.resultVector.detail`, example: `A1:A20`, require: 0, repeat: 0 }] }, { functionName: G3.MATCH, functionType: Dt2.Lookup, description: `formula.functionList.MATCH.description`, abstract: `formula.functionList.MATCH.abstract`, functionParameter: [{ name: `formula.functionList.MATCH.functionParameter.lookupValue.name`, detail: `formula.functionList.MATCH.functionParameter.lookupValue.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.MATCH.functionParameter.lookupArray.name`, detail: `formula.functionList.MATCH.functionParameter.lookupArray.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MATCH.functionParameter.matchType.name`, detail: `formula.functionList.MATCH.functionParameter.matchType.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: G3.OFFSET, functionType: Dt2.Lookup, description: `formula.functionList.OFFSET.description`, abstract: `formula.functionList.OFFSET.abstract`, functionParameter: [{ name: `formula.functionList.OFFSET.functionParameter.reference.name`, detail: `formula.functionList.OFFSET.functionParameter.reference.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.OFFSET.functionParameter.rows.name`, detail: `formula.functionList.OFFSET.functionParameter.rows.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.OFFSET.functionParameter.cols.name`, detail: `formula.functionList.OFFSET.functionParameter.cols.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.OFFSET.functionParameter.height.name`, detail: `formula.functionList.OFFSET.functionParameter.height.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.OFFSET.functionParameter.width.name`, detail: `formula.functionList.OFFSET.functionParameter.width.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: G3.ROW, functionType: Dt2.Lookup, description: `formula.functionList.ROW.description`, abstract: `formula.functionList.ROW.abstract`, functionParameter: [{ name: `formula.functionList.ROW.functionParameter.reference.name`, detail: `formula.functionList.ROW.functionParameter.reference.detail`, example: `A1`, require: 0, repeat: 0 }] }, { functionName: G3.ROWS, functionType: Dt2.Lookup, description: `formula.functionList.ROWS.description`, abstract: `formula.functionList.ROWS.abstract`, functionParameter: [{ name: `formula.functionList.ROWS.functionParameter.array.name`, detail: `formula.functionList.ROWS.functionParameter.array.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.RTD, functionType: Dt2.Lookup, description: `formula.functionList.RTD.description`, abstract: `formula.functionList.RTD.abstract`, functionParameter: [{ name: `formula.functionList.RTD.functionParameter.number1.name`, detail: `formula.functionList.RTD.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.RTD.functionParameter.number2.name`, detail: `formula.functionList.RTD.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: G3.SORT, functionType: Dt2.Lookup, description: `formula.functionList.SORT.description`, abstract: `formula.functionList.SORT.abstract`, functionParameter: [{ name: `formula.functionList.SORT.functionParameter.array.name`, detail: `formula.functionList.SORT.functionParameter.array.detail`, example: `A2:A17`, require: 1, repeat: 0 }, { name: `formula.functionList.SORT.functionParameter.sortIndex.name`, detail: `formula.functionList.SORT.functionParameter.sortIndex.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.SORT.functionParameter.sortOrder.name`, detail: `formula.functionList.SORT.functionParameter.sortOrder.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.SORT.functionParameter.byCol.name`, detail: `formula.functionList.SORT.functionParameter.byCol.detail`, example: `false`, require: 0, repeat: 0 }] }, { functionName: G3.SORTBY, functionType: Dt2.Lookup, description: `formula.functionList.SORTBY.description`, abstract: `formula.functionList.SORTBY.abstract`, functionParameter: [{ name: `formula.functionList.SORTBY.functionParameter.array.name`, detail: `formula.functionList.SORTBY.functionParameter.array.detail`, example: `D2:D9`, require: 1, repeat: 0 }, { name: `formula.functionList.SORTBY.functionParameter.byArray1.name`, detail: `formula.functionList.SORTBY.functionParameter.byArray1.detail`, example: `E2:E9`, require: 1, repeat: 0 }, { name: `formula.functionList.SORTBY.functionParameter.sortOrder1.name`, detail: `formula.functionList.SORTBY.functionParameter.sortOrder1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.SORTBY.functionParameter.byArray2.name`, detail: `formula.functionList.SORTBY.functionParameter.byArray2.detail`, example: `E2:E9`, require: 0, repeat: 1 }, { name: `formula.functionList.SORTBY.functionParameter.sortOrder2.name`, detail: `formula.functionList.SORTBY.functionParameter.sortOrder2.detail`, example: `1`, require: 0, repeat: 1 }] }, { functionName: G3.TAKE, functionType: Dt2.Lookup, description: `formula.functionList.TAKE.description`, abstract: `formula.functionList.TAKE.abstract`, functionParameter: [{ name: `formula.functionList.TAKE.functionParameter.array.name`, detail: `formula.functionList.TAKE.functionParameter.array.detail`, example: `A2:C4`, require: 1, repeat: 0 }, { name: `formula.functionList.TAKE.functionParameter.rows.name`, detail: `formula.functionList.TAKE.functionParameter.rows.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.TAKE.functionParameter.columns.name`, detail: `formula.functionList.TAKE.functionParameter.columns.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: G3.TOCOL, functionType: Dt2.Lookup, description: `formula.functionList.TOCOL.description`, abstract: `formula.functionList.TOCOL.abstract`, functionParameter: [{ name: `formula.functionList.TOCOL.functionParameter.array.name`, detail: `formula.functionList.TOCOL.functionParameter.array.detail`, example: `A2:D4`, require: 1, repeat: 0 }, { name: `formula.functionList.TOCOL.functionParameter.ignore.name`, detail: `formula.functionList.TOCOL.functionParameter.ignore.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TOCOL.functionParameter.scanByColumn.name`, detail: `formula.functionList.TOCOL.functionParameter.scanByColumn.detail`, example: `TRUE`, require: 0, repeat: 0 }] }, { functionName: G3.TOROW, functionType: Dt2.Lookup, description: `formula.functionList.TOROW.description`, abstract: `formula.functionList.TOROW.abstract`, functionParameter: [{ name: `formula.functionList.TOROW.functionParameter.array.name`, detail: `formula.functionList.TOROW.functionParameter.array.detail`, example: `A2:D4`, require: 1, repeat: 0 }, { name: `formula.functionList.TOROW.functionParameter.ignore.name`, detail: `formula.functionList.TOROW.functionParameter.ignore.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TOROW.functionParameter.scanByColumn.name`, detail: `formula.functionList.TOROW.functionParameter.scanByColumn.detail`, example: `TRUE`, require: 0, repeat: 0 }] }, { functionName: G3.TRANSPOSE, functionType: Dt2.Lookup, description: `formula.functionList.TRANSPOSE.description`, abstract: `formula.functionList.TRANSPOSE.abstract`, functionParameter: [{ name: `formula.functionList.TRANSPOSE.functionParameter.array.name`, detail: `formula.functionList.TRANSPOSE.functionParameter.array.detail`, example: `A2:F9`, require: 1, repeat: 0 }] }, { functionName: G3.UNIQUE, functionType: Dt2.Lookup, description: `formula.functionList.UNIQUE.description`, abstract: `formula.functionList.UNIQUE.abstract`, functionParameter: [{ name: `formula.functionList.UNIQUE.functionParameter.array.name`, detail: `formula.functionList.UNIQUE.functionParameter.array.detail`, example: `A2:A12`, require: 1, repeat: 0 }, { name: `formula.functionList.UNIQUE.functionParameter.byCol.name`, detail: `formula.functionList.UNIQUE.functionParameter.byCol.detail`, example: `false`, require: 0, repeat: 0 }, { name: `formula.functionList.UNIQUE.functionParameter.exactlyOnce.name`, detail: `formula.functionList.UNIQUE.functionParameter.exactlyOnce.detail`, example: `false`, require: 0, repeat: 0 }] }, { functionName: G3.VLOOKUP, functionType: Dt2.Lookup, description: `formula.functionList.VLOOKUP.description`, abstract: `formula.functionList.VLOOKUP.abstract`, functionParameter: [{ name: `formula.functionList.VLOOKUP.functionParameter.lookupValue.name`, detail: `formula.functionList.VLOOKUP.functionParameter.lookupValue.detail`, example: `B2`, require: 1, repeat: 0 }, { name: `formula.functionList.VLOOKUP.functionParameter.tableArray.name`, detail: `formula.functionList.VLOOKUP.functionParameter.tableArray.detail`, example: `C2:E7`, require: 1, repeat: 0 }, { name: `formula.functionList.VLOOKUP.functionParameter.colIndexNum.name`, detail: `formula.functionList.VLOOKUP.functionParameter.colIndexNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VLOOKUP.functionParameter.rangeLookup.name`, detail: `formula.functionList.VLOOKUP.functionParameter.rangeLookup.detail`, example: `TRUE`, require: 0, repeat: 0 }] }, { functionName: G3.VSTACK, functionType: Dt2.Lookup, description: `formula.functionList.VSTACK.description`, abstract: `formula.functionList.VSTACK.abstract`, functionParameter: [{ name: `formula.functionList.VSTACK.functionParameter.array1.name`, detail: `formula.functionList.VSTACK.functionParameter.array1.detail`, example: `A2:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.VSTACK.functionParameter.array2.name`, detail: `formula.functionList.VSTACK.functionParameter.array2.detail`, example: `E2:G3`, require: 0, repeat: 1 }] }, { functionName: G3.WRAPCOLS, functionType: Dt2.Lookup, description: `formula.functionList.WRAPCOLS.description`, abstract: `formula.functionList.WRAPCOLS.abstract`, functionParameter: [{ name: `formula.functionList.WRAPCOLS.functionParameter.vector.name`, detail: `formula.functionList.WRAPCOLS.functionParameter.vector.detail`, example: `A2:G2`, require: 1, repeat: 0 }, { name: `formula.functionList.WRAPCOLS.functionParameter.wrapCount.name`, detail: `formula.functionList.WRAPCOLS.functionParameter.wrapCount.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.WRAPCOLS.functionParameter.padWith.name`, detail: `formula.functionList.WRAPCOLS.functionParameter.padWith.detail`, example: `"x"`, require: 0, repeat: 0 }] }, { functionName: G3.WRAPROWS, functionType: Dt2.Lookup, description: `formula.functionList.WRAPROWS.description`, abstract: `formula.functionList.WRAPROWS.abstract`, functionParameter: [{ name: `formula.functionList.WRAPROWS.functionParameter.vector.name`, detail: `formula.functionList.WRAPROWS.functionParameter.vector.detail`, example: `A2:G2`, require: 1, repeat: 0 }, { name: `formula.functionList.WRAPROWS.functionParameter.wrapCount.name`, detail: `formula.functionList.WRAPROWS.functionParameter.wrapCount.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.WRAPROWS.functionParameter.padWith.name`, detail: `formula.functionList.WRAPROWS.functionParameter.padWith.detail`, example: `"x"`, require: 0, repeat: 0 }] }, { functionName: G3.XLOOKUP, functionType: Dt2.Lookup, description: `formula.functionList.XLOOKUP.description`, abstract: `formula.functionList.XLOOKUP.abstract`, functionParameter: [{ name: `formula.functionList.XLOOKUP.functionParameter.lookupValue.name`, detail: `formula.functionList.XLOOKUP.functionParameter.lookupValue.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.XLOOKUP.functionParameter.lookupArray.name`, detail: `formula.functionList.XLOOKUP.functionParameter.lookupArray.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.XLOOKUP.functionParameter.returnArray.name`, detail: `formula.functionList.XLOOKUP.functionParameter.returnArray.detail`, example: `B1:B20`, require: 1, repeat: 0 }, { name: `formula.functionList.XLOOKUP.functionParameter.ifNotFound.name`, detail: `formula.functionList.XLOOKUP.functionParameter.ifNotFound.detail`, example: `default`, require: 0, repeat: 0 }, { name: `formula.functionList.XLOOKUP.functionParameter.matchMode.name`, detail: `formula.functionList.XLOOKUP.functionParameter.matchMode.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.XLOOKUP.functionParameter.searchMode.name`, detail: `formula.functionList.XLOOKUP.functionParameter.searchMode.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: G3.XMATCH, functionType: Dt2.Lookup, description: `formula.functionList.XMATCH.description`, abstract: `formula.functionList.XMATCH.abstract`, functionParameter: [{ name: `formula.functionList.XMATCH.functionParameter.lookupValue.name`, detail: `formula.functionList.XMATCH.functionParameter.lookupValue.detail`, example: `B1`, require: 1, repeat: 0 }, { name: `formula.functionList.XMATCH.functionParameter.lookupArray.name`, detail: `formula.functionList.XMATCH.functionParameter.lookupArray.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.XMATCH.functionParameter.matchMode.name`, detail: `formula.functionList.XMATCH.functionParameter.matchMode.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.XMATCH.functionParameter.searchMode.name`, detail: `formula.functionList.XMATCH.functionParameter.searchMode.detail`, example: `1`, require: 0, repeat: 0 }] }]; var di2 = [{ functionName: K3.ABS, functionType: Dt2.Math, description: `formula.functionList.ABS.description`, abstract: `formula.functionList.ABS.abstract`, functionParameter: [{ name: `formula.functionList.ABS.functionParameter.number.name`, detail: `formula.functionList.ABS.functionParameter.number.detail`, example: `-2`, require: 1, repeat: 0 }] }, { functionName: K3.ACOS, functionType: Dt2.Math, description: `formula.functionList.ACOS.description`, abstract: `formula.functionList.ACOS.abstract`, functionParameter: [{ name: `formula.functionList.ACOS.functionParameter.number.name`, detail: `formula.functionList.ACOS.functionParameter.number.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: K3.ACOSH, functionType: Dt2.Math, description: `formula.functionList.ACOSH.description`, abstract: `formula.functionList.ACOSH.abstract`, functionParameter: [{ name: `formula.functionList.ACOSH.functionParameter.number.name`, detail: `formula.functionList.ACOSH.functionParameter.number.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.ACOT, functionType: Dt2.Math, description: `formula.functionList.ACOT.description`, abstract: `formula.functionList.ACOT.abstract`, functionParameter: [{ name: `formula.functionList.ACOT.functionParameter.number.name`, detail: `formula.functionList.ACOT.functionParameter.number.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: K3.ACOTH, functionType: Dt2.Math, description: `formula.functionList.ACOTH.description`, abstract: `formula.functionList.ACOTH.abstract`, functionParameter: [{ name: `formula.functionList.ACOTH.functionParameter.number.name`, detail: `formula.functionList.ACOTH.functionParameter.number.detail`, example: `6`, require: 1, repeat: 0 }] }, { functionName: K3.AGGREGATE, functionType: Dt2.Math, description: `formula.functionList.AGGREGATE.description`, abstract: `formula.functionList.AGGREGATE.abstract`, functionParameter: [{ name: `formula.functionList.AGGREGATE.functionParameter.functionNum.name`, detail: `formula.functionList.AGGREGATE.functionParameter.functionNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.AGGREGATE.functionParameter.options.name`, detail: `formula.functionList.AGGREGATE.functionParameter.options.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.AGGREGATE.functionParameter.ref1.name`, detail: `formula.functionList.AGGREGATE.functionParameter.ref1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AGGREGATE.functionParameter.ref2.name`, detail: `formula.functionList.AGGREGATE.functionParameter.ref2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: K3.ARABIC, functionType: Dt2.Math, description: `formula.functionList.ARABIC.description`, abstract: `formula.functionList.ARABIC.abstract`, functionParameter: [{ name: `formula.functionList.ARABIC.functionParameter.text.name`, detail: `formula.functionList.ARABIC.functionParameter.text.detail`, example: `"LVII"`, require: 1, repeat: 0 }] }, { functionName: K3.ASIN, functionType: Dt2.Math, description: `formula.functionList.ASIN.description`, abstract: `formula.functionList.ASIN.abstract`, functionParameter: [{ name: `formula.functionList.ASIN.functionParameter.number.name`, detail: `formula.functionList.ASIN.functionParameter.number.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: K3.ASINH, functionType: Dt2.Math, description: `formula.functionList.ASINH.description`, abstract: `formula.functionList.ASINH.abstract`, functionParameter: [{ name: `formula.functionList.ASINH.functionParameter.number.name`, detail: `formula.functionList.ASINH.functionParameter.number.detail`, example: `10`, require: 1, repeat: 0 }] }, { functionName: K3.ATAN, functionType: Dt2.Math, description: `formula.functionList.ATAN.description`, abstract: `formula.functionList.ATAN.abstract`, functionParameter: [{ name: `formula.functionList.ATAN.functionParameter.number.name`, detail: `formula.functionList.ATAN.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.ATAN2, functionType: Dt2.Math, description: `formula.functionList.ATAN2.description`, abstract: `formula.functionList.ATAN2.abstract`, functionParameter: [{ name: `formula.functionList.ATAN2.functionParameter.xNum.name`, detail: `formula.functionList.ATAN2.functionParameter.xNum.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.ATAN2.functionParameter.yNum.name`, detail: `formula.functionList.ATAN2.functionParameter.yNum.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: K3.ATANH, functionType: Dt2.Math, description: `formula.functionList.ATANH.description`, abstract: `formula.functionList.ATANH.abstract`, functionParameter: [{ name: `formula.functionList.ATANH.functionParameter.number.name`, detail: `formula.functionList.ATANH.functionParameter.number.detail`, example: `0.1`, require: 1, repeat: 0 }] }, { functionName: K3.BASE, functionType: Dt2.Math, description: `formula.functionList.BASE.description`, abstract: `formula.functionList.BASE.abstract`, functionParameter: [{ name: `formula.functionList.BASE.functionParameter.number.name`, detail: `formula.functionList.BASE.functionParameter.number.detail`, example: `15`, require: 1, repeat: 0 }, { name: `formula.functionList.BASE.functionParameter.radix.name`, detail: `formula.functionList.BASE.functionParameter.radix.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.BASE.functionParameter.minLength.name`, detail: `formula.functionList.BASE.functionParameter.minLength.detail`, example: `10`, require: 0, repeat: 0 }] }, { functionName: K3.CEILING, functionType: Dt2.Math, description: `formula.functionList.CEILING.description`, abstract: `formula.functionList.CEILING.abstract`, functionParameter: [{ name: `formula.functionList.CEILING.functionParameter.number.name`, detail: `formula.functionList.CEILING.functionParameter.number.detail`, example: `2.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CEILING.functionParameter.significance.name`, detail: `formula.functionList.CEILING.functionParameter.significance.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.CEILING_MATH, functionType: Dt2.Math, description: `formula.functionList.CEILING_MATH.description`, abstract: `formula.functionList.CEILING_MATH.abstract`, functionParameter: [{ name: `formula.functionList.CEILING_MATH.functionParameter.number.name`, detail: `formula.functionList.CEILING_MATH.functionParameter.number.detail`, example: `-5.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CEILING_MATH.functionParameter.significance.name`, detail: `formula.functionList.CEILING_MATH.functionParameter.significance.detail`, example: `2`, require: 0, repeat: 0 }, { name: `formula.functionList.CEILING_MATH.functionParameter.mode.name`, detail: `formula.functionList.CEILING_MATH.functionParameter.mode.detail`, example: `-1`, require: 0, repeat: 0 }] }, { functionName: K3.CEILING_PRECISE, functionType: Dt2.Math, description: `formula.functionList.CEILING_PRECISE.description`, abstract: `formula.functionList.CEILING_PRECISE.abstract`, functionParameter: [{ name: `formula.functionList.CEILING_PRECISE.functionParameter.number.name`, detail: `formula.functionList.CEILING_PRECISE.functionParameter.number.detail`, example: `4.3`, require: 1, repeat: 0 }, { name: `formula.functionList.CEILING_PRECISE.functionParameter.significance.name`, detail: `formula.functionList.CEILING_PRECISE.functionParameter.significance.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: K3.COMBIN, functionType: Dt2.Math, description: `formula.functionList.COMBIN.description`, abstract: `formula.functionList.COMBIN.abstract`, functionParameter: [{ name: `formula.functionList.COMBIN.functionParameter.number.name`, detail: `formula.functionList.COMBIN.functionParameter.number.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.COMBIN.functionParameter.numberChosen.name`, detail: `formula.functionList.COMBIN.functionParameter.numberChosen.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.COMBINA, functionType: Dt2.Math, description: `formula.functionList.COMBINA.description`, abstract: `formula.functionList.COMBINA.abstract`, functionParameter: [{ name: `formula.functionList.COMBINA.functionParameter.number.name`, detail: `formula.functionList.COMBINA.functionParameter.number.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.COMBINA.functionParameter.numberChosen.name`, detail: `formula.functionList.COMBINA.functionParameter.numberChosen.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.COS, functionType: Dt2.Math, description: `formula.functionList.COS.description`, abstract: `formula.functionList.COS.abstract`, functionParameter: [{ name: `formula.functionList.COS.functionParameter.number.name`, detail: `formula.functionList.COS.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.COSH, functionType: Dt2.Math, description: `formula.functionList.COSH.description`, abstract: `formula.functionList.COSH.abstract`, functionParameter: [{ name: `formula.functionList.COSH.functionParameter.number.name`, detail: `formula.functionList.COSH.functionParameter.number.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: K3.COT, functionType: Dt2.Math, description: `formula.functionList.COT.description`, abstract: `formula.functionList.COT.abstract`, functionParameter: [{ name: `formula.functionList.COT.functionParameter.number.name`, detail: `formula.functionList.COT.functionParameter.number.detail`, example: `30`, require: 1, repeat: 0 }] }, { functionName: K3.COTH, functionType: Dt2.Math, description: `formula.functionList.COTH.description`, abstract: `formula.functionList.COTH.abstract`, functionParameter: [{ name: `formula.functionList.COTH.functionParameter.number.name`, detail: `formula.functionList.COTH.functionParameter.number.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.CSC, functionType: Dt2.Math, description: `formula.functionList.CSC.description`, abstract: `formula.functionList.CSC.abstract`, functionParameter: [{ name: `formula.functionList.CSC.functionParameter.number.name`, detail: `formula.functionList.CSC.functionParameter.number.detail`, example: `15`, require: 1, repeat: 0 }] }, { functionName: K3.CSCH, functionType: Dt2.Math, description: `formula.functionList.CSCH.description`, abstract: `formula.functionList.CSCH.abstract`, functionParameter: [{ name: `formula.functionList.CSCH.functionParameter.number.name`, detail: `formula.functionList.CSCH.functionParameter.number.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: K3.DECIMAL, functionType: Dt2.Math, description: `formula.functionList.DECIMAL.description`, abstract: `formula.functionList.DECIMAL.abstract`, functionParameter: [{ name: `formula.functionList.DECIMAL.functionParameter.text.name`, detail: `formula.functionList.DECIMAL.functionParameter.text.detail`, example: `"FF"`, require: 1, repeat: 0 }, { name: `formula.functionList.DECIMAL.functionParameter.radix.name`, detail: `formula.functionList.DECIMAL.functionParameter.radix.detail`, example: `16`, require: 1, repeat: 0 }] }, { functionName: K3.DEGREES, functionType: Dt2.Math, description: `formula.functionList.DEGREES.description`, abstract: `formula.functionList.DEGREES.abstract`, functionParameter: [{ name: `formula.functionList.DEGREES.functionParameter.angle.name`, detail: `formula.functionList.DEGREES.functionParameter.angle.detail`, example: `PI()`, require: 1, repeat: 0 }] }, { functionName: K3.EVEN, functionType: Dt2.Math, description: `formula.functionList.EVEN.description`, abstract: `formula.functionList.EVEN.abstract`, functionParameter: [{ name: `formula.functionList.EVEN.functionParameter.number.name`, detail: `formula.functionList.EVEN.functionParameter.number.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: K3.EXP, functionType: Dt2.Math, description: `formula.functionList.EXP.description`, abstract: `formula.functionList.EXP.abstract`, functionParameter: [{ name: `formula.functionList.EXP.functionParameter.number.name`, detail: `formula.functionList.EXP.functionParameter.number.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.FACT, functionType: Dt2.Math, description: `formula.functionList.FACT.description`, abstract: `formula.functionList.FACT.abstract`, functionParameter: [{ name: `formula.functionList.FACT.functionParameter.number.name`, detail: `formula.functionList.FACT.functionParameter.number.detail`, example: `5`, require: 1, repeat: 0 }] }, { functionName: K3.FACTDOUBLE, functionType: Dt2.Math, description: `formula.functionList.FACTDOUBLE.description`, abstract: `formula.functionList.FACTDOUBLE.abstract`, functionParameter: [{ name: `formula.functionList.FACTDOUBLE.functionParameter.number.name`, detail: `formula.functionList.FACTDOUBLE.functionParameter.number.detail`, example: `6`, require: 1, repeat: 0 }] }, { functionName: K3.FLOOR, functionType: Dt2.Math, description: `formula.functionList.FLOOR.description`, abstract: `formula.functionList.FLOOR.abstract`, functionParameter: [{ name: `formula.functionList.FLOOR.functionParameter.number.name`, detail: `formula.functionList.FLOOR.functionParameter.number.detail`, example: `3.7`, require: 1, repeat: 0 }, { name: `formula.functionList.FLOOR.functionParameter.significance.name`, detail: `formula.functionList.FLOOR.functionParameter.significance.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.FLOOR_MATH, functionType: Dt2.Math, description: `formula.functionList.FLOOR_MATH.description`, abstract: `formula.functionList.FLOOR_MATH.abstract`, functionParameter: [{ name: `formula.functionList.FLOOR_MATH.functionParameter.number.name`, detail: `formula.functionList.FLOOR_MATH.functionParameter.number.detail`, example: `-5.5`, require: 1, repeat: 0 }, { name: `formula.functionList.FLOOR_MATH.functionParameter.significance.name`, detail: `formula.functionList.FLOOR_MATH.functionParameter.significance.detail`, example: `2`, require: 0, repeat: 0 }, { name: `formula.functionList.FLOOR_MATH.functionParameter.mode.name`, detail: `formula.functionList.FLOOR_MATH.functionParameter.mode.detail`, example: `-1`, require: 0, repeat: 0 }] }, { functionName: K3.FLOOR_PRECISE, functionType: Dt2.Math, description: `formula.functionList.FLOOR_PRECISE.description`, abstract: `formula.functionList.FLOOR_PRECISE.abstract`, functionParameter: [{ name: `formula.functionList.FLOOR_PRECISE.functionParameter.number.name`, detail: `formula.functionList.FLOOR_PRECISE.functionParameter.number.detail`, example: `-3.2`, require: 1, repeat: 0 }, { name: `formula.functionList.FLOOR_PRECISE.functionParameter.significance.name`, detail: `formula.functionList.FLOOR_PRECISE.functionParameter.significance.detail`, example: `-1`, require: 0, repeat: 0 }] }, { functionName: K3.GCD, functionType: Dt2.Math, description: `formula.functionList.GCD.description`, abstract: `formula.functionList.GCD.abstract`, functionParameter: [{ name: `formula.functionList.GCD.functionParameter.number1.name`, detail: `formula.functionList.GCD.functionParameter.number1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.GCD.functionParameter.number2.name`, detail: `formula.functionList.GCD.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: K3.INT, functionType: Dt2.Math, description: `formula.functionList.INT.description`, abstract: `formula.functionList.INT.abstract`, functionParameter: [{ name: `formula.functionList.INT.functionParameter.number.name`, detail: `formula.functionList.INT.functionParameter.number.detail`, example: `8.9`, require: 1, repeat: 0 }] }, { functionName: K3.ISO_CEILING, functionType: Dt2.Math, description: `formula.functionList.ISO_CEILING.description`, abstract: `formula.functionList.ISO_CEILING.abstract`, functionParameter: [{ name: `formula.functionList.ISO_CEILING.functionParameter.number1.name`, detail: `formula.functionList.ISO_CEILING.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.ISO_CEILING.functionParameter.number2.name`, detail: `formula.functionList.ISO_CEILING.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: K3.LCM, functionType: Dt2.Math, description: `formula.functionList.LCM.description`, abstract: `formula.functionList.LCM.abstract`, functionParameter: [{ name: `formula.functionList.LCM.functionParameter.number1.name`, detail: `formula.functionList.LCM.functionParameter.number1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.LCM.functionParameter.number2.name`, detail: `formula.functionList.LCM.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: K3.LET, functionType: Dt2.Math, description: `formula.functionList.LET.description`, abstract: `formula.functionList.LET.abstract`, functionParameter: [{ name: `formula.functionList.LET.functionParameter.number1.name`, detail: `formula.functionList.LET.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.LET.functionParameter.number2.name`, detail: `formula.functionList.LET.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: K3.LN, functionType: Dt2.Math, description: `formula.functionList.LN.description`, abstract: `formula.functionList.LN.abstract`, functionParameter: [{ name: `formula.functionList.LN.functionParameter.number.name`, detail: `formula.functionList.LN.functionParameter.number.detail`, example: `EXP(3)`, require: 1, repeat: 0 }] }, { functionName: K3.LOG, functionType: Dt2.Math, description: `formula.functionList.LOG.description`, abstract: `formula.functionList.LOG.abstract`, functionParameter: [{ name: `formula.functionList.LOG.functionParameter.number.name`, detail: `formula.functionList.LOG.functionParameter.number.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.LOG.functionParameter.base.name`, detail: `formula.functionList.LOG.functionParameter.base.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: K3.LOG10, functionType: Dt2.Math, description: `formula.functionList.LOG10.description`, abstract: `formula.functionList.LOG10.abstract`, functionParameter: [{ name: `formula.functionList.LOG10.functionParameter.number.name`, detail: `formula.functionList.LOG10.functionParameter.number.detail`, example: `100000`, require: 1, repeat: 0 }] }, { functionName: K3.MDETERM, functionType: Dt2.Math, description: `formula.functionList.MDETERM.description`, abstract: `formula.functionList.MDETERM.abstract`, functionParameter: [{ name: `formula.functionList.MDETERM.functionParameter.array.name`, detail: `formula.functionList.MDETERM.functionParameter.array.detail`, example: `A1:C3`, require: 1, repeat: 0 }] }, { functionName: K3.MINVERSE, functionType: Dt2.Math, description: `formula.functionList.MINVERSE.description`, abstract: `formula.functionList.MINVERSE.abstract`, functionParameter: [{ name: `formula.functionList.MINVERSE.functionParameter.array.name`, detail: `formula.functionList.MINVERSE.functionParameter.array.detail`, example: `A1:C3`, require: 1, repeat: 0 }] }, { functionName: K3.MMULT, functionType: Dt2.Math, description: `formula.functionList.MMULT.description`, abstract: `formula.functionList.MMULT.abstract`, functionParameter: [{ name: `formula.functionList.MMULT.functionParameter.array1.name`, detail: `formula.functionList.MMULT.functionParameter.array1.detail`, example: `A2:B3`, require: 1, repeat: 0 }, { name: `formula.functionList.MMULT.functionParameter.array2.name`, detail: `formula.functionList.MMULT.functionParameter.array2.detail`, example: `A5:B6`, require: 1, repeat: 0 }] }, { functionName: K3.MOD, functionType: Dt2.Math, description: `formula.functionList.MOD.description`, abstract: `formula.functionList.MOD.abstract`, functionParameter: [{ name: `formula.functionList.MOD.functionParameter.number.name`, detail: `formula.functionList.MOD.functionParameter.number.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.MOD.functionParameter.divisor.name`, detail: `formula.functionList.MOD.functionParameter.divisor.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.MROUND, functionType: Dt2.Math, description: `formula.functionList.MROUND.description`, abstract: `formula.functionList.MROUND.abstract`, functionParameter: [{ name: `formula.functionList.MROUND.functionParameter.number.name`, detail: `formula.functionList.MROUND.functionParameter.number.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.MROUND.functionParameter.multiple.name`, detail: `formula.functionList.MROUND.functionParameter.multiple.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: K3.MULTINOMIAL, functionType: Dt2.Math, description: `formula.functionList.MULTINOMIAL.description`, abstract: `formula.functionList.MULTINOMIAL.abstract`, functionParameter: [{ name: `formula.functionList.MULTINOMIAL.functionParameter.number1.name`, detail: `formula.functionList.MULTINOMIAL.functionParameter.number1.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.MULTINOMIAL.functionParameter.number2.name`, detail: `formula.functionList.MULTINOMIAL.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: K3.MUNIT, functionType: Dt2.Math, description: `formula.functionList.MUNIT.description`, abstract: `formula.functionList.MUNIT.abstract`, functionParameter: [{ name: `formula.functionList.MUNIT.functionParameter.dimension.name`, detail: `formula.functionList.MUNIT.functionParameter.dimension.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: K3.ODD, functionType: Dt2.Math, description: `formula.functionList.ODD.description`, abstract: `formula.functionList.ODD.abstract`, functionParameter: [{ name: `formula.functionList.ODD.functionParameter.number.name`, detail: `formula.functionList.ODD.functionParameter.number.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: K3.PI, functionType: Dt2.Math, description: `formula.functionList.PI.description`, abstract: `formula.functionList.PI.abstract`, functionParameter: [] }, { functionName: K3.POWER, functionType: Dt2.Math, description: `formula.functionList.POWER.description`, abstract: `formula.functionList.POWER.abstract`, functionParameter: [{ name: `formula.functionList.POWER.functionParameter.number.name`, detail: `formula.functionList.POWER.functionParameter.number.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.POWER.functionParameter.power.name`, detail: `formula.functionList.POWER.functionParameter.power.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.PRODUCT, functionType: Dt2.Math, description: `formula.functionList.PRODUCT.description`, abstract: `formula.functionList.PRODUCT.abstract`, functionParameter: [{ name: `formula.functionList.PRODUCT.functionParameter.number1.name`, detail: `formula.functionList.PRODUCT.functionParameter.number1.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.PRODUCT.functionParameter.number2.name`, detail: `formula.functionList.PRODUCT.functionParameter.number2.detail`, example: `A2`, require: 0, repeat: 1 }] }, { functionName: K3.QUOTIENT, functionType: Dt2.Math, description: `formula.functionList.QUOTIENT.description`, abstract: `formula.functionList.QUOTIENT.abstract`, functionParameter: [{ name: `formula.functionList.QUOTIENT.functionParameter.numerator.name`, detail: `formula.functionList.QUOTIENT.functionParameter.numerator.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.QUOTIENT.functionParameter.denominator.name`, detail: `formula.functionList.QUOTIENT.functionParameter.denominator.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.RADIANS, functionType: Dt2.Math, description: `formula.functionList.RADIANS.description`, abstract: `formula.functionList.RADIANS.abstract`, functionParameter: [{ name: `formula.functionList.RADIANS.functionParameter.angle.name`, detail: `formula.functionList.RADIANS.functionParameter.angle.detail`, example: `270`, require: 1, repeat: 0 }] }, { functionName: K3.RAND, functionType: Dt2.Math, description: `formula.functionList.RAND.description`, abstract: `formula.functionList.RAND.abstract`, functionParameter: [] }, { functionName: K3.RANDARRAY, functionType: Dt2.Math, description: `formula.functionList.RANDARRAY.description`, abstract: `formula.functionList.RANDARRAY.abstract`, functionParameter: [{ name: `formula.functionList.RANDARRAY.functionParameter.rows.name`, detail: `formula.functionList.RANDARRAY.functionParameter.rows.detail`, example: `5`, require: 0, repeat: 0 }, { name: `formula.functionList.RANDARRAY.functionParameter.columns.name`, detail: `formula.functionList.RANDARRAY.functionParameter.columns.detail`, example: `3`, require: 0, repeat: 0 }, { name: `formula.functionList.RANDARRAY.functionParameter.min.name`, detail: `formula.functionList.RANDARRAY.functionParameter.min.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.RANDARRAY.functionParameter.max.name`, detail: `formula.functionList.RANDARRAY.functionParameter.max.detail`, example: `100`, require: 0, repeat: 0 }, { name: `formula.functionList.RANDARRAY.functionParameter.wholeNumber.name`, detail: `formula.functionList.RANDARRAY.functionParameter.wholeNumber.detail`, example: `TRUE`, require: 0, repeat: 0 }] }, { functionName: K3.RANDBETWEEN, functionType: Dt2.Math, description: `formula.functionList.RANDBETWEEN.description`, abstract: `formula.functionList.RANDBETWEEN.abstract`, functionParameter: [{ name: `formula.functionList.RANDBETWEEN.functionParameter.bottom.name`, detail: `formula.functionList.RANDBETWEEN.functionParameter.bottom.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.RANDBETWEEN.functionParameter.top.name`, detail: `formula.functionList.RANDBETWEEN.functionParameter.top.detail`, example: `100`, require: 1, repeat: 0 }] }, { functionName: K3.ROMAN, functionType: Dt2.Math, description: `formula.functionList.ROMAN.description`, abstract: `formula.functionList.ROMAN.abstract`, functionParameter: [{ name: `formula.functionList.ROMAN.functionParameter.number.name`, detail: `formula.functionList.ROMAN.functionParameter.number.detail`, example: `499`, require: 1, repeat: 0 }, { name: `formula.functionList.ROMAN.functionParameter.form.name`, detail: `formula.functionList.ROMAN.functionParameter.form.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: K3.ROUND, functionType: Dt2.Math, description: `formula.functionList.ROUND.description`, abstract: `formula.functionList.ROUND.abstract`, functionParameter: [{ name: `formula.functionList.ROUND.functionParameter.number.name`, detail: `formula.functionList.ROUND.functionParameter.number.detail`, example: `2.15`, require: 1, repeat: 0 }, { name: `formula.functionList.ROUND.functionParameter.numDigits.name`, detail: `formula.functionList.ROUND.functionParameter.numDigits.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.ROUNDBANK, functionType: Dt2.Math, description: `formula.functionList.ROUNDBANK.description`, abstract: `formula.functionList.ROUNDBANK.abstract`, functionParameter: [{ name: `formula.functionList.ROUNDBANK.functionParameter.number.name`, detail: `formula.functionList.ROUNDBANK.functionParameter.number.detail`, example: `2.345`, require: 1, repeat: 0 }, { name: `formula.functionList.ROUNDBANK.functionParameter.numDigits.name`, detail: `formula.functionList.ROUNDBANK.functionParameter.numDigits.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: K3.ROUNDDOWN, functionType: Dt2.Math, description: `formula.functionList.ROUNDDOWN.description`, abstract: `formula.functionList.ROUNDDOWN.abstract`, functionParameter: [{ name: `formula.functionList.ROUNDDOWN.functionParameter.number.name`, detail: `formula.functionList.ROUNDDOWN.functionParameter.number.detail`, example: `3.2`, require: 1, repeat: 0 }, { name: `formula.functionList.ROUNDDOWN.functionParameter.numDigits.name`, detail: `formula.functionList.ROUNDDOWN.functionParameter.numDigits.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: K3.ROUNDUP, functionType: Dt2.Math, description: `formula.functionList.ROUNDUP.description`, abstract: `formula.functionList.ROUNDUP.abstract`, functionParameter: [{ name: `formula.functionList.ROUNDUP.functionParameter.number.name`, detail: `formula.functionList.ROUNDUP.functionParameter.number.detail`, example: `3.2`, require: 1, repeat: 0 }, { name: `formula.functionList.ROUNDUP.functionParameter.numDigits.name`, detail: `formula.functionList.ROUNDUP.functionParameter.numDigits.detail`, example: `0`, require: 1, repeat: 0 }] }, { functionName: K3.SEC, functionType: Dt2.Math, description: `formula.functionList.SEC.description`, abstract: `formula.functionList.SEC.abstract`, functionParameter: [{ name: `formula.functionList.SEC.functionParameter.number.name`, detail: `formula.functionList.SEC.functionParameter.number.detail`, example: `30`, require: 1, repeat: 0 }] }, { functionName: K3.SECH, functionType: Dt2.Math, description: `formula.functionList.SECH.description`, abstract: `formula.functionList.SECH.abstract`, functionParameter: [{ name: `formula.functionList.SECH.functionParameter.number.name`, detail: `formula.functionList.SECH.functionParameter.number.detail`, example: `30`, require: 1, repeat: 0 }] }, { functionName: K3.SERIESSUM, functionType: Dt2.Math, description: `formula.functionList.SERIESSUM.description`, abstract: `formula.functionList.SERIESSUM.abstract`, functionParameter: [{ name: `formula.functionList.SERIESSUM.functionParameter.x.name`, detail: `formula.functionList.SERIESSUM.functionParameter.x.detail`, example: `0.785398163`, require: 1, repeat: 0 }, { name: `formula.functionList.SERIESSUM.functionParameter.n.name`, detail: `formula.functionList.SERIESSUM.functionParameter.n.detail`, example: `0`, require: 1, repeat: 0 }, { name: `formula.functionList.SERIESSUM.functionParameter.m.name`, detail: `formula.functionList.SERIESSUM.functionParameter.m.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.SERIESSUM.functionParameter.coefficients.name`, detail: `formula.functionList.SERIESSUM.functionParameter.coefficients.detail`, example: `A1:A4`, require: 1, repeat: 0 }] }, { functionName: K3.SEQUENCE, functionType: Dt2.Math, description: `formula.functionList.SEQUENCE.description`, abstract: `formula.functionList.SEQUENCE.abstract`, functionParameter: [{ name: `formula.functionList.SEQUENCE.functionParameter.rows.name`, detail: `formula.functionList.SEQUENCE.functionParameter.rows.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.SEQUENCE.functionParameter.columns.name`, detail: `formula.functionList.SEQUENCE.functionParameter.columns.detail`, example: `5`, require: 0, repeat: 0 }, { name: `formula.functionList.SEQUENCE.functionParameter.start.name`, detail: `formula.functionList.SEQUENCE.functionParameter.start.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.SEQUENCE.functionParameter.step.name`, detail: `formula.functionList.SEQUENCE.functionParameter.step.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: K3.SIGN, functionType: Dt2.Math, description: `formula.functionList.SIGN.description`, abstract: `formula.functionList.SIGN.abstract`, functionParameter: [{ name: `formula.functionList.SIGN.functionParameter.number.name`, detail: `formula.functionList.SIGN.functionParameter.number.detail`, example: `10`, require: 1, repeat: 0 }] }, { functionName: K3.SIN, functionType: Dt2.Math, description: `formula.functionList.SIN.description`, abstract: `formula.functionList.SIN.abstract`, functionParameter: [{ name: `formula.functionList.SIN.functionParameter.number.name`, detail: `formula.functionList.SIN.functionParameter.number.detail`, example: `30*PI()/180`, require: 1, repeat: 0 }] }, { functionName: K3.SINH, functionType: Dt2.Math, description: `formula.functionList.SINH.description`, abstract: `formula.functionList.SINH.abstract`, functionParameter: [{ name: `formula.functionList.SINH.functionParameter.number.name`, detail: `formula.functionList.SINH.functionParameter.number.detail`, example: `0.0342*1.03`, require: 1, repeat: 0 }] }, { functionName: K3.SQRT, functionType: Dt2.Math, description: `formula.functionList.SQRT.description`, abstract: `formula.functionList.SQRT.abstract`, functionParameter: [{ name: `formula.functionList.SQRT.functionParameter.number.name`, detail: `formula.functionList.SQRT.functionParameter.number.detail`, example: `16`, require: 1, repeat: 0 }] }, { functionName: K3.SQRTPI, functionType: Dt2.Math, description: `formula.functionList.SQRTPI.description`, abstract: `formula.functionList.SQRTPI.abstract`, functionParameter: [{ name: `formula.functionList.SQRTPI.functionParameter.number.name`, detail: `formula.functionList.SQRTPI.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.SUBTOTAL, functionType: Dt2.Math, description: `formula.functionList.SUBTOTAL.description`, abstract: `formula.functionList.SUBTOTAL.abstract`, functionParameter: [{ name: `formula.functionList.SUBTOTAL.functionParameter.functionNum.name`, detail: `formula.functionList.SUBTOTAL.functionParameter.functionNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.SUBTOTAL.functionParameter.ref1.name`, detail: `formula.functionList.SUBTOTAL.functionParameter.ref1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.SUBTOTAL.functionParameter.ref2.name`, detail: `formula.functionList.SUBTOTAL.functionParameter.ref2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: K3.SUM, aliasFunctionName: `formula.functionList.SUM.aliasFunctionName`, functionType: Dt2.Math, description: `formula.functionList.SUM.description`, abstract: `formula.functionList.SUM.abstract`, functionParameter: [{ name: `formula.functionList.SUM.functionParameter.number1.name`, detail: `formula.functionList.SUM.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.SUM.functionParameter.number2.name`, detail: `formula.functionList.SUM.functionParameter.number2.detail`, example: `B2:B10`, require: 0, repeat: 1 }] }, { functionName: K3.SUMIF, aliasFunctionName: `formula.functionList.SUMIF.aliasFunctionName`, functionType: Dt2.Math, description: `formula.functionList.SUMIF.description`, abstract: `formula.functionList.SUMIF.abstract`, functionParameter: [{ name: `formula.functionList.SUMIF.functionParameter.range.name`, detail: `formula.functionList.SUMIF.functionParameter.range.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMIF.functionParameter.criteria.name`, detail: `formula.functionList.SUMIF.functionParameter.criteria.detail`, example: `">5"`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMIF.functionParameter.sumRange.name`, detail: `formula.functionList.SUMIF.functionParameter.sumRange.detail`, example: `B1:B20`, require: 0, repeat: 0 }] }, { functionName: K3.SUMIFS, functionType: Dt2.Math, description: `formula.functionList.SUMIFS.description`, abstract: `formula.functionList.SUMIFS.abstract`, functionParameter: [{ name: `formula.functionList.SUMIFS.functionParameter.sumRange.name`, detail: `formula.functionList.SUMIFS.functionParameter.sumRange.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMIFS.functionParameter.criteriaRange1.name`, detail: `formula.functionList.SUMIFS.functionParameter.criteriaRange1.detail`, example: `B1:B20`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMIFS.functionParameter.criteria1.name`, detail: `formula.functionList.SUMIFS.functionParameter.criteria1.detail`, example: `">10"`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMIFS.functionParameter.criteriaRange2.name`, detail: `formula.functionList.SUMIFS.functionParameter.criteriaRange2.detail`, example: `C1:C20`, require: 0, repeat: 1 }, { name: `formula.functionList.SUMIFS.functionParameter.criteria2.name`, detail: `formula.functionList.SUMIFS.functionParameter.criteria2.detail`, example: `"<20"`, require: 0, repeat: 1 }] }, { functionName: K3.SUMPRODUCT, functionType: Dt2.Math, description: `formula.functionList.SUMPRODUCT.description`, abstract: `formula.functionList.SUMPRODUCT.abstract`, functionParameter: [{ name: `formula.functionList.SUMPRODUCT.functionParameter.array1.name`, detail: `formula.functionList.SUMPRODUCT.functionParameter.array1.detail`, example: `C2:C5`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMPRODUCT.functionParameter.array2.name`, detail: `formula.functionList.SUMPRODUCT.functionParameter.array2.detail`, example: `D2:D5`, require: 0, repeat: 1 }] }, { functionName: K3.SUMSQ, functionType: Dt2.Math, description: `formula.functionList.SUMSQ.description`, abstract: `formula.functionList.SUMSQ.abstract`, functionParameter: [{ name: `formula.functionList.SUMSQ.functionParameter.number1.name`, detail: `formula.functionList.SUMSQ.functionParameter.number1.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMSQ.functionParameter.number2.name`, detail: `formula.functionList.SUMSQ.functionParameter.number2.detail`, example: `4`, require: 0, repeat: 1 }] }, { functionName: K3.SUMX2MY2, functionType: Dt2.Math, description: `formula.functionList.SUMX2MY2.description`, abstract: `formula.functionList.SUMX2MY2.abstract`, functionParameter: [{ name: `formula.functionList.SUMX2MY2.functionParameter.arrayX.name`, detail: `formula.functionList.SUMX2MY2.functionParameter.arrayX.detail`, example: `A2:A8`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMX2MY2.functionParameter.arrayY.name`, detail: `formula.functionList.SUMX2MY2.functionParameter.arrayY.detail`, example: `B2:B8`, require: 1, repeat: 0 }] }, { functionName: K3.SUMX2PY2, functionType: Dt2.Math, description: `formula.functionList.SUMX2PY2.description`, abstract: `formula.functionList.SUMX2PY2.abstract`, functionParameter: [{ name: `formula.functionList.SUMX2PY2.functionParameter.arrayX.name`, detail: `formula.functionList.SUMX2PY2.functionParameter.arrayX.detail`, example: `A2:A8`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMX2PY2.functionParameter.arrayY.name`, detail: `formula.functionList.SUMX2PY2.functionParameter.arrayY.detail`, example: `B2:B8`, require: 1, repeat: 0 }] }, { functionName: K3.SUMXMY2, functionType: Dt2.Math, description: `formula.functionList.SUMXMY2.description`, abstract: `formula.functionList.SUMXMY2.abstract`, functionParameter: [{ name: `formula.functionList.SUMXMY2.functionParameter.arrayX.name`, detail: `formula.functionList.SUMXMY2.functionParameter.arrayX.detail`, example: `A2:A8`, require: 1, repeat: 0 }, { name: `formula.functionList.SUMXMY2.functionParameter.arrayY.name`, detail: `formula.functionList.SUMXMY2.functionParameter.arrayY.detail`, example: `B2:B8`, require: 1, repeat: 0 }] }, { functionName: K3.TAN, functionType: Dt2.Math, description: `formula.functionList.TAN.description`, abstract: `formula.functionList.TAN.abstract`, functionParameter: [{ name: `formula.functionList.TAN.functionParameter.number.name`, detail: `formula.functionList.TAN.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.TANH, functionType: Dt2.Math, description: `formula.functionList.TANH.description`, abstract: `formula.functionList.TANH.abstract`, functionParameter: [{ name: `formula.functionList.TANH.functionParameter.number.name`, detail: `formula.functionList.TANH.functionParameter.number.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: K3.TRUNC, functionType: Dt2.Math, description: `formula.functionList.TRUNC.description`, abstract: `formula.functionList.TRUNC.abstract`, functionParameter: [{ name: `formula.functionList.TRUNC.functionParameter.number.name`, detail: `formula.functionList.TRUNC.functionParameter.number.detail`, example: `0.45`, require: 1, repeat: 0 }, { name: `formula.functionList.TRUNC.functionParameter.numDigits.name`, detail: `formula.functionList.TRUNC.functionParameter.numDigits.detail`, example: `1`, require: 0, repeat: 0 }] }]; var fi3 = [{ functionName: q3.AVEDEV, functionType: Dt2.Statistical, description: `formula.functionList.AVEDEV.description`, abstract: `formula.functionList.AVEDEV.abstract`, functionParameter: [{ name: `formula.functionList.AVEDEV.functionParameter.number1.name`, detail: `formula.functionList.AVEDEV.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVEDEV.functionParameter.number2.name`, detail: `formula.functionList.AVEDEV.functionParameter.number2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: q3.AVERAGE, aliasFunctionName: `formula.functionList.AVERAGE.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.AVERAGE.description`, abstract: `formula.functionList.AVERAGE.abstract`, functionParameter: [{ name: `formula.functionList.AVERAGE.functionParameter.number1.name`, detail: `formula.functionList.AVERAGE.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGE.functionParameter.number2.name`, detail: `formula.functionList.AVERAGE.functionParameter.number2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: q3.AVERAGE_WEIGHTED, aliasFunctionName: `formula.functionList.AVERAGE_WEIGHTED.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.AVERAGE_WEIGHTED.description`, abstract: `formula.functionList.AVERAGE_WEIGHTED.abstract`, functionParameter: [{ name: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.values.name`, detail: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.values.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.weights.name`, detail: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.weights.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.additionalValues.name`, detail: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.additionalValues.detail`, example: `20`, require: 0, repeat: 1 }, { name: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.additionalWeights.name`, detail: `formula.functionList.AVERAGE_WEIGHTED.functionParameter.additionalWeights.detail`, example: `3`, require: 0, repeat: 1 }] }, { functionName: q3.AVERAGEA, functionType: Dt2.Statistical, description: `formula.functionList.AVERAGEA.description`, abstract: `formula.functionList.AVERAGEA.abstract`, functionParameter: [{ name: `formula.functionList.AVERAGEA.functionParameter.value1.name`, detail: `formula.functionList.AVERAGEA.functionParameter.value1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEA.functionParameter.value2.name`, detail: `formula.functionList.AVERAGEA.functionParameter.value2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: q3.AVERAGEIF, functionType: Dt2.Statistical, description: `formula.functionList.AVERAGEIF.description`, abstract: `formula.functionList.AVERAGEIF.abstract`, functionParameter: [{ name: `formula.functionList.AVERAGEIF.functionParameter.range.name`, detail: `formula.functionList.AVERAGEIF.functionParameter.range.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEIF.functionParameter.criteria.name`, detail: `formula.functionList.AVERAGEIF.functionParameter.criteria.detail`, example: `">5"`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEIF.functionParameter.averageRange.name`, detail: `formula.functionList.AVERAGEIF.functionParameter.averageRange.detail`, example: `B1:B20`, require: 0, repeat: 0 }] }, { functionName: q3.AVERAGEIFS, functionType: Dt2.Statistical, description: `formula.functionList.AVERAGEIFS.description`, abstract: `formula.functionList.AVERAGEIFS.abstract`, functionParameter: [{ name: `formula.functionList.AVERAGEIFS.functionParameter.averageRange.name`, detail: `formula.functionList.AVERAGEIFS.functionParameter.averageRange.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEIFS.functionParameter.criteriaRange1.name`, detail: `formula.functionList.AVERAGEIFS.functionParameter.criteriaRange1.detail`, example: `B1:B20`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEIFS.functionParameter.criteria1.name`, detail: `formula.functionList.AVERAGEIFS.functionParameter.criteria1.detail`, example: `">10"`, require: 1, repeat: 0 }, { name: `formula.functionList.AVERAGEIFS.functionParameter.criteriaRange2.name`, detail: `formula.functionList.AVERAGEIFS.functionParameter.criteriaRange2.detail`, example: `C1:C20`, require: 0, repeat: 1 }, { name: `formula.functionList.AVERAGEIFS.functionParameter.criteria2.name`, detail: `formula.functionList.AVERAGEIFS.functionParameter.criteria2.detail`, example: `"<20"`, require: 0, repeat: 1 }] }, { functionName: q3.BETA_DIST, functionType: Dt2.Statistical, description: `formula.functionList.BETA_DIST.description`, abstract: `formula.functionList.BETA_DIST.abstract`, functionParameter: [{ name: `formula.functionList.BETA_DIST.functionParameter.x.name`, detail: `formula.functionList.BETA_DIST.functionParameter.x.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_DIST.functionParameter.alpha.name`, detail: `formula.functionList.BETA_DIST.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_DIST.functionParameter.beta.name`, detail: `formula.functionList.BETA_DIST.functionParameter.beta.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.BETA_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_DIST.functionParameter.A.name`, detail: `formula.functionList.BETA_DIST.functionParameter.A.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.BETA_DIST.functionParameter.B.name`, detail: `formula.functionList.BETA_DIST.functionParameter.B.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: q3.BETA_INV, functionType: Dt2.Statistical, description: `formula.functionList.BETA_INV.description`, abstract: `formula.functionList.BETA_INV.abstract`, functionParameter: [{ name: `formula.functionList.BETA_INV.functionParameter.probability.name`, detail: `formula.functionList.BETA_INV.functionParameter.probability.detail`, example: `0.685470581`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_INV.functionParameter.alpha.name`, detail: `formula.functionList.BETA_INV.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_INV.functionParameter.beta.name`, detail: `formula.functionList.BETA_INV.functionParameter.beta.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BETA_INV.functionParameter.A.name`, detail: `formula.functionList.BETA_INV.functionParameter.A.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.BETA_INV.functionParameter.B.name`, detail: `formula.functionList.BETA_INV.functionParameter.B.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: q3.BINOM_DIST, functionType: Dt2.Statistical, description: `formula.functionList.BINOM_DIST.description`, abstract: `formula.functionList.BINOM_DIST.abstract`, functionParameter: [{ name: `formula.functionList.BINOM_DIST.functionParameter.numberS.name`, detail: `formula.functionList.BINOM_DIST.functionParameter.numberS.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST.functionParameter.trials.name`, detail: `formula.functionList.BINOM_DIST.functionParameter.trials.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST.functionParameter.probabilityS.name`, detail: `formula.functionList.BINOM_DIST.functionParameter.probabilityS.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.BINOM_DIST.functionParameter.cumulative.detail`, example: `false`, require: 1, repeat: 0 }] }, { functionName: q3.BINOM_DIST_RANGE, functionType: Dt2.Statistical, description: `formula.functionList.BINOM_DIST_RANGE.description`, abstract: `formula.functionList.BINOM_DIST_RANGE.abstract`, functionParameter: [{ name: `formula.functionList.BINOM_DIST_RANGE.functionParameter.trials.name`, detail: `formula.functionList.BINOM_DIST_RANGE.functionParameter.trials.detail`, example: `60`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST_RANGE.functionParameter.probabilityS.name`, detail: `formula.functionList.BINOM_DIST_RANGE.functionParameter.probabilityS.detail`, example: `0.75`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST_RANGE.functionParameter.numberS.name`, detail: `formula.functionList.BINOM_DIST_RANGE.functionParameter.numberS.detail`, example: `45`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_DIST_RANGE.functionParameter.numberS2.name`, detail: `formula.functionList.BINOM_DIST_RANGE.functionParameter.numberS2.detail`, example: `50`, require: 0, repeat: 0 }] }, { functionName: q3.BINOM_INV, functionType: Dt2.Statistical, description: `formula.functionList.BINOM_INV.description`, abstract: `formula.functionList.BINOM_INV.abstract`, functionParameter: [{ name: `formula.functionList.BINOM_INV.functionParameter.trials.name`, detail: `formula.functionList.BINOM_INV.functionParameter.trials.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_INV.functionParameter.probabilityS.name`, detail: `formula.functionList.BINOM_INV.functionParameter.probabilityS.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.BINOM_INV.functionParameter.alpha.name`, detail: `formula.functionList.BINOM_INV.functionParameter.alpha.detail`, example: `0.75`, require: 1, repeat: 0 }] }, { functionName: q3.CHISQ_DIST, functionType: Dt2.Statistical, description: `formula.functionList.CHISQ_DIST.description`, abstract: `formula.functionList.CHISQ_DIST.abstract`, functionParameter: [{ name: `formula.functionList.CHISQ_DIST.functionParameter.x.name`, detail: `formula.functionList.CHISQ_DIST.functionParameter.x.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_DIST.functionParameter.degFreedom.name`, detail: `formula.functionList.CHISQ_DIST.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.CHISQ_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.CHISQ_DIST_RT, functionType: Dt2.Statistical, description: `formula.functionList.CHISQ_DIST_RT.description`, abstract: `formula.functionList.CHISQ_DIST_RT.abstract`, functionParameter: [{ name: `formula.functionList.CHISQ_DIST_RT.functionParameter.x.name`, detail: `formula.functionList.CHISQ_DIST_RT.functionParameter.x.detail`, example: `0.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_DIST_RT.functionParameter.degFreedom.name`, detail: `formula.functionList.CHISQ_DIST_RT.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.CHISQ_INV, functionType: Dt2.Statistical, description: `formula.functionList.CHISQ_INV.description`, abstract: `formula.functionList.CHISQ_INV.abstract`, functionParameter: [{ name: `formula.functionList.CHISQ_INV.functionParameter.probability.name`, detail: `formula.functionList.CHISQ_INV.functionParameter.probability.detail`, example: `0.93`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_INV.functionParameter.degFreedom.name`, detail: `formula.functionList.CHISQ_INV.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.CHISQ_INV_RT, functionType: Dt2.Statistical, description: `formula.functionList.CHISQ_INV_RT.description`, abstract: `formula.functionList.CHISQ_INV_RT.abstract`, functionParameter: [{ name: `formula.functionList.CHISQ_INV_RT.functionParameter.probability.name`, detail: `formula.functionList.CHISQ_INV_RT.functionParameter.probability.detail`, example: `0.93`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_INV_RT.functionParameter.degFreedom.name`, detail: `formula.functionList.CHISQ_INV_RT.functionParameter.degFreedom.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.CHISQ_TEST, functionType: Dt2.Statistical, description: `formula.functionList.CHISQ_TEST.description`, abstract: `formula.functionList.CHISQ_TEST.abstract`, functionParameter: [{ name: `formula.functionList.CHISQ_TEST.functionParameter.actualRange.name`, detail: `formula.functionList.CHISQ_TEST.functionParameter.actualRange.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.CHISQ_TEST.functionParameter.expectedRange.name`, detail: `formula.functionList.CHISQ_TEST.functionParameter.expectedRange.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.CONFIDENCE_NORM, functionType: Dt2.Statistical, description: `formula.functionList.CONFIDENCE_NORM.description`, abstract: `formula.functionList.CONFIDENCE_NORM.abstract`, functionParameter: [{ name: `formula.functionList.CONFIDENCE_NORM.functionParameter.alpha.name`, detail: `formula.functionList.CONFIDENCE_NORM.functionParameter.alpha.detail`, example: `0.05`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE_NORM.functionParameter.standardDev.name`, detail: `formula.functionList.CONFIDENCE_NORM.functionParameter.standardDev.detail`, example: `2.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE_NORM.functionParameter.size.name`, detail: `formula.functionList.CONFIDENCE_NORM.functionParameter.size.detail`, example: `50`, require: 1, repeat: 0 }] }, { functionName: q3.CONFIDENCE_T, functionType: Dt2.Statistical, description: `formula.functionList.CONFIDENCE_T.description`, abstract: `formula.functionList.CONFIDENCE_T.abstract`, functionParameter: [{ name: `formula.functionList.CONFIDENCE_T.functionParameter.alpha.name`, detail: `formula.functionList.CONFIDENCE_T.functionParameter.alpha.detail`, example: `0.05`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE_T.functionParameter.standardDev.name`, detail: `formula.functionList.CONFIDENCE_T.functionParameter.standardDev.detail`, example: `2.5`, require: 1, repeat: 0 }, { name: `formula.functionList.CONFIDENCE_T.functionParameter.size.name`, detail: `formula.functionList.CONFIDENCE_T.functionParameter.size.detail`, example: `50`, require: 1, repeat: 0 }] }, { functionName: q3.CORREL, functionType: Dt2.Statistical, description: `formula.functionList.CORREL.description`, abstract: `formula.functionList.CORREL.abstract`, functionParameter: [{ name: `formula.functionList.CORREL.functionParameter.array1.name`, detail: `formula.functionList.CORREL.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.CORREL.functionParameter.array2.name`, detail: `formula.functionList.CORREL.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.COUNT, aliasFunctionName: `formula.functionList.COUNT.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.COUNT.description`, abstract: `formula.functionList.COUNT.abstract`, functionParameter: [{ name: `formula.functionList.COUNT.functionParameter.value1.name`, detail: `formula.functionList.COUNT.functionParameter.value1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.COUNT.functionParameter.value2.name`, detail: `formula.functionList.COUNT.functionParameter.value2.detail`, example: `B2:B10`, require: 0, repeat: 1 }] }, { functionName: q3.COUNTA, aliasFunctionName: `formula.functionList.COUNTA.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.COUNTA.description`, abstract: `formula.functionList.COUNTA.abstract`, functionParameter: [{ name: `formula.functionList.COUNTA.functionParameter.number1.name`, detail: `formula.functionList.COUNTA.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.COUNTA.functionParameter.number2.name`, detail: `formula.functionList.COUNTA.functionParameter.number2.detail`, example: `B2:B10`, require: 0, repeat: 1 }] }, { functionName: q3.COUNTBLANK, functionType: Dt2.Statistical, description: `formula.functionList.COUNTBLANK.description`, abstract: `formula.functionList.COUNTBLANK.abstract`, functionParameter: [{ name: `formula.functionList.COUNTBLANK.functionParameter.range.name`, detail: `formula.functionList.COUNTBLANK.functionParameter.range.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: q3.COUNTIF, functionType: Dt2.Statistical, description: `formula.functionList.COUNTIF.description`, abstract: `formula.functionList.COUNTIF.abstract`, functionParameter: [{ name: `formula.functionList.COUNTIF.functionParameter.range.name`, detail: `formula.functionList.COUNTIF.functionParameter.range.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.COUNTIF.functionParameter.criteria.name`, detail: `formula.functionList.COUNTIF.functionParameter.criteria.detail`, example: `">5"`, require: 1, repeat: 0 }] }, { functionName: q3.COUNTIFS, functionType: Dt2.Statistical, description: `formula.functionList.COUNTIFS.description`, abstract: `formula.functionList.COUNTIFS.abstract`, functionParameter: [{ name: `formula.functionList.COUNTIFS.functionParameter.criteriaRange1.name`, detail: `formula.functionList.COUNTIFS.functionParameter.criteriaRange1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.COUNTIFS.functionParameter.criteria1.name`, detail: `formula.functionList.COUNTIFS.functionParameter.criteria1.detail`, example: `">10"`, require: 1, repeat: 0 }, { name: `formula.functionList.COUNTIFS.functionParameter.criteriaRange2.name`, detail: `formula.functionList.COUNTIFS.functionParameter.criteriaRange2.detail`, example: `B1:B20`, require: 0, repeat: 1 }, { name: `formula.functionList.COUNTIFS.functionParameter.criteria2.name`, detail: `formula.functionList.COUNTIFS.functionParameter.criteria2.detail`, example: `"<20"`, require: 0, repeat: 1 }] }, { functionName: q3.COVARIANCE_P, functionType: Dt2.Statistical, description: `formula.functionList.COVARIANCE_P.description`, abstract: `formula.functionList.COVARIANCE_P.abstract`, functionParameter: [{ name: `formula.functionList.COVARIANCE_P.functionParameter.array1.name`, detail: `formula.functionList.COVARIANCE_P.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.COVARIANCE_P.functionParameter.array2.name`, detail: `formula.functionList.COVARIANCE_P.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.COVARIANCE_S, functionType: Dt2.Statistical, description: `formula.functionList.COVARIANCE_S.description`, abstract: `formula.functionList.COVARIANCE_S.abstract`, functionParameter: [{ name: `formula.functionList.COVARIANCE_S.functionParameter.array1.name`, detail: `formula.functionList.COVARIANCE_S.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.COVARIANCE_S.functionParameter.array2.name`, detail: `formula.functionList.COVARIANCE_S.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.DEVSQ, functionType: Dt2.Statistical, description: `formula.functionList.DEVSQ.description`, abstract: `formula.functionList.DEVSQ.abstract`, functionParameter: [{ name: `formula.functionList.DEVSQ.functionParameter.number1.name`, detail: `formula.functionList.DEVSQ.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.DEVSQ.functionParameter.number2.name`, detail: `formula.functionList.DEVSQ.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.EXPON_DIST, functionType: Dt2.Statistical, description: `formula.functionList.EXPON_DIST.description`, abstract: `formula.functionList.EXPON_DIST.abstract`, functionParameter: [{ name: `formula.functionList.EXPON_DIST.functionParameter.x.name`, detail: `formula.functionList.EXPON_DIST.functionParameter.x.detail`, example: `0.2`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPON_DIST.functionParameter.lambda.name`, detail: `formula.functionList.EXPON_DIST.functionParameter.lambda.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.EXPON_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.EXPON_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.F_DIST, functionType: Dt2.Statistical, description: `formula.functionList.F_DIST.description`, abstract: `formula.functionList.F_DIST.abstract`, functionParameter: [{ name: `formula.functionList.F_DIST.functionParameter.x.name`, detail: `formula.functionList.F_DIST.functionParameter.x.detail`, example: `15.2069`, require: 1, repeat: 0 }, { name: `formula.functionList.F_DIST.functionParameter.degFreedom1.name`, detail: `formula.functionList.F_DIST.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.F_DIST.functionParameter.degFreedom2.name`, detail: `formula.functionList.F_DIST.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.F_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.F_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.F_DIST_RT, functionType: Dt2.Statistical, description: `formula.functionList.F_DIST_RT.description`, abstract: `formula.functionList.F_DIST_RT.abstract`, functionParameter: [{ name: `formula.functionList.F_DIST_RT.functionParameter.x.name`, detail: `formula.functionList.F_DIST_RT.functionParameter.x.detail`, example: `15.2069`, require: 1, repeat: 0 }, { name: `formula.functionList.F_DIST_RT.functionParameter.degFreedom1.name`, detail: `formula.functionList.F_DIST_RT.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.F_DIST_RT.functionParameter.degFreedom2.name`, detail: `formula.functionList.F_DIST_RT.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: q3.F_INV, functionType: Dt2.Statistical, description: `formula.functionList.F_INV.description`, abstract: `formula.functionList.F_INV.abstract`, functionParameter: [{ name: `formula.functionList.F_INV.functionParameter.probability.name`, detail: `formula.functionList.F_INV.functionParameter.probability.detail`, example: `0.01`, require: 1, repeat: 0 }, { name: `formula.functionList.F_INV.functionParameter.degFreedom1.name`, detail: `formula.functionList.F_INV.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.F_INV.functionParameter.degFreedom2.name`, detail: `formula.functionList.F_INV.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: q3.F_INV_RT, functionType: Dt2.Statistical, description: `formula.functionList.F_INV_RT.description`, abstract: `formula.functionList.F_INV_RT.abstract`, functionParameter: [{ name: `formula.functionList.F_INV_RT.functionParameter.probability.name`, detail: `formula.functionList.F_INV_RT.functionParameter.probability.detail`, example: `0.01`, require: 1, repeat: 0 }, { name: `formula.functionList.F_INV_RT.functionParameter.degFreedom1.name`, detail: `formula.functionList.F_INV_RT.functionParameter.degFreedom1.detail`, example: `6`, require: 1, repeat: 0 }, { name: `formula.functionList.F_INV_RT.functionParameter.degFreedom2.name`, detail: `formula.functionList.F_INV_RT.functionParameter.degFreedom2.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: q3.F_TEST, functionType: Dt2.Statistical, description: `formula.functionList.F_TEST.description`, abstract: `formula.functionList.F_TEST.abstract`, functionParameter: [{ name: `formula.functionList.F_TEST.functionParameter.array1.name`, detail: `formula.functionList.F_TEST.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.F_TEST.functionParameter.array2.name`, detail: `formula.functionList.F_TEST.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.FISHER, functionType: Dt2.Statistical, description: `formula.functionList.FISHER.description`, abstract: `formula.functionList.FISHER.abstract`, functionParameter: [{ name: `formula.functionList.FISHER.functionParameter.x.name`, detail: `formula.functionList.FISHER.functionParameter.x.detail`, example: `0.75`, require: 1, repeat: 0 }] }, { functionName: q3.FISHERINV, functionType: Dt2.Statistical, description: `formula.functionList.FISHERINV.description`, abstract: `formula.functionList.FISHERINV.abstract`, functionParameter: [{ name: `formula.functionList.FISHERINV.functionParameter.y.name`, detail: `formula.functionList.FISHERINV.functionParameter.y.detail`, example: `0.75`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST.description`, abstract: `formula.functionList.FORECAST.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST.functionParameter.x.name`, detail: `formula.functionList.FORECAST.functionParameter.x.detail`, example: `30`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST.functionParameter.knownYs.name`, detail: `formula.functionList.FORECAST.functionParameter.knownYs.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST.functionParameter.knownXs.name`, detail: `formula.functionList.FORECAST.functionParameter.knownXs.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST_ETS, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST_ETS.description`, abstract: `formula.functionList.FORECAST_ETS.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST_ETS.functionParameter.number1.name`, detail: `formula.functionList.FORECAST_ETS.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_ETS.functionParameter.number2.name`, detail: `formula.functionList.FORECAST_ETS.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST_ETS_CONFINT, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST_ETS_CONFINT.description`, abstract: `formula.functionList.FORECAST_ETS_CONFINT.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST_ETS_CONFINT.functionParameter.number1.name`, detail: `formula.functionList.FORECAST_ETS_CONFINT.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_ETS_CONFINT.functionParameter.number2.name`, detail: `formula.functionList.FORECAST_ETS_CONFINT.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST_ETS_SEASONALITY, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST_ETS_SEASONALITY.description`, abstract: `formula.functionList.FORECAST_ETS_SEASONALITY.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST_ETS_SEASONALITY.functionParameter.number1.name`, detail: `formula.functionList.FORECAST_ETS_SEASONALITY.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_ETS_SEASONALITY.functionParameter.number2.name`, detail: `formula.functionList.FORECAST_ETS_SEASONALITY.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST_ETS_STAT, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST_ETS_STAT.description`, abstract: `formula.functionList.FORECAST_ETS_STAT.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST_ETS_STAT.functionParameter.number1.name`, detail: `formula.functionList.FORECAST_ETS_STAT.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_ETS_STAT.functionParameter.number2.name`, detail: `formula.functionList.FORECAST_ETS_STAT.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: q3.FORECAST_LINEAR, functionType: Dt2.Statistical, description: `formula.functionList.FORECAST_LINEAR.description`, abstract: `formula.functionList.FORECAST_LINEAR.abstract`, functionParameter: [{ name: `formula.functionList.FORECAST_LINEAR.functionParameter.x.name`, detail: `formula.functionList.FORECAST_LINEAR.functionParameter.x.detail`, example: `30`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_LINEAR.functionParameter.knownYs.name`, detail: `formula.functionList.FORECAST_LINEAR.functionParameter.knownYs.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.FORECAST_LINEAR.functionParameter.knownXs.name`, detail: `formula.functionList.FORECAST_LINEAR.functionParameter.knownXs.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.FREQUENCY, functionType: Dt2.Statistical, description: `formula.functionList.FREQUENCY.description`, abstract: `formula.functionList.FREQUENCY.abstract`, functionParameter: [{ name: `formula.functionList.FREQUENCY.functionParameter.dataArray.name`, detail: `formula.functionList.FREQUENCY.functionParameter.dataArray.detail`, example: `A2:A10`, require: 1, repeat: 0 }, { name: `formula.functionList.FREQUENCY.functionParameter.binsArray.name`, detail: `formula.functionList.FREQUENCY.functionParameter.binsArray.detail`, example: `B2:B4`, require: 1, repeat: 0 }] }, { functionName: q3.GAMMA, functionType: Dt2.Statistical, description: `formula.functionList.GAMMA.description`, abstract: `formula.functionList.GAMMA.abstract`, functionParameter: [{ name: `formula.functionList.GAMMA.functionParameter.number.name`, detail: `formula.functionList.GAMMA.functionParameter.number.detail`, example: `2.5`, require: 1, repeat: 0 }] }, { functionName: q3.GAMMA_DIST, functionType: Dt2.Statistical, description: `formula.functionList.GAMMA_DIST.description`, abstract: `formula.functionList.GAMMA_DIST.abstract`, functionParameter: [{ name: `formula.functionList.GAMMA_DIST.functionParameter.x.name`, detail: `formula.functionList.GAMMA_DIST.functionParameter.x.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMA_DIST.functionParameter.alpha.name`, detail: `formula.functionList.GAMMA_DIST.functionParameter.alpha.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMA_DIST.functionParameter.beta.name`, detail: `formula.functionList.GAMMA_DIST.functionParameter.beta.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMA_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.GAMMA_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.GAMMA_INV, functionType: Dt2.Statistical, description: `formula.functionList.GAMMA_INV.description`, abstract: `formula.functionList.GAMMA_INV.abstract`, functionParameter: [{ name: `formula.functionList.GAMMA_INV.functionParameter.probability.name`, detail: `formula.functionList.GAMMA_INV.functionParameter.probability.detail`, example: `0.068094`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMA_INV.functionParameter.alpha.name`, detail: `formula.functionList.GAMMA_INV.functionParameter.alpha.detail`, example: `9`, require: 1, repeat: 0 }, { name: `formula.functionList.GAMMA_INV.functionParameter.beta.name`, detail: `formula.functionList.GAMMA_INV.functionParameter.beta.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.GAMMALN, functionType: Dt2.Statistical, description: `formula.functionList.GAMMALN.description`, abstract: `formula.functionList.GAMMALN.abstract`, functionParameter: [{ name: `formula.functionList.GAMMALN.functionParameter.x.name`, detail: `formula.functionList.GAMMALN.functionParameter.x.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: q3.GAMMALN_PRECISE, functionType: Dt2.Statistical, description: `formula.functionList.GAMMALN_PRECISE.description`, abstract: `formula.functionList.GAMMALN_PRECISE.abstract`, functionParameter: [{ name: `formula.functionList.GAMMALN_PRECISE.functionParameter.x.name`, detail: `formula.functionList.GAMMALN_PRECISE.functionParameter.x.detail`, example: `4`, require: 1, repeat: 0 }] }, { functionName: q3.GAUSS, functionType: Dt2.Statistical, description: `formula.functionList.GAUSS.description`, abstract: `formula.functionList.GAUSS.abstract`, functionParameter: [{ name: `formula.functionList.GAUSS.functionParameter.z.name`, detail: `formula.functionList.GAUSS.functionParameter.z.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.GEOMEAN, functionType: Dt2.Statistical, description: `formula.functionList.GEOMEAN.description`, abstract: `formula.functionList.GEOMEAN.abstract`, functionParameter: [{ name: `formula.functionList.GEOMEAN.functionParameter.number1.name`, detail: `formula.functionList.GEOMEAN.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.GEOMEAN.functionParameter.number2.name`, detail: `formula.functionList.GEOMEAN.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.GROWTH, functionType: Dt2.Statistical, description: `formula.functionList.GROWTH.description`, abstract: `formula.functionList.GROWTH.abstract`, functionParameter: [{ name: `formula.functionList.GROWTH.functionParameter.knownYs.name`, detail: `formula.functionList.GROWTH.functionParameter.knownYs.detail`, example: `B2:B7`, require: 1, repeat: 0 }, { name: `formula.functionList.GROWTH.functionParameter.knownXs.name`, detail: `formula.functionList.GROWTH.functionParameter.knownXs.detail`, example: `A2:A7`, require: 0, repeat: 0 }, { name: `formula.functionList.GROWTH.functionParameter.newXs.name`, detail: `formula.functionList.GROWTH.functionParameter.newXs.detail`, example: `A9:A10`, require: 0, repeat: 0 }, { name: `formula.functionList.GROWTH.functionParameter.constb.name`, detail: `formula.functionList.GROWTH.functionParameter.constb.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: q3.HARMEAN, functionType: Dt2.Statistical, description: `formula.functionList.HARMEAN.description`, abstract: `formula.functionList.HARMEAN.abstract`, functionParameter: [{ name: `formula.functionList.HARMEAN.functionParameter.number1.name`, detail: `formula.functionList.HARMEAN.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.HARMEAN.functionParameter.number2.name`, detail: `formula.functionList.HARMEAN.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.HYPGEOM_DIST, functionType: Dt2.Statistical, description: `formula.functionList.HYPGEOM_DIST.description`, abstract: `formula.functionList.HYPGEOM_DIST.abstract`, functionParameter: [{ name: `formula.functionList.HYPGEOM_DIST.functionParameter.sampleS.name`, detail: `formula.functionList.HYPGEOM_DIST.functionParameter.sampleS.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOM_DIST.functionParameter.numberSample.name`, detail: `formula.functionList.HYPGEOM_DIST.functionParameter.numberSample.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOM_DIST.functionParameter.populationS.name`, detail: `formula.functionList.HYPGEOM_DIST.functionParameter.populationS.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOM_DIST.functionParameter.numberPop.name`, detail: `formula.functionList.HYPGEOM_DIST.functionParameter.numberPop.detail`, example: `20`, require: 1, repeat: 0 }, { name: `formula.functionList.HYPGEOM_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.HYPGEOM_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.INTERCEPT, functionType: Dt2.Statistical, description: `formula.functionList.INTERCEPT.description`, abstract: `formula.functionList.INTERCEPT.abstract`, functionParameter: [{ name: `formula.functionList.INTERCEPT.functionParameter.knownYs.name`, detail: `formula.functionList.INTERCEPT.functionParameter.knownYs.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.INTERCEPT.functionParameter.knownXs.name`, detail: `formula.functionList.INTERCEPT.functionParameter.knownXs.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.KURT, functionType: Dt2.Statistical, description: `formula.functionList.KURT.description`, abstract: `formula.functionList.KURT.abstract`, functionParameter: [{ name: `formula.functionList.KURT.functionParameter.number1.name`, detail: `formula.functionList.KURT.functionParameter.number1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.KURT.functionParameter.number2.name`, detail: `formula.functionList.KURT.functionParameter.number2.detail`, example: `4`, require: 0, repeat: 1 }] }, { functionName: q3.LARGE, functionType: Dt2.Statistical, description: `formula.functionList.LARGE.description`, abstract: `formula.functionList.LARGE.abstract`, functionParameter: [{ name: `formula.functionList.LARGE.functionParameter.array.name`, detail: `formula.functionList.LARGE.functionParameter.array.detail`, example: `A2:B6`, require: 1, repeat: 0 }, { name: `formula.functionList.LARGE.functionParameter.k.name`, detail: `formula.functionList.LARGE.functionParameter.k.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: q3.LINEST, functionType: Dt2.Statistical, description: `formula.functionList.LINEST.description`, abstract: `formula.functionList.LINEST.abstract`, functionParameter: [{ name: `formula.functionList.LINEST.functionParameter.knownYs.name`, detail: `formula.functionList.LINEST.functionParameter.knownYs.detail`, example: `B2:B7`, require: 1, repeat: 0 }, { name: `formula.functionList.LINEST.functionParameter.knownXs.name`, detail: `formula.functionList.LINEST.functionParameter.knownXs.detail`, example: `A2:A7`, require: 0, repeat: 0 }, { name: `formula.functionList.LINEST.functionParameter.constb.name`, detail: `formula.functionList.LINEST.functionParameter.constb.detail`, example: `true`, require: 0, repeat: 0 }, { name: `formula.functionList.LINEST.functionParameter.stats.name`, detail: `formula.functionList.LINEST.functionParameter.stats.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: q3.LOGEST, functionType: Dt2.Statistical, description: `formula.functionList.LOGEST.description`, abstract: `formula.functionList.LOGEST.abstract`, functionParameter: [{ name: `formula.functionList.LOGEST.functionParameter.knownYs.name`, detail: `formula.functionList.LOGEST.functionParameter.knownYs.detail`, example: `B2:B7`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGEST.functionParameter.knownXs.name`, detail: `formula.functionList.LOGEST.functionParameter.knownXs.detail`, example: `A2:A7`, require: 0, repeat: 0 }, { name: `formula.functionList.LOGEST.functionParameter.constb.name`, detail: `formula.functionList.LOGEST.functionParameter.constb.detail`, example: `true`, require: 0, repeat: 0 }, { name: `formula.functionList.LOGEST.functionParameter.stats.name`, detail: `formula.functionList.LOGEST.functionParameter.stats.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: q3.LOGNORM_DIST, functionType: Dt2.Statistical, description: `formula.functionList.LOGNORM_DIST.description`, abstract: `formula.functionList.LOGNORM_DIST.abstract`, functionParameter: [{ name: `formula.functionList.LOGNORM_DIST.functionParameter.x.name`, detail: `formula.functionList.LOGNORM_DIST.functionParameter.x.detail`, example: `42`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORM_DIST.functionParameter.mean.name`, detail: `formula.functionList.LOGNORM_DIST.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORM_DIST.functionParameter.standardDev.name`, detail: `formula.functionList.LOGNORM_DIST.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORM_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.LOGNORM_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.LOGNORM_INV, functionType: Dt2.Statistical, description: `formula.functionList.LOGNORM_INV.description`, abstract: `formula.functionList.LOGNORM_INV.abstract`, functionParameter: [{ name: `formula.functionList.LOGNORM_INV.functionParameter.probability.name`, detail: `formula.functionList.LOGNORM_INV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORM_INV.functionParameter.mean.name`, detail: `formula.functionList.LOGNORM_INV.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.LOGNORM_INV.functionParameter.standardDev.name`, detail: `formula.functionList.LOGNORM_INV.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: q3.MARGINOFERROR, aliasFunctionName: `formula.functionList.MARGINOFERROR.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.MARGINOFERROR.description`, abstract: `formula.functionList.MARGINOFERROR.abstract`, functionParameter: [{ name: `formula.functionList.MARGINOFERROR.functionParameter.range.name`, detail: `formula.functionList.MARGINOFERROR.functionParameter.range.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.MARGINOFERROR.functionParameter.confidence.name`, detail: `formula.functionList.MARGINOFERROR.functionParameter.confidence.detail`, example: `0.95`, require: 1, repeat: 0 }] }, { functionName: q3.MAX, aliasFunctionName: `formula.functionList.MAX.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.MAX.description`, abstract: `formula.functionList.MAX.abstract`, functionParameter: [{ name: `formula.functionList.MAX.functionParameter.number1.name`, detail: `formula.functionList.MAX.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MAX.functionParameter.number2.name`, detail: `formula.functionList.MAX.functionParameter.number2.detail`, example: `B2:B10`, require: 0, repeat: 1 }] }, { functionName: q3.MAXA, functionType: Dt2.Statistical, description: `formula.functionList.MAXA.description`, abstract: `formula.functionList.MAXA.abstract`, functionParameter: [{ name: `formula.functionList.MAXA.functionParameter.value1.name`, detail: `formula.functionList.MAXA.functionParameter.value1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MAXA.functionParameter.value2.name`, detail: `formula.functionList.MAXA.functionParameter.value2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: q3.MAXIFS, functionType: Dt2.Statistical, description: `formula.functionList.MAXIFS.description`, abstract: `formula.functionList.MAXIFS.abstract`, functionParameter: [{ name: `formula.functionList.MAXIFS.functionParameter.maxRange.name`, detail: `formula.functionList.MAXIFS.functionParameter.maxRange.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MAXIFS.functionParameter.criteriaRange1.name`, detail: `formula.functionList.MAXIFS.functionParameter.criteriaRange1.detail`, example: `B1:B20`, require: 1, repeat: 0 }, { name: `formula.functionList.MAXIFS.functionParameter.criteria1.name`, detail: `formula.functionList.MAXIFS.functionParameter.criteria1.detail`, example: `">10"`, require: 1, repeat: 0 }, { name: `formula.functionList.MAXIFS.functionParameter.criteriaRange2.name`, detail: `formula.functionList.MAXIFS.functionParameter.criteriaRange2.detail`, example: `C1:C20`, require: 0, repeat: 1 }, { name: `formula.functionList.MAXIFS.functionParameter.criteria2.name`, detail: `formula.functionList.MAXIFS.functionParameter.criteria2.detail`, example: `"<20"`, require: 0, repeat: 1 }] }, { functionName: q3.MEDIAN, functionType: Dt2.Statistical, description: `formula.functionList.MEDIAN.description`, abstract: `formula.functionList.MEDIAN.abstract`, functionParameter: [{ name: `formula.functionList.MEDIAN.functionParameter.number1.name`, detail: `formula.functionList.MEDIAN.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.MEDIAN.functionParameter.number2.name`, detail: `formula.functionList.MEDIAN.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.MIN, aliasFunctionName: `formula.functionList.MIN.aliasFunctionName`, functionType: Dt2.Statistical, description: `formula.functionList.MIN.description`, abstract: `formula.functionList.MIN.abstract`, functionParameter: [{ name: `formula.functionList.MIN.functionParameter.number1.name`, detail: `formula.functionList.MIN.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MIN.functionParameter.number2.name`, detail: `formula.functionList.MIN.functionParameter.number2.detail`, example: `B2:B10`, require: 0, repeat: 1 }] }, { functionName: q3.MINA, functionType: Dt2.Statistical, description: `formula.functionList.MINA.description`, abstract: `formula.functionList.MINA.abstract`, functionParameter: [{ name: `formula.functionList.MINA.functionParameter.value1.name`, detail: `formula.functionList.MINA.functionParameter.value1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MINA.functionParameter.value2.name`, detail: `formula.functionList.MINA.functionParameter.value2.detail`, example: `B1:B20`, require: 0, repeat: 1 }] }, { functionName: q3.MINIFS, functionType: Dt2.Statistical, description: `formula.functionList.MINIFS.description`, abstract: `formula.functionList.MINIFS.abstract`, functionParameter: [{ name: `formula.functionList.MINIFS.functionParameter.minRange.name`, detail: `formula.functionList.MINIFS.functionParameter.minRange.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.MINIFS.functionParameter.criteriaRange1.name`, detail: `formula.functionList.MINIFS.functionParameter.criteriaRange1.detail`, example: `B1:B20`, require: 1, repeat: 0 }, { name: `formula.functionList.MINIFS.functionParameter.criteria1.name`, detail: `formula.functionList.MINIFS.functionParameter.criteria1.detail`, example: `">10"`, require: 1, repeat: 0 }, { name: `formula.functionList.MINIFS.functionParameter.criteriaRange2.name`, detail: `formula.functionList.MINIFS.functionParameter.criteriaRange2.detail`, example: `C1:C20`, require: 0, repeat: 1 }, { name: `formula.functionList.MINIFS.functionParameter.criteria2.name`, detail: `formula.functionList.MINIFS.functionParameter.criteria2.detail`, example: `"<20"`, require: 0, repeat: 1 }] }, { functionName: q3.MODE_MULT, functionType: Dt2.Statistical, description: `formula.functionList.MODE_MULT.description`, abstract: `formula.functionList.MODE_MULT.abstract`, functionParameter: [{ name: `formula.functionList.MODE_MULT.functionParameter.number1.name`, detail: `formula.functionList.MODE_MULT.functionParameter.number1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.MODE_MULT.functionParameter.number2.name`, detail: `formula.functionList.MODE_MULT.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.MODE_SNGL, functionType: Dt2.Statistical, description: `formula.functionList.MODE_SNGL.description`, abstract: `formula.functionList.MODE_SNGL.abstract`, functionParameter: [{ name: `formula.functionList.MODE_SNGL.functionParameter.number1.name`, detail: `formula.functionList.MODE_SNGL.functionParameter.number1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.MODE_SNGL.functionParameter.number2.name`, detail: `formula.functionList.MODE_SNGL.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.NEGBINOM_DIST, functionType: Dt2.Statistical, description: `formula.functionList.NEGBINOM_DIST.description`, abstract: `formula.functionList.NEGBINOM_DIST.abstract`, functionParameter: [{ name: `formula.functionList.NEGBINOM_DIST.functionParameter.numberF.name`, detail: `formula.functionList.NEGBINOM_DIST.functionParameter.numberF.detail`, example: `10`, require: 1, repeat: 0 }, { name: `formula.functionList.NEGBINOM_DIST.functionParameter.numberS.name`, detail: `formula.functionList.NEGBINOM_DIST.functionParameter.numberS.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.NEGBINOM_DIST.functionParameter.probabilityS.name`, detail: `formula.functionList.NEGBINOM_DIST.functionParameter.probabilityS.detail`, example: `0.25`, require: 1, repeat: 0 }, { name: `formula.functionList.NEGBINOM_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.NEGBINOM_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.NORM_DIST, functionType: Dt2.Statistical, description: `formula.functionList.NORM_DIST.description`, abstract: `formula.functionList.NORM_DIST.abstract`, functionParameter: [{ name: `formula.functionList.NORM_DIST.functionParameter.x.name`, detail: `formula.functionList.NORM_DIST.functionParameter.x.detail`, example: `42`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_DIST.functionParameter.mean.name`, detail: `formula.functionList.NORM_DIST.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_DIST.functionParameter.standardDev.name`, detail: `formula.functionList.NORM_DIST.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.NORM_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.NORM_INV, functionType: Dt2.Statistical, description: `formula.functionList.NORM_INV.description`, abstract: `formula.functionList.NORM_INV.abstract`, functionParameter: [{ name: `formula.functionList.NORM_INV.functionParameter.probability.name`, detail: `formula.functionList.NORM_INV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_INV.functionParameter.mean.name`, detail: `formula.functionList.NORM_INV.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_INV.functionParameter.standardDev.name`, detail: `formula.functionList.NORM_INV.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: q3.NORM_S_DIST, functionType: Dt2.Statistical, description: `formula.functionList.NORM_S_DIST.description`, abstract: `formula.functionList.NORM_S_DIST.abstract`, functionParameter: [{ name: `formula.functionList.NORM_S_DIST.functionParameter.z.name`, detail: `formula.functionList.NORM_S_DIST.functionParameter.z.detail`, example: `1.333333`, require: 1, repeat: 0 }, { name: `formula.functionList.NORM_S_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.NORM_S_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.NORM_S_INV, functionType: Dt2.Statistical, description: `formula.functionList.NORM_S_INV.description`, abstract: `formula.functionList.NORM_S_INV.abstract`, functionParameter: [{ name: `formula.functionList.NORM_S_INV.functionParameter.probability.name`, detail: `formula.functionList.NORM_S_INV.functionParameter.probability.detail`, example: `0.908789`, require: 1, repeat: 0 }] }, { functionName: q3.PEARSON, functionType: Dt2.Statistical, description: `formula.functionList.PEARSON.description`, abstract: `formula.functionList.PEARSON.abstract`, functionParameter: [{ name: `formula.functionList.PEARSON.functionParameter.array1.name`, detail: `formula.functionList.PEARSON.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PEARSON.functionParameter.array2.name`, detail: `formula.functionList.PEARSON.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.PERCENTILE_EXC, functionType: Dt2.Statistical, description: `formula.functionList.PERCENTILE_EXC.description`, abstract: `formula.functionList.PERCENTILE_EXC.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTILE_EXC.functionParameter.array.name`, detail: `formula.functionList.PERCENTILE_EXC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTILE_EXC.functionParameter.k.name`, detail: `formula.functionList.PERCENTILE_EXC.functionParameter.k.detail`, example: `0.3`, require: 1, repeat: 0 }] }, { functionName: q3.PERCENTILE_INC, functionType: Dt2.Statistical, description: `formula.functionList.PERCENTILE_INC.description`, abstract: `formula.functionList.PERCENTILE_INC.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTILE_INC.functionParameter.array.name`, detail: `formula.functionList.PERCENTILE_INC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTILE_INC.functionParameter.k.name`, detail: `formula.functionList.PERCENTILE_INC.functionParameter.k.detail`, example: `0.3`, require: 1, repeat: 0 }] }, { functionName: q3.PERCENTRANK_EXC, functionType: Dt2.Statistical, description: `formula.functionList.PERCENTRANK_EXC.description`, abstract: `formula.functionList.PERCENTRANK_EXC.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTRANK_EXC.functionParameter.array.name`, detail: `formula.functionList.PERCENTRANK_EXC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK_EXC.functionParameter.x.name`, detail: `formula.functionList.PERCENTRANK_EXC.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK_EXC.functionParameter.significance.name`, detail: `formula.functionList.PERCENTRANK_EXC.functionParameter.significance.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: q3.PERCENTRANK_INC, functionType: Dt2.Statistical, description: `formula.functionList.PERCENTRANK_INC.description`, abstract: `formula.functionList.PERCENTRANK_INC.abstract`, functionParameter: [{ name: `formula.functionList.PERCENTRANK_INC.functionParameter.array.name`, detail: `formula.functionList.PERCENTRANK_INC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK_INC.functionParameter.x.name`, detail: `formula.functionList.PERCENTRANK_INC.functionParameter.x.detail`, example: `1.5`, require: 1, repeat: 0 }, { name: `formula.functionList.PERCENTRANK_INC.functionParameter.significance.name`, detail: `formula.functionList.PERCENTRANK_INC.functionParameter.significance.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: q3.PERMUT, functionType: Dt2.Statistical, description: `formula.functionList.PERMUT.description`, abstract: `formula.functionList.PERMUT.abstract`, functionParameter: [{ name: `formula.functionList.PERMUT.functionParameter.number.name`, detail: `formula.functionList.PERMUT.functionParameter.number.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.PERMUT.functionParameter.numberChosen.name`, detail: `formula.functionList.PERMUT.functionParameter.numberChosen.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.PERMUTATIONA, functionType: Dt2.Statistical, description: `formula.functionList.PERMUTATIONA.description`, abstract: `formula.functionList.PERMUTATIONA.abstract`, functionParameter: [{ name: `formula.functionList.PERMUT.functionParameter.number.name`, detail: `formula.functionList.PERMUT.functionParameter.number.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.PERMUT.functionParameter.numberChosen.name`, detail: `formula.functionList.PERMUT.functionParameter.numberChosen.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.PHI, functionType: Dt2.Statistical, description: `formula.functionList.PHI.description`, abstract: `formula.functionList.PHI.abstract`, functionParameter: [{ name: `formula.functionList.PHI.functionParameter.x.name`, detail: `formula.functionList.PHI.functionParameter.x.detail`, example: `0.75`, require: 1, repeat: 0 }] }, { functionName: q3.POISSON_DIST, functionType: Dt2.Statistical, description: `formula.functionList.POISSON_DIST.description`, abstract: `formula.functionList.POISSON_DIST.abstract`, functionParameter: [{ name: `formula.functionList.POISSON_DIST.functionParameter.x.name`, detail: `formula.functionList.POISSON_DIST.functionParameter.x.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.POISSON_DIST.functionParameter.mean.name`, detail: `formula.functionList.POISSON_DIST.functionParameter.mean.detail`, example: `5`, require: 1, repeat: 0 }, { name: `formula.functionList.POISSON_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.POISSON_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.PROB, functionType: Dt2.Statistical, description: `formula.functionList.PROB.description`, abstract: `formula.functionList.PROB.abstract`, functionParameter: [{ name: `formula.functionList.PROB.functionParameter.xRange.name`, detail: `formula.functionList.PROB.functionParameter.xRange.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.PROB.functionParameter.probRange.name`, detail: `formula.functionList.PROB.functionParameter.probRange.detail`, example: `B1:B4`, require: 1, repeat: 0 }, { name: `formula.functionList.PROB.functionParameter.lowerLimit.name`, detail: `formula.functionList.PROB.functionParameter.lowerLimit.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.PROB.functionParameter.upperLimit.name`, detail: `formula.functionList.PROB.functionParameter.upperLimit.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: q3.QUARTILE_EXC, functionType: Dt2.Statistical, description: `formula.functionList.QUARTILE_EXC.description`, abstract: `formula.functionList.QUARTILE_EXC.abstract`, functionParameter: [{ name: `formula.functionList.QUARTILE_EXC.functionParameter.array.name`, detail: `formula.functionList.QUARTILE_EXC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.QUARTILE_EXC.functionParameter.quart.name`, detail: `formula.functionList.QUARTILE_EXC.functionParameter.quart.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.QUARTILE_INC, functionType: Dt2.Statistical, description: `formula.functionList.QUARTILE_INC.description`, abstract: `formula.functionList.QUARTILE_INC.abstract`, functionParameter: [{ name: `formula.functionList.QUARTILE_INC.functionParameter.array.name`, detail: `formula.functionList.QUARTILE_INC.functionParameter.array.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.QUARTILE_INC.functionParameter.quart.name`, detail: `formula.functionList.QUARTILE_INC.functionParameter.quart.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.RANK_AVG, functionType: Dt2.Statistical, description: `formula.functionList.RANK_AVG.description`, abstract: `formula.functionList.RANK_AVG.abstract`, functionParameter: [{ name: `formula.functionList.RANK_AVG.functionParameter.number.name`, detail: `formula.functionList.RANK_AVG.functionParameter.number.detail`, example: `A3`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK_AVG.functionParameter.ref.name`, detail: `formula.functionList.RANK_AVG.functionParameter.ref.detail`, example: `A2:A6`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK_AVG.functionParameter.order.name`, detail: `formula.functionList.RANK_AVG.functionParameter.order.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: q3.RANK_EQ, functionType: Dt2.Statistical, description: `formula.functionList.RANK_EQ.description`, abstract: `formula.functionList.RANK_EQ.abstract`, functionParameter: [{ name: `formula.functionList.RANK_EQ.functionParameter.number.name`, detail: `formula.functionList.RANK_EQ.functionParameter.number.detail`, example: `A3`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK_EQ.functionParameter.ref.name`, detail: `formula.functionList.RANK_EQ.functionParameter.ref.detail`, example: `A2:A6`, require: 1, repeat: 0 }, { name: `formula.functionList.RANK_EQ.functionParameter.order.name`, detail: `formula.functionList.RANK_EQ.functionParameter.order.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: q3.RSQ, functionType: Dt2.Statistical, description: `formula.functionList.RSQ.description`, abstract: `formula.functionList.RSQ.abstract`, functionParameter: [{ name: `formula.functionList.RSQ.functionParameter.array1.name`, detail: `formula.functionList.RSQ.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.RSQ.functionParameter.array2.name`, detail: `formula.functionList.RSQ.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.SKEW, functionType: Dt2.Statistical, description: `formula.functionList.SKEW.description`, abstract: `formula.functionList.SKEW.abstract`, functionParameter: [{ name: `formula.functionList.SKEW.functionParameter.number1.name`, detail: `formula.functionList.SKEW.functionParameter.number1.detail`, example: `A1:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.SKEW.functionParameter.number2.name`, detail: `formula.functionList.SKEW.functionParameter.number2.detail`, example: `4`, require: 0, repeat: 1 }] }, { functionName: q3.SKEW_P, functionType: Dt2.Statistical, description: `formula.functionList.SKEW_P.description`, abstract: `formula.functionList.SKEW_P.abstract`, functionParameter: [{ name: `formula.functionList.SKEW_P.functionParameter.number1.name`, detail: `formula.functionList.SKEW_P.functionParameter.number1.detail`, example: `A1:C3`, require: 1, repeat: 0 }, { name: `formula.functionList.SKEW_P.functionParameter.number2.name`, detail: `formula.functionList.SKEW_P.functionParameter.number2.detail`, example: `4`, require: 0, repeat: 1 }] }, { functionName: q3.SLOPE, functionType: Dt2.Statistical, description: `formula.functionList.SLOPE.description`, abstract: `formula.functionList.SLOPE.abstract`, functionParameter: [{ name: `formula.functionList.SLOPE.functionParameter.knownYs.name`, detail: `formula.functionList.SLOPE.functionParameter.knownYs.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.SLOPE.functionParameter.knownXs.name`, detail: `formula.functionList.SLOPE.functionParameter.knownXs.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.SMALL, functionType: Dt2.Statistical, description: `formula.functionList.SMALL.description`, abstract: `formula.functionList.SMALL.abstract`, functionParameter: [{ name: `formula.functionList.SMALL.functionParameter.array.name`, detail: `formula.functionList.SMALL.functionParameter.array.detail`, example: `A2:B6`, require: 1, repeat: 0 }, { name: `formula.functionList.SMALL.functionParameter.k.name`, detail: `formula.functionList.SMALL.functionParameter.k.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: q3.STANDARDIZE, functionType: Dt2.Statistical, description: `formula.functionList.STANDARDIZE.description`, abstract: `formula.functionList.STANDARDIZE.abstract`, functionParameter: [{ name: `formula.functionList.STANDARDIZE.functionParameter.x.name`, detail: `formula.functionList.STANDARDIZE.functionParameter.x.detail`, example: `42`, require: 1, repeat: 0 }, { name: `formula.functionList.STANDARDIZE.functionParameter.mean.name`, detail: `formula.functionList.STANDARDIZE.functionParameter.mean.detail`, example: `40`, require: 1, repeat: 0 }, { name: `formula.functionList.STANDARDIZE.functionParameter.standardDev.name`, detail: `formula.functionList.STANDARDIZE.functionParameter.standardDev.detail`, example: `1.5`, require: 1, repeat: 0 }] }, { functionName: q3.STDEV_P, functionType: Dt2.Statistical, description: `formula.functionList.STDEV_P.description`, abstract: `formula.functionList.STDEV_P.abstract`, functionParameter: [{ name: `formula.functionList.STDEV_P.functionParameter.number1.name`, detail: `formula.functionList.STDEV_P.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEV_P.functionParameter.number2.name`, detail: `formula.functionList.STDEV_P.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.STDEV_S, functionType: Dt2.Statistical, description: `formula.functionList.STDEV_S.description`, abstract: `formula.functionList.STDEV_S.abstract`, functionParameter: [{ name: `formula.functionList.STDEV_S.functionParameter.number1.name`, detail: `formula.functionList.STDEV_S.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEV_S.functionParameter.number2.name`, detail: `formula.functionList.STDEV_S.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.STDEVA, functionType: Dt2.Statistical, description: `formula.functionList.STDEVA.description`, abstract: `formula.functionList.STDEVA.abstract`, functionParameter: [{ name: `formula.functionList.STDEVA.functionParameter.value1.name`, detail: `formula.functionList.STDEVA.functionParameter.value1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEVA.functionParameter.value2.name`, detail: `formula.functionList.STDEVA.functionParameter.value2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.STDEVPA, functionType: Dt2.Statistical, description: `formula.functionList.STDEVPA.description`, abstract: `formula.functionList.STDEVPA.abstract`, functionParameter: [{ name: `formula.functionList.STDEVPA.functionParameter.value1.name`, detail: `formula.functionList.STDEVPA.functionParameter.value1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.STDEVPA.functionParameter.value2.name`, detail: `formula.functionList.STDEVPA.functionParameter.value2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.STEYX, functionType: Dt2.Statistical, description: `formula.functionList.STEYX.description`, abstract: `formula.functionList.STEYX.abstract`, functionParameter: [{ name: `formula.functionList.STEYX.functionParameter.knownYs.name`, detail: `formula.functionList.STEYX.functionParameter.knownYs.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.STEYX.functionParameter.knownXs.name`, detail: `formula.functionList.STEYX.functionParameter.knownXs.detail`, example: `B1:B4`, require: 1, repeat: 0 }] }, { functionName: q3.T_DIST, functionType: Dt2.Statistical, description: `formula.functionList.T_DIST.description`, abstract: `formula.functionList.T_DIST.abstract`, functionParameter: [{ name: `formula.functionList.T_DIST.functionParameter.x.name`, detail: `formula.functionList.T_DIST.functionParameter.x.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.T_DIST.functionParameter.degFreedom.name`, detail: `formula.functionList.T_DIST.functionParameter.degFreedom.detail`, example: `3`, require: 1, repeat: 0 }, { name: `formula.functionList.T_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.T_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.T_DIST_2T, functionType: Dt2.Statistical, description: `formula.functionList.T_DIST_2T.description`, abstract: `formula.functionList.T_DIST_2T.abstract`, functionParameter: [{ name: `formula.functionList.T_DIST_2T.functionParameter.x.name`, detail: `formula.functionList.T_DIST_2T.functionParameter.x.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.T_DIST_2T.functionParameter.degFreedom.name`, detail: `formula.functionList.T_DIST_2T.functionParameter.degFreedom.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: q3.T_DIST_RT, functionType: Dt2.Statistical, description: `formula.functionList.T_DIST_RT.description`, abstract: `formula.functionList.T_DIST_RT.abstract`, functionParameter: [{ name: `formula.functionList.T_DIST_RT.functionParameter.x.name`, detail: `formula.functionList.T_DIST_RT.functionParameter.x.detail`, example: `8`, require: 1, repeat: 0 }, { name: `formula.functionList.T_DIST_RT.functionParameter.degFreedom.name`, detail: `formula.functionList.T_DIST_RT.functionParameter.degFreedom.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: q3.T_INV, functionType: Dt2.Statistical, description: `formula.functionList.T_INV.description`, abstract: `formula.functionList.T_INV.abstract`, functionParameter: [{ name: `formula.functionList.T_INV.functionParameter.probability.name`, detail: `formula.functionList.T_INV.functionParameter.probability.detail`, example: `0.75`, require: 1, repeat: 0 }, { name: `formula.functionList.T_INV.functionParameter.degFreedom.name`, detail: `formula.functionList.T_INV.functionParameter.degFreedom.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.T_INV_2T, functionType: Dt2.Statistical, description: `formula.functionList.T_INV_2T.description`, abstract: `formula.functionList.T_INV_2T.abstract`, functionParameter: [{ name: `formula.functionList.T_INV_2T.functionParameter.probability.name`, detail: `formula.functionList.T_INV_2T.functionParameter.probability.detail`, example: `0.75`, require: 1, repeat: 0 }, { name: `formula.functionList.T_INV_2T.functionParameter.degFreedom.name`, detail: `formula.functionList.T_INV_2T.functionParameter.degFreedom.detail`, example: `2`, require: 1, repeat: 0 }] }, { functionName: q3.T_TEST, functionType: Dt2.Statistical, description: `formula.functionList.T_TEST.description`, abstract: `formula.functionList.T_TEST.abstract`, functionParameter: [{ name: `formula.functionList.T_TEST.functionParameter.array1.name`, detail: `formula.functionList.T_TEST.functionParameter.array1.detail`, example: `A1:A4`, require: 1, repeat: 0 }, { name: `formula.functionList.T_TEST.functionParameter.array2.name`, detail: `formula.functionList.T_TEST.functionParameter.array2.detail`, example: `B1:B4`, require: 1, repeat: 0 }, { name: `formula.functionList.T_TEST.functionParameter.tails.name`, detail: `formula.functionList.T_TEST.functionParameter.tails.detail`, example: `2`, require: 1, repeat: 0 }, { name: `formula.functionList.T_TEST.functionParameter.type.name`, detail: `formula.functionList.T_TEST.functionParameter.type.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: q3.TREND, functionType: Dt2.Statistical, description: `formula.functionList.TREND.description`, abstract: `formula.functionList.TREND.abstract`, functionParameter: [{ name: `formula.functionList.TREND.functionParameter.knownYs.name`, detail: `formula.functionList.TREND.functionParameter.knownYs.detail`, example: `B2:B7`, require: 1, repeat: 0 }, { name: `formula.functionList.TREND.functionParameter.knownXs.name`, detail: `formula.functionList.TREND.functionParameter.knownXs.detail`, example: `A2:A7`, require: 0, repeat: 0 }, { name: `formula.functionList.TREND.functionParameter.newXs.name`, detail: `formula.functionList.TREND.functionParameter.newXs.detail`, example: `A9:A10`, require: 0, repeat: 0 }, { name: `formula.functionList.TREND.functionParameter.constb.name`, detail: `formula.functionList.TREND.functionParameter.constb.detail`, example: `true`, require: 0, repeat: 0 }] }, { functionName: q3.TRIMMEAN, functionType: Dt2.Statistical, description: `formula.functionList.TRIMMEAN.description`, abstract: `formula.functionList.TRIMMEAN.abstract`, functionParameter: [{ name: `formula.functionList.TRIMMEAN.functionParameter.array.name`, detail: `formula.functionList.TRIMMEAN.functionParameter.array.detail`, example: `A2:A12`, require: 1, repeat: 0 }, { name: `formula.functionList.TRIMMEAN.functionParameter.percent.name`, detail: `formula.functionList.TRIMMEAN.functionParameter.percent.detail`, example: `0.2`, require: 1, repeat: 0 }] }, { functionName: q3.VAR_P, functionType: Dt2.Statistical, description: `formula.functionList.VAR_P.description`, abstract: `formula.functionList.VAR_P.abstract`, functionParameter: [{ name: `formula.functionList.VAR_P.functionParameter.number1.name`, detail: `formula.functionList.VAR_P.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VAR_P.functionParameter.number2.name`, detail: `formula.functionList.VAR_P.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.VAR_S, functionType: Dt2.Statistical, description: `formula.functionList.VAR_S.description`, abstract: `formula.functionList.VAR_S.abstract`, functionParameter: [{ name: `formula.functionList.VAR_S.functionParameter.number1.name`, detail: `formula.functionList.VAR_S.functionParameter.number1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VAR_S.functionParameter.number2.name`, detail: `formula.functionList.VAR_S.functionParameter.number2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.VARA, functionType: Dt2.Statistical, description: `formula.functionList.VARA.description`, abstract: `formula.functionList.VARA.abstract`, functionParameter: [{ name: `formula.functionList.VARA.functionParameter.value1.name`, detail: `formula.functionList.VARA.functionParameter.value1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VARA.functionParameter.value2.name`, detail: `formula.functionList.VARA.functionParameter.value2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.VARPA, functionType: Dt2.Statistical, description: `formula.functionList.VARPA.description`, abstract: `formula.functionList.VARPA.abstract`, functionParameter: [{ name: `formula.functionList.VARPA.functionParameter.value1.name`, detail: `formula.functionList.VARPA.functionParameter.value1.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.VARPA.functionParameter.value2.name`, detail: `formula.functionList.VARPA.functionParameter.value2.detail`, example: `2`, require: 0, repeat: 1 }] }, { functionName: q3.WEIBULL_DIST, functionType: Dt2.Statistical, description: `formula.functionList.WEIBULL_DIST.description`, abstract: `formula.functionList.WEIBULL_DIST.abstract`, functionParameter: [{ name: `formula.functionList.WEIBULL_DIST.functionParameter.x.name`, detail: `formula.functionList.WEIBULL_DIST.functionParameter.x.detail`, example: `105`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL_DIST.functionParameter.alpha.name`, detail: `formula.functionList.WEIBULL_DIST.functionParameter.alpha.detail`, example: `20`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL_DIST.functionParameter.beta.name`, detail: `formula.functionList.WEIBULL_DIST.functionParameter.beta.detail`, example: `100`, require: 1, repeat: 0 }, { name: `formula.functionList.WEIBULL_DIST.functionParameter.cumulative.name`, detail: `formula.functionList.WEIBULL_DIST.functionParameter.cumulative.detail`, example: `true`, require: 1, repeat: 0 }] }, { functionName: q3.Z_TEST, functionType: Dt2.Statistical, description: `formula.functionList.Z_TEST.description`, abstract: `formula.functionList.Z_TEST.abstract`, functionParameter: [{ name: `formula.functionList.Z_TEST.functionParameter.array.name`, detail: `formula.functionList.Z_TEST.functionParameter.array.detail`, example: `A2:A11`, require: 1, repeat: 0 }, { name: `formula.functionList.Z_TEST.functionParameter.x.name`, detail: `formula.functionList.Z_TEST.functionParameter.x.detail`, example: `4`, require: 1, repeat: 0 }, { name: `formula.functionList.Z_TEST.functionParameter.sigma.name`, detail: `formula.functionList.Z_TEST.functionParameter.sigma.detail`, example: `10`, require: 0, repeat: 0 }] }]; var pi2 = [{ functionName: J3.ASC, functionType: Dt2.Text, description: `formula.functionList.ASC.description`, abstract: `formula.functionList.ASC.abstract`, functionParameter: [{ name: `formula.functionList.ASC.functionParameter.text.name`, detail: `formula.functionList.ASC.functionParameter.text.detail`, example: `"\uFF35\uFF4E\uFF49\uFF56\uFF45\uFF52"`, require: 1, repeat: 0 }] }, { functionName: J3.ARRAYTOTEXT, functionType: Dt2.Text, description: `formula.functionList.ARRAYTOTEXT.description`, abstract: `formula.functionList.ARRAYTOTEXT.abstract`, functionParameter: [{ name: `formula.functionList.ARRAYTOTEXT.functionParameter.array.name`, detail: `formula.functionList.ARRAYTOTEXT.functionParameter.array.detail`, example: `A2:B4`, require: 1, repeat: 0 }, { name: `formula.functionList.ARRAYTOTEXT.functionParameter.format.name`, detail: `formula.functionList.ARRAYTOTEXT.functionParameter.format.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: J3.BAHTTEXT, functionType: Dt2.Text, description: `formula.functionList.BAHTTEXT.description`, abstract: `formula.functionList.BAHTTEXT.abstract`, functionParameter: [{ name: `formula.functionList.BAHTTEXT.functionParameter.number.name`, detail: `formula.functionList.BAHTTEXT.functionParameter.number.detail`, example: `1234`, require: 1, repeat: 0 }] }, { functionName: J3.CHAR, functionType: Dt2.Text, description: `formula.functionList.CHAR.description`, abstract: `formula.functionList.CHAR.abstract`, functionParameter: [{ name: `formula.functionList.CHAR.functionParameter.number.name`, detail: `formula.functionList.CHAR.functionParameter.number.detail`, example: `65`, require: 1, repeat: 0 }] }, { functionName: J3.CLEAN, functionType: Dt2.Text, description: `formula.functionList.CLEAN.description`, abstract: `formula.functionList.CLEAN.abstract`, functionParameter: [{ name: `formula.functionList.CLEAN.functionParameter.text.name`, detail: `formula.functionList.CLEAN.functionParameter.text.detail`, example: `CHAR(1)&"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.CODE, functionType: Dt2.Text, description: `formula.functionList.CODE.description`, abstract: `formula.functionList.CODE.abstract`, functionParameter: [{ name: `formula.functionList.CODE.functionParameter.text.name`, detail: `formula.functionList.CODE.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.CONCAT, functionType: Dt2.Text, description: `formula.functionList.CONCAT.description`, abstract: `formula.functionList.CONCAT.abstract`, functionParameter: [{ name: `formula.functionList.CONCAT.functionParameter.text1.name`, detail: `formula.functionList.CONCAT.functionParameter.text1.detail`, example: `"Hello"`, require: 1, repeat: 0 }, { name: `formula.functionList.CONCAT.functionParameter.text2.name`, detail: `formula.functionList.CONCAT.functionParameter.text2.detail`, example: `"Univer"`, require: 0, repeat: 1 }] }, { functionName: J3.CONCATENATE, functionType: Dt2.Text, description: `formula.functionList.CONCATENATE.description`, abstract: `formula.functionList.CONCATENATE.abstract`, functionParameter: [{ name: `formula.functionList.CONCATENATE.functionParameter.text1.name`, detail: `formula.functionList.CONCATENATE.functionParameter.text1.detail`, example: `A1`, require: 1, repeat: 0 }, { name: `formula.functionList.CONCATENATE.functionParameter.text2.name`, detail: `formula.functionList.CONCATENATE.functionParameter.text2.detail`, example: `A2`, require: 0, repeat: 1 }] }, { functionName: J3.DBCS, functionType: Dt2.Text, description: `formula.functionList.DBCS.description`, abstract: `formula.functionList.DBCS.abstract`, functionParameter: [{ name: `formula.functionList.DBCS.functionParameter.text.name`, detail: `formula.functionList.DBCS.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.DOLLAR, functionType: Dt2.Text, description: `formula.functionList.DOLLAR.description`, abstract: `formula.functionList.DOLLAR.abstract`, functionParameter: [{ name: `formula.functionList.DOLLAR.functionParameter.number.name`, detail: `formula.functionList.DOLLAR.functionParameter.number.detail`, example: `1234.567`, require: 1, repeat: 0 }, { name: `formula.functionList.DOLLAR.functionParameter.decimals.name`, detail: `formula.functionList.DOLLAR.functionParameter.decimals.detail`, example: `2`, require: 0, repeat: 0 }] }, { functionName: J3.EXACT, functionType: Dt2.Text, description: `formula.functionList.EXACT.description`, abstract: `formula.functionList.EXACT.abstract`, functionParameter: [{ name: `formula.functionList.EXACT.functionParameter.text1.name`, detail: `formula.functionList.EXACT.functionParameter.text1.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.EXACT.functionParameter.text2.name`, detail: `formula.functionList.EXACT.functionParameter.text2.detail`, example: `"univer"`, require: 1, repeat: 0 }] }, { functionName: J3.FIND, functionType: Dt2.Text, description: `formula.functionList.FIND.description`, abstract: `formula.functionList.FIND.abstract`, functionParameter: [{ name: `formula.functionList.FIND.functionParameter.findText.name`, detail: `formula.functionList.FIND.functionParameter.findText.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.FIND.functionParameter.withinText.name`, detail: `formula.functionList.FIND.functionParameter.withinText.detail`, example: `"Hello Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.FIND.functionParameter.startNum.name`, detail: `formula.functionList.FIND.functionParameter.startNum.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.FINDB, functionType: Dt2.Text, description: `formula.functionList.FINDB.description`, abstract: `formula.functionList.FINDB.abstract`, functionParameter: [{ name: `formula.functionList.FINDB.functionParameter.findText.name`, detail: `formula.functionList.FINDB.functionParameter.findText.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.FINDB.functionParameter.withinText.name`, detail: `formula.functionList.FINDB.functionParameter.withinText.detail`, example: `"Hello Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.FINDB.functionParameter.startNum.name`, detail: `formula.functionList.FINDB.functionParameter.startNum.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.FIXED, functionType: Dt2.Text, description: `formula.functionList.FIXED.description`, abstract: `formula.functionList.FIXED.abstract`, functionParameter: [{ name: `formula.functionList.FIXED.functionParameter.number.name`, detail: `formula.functionList.FIXED.functionParameter.number.detail`, example: `1234.567`, require: 1, repeat: 0 }, { name: `formula.functionList.FIXED.functionParameter.decimals.name`, detail: `formula.functionList.FIXED.functionParameter.decimals.detail`, example: `2`, require: 0, repeat: 0 }, { name: `formula.functionList.FIXED.functionParameter.noCommas.name`, detail: `formula.functionList.FIXED.functionParameter.noCommas.detail`, example: `0`, require: 0, repeat: 0 }] }, { functionName: J3.LEFT, functionType: Dt2.Text, description: `formula.functionList.LEFT.description`, abstract: `formula.functionList.LEFT.abstract`, functionParameter: [{ name: `formula.functionList.LEFT.functionParameter.text.name`, detail: `formula.functionList.LEFT.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.LEFT.functionParameter.numChars.name`, detail: `formula.functionList.LEFT.functionParameter.numChars.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: J3.LEFTB, functionType: Dt2.Text, description: `formula.functionList.LEFTB.description`, abstract: `formula.functionList.LEFTB.abstract`, functionParameter: [{ name: `formula.functionList.LEFTB.functionParameter.text.name`, detail: `formula.functionList.LEFTB.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.LEFTB.functionParameter.numBytes.name`, detail: `formula.functionList.LEFTB.functionParameter.numBytes.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: J3.LEN, functionType: Dt2.Text, description: `formula.functionList.LEN.description`, abstract: `formula.functionList.LEN.abstract`, functionParameter: [{ name: `formula.functionList.LEN.functionParameter.text.name`, detail: `formula.functionList.LEN.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.LENB, functionType: Dt2.Text, description: `formula.functionList.LENB.description`, abstract: `formula.functionList.LENB.abstract`, functionParameter: [{ name: `formula.functionList.LENB.functionParameter.text.name`, detail: `formula.functionList.LENB.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.LOWER, functionType: Dt2.Text, description: `formula.functionList.LOWER.description`, abstract: `formula.functionList.LOWER.abstract`, functionParameter: [{ name: `formula.functionList.LOWER.functionParameter.text.name`, detail: `formula.functionList.LOWER.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.MID, functionType: Dt2.Text, description: `formula.functionList.MID.description`, abstract: `formula.functionList.MID.abstract`, functionParameter: [{ name: `formula.functionList.MID.functionParameter.text.name`, detail: `formula.functionList.MID.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.MID.functionParameter.startNum.name`, detail: `formula.functionList.MID.functionParameter.startNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.MID.functionParameter.numChars.name`, detail: `formula.functionList.MID.functionParameter.numChars.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: J3.MIDB, functionType: Dt2.Text, description: `formula.functionList.MIDB.description`, abstract: `formula.functionList.MIDB.abstract`, functionParameter: [{ name: `formula.functionList.MIDB.functionParameter.text.name`, detail: `formula.functionList.MIDB.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.MIDB.functionParameter.startNum.name`, detail: `formula.functionList.MIDB.functionParameter.startNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.MIDB.functionParameter.numBytes.name`, detail: `formula.functionList.MIDB.functionParameter.numBytes.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: J3.NUMBERSTRING, functionType: Dt2.Text, description: `formula.functionList.NUMBERSTRING.description`, abstract: `formula.functionList.NUMBERSTRING.abstract`, functionParameter: [{ name: `formula.functionList.NUMBERSTRING.functionParameter.number.name`, detail: `formula.functionList.NUMBERSTRING.functionParameter.number.detail`, example: `123`, require: 1, repeat: 0 }, { name: `formula.functionList.NUMBERSTRING.functionParameter.type.name`, detail: `formula.functionList.NUMBERSTRING.functionParameter.type.detail`, example: `1`, require: 1, repeat: 0 }] }, { functionName: J3.NUMBERVALUE, functionType: Dt2.Text, description: `formula.functionList.NUMBERVALUE.description`, abstract: `formula.functionList.NUMBERVALUE.abstract`, functionParameter: [{ name: `formula.functionList.NUMBERVALUE.functionParameter.text.name`, detail: `formula.functionList.NUMBERVALUE.functionParameter.text.detail`, example: `"2.500,27"`, require: 1, repeat: 0 }, { name: `formula.functionList.NUMBERVALUE.functionParameter.decimalSeparator.name`, detail: `formula.functionList.NUMBERVALUE.functionParameter.decimalSeparator.detail`, example: `","`, require: 0, repeat: 0 }, { name: `formula.functionList.NUMBERVALUE.functionParameter.groupSeparator.name`, detail: `formula.functionList.NUMBERVALUE.functionParameter.groupSeparator.detail`, example: `"."`, require: 0, repeat: 0 }] }, { functionName: J3.PHONETIC, functionType: Dt2.Text, description: `formula.functionList.PHONETIC.description`, abstract: `formula.functionList.PHONETIC.abstract`, functionParameter: [{ name: `formula.functionList.PHONETIC.functionParameter.number1.name`, detail: `formula.functionList.PHONETIC.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.PHONETIC.functionParameter.number2.name`, detail: `formula.functionList.PHONETIC.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: J3.PROPER, functionType: Dt2.Text, description: `formula.functionList.PROPER.description`, abstract: `formula.functionList.PROPER.abstract`, functionParameter: [{ name: `formula.functionList.PROPER.functionParameter.text.name`, detail: `formula.functionList.PROPER.functionParameter.text.detail`, example: `"hello univer"`, require: 1, repeat: 0 }] }, { functionName: J3.REGEXEXTRACT, functionType: Dt2.Text, description: `formula.functionList.REGEXEXTRACT.description`, abstract: `formula.functionList.REGEXEXTRACT.abstract`, functionParameter: [{ name: `formula.functionList.REGEXEXTRACT.functionParameter.text.name`, detail: `formula.functionList.REGEXEXTRACT.functionParameter.text.detail`, example: `"abcdefg"`, require: 1, repeat: 0 }, { name: `formula.functionList.REGEXEXTRACT.functionParameter.regularExpression.name`, detail: `formula.functionList.REGEXEXTRACT.functionParameter.regularExpression.detail`, example: `"c.*f"`, require: 1, repeat: 0 }] }, { functionName: J3.REGEXMATCH, functionType: Dt2.Text, description: `formula.functionList.REGEXMATCH.description`, abstract: `formula.functionList.REGEXMATCH.abstract`, functionParameter: [{ name: `formula.functionList.REGEXMATCH.functionParameter.text.name`, detail: `formula.functionList.REGEXMATCH.functionParameter.text.detail`, example: `"Spreadsheets"`, require: 1, repeat: 0 }, { name: `formula.functionList.REGEXMATCH.functionParameter.regularExpression.name`, detail: `formula.functionList.REGEXMATCH.functionParameter.regularExpression.detail`, example: `"S.r"`, require: 1, repeat: 0 }] }, { functionName: J3.REGEXREPLACE, functionType: Dt2.Text, description: `formula.functionList.REGEXREPLACE.description`, abstract: `formula.functionList.REGEXREPLACE.abstract`, functionParameter: [{ name: `formula.functionList.REGEXREPLACE.functionParameter.text.name`, detail: `formula.functionList.REGEXREPLACE.functionParameter.text.detail`, example: `"abcedfg"`, require: 1, repeat: 0 }, { name: `formula.functionList.REGEXREPLACE.functionParameter.regularExpression.name`, detail: `formula.functionList.REGEXREPLACE.functionParameter.regularExpression.detail`, example: `"a.*d"`, require: 1, repeat: 0 }, { name: `formula.functionList.REGEXREPLACE.functionParameter.replacement.name`, detail: `formula.functionList.REGEXREPLACE.functionParameter.replacement.detail`, example: `"xyz"`, require: 1, repeat: 0 }] }, { functionName: J3.REPLACE, functionType: Dt2.Text, description: `formula.functionList.REPLACE.description`, abstract: `formula.functionList.REPLACE.abstract`, functionParameter: [{ name: `formula.functionList.REPLACE.functionParameter.oldText.name`, detail: `formula.functionList.REPLACE.functionParameter.oldText.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACE.functionParameter.startNum.name`, detail: `formula.functionList.REPLACE.functionParameter.startNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACE.functionParameter.numChars.name`, detail: `formula.functionList.REPLACE.functionParameter.numChars.detail`, example: `0`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACE.functionParameter.newText.name`, detail: `formula.functionList.REPLACE.functionParameter.newText.detail`, example: `"Hello "`, require: 1, repeat: 0 }] }, { functionName: J3.REPLACEB, functionType: Dt2.Text, description: `formula.functionList.REPLACEB.description`, abstract: `formula.functionList.REPLACEB.abstract`, functionParameter: [{ name: `formula.functionList.REPLACEB.functionParameter.oldText.name`, detail: `formula.functionList.REPLACEB.functionParameter.oldText.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACEB.functionParameter.startNum.name`, detail: `formula.functionList.REPLACEB.functionParameter.startNum.detail`, example: `1`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACEB.functionParameter.numBytes.name`, detail: `formula.functionList.REPLACEB.functionParameter.numBytes.detail`, example: `0`, require: 1, repeat: 0 }, { name: `formula.functionList.REPLACEB.functionParameter.newText.name`, detail: `formula.functionList.REPLACEB.functionParameter.newText.detail`, example: `"Hello "`, require: 1, repeat: 0 }] }, { functionName: J3.REPT, functionType: Dt2.Text, description: `formula.functionList.REPT.description`, abstract: `formula.functionList.REPT.abstract`, functionParameter: [{ name: `formula.functionList.REPT.functionParameter.text.name`, detail: `formula.functionList.REPT.functionParameter.text.detail`, example: `"*-"`, require: 1, repeat: 0 }, { name: `formula.functionList.REPT.functionParameter.numberTimes.name`, detail: `formula.functionList.REPT.functionParameter.numberTimes.detail`, example: `3`, require: 1, repeat: 0 }] }, { functionName: J3.RIGHT, functionType: Dt2.Text, description: `formula.functionList.RIGHT.description`, abstract: `formula.functionList.RIGHT.abstract`, functionParameter: [{ name: `formula.functionList.RIGHT.functionParameter.text.name`, detail: `formula.functionList.RIGHT.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.RIGHT.functionParameter.numChars.name`, detail: `formula.functionList.RIGHT.functionParameter.numChars.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: J3.RIGHTB, functionType: Dt2.Text, description: `formula.functionList.RIGHTB.description`, abstract: `formula.functionList.RIGHTB.abstract`, functionParameter: [{ name: `formula.functionList.RIGHTB.functionParameter.text.name`, detail: `formula.functionList.RIGHTB.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.RIGHTB.functionParameter.numBytes.name`, detail: `formula.functionList.RIGHTB.functionParameter.numBytes.detail`, example: `3`, require: 0, repeat: 0 }] }, { functionName: J3.SEARCH, functionType: Dt2.Text, description: `formula.functionList.SEARCH.description`, abstract: `formula.functionList.SEARCH.abstract`, functionParameter: [{ name: `formula.functionList.SEARCH.functionParameter.findText.name`, detail: `formula.functionList.SEARCH.functionParameter.findText.detail`, example: `"univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.SEARCH.functionParameter.withinText.name`, detail: `formula.functionList.SEARCH.functionParameter.withinText.detail`, example: `"Hello Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.SEARCH.functionParameter.startNum.name`, detail: `formula.functionList.SEARCH.functionParameter.startNum.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.SEARCHB, functionType: Dt2.Text, description: `formula.functionList.SEARCHB.description`, abstract: `formula.functionList.SEARCHB.abstract`, functionParameter: [{ name: `formula.functionList.SEARCHB.functionParameter.findText.name`, detail: `formula.functionList.SEARCHB.functionParameter.findText.detail`, example: `"univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.SEARCHB.functionParameter.withinText.name`, detail: `formula.functionList.SEARCHB.functionParameter.withinText.detail`, example: `"Hello Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.SEARCHB.functionParameter.startNum.name`, detail: `formula.functionList.SEARCHB.functionParameter.startNum.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.SUBSTITUTE, functionType: Dt2.Text, description: `formula.functionList.SUBSTITUTE.description`, abstract: `formula.functionList.SUBSTITUTE.abstract`, functionParameter: [{ name: `formula.functionList.SUBSTITUTE.functionParameter.text.name`, detail: `formula.functionList.SUBSTITUTE.functionParameter.text.detail`, example: `"Hello Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.SUBSTITUTE.functionParameter.oldText.name`, detail: `formula.functionList.SUBSTITUTE.functionParameter.oldText.detail`, example: `"Hello"`, require: 1, repeat: 0 }, { name: `formula.functionList.SUBSTITUTE.functionParameter.newText.name`, detail: `formula.functionList.SUBSTITUTE.functionParameter.newText.detail`, example: `"Hi"`, require: 1, repeat: 0 }, { name: `formula.functionList.SUBSTITUTE.functionParameter.instanceNum.name`, detail: `formula.functionList.SUBSTITUTE.functionParameter.instanceNum.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.T, functionType: Dt2.Text, description: `formula.functionList.T.description`, abstract: `formula.functionList.T.abstract`, functionParameter: [{ name: `formula.functionList.T.functionParameter.value.name`, detail: `formula.functionList.T.functionParameter.value.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.TEXT, functionType: Dt2.Text, description: `formula.functionList.TEXT.description`, abstract: `formula.functionList.TEXT.abstract`, functionParameter: [{ name: `formula.functionList.TEXT.functionParameter.value.name`, detail: `formula.functionList.TEXT.functionParameter.value.detail`, example: `1.23`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXT.functionParameter.formatText.name`, detail: `formula.functionList.TEXT.functionParameter.formatText.detail`, example: `"$0.00"`, require: 1, repeat: 0 }] }, { functionName: J3.TEXTAFTER, functionType: Dt2.Text, description: `formula.functionList.TEXTAFTER.description`, abstract: `formula.functionList.TEXTAFTER.abstract`, functionParameter: [{ name: `formula.functionList.TEXTAFTER.functionParameter.text.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.text.detail`, example: `"Red riding hood\u2019s, red hood"`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTAFTER.functionParameter.delimiter.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.delimiter.detail`, example: `"hood"`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTAFTER.functionParameter.instanceNum.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.instanceNum.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTAFTER.functionParameter.matchMode.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.matchMode.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTAFTER.functionParameter.matchEnd.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.matchEnd.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTAFTER.functionParameter.ifNotFound.name`, detail: `formula.functionList.TEXTAFTER.functionParameter.ifNotFound.detail`, example: `"not found"`, require: 0, repeat: 0 }] }, { functionName: J3.TEXTBEFORE, functionType: Dt2.Text, description: `formula.functionList.TEXTBEFORE.description`, abstract: `formula.functionList.TEXTBEFORE.abstract`, functionParameter: [{ name: `formula.functionList.TEXTBEFORE.functionParameter.text.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.text.detail`, example: `"Red riding hood\u2019s, red hood"`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTBEFORE.functionParameter.delimiter.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.delimiter.detail`, example: `"hood"`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTBEFORE.functionParameter.instanceNum.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.instanceNum.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTBEFORE.functionParameter.matchMode.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.matchMode.detail`, example: `1`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTBEFORE.functionParameter.matchEnd.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.matchEnd.detail`, example: `0`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTBEFORE.functionParameter.ifNotFound.name`, detail: `formula.functionList.TEXTBEFORE.functionParameter.ifNotFound.detail`, example: `"not found"`, require: 0, repeat: 0 }] }, { functionName: J3.TEXTJOIN, functionType: Dt2.Text, description: `formula.functionList.TEXTJOIN.description`, abstract: `formula.functionList.TEXTJOIN.abstract`, functionParameter: [{ name: `formula.functionList.TEXTJOIN.functionParameter.delimiter.name`, detail: `formula.functionList.TEXTJOIN.functionParameter.delimiter.detail`, example: `", "`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTJOIN.functionParameter.ignoreEmpty.name`, detail: `formula.functionList.TEXTJOIN.functionParameter.ignoreEmpty.detail`, example: `true`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTJOIN.functionParameter.text1.name`, detail: `formula.functionList.TEXTJOIN.functionParameter.text1.detail`, example: `"Hi"`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTJOIN.functionParameter.text2.name`, detail: `formula.functionList.TEXTJOIN.functionParameter.text2.detail`, example: `"Univer"`, require: 0, repeat: 1 }] }, { functionName: J3.TEXTSPLIT, functionType: Dt2.Text, description: `formula.functionList.TEXTSPLIT.description`, abstract: `formula.functionList.TEXTSPLIT.abstract`, functionParameter: [{ name: `formula.functionList.TEXTSPLIT.functionParameter.text.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.text.detail`, example: `A1:C2`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTSPLIT.functionParameter.colDelimiter.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.colDelimiter.detail`, example: `","`, require: 1, repeat: 0 }, { name: `formula.functionList.TEXTSPLIT.functionParameter.rowDelimiter.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.rowDelimiter.detail`, example: `";"`, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTSPLIT.functionParameter.ignoreEmpty.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.ignoreEmpty.detail`, example: ``, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTSPLIT.functionParameter.matchMode.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.matchMode.detail`, example: ``, require: 0, repeat: 0 }, { name: `formula.functionList.TEXTSPLIT.functionParameter.padWith.name`, detail: `formula.functionList.TEXTSPLIT.functionParameter.padWith.detail`, example: ``, require: 0, repeat: 0 }] }, { functionName: J3.TRIM, functionType: Dt2.Text, description: `formula.functionList.TRIM.description`, abstract: `formula.functionList.TRIM.abstract`, functionParameter: [{ name: `formula.functionList.TRIM.functionParameter.text.name`, detail: `formula.functionList.TRIM.functionParameter.text.detail`, example: `" Hello Univer "`, require: 1, repeat: 0 }] }, { functionName: J3.UNICHAR, functionType: Dt2.Text, description: `formula.functionList.UNICHAR.description`, abstract: `formula.functionList.UNICHAR.abstract`, functionParameter: [{ name: `formula.functionList.UNICHAR.functionParameter.number.name`, detail: `formula.functionList.UNICHAR.functionParameter.number.detail`, example: `65`, require: 1, repeat: 0 }] }, { functionName: J3.UNICODE, functionType: Dt2.Text, description: `formula.functionList.UNICODE.description`, abstract: `formula.functionList.UNICODE.abstract`, functionParameter: [{ name: `formula.functionList.UNICODE.functionParameter.text.name`, detail: `formula.functionList.UNICODE.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.UPPER, functionType: Dt2.Text, description: `formula.functionList.UPPER.description`, abstract: `formula.functionList.UPPER.abstract`, functionParameter: [{ name: `formula.functionList.UPPER.functionParameter.text.name`, detail: `formula.functionList.UPPER.functionParameter.text.detail`, example: `"Univer"`, require: 1, repeat: 0 }] }, { functionName: J3.VALUE, functionType: Dt2.Text, description: `formula.functionList.VALUE.description`, abstract: `formula.functionList.VALUE.abstract`, functionParameter: [{ name: `formula.functionList.VALUE.functionParameter.text.name`, detail: `formula.functionList.VALUE.functionParameter.text.detail`, example: `"123"`, require: 1, repeat: 0 }] }, { functionName: J3.VALUETOTEXT, functionType: Dt2.Text, description: `formula.functionList.VALUETOTEXT.description`, abstract: `formula.functionList.VALUETOTEXT.abstract`, functionParameter: [{ name: `formula.functionList.VALUETOTEXT.functionParameter.value.name`, detail: `formula.functionList.VALUETOTEXT.functionParameter.value.detail`, example: `"Univer"`, require: 1, repeat: 0 }, { name: `formula.functionList.VALUETOTEXT.functionParameter.format.name`, detail: `formula.functionList.VALUETOTEXT.functionParameter.format.detail`, example: `1`, require: 0, repeat: 0 }] }, { functionName: J3.CALL, functionType: Dt2.Text, description: `formula.functionList.CALL.description`, abstract: `formula.functionList.CALL.abstract`, functionParameter: [{ name: `formula.functionList.CALL.functionParameter.number1.name`, detail: `formula.functionList.CALL.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.CALL.functionParameter.number2.name`, detail: `formula.functionList.CALL.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: J3.EUROCONVERT, functionType: Dt2.Text, description: `formula.functionList.EUROCONVERT.description`, abstract: `formula.functionList.EUROCONVERT.abstract`, functionParameter: [{ name: `formula.functionList.EUROCONVERT.functionParameter.number1.name`, detail: `formula.functionList.EUROCONVERT.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.EUROCONVERT.functionParameter.number2.name`, detail: `formula.functionList.EUROCONVERT.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: J3.REGISTER_ID, functionType: Dt2.Text, description: `formula.functionList.REGISTER_ID.description`, abstract: `formula.functionList.REGISTER_ID.abstract`, functionParameter: [{ name: `formula.functionList.REGISTER_ID.functionParameter.number1.name`, detail: `formula.functionList.REGISTER_ID.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.REGISTER_ID.functionParameter.number2.name`, detail: `formula.functionList.REGISTER_ID.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }]; var mi3 = []; var hi3 = [{ functionName: ro2.ENCODEURL, functionType: Dt2.Web, description: `formula.functionList.ENCODEURL.description`, abstract: `formula.functionList.ENCODEURL.abstract`, functionParameter: [{ name: `formula.functionList.ENCODEURL.functionParameter.text.name`, detail: `formula.functionList.ENCODEURL.functionParameter.text.detail`, example: `"https://univer.ai/"`, require: 1, repeat: 0 }] }, { functionName: ro2.FILTERXML, functionType: Dt2.Web, description: `formula.functionList.FILTERXML.description`, abstract: `formula.functionList.FILTERXML.abstract`, functionParameter: [{ name: `formula.functionList.FILTERXML.functionParameter.number1.name`, detail: `formula.functionList.FILTERXML.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.FILTERXML.functionParameter.number2.name`, detail: `formula.functionList.FILTERXML.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }, { functionName: ro2.WEBSERVICE, functionType: Dt2.Web, description: `formula.functionList.WEBSERVICE.description`, abstract: `formula.functionList.WEBSERVICE.abstract`, functionParameter: [{ name: `formula.functionList.WEBSERVICE.functionParameter.number1.name`, detail: `formula.functionList.WEBSERVICE.functionParameter.number1.detail`, example: `A1:A20`, require: 1, repeat: 0 }, { name: `formula.functionList.WEBSERVICE.functionParameter.number2.name`, detail: `formula.functionList.WEBSERVICE.functionParameter.number2.detail`, example: `A1:A20`, require: 1, repeat: 0 }] }]; var gi2 = [...si4, ...ai4, ...di2, ...fi3, ...ui3, ...ii3, ...pi2, ...li3, ...ci4, ...oi4, ...ri4, ...ni3, ...hi3, ...ti3, ...mi3]; function _i4(e29, t) { let n = ``; return e29.aliasFunctionName ? (n = t.t(e29.aliasFunctionName), n === e29.aliasFunctionName && (n = e29.functionName)) : n = e29.functionName, n; } var vi3 = createIdentifier(`formula.description-service`); var yi4 = class { constructor(e29, t, n) { this._functionService = e29, this._localeService = t, this._configService = n, X5(this, `_descriptions`, []), this._initialize(); } dispose() { this._localeService.localeChanged$.complete(); } getDescriptions() { return this._functionService.getDescriptions(); } hasFunction(e29) { return this._functionService.getDescriptions().get(e29.toLocaleUpperCase()) !== void 0; } getFunctionInfo(e29) { return this._functionService.getDescriptions().get(e29.toLocaleUpperCase()); } getSearchListByName(e29) { let t = [], n = this._functionService.getDescriptions(), r = e29.toLocaleUpperCase().trim(); return n.forEach((e30) => { let { functionName: n2, abstract: i, functionType: a } = e30; n2.toLocaleUpperCase().indexOf(r) > -1 && a !== Dt2.DefinedName && t.push({ name: n2, desc: i }); }), t; } getSearchListByNameFirstLetter(e29) { let t = [], n = this._functionService.getDescriptions(), r = e29.toLocaleUpperCase().trim(); return n.forEach((e30) => { let { functionName: n2, abstract: i, functionType: a } = e30; n2.toLocaleUpperCase().indexOf(r) === 0 && t.push({ name: n2, desc: i, functionType: a }); }), t; } getSearchListByType(e29) { let t = []; return this._functionService.getDescriptions().forEach((n) => { let { functionName: r, functionType: i, abstract: a } = n; (i === e29 || e29 === -1) && i !== Dt2.DefinedName && t.push({ name: r, desc: a }); }), t; } registerDescriptions(e29) { return this._descriptions = this._descriptions.concat(e29), this._registerDescriptions(), T2(() => { let t = e29.map((e30) => e30.functionName); this.unregisterDescriptions(t); }); } unregisterDescriptions(e29) { this._descriptions = this._descriptions.filter((t) => !e29.includes(t.functionName)), this._functionService.unregisterDescriptions(...e29); } hasDescription(e29) { return this._descriptions.some((t) => t.functionName === e29); } hasDefinedNameDescription(e29) { return this._descriptions.some((t) => t.functionName === e29 && t.functionType === Dt2.DefinedName); } isFormulaDefinedName(e29) { let t = this._descriptions.filter((t2) => t2.functionName === e29 && t2.functionType === Dt2.DefinedName); if (t.length === 0) return false; let n = t[0].description; return !nr2(n); } _initialize() { this._localeService.localeChanged$.subscribe(() => { this._registerDescriptions(); }), this._initDescription(), this._registerDescriptions(); } _initDescription() { var e29; let t = [...ws2, ...Kl2, ...ql2, ...mu, ...Hu2, ...qd, ..._p, ...Vp, ...sm, ...Gm, ...Cg, ...jg, ...nv, ...Ay, ...jy, ...Fy].map((e30) => e30[1]), n = gi2.filter((e30) => t.includes(e30.functionName)), r = this._configService.getConfig(Ln4); this._descriptions = n.concat((e29 = r == null ? void 0 : r.description) == null ? [] : e29); } _registerDescriptions() { let e29 = this._localeService, t = this._descriptions.map((t2) => ({ functionName: _i4(t2, e29), functionType: t2.functionType, description: e29.t(t2.description), abstract: e29.t(t2.abstract), functionParameter: t2.functionParameter.map((t3) => ({ name: e29.t(t3.name), detail: e29.t(t3.detail), example: t3.example, require: t3.require, repeat: t3.repeat })) })); this._functionService.registerDescriptions(...t); } }; yi4 = Y5([J5(0, uo2), J5(1, Inject(zu)), J5(2, Yr)], yi4); var bi4 = class extends E { constructor(e29, t, n, r) { super(), this._descriptionService = e29, this._definedNamesService = t, this._univerInstanceService = n, this._commandService = r, X5(this, `_preUnitId`, null), this._initialize(); } _initialize() { this._descriptionListener(), this._changeUnitListener(), this._changeSheetListener(); } _descriptionListener() { T2(this._definedNamesService.update$.subscribe(() => { this._registerDescriptions(); })); } _changeUnitListener() { T2(this._univerInstanceService.getCurrentTypeOfUnit$(O.UNIVER_SHEET).subscribe((e29) => { this._unRegisterDescriptions(), e29 && this._registerDescriptions(); })); } _changeSheetListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29, t) => { if (!(t != null && t.fromCollab)) { if (e29.id === Vr3.id) this._unregisterDescriptionsForNotInSheetId(), this._registerDescriptions(); else if (e29.id === hr2.id) { let t2 = e29.params; this._registerDescription(t2); } else if (e29.id === gr2.id) { let t2 = e29.params; this._unregisterDescription(t2); } } })); } _registerDescription(e29) { let t = this._getUnitIdAndSheetId(e29); if (!t) return; let { sheetId: n } = t, { name: r, comment: i, formulaOrRefString: a, localSheetId: o } = e29; !this._descriptionService.hasDescription(r) && (o == null || o === Cf2 || o === n) && this._descriptionService.registerDescriptions([{ functionName: r, description: a + (i || ``), abstract: a, functionType: Dt2.DefinedName, functionParameter: [] }]); } _unregisterDescription(e29) { let { name: t } = e29; this._descriptionService.unregisterDescriptions([t]); } _unRegisterDescriptions() { if (this._preUnitId == null) return; let e29 = this._definedNamesService.getDefinedNameMap(this._preUnitId); if (e29 == null) return; let t = []; Array.from(Object.values(e29)).forEach((e30) => { let { name: n } = e30; t.push(n); }), this._descriptionService.unregisterDescriptions(t), this._preUnitId = null; } _getUnitIdAndSheetId(e29 = {}) { let { unitId: t, subUnitId: n } = e29, r = t ? this._univerInstanceService.getUnit(t, O.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(O.UNIVER_SHEET); if (!r) return null; let i = n ? r.getSheetBySheetId(n) : r.getActiveSheet(true); return i ? { unitId: r.getUnitId(), sheetId: i.getSheetId() } : null; } _registerDescriptions() { let e29 = this._getUnitIdAndSheetId(); if (!e29) return; let { unitId: t, sheetId: n } = e29, r = this._definedNamesService.getDefinedNameMap(t); if (!r) return; let i = []; this._preUnitId = t, Array.from(Object.values(r)).forEach((e30) => { let { name: t2, comment: r2, formulaOrRefString: a, localSheetId: o } = e30; !this._descriptionService.hasDescription(t2) && (o == null || o === Cf2 || o === n) && i.push({ functionName: t2, description: a + (r2 || ``), abstract: a, functionType: Dt2.DefinedName, functionParameter: [] }); }), this._descriptionService.registerDescriptions(i); } _unregisterDescriptionsForNotInSheetId() { let e29 = this._getUnitIdAndSheetId(); if (!e29) return; let { unitId: t, sheetId: n } = e29, r = this._definedNamesService.getDefinedNameMap(t); if (!r) return; let i = []; Array.from(Object.values(r)).forEach((e30) => { let { name: t2, localSheetId: r2 } = e30; r2 !== Cf2 && r2 !== n && i.push(t2); }), this._descriptionService.unregisterDescriptions(i); } }; bi4 = Y5([J5(0, vi3), J5(1, pr2), J5(2, Mu), J5(3, ii)], bi4); var xi3 = class extends E { constructor(e29) { super(), this._commandService = e29, [Fn4, In3, Ln2].forEach((e30) => this._commandService.registerCommand(e30)); } }; xi3 = Y5([J5(0, ii)], xi3); var Si3 = class extends E { constructor(e29, t, n, r) { super(), this._descriptionService = e29, this._univerInstanceService = t, this._commandService = n, this._superTableService = r, X5(this, `_preUnitId`, null), this._initialize(); } _initialize() { this._descriptionListener(), this._changeUnitListener(), this._changeSheetListener(); } _descriptionListener() { T2(this._superTableService.update$.subscribe(() => { this._registerDescriptions(); })); } _changeUnitListener() { T2(this._univerInstanceService.getCurrentTypeOfUnit$(O.UNIVER_SHEET).subscribe((e29) => { this._unRegisterDescriptions(), e29 && this._registerDescriptions(); })); } _changeSheetListener() { this.disposeWithMe(this._commandService.onCommandExecuted((e29, t) => { if (!(t != null && t.fromCollab)) { if (e29.id === Vr3.id) this._unregisterDescriptionsForNotInSheetId(), this._registerDescriptions(); else if (e29.id === Br2.id) { let t2 = e29.params; this._registerDescription(t2); } else if (e29.id === Vr2.id) { let t2 = e29.params; this._unregisterDescription(t2); } } })); } _registerDescription(e29) { let t = this._getUnitIdAndSheetId(e29); if (!t) return; let { unitId: n } = t, { tableName: r, reference: i } = e29; if (!this._descriptionService.hasDescription(r)) { var a; let e30 = Kn2(((a = this._univerInstanceService.getUnit(n)) == null || (a = a.getSheetBySheetId(i.sheetId)) == null ? void 0 : a.getName()) || ``, i.range); this._descriptionService.registerDescriptions([{ functionName: r, description: e30, abstract: e30, functionType: Dt2.Table, functionParameter: [] }]); } } _unregisterDescription(e29) { let { tableName: t } = e29; this._descriptionService.unregisterDescriptions([t]); } _unRegisterDescriptions() { if (this._preUnitId == null) return; let e29 = this._superTableService.getTableMap(this._preUnitId); if (e29 == null) return; let t = []; e29.forEach((e30, n) => { t.push(n); }), this._descriptionService.unregisterDescriptions(t), this._preUnitId = null; } _getUnitIdAndSheetId(e29 = {}) { let { unitId: t, subUnitId: n } = e29, r = t ? this._univerInstanceService.getUnit(t, O.UNIVER_SHEET) : this._univerInstanceService.getCurrentUnitOfType(O.UNIVER_SHEET); if (!r) return null; let i = n ? r.getSheetBySheetId(n) : r.getActiveSheet(true); return i ? { unitId: r.getUnitId(), sheetId: i.getSheetId() } : null; } _registerDescriptions() { let e29 = this._getUnitIdAndSheetId(); if (!e29) return; let { unitId: t } = e29, n = this._superTableService.getTableMap(t); if (!n) return; let r = []; this._preUnitId = t, n.forEach((e30, n2) => { var i; let a = Kn2(((i = this._univerInstanceService.getUnit(t)) == null || (i = i.getSheetBySheetId(e30.sheetId)) == null ? void 0 : i.getName()) || ``, e30.range); this._descriptionService.hasDescription(n2) || r.push({ functionName: n2, description: a, abstract: a, functionType: Dt2.Table, functionParameter: [] }); }), this._descriptionService.registerDescriptions(r); } _unregisterDescriptionsForNotInSheetId() { let e29 = this._getUnitIdAndSheetId(); if (!e29) return; let { unitId: t } = e29, n = this._superTableService.getTableMap(t); if (!n) return; let r = []; n.forEach((e30, t2) => { r.push(t2); }), this._descriptionService.unregisterDescriptions(r); } }; Si3 = Y5([J5(0, vi3), J5(1, Mu), J5(2, ii), J5(3, zr2)], Si3); function Ci3(t, n, r, i) { let a = t.sequenceNodesBuilder(n); if (a == null) return n; let o = []; for (let t2 = 0, n2 = a.length; t2 < n2; t2++) { let n3 = a[t2]; if (typeof n3 == `string` || n3.nodeType !== Xr.REFERENCE) continue; let { token: s } = n3, c = Jr2(s), { sheetName: l, unitId: u } = c, d = c.range; d.startAbsoluteRefType === V.ALL && d.endAbsoluteRefType === V.ALL || (d = Do(d, r, i), o.push({ unitId: u, sheetName: l, range: d })); } return o.map((e29) => `${e29.unitId}!${e29.sheetName}!${e29.range.startRow}!${e29.range.endRow}!${e29.range.startColumn}!${e29.range.endColumn}`).join(`|`); } var wi3 = class extends E { constructor(e29, t, n, r) { super(), this._refRangeService = e29, this._lexerTreeBuilder = t, this._univerInstanceService = n, this._injector = r; } transformFormulaByEffectCommand(e29, t, n, r) { let i = this._lexerTreeBuilder.sequenceNodesBuilder(n), a = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET), o = a.getActiveSheet(), s = a.getUnitId(), c = o.getSheetId(), l = i == null ? void 0 : i.map((n2) => { if (typeof n2 == `object` && n2.nodeType === Xr.REFERENCE) { let { range: i2, unitId: a2, sheetName: o2 } = Jr2(n2.token), l2 = this._univerInstanceService.getUnit(a2 || e29), u = o2 ? l2 == null ? void 0 : l2.getSheetBySheetName(o2) : l2 == null ? void 0 : l2.getSheetBySheetId(t); if (!u) throw Error(`Sheet not found`); let d = l2.getUnitId(), f = u.getSheetId(); if (d !== s || f !== c) return n2; let p = Os3(i2, r), m = ``; if (p) { let e30 = Do(i2, p.startColumn - i2.startColumn, p.startRow - i2.startRow); m = a2 && o2 ? qn2(a2, o2, e30) : o2 ? Kn2(o2, e30) : Gn2(e30); } else m = D3.REF; return { ...n2, token: m }; } else return n2; }); return l ? `=${Zr2(l)}` : ``; } registerFormula(e29, t, n, r) { let i = /* @__PURE__ */ new Map(), a = this._lexerTreeBuilder.sequenceNodesBuilder(n), o = new un(), s = (e30) => { let t2 = this._univerInstanceService.getCurrentUnitForType(O.UNIVER_SHEET), n2 = t2.getActiveSheet(), o2 = t2.getUnitId(), s2 = n2.getSheetId(), c = a == null ? void 0 : a.map((t3) => { if (typeof t3 == `object` && t3.nodeType === Xr.REFERENCE) { let n3 = i.get(t3.token); if (n3.unitId !== o2 || n3.subUnitId !== s2) return t3; let r2 = Os3(n3.range, e30), a2 = ``; if (r2) { let e31 = r2.startColumn - n3.range.startColumn, t4 = r2.startRow - n3.range.startRow, i2 = Do(n3.range, e31, t4); a2 = n3.unitId && n3.sheetName ? qn2(n3.unitId, n3.sheetName, i2) : n3.sheetName ? Kn2(n3.sheetName, i2) : Gn2(i2); } else a2 = D3.REF; return { ...t3, token: a2 }; } else return t3; }); return r(`=${c && Zr2(c)}`); }; return a == null || a.forEach((n2) => { if (typeof n2 == `object` && n2.nodeType === Xr.REFERENCE) { let { range: r2, unitId: a2, sheetName: c } = Jr2(n2.token), l = this._univerInstanceService.getUnit(a2 || e29), u = c ? l == null ? void 0 : l.getSheetBySheetName(c) : l == null ? void 0 : l.getSheetBySheetId(t); if (!u) return; let d = l.getUnitId(), f = u.getSheetId(), p = { unitId: d, subUnitId: f, range: r2, sheetName: c }; i.set(n2.token, p), o.add(this._refRangeService.registerRefRange(r2, s, d, f)); } }), o; } _getFormulaDependcy(t, n, r, i) { let a = ka(r) ? this._lexerTreeBuilder.sequenceNodesBuilder(r) : null, o = []; return a == null || a.forEach((r2) => { if (typeof r2 == `object` && r2.nodeType === Xr.REFERENCE) { let { range: a2, unitId: s, sheetName: c } = Jr2(r2.token); if (a2.startAbsoluteRefType === V.ALL && a2.endAbsoluteRefType === V.ALL) return; let l = this._univerInstanceService.getUnit(s || t), u = c ? l == null ? void 0 : l.getSheetBySheetName(c) : l == null ? void 0 : l.getSheetBySheetId(n); if (!u) return; let d = l.getUnitId(), f = u.getSheetId(), p = i[0].startRow, m = i[0].startColumn, h = a2.startRow, g2 = a2.startColumn, _2 = i.map((e29) => ({ startRow: e29.startRow - p + h, endRow: e29.endRow - p + h, startColumn: e29.startColumn - m + g2, endColumn: e29.endColumn - m + g2 })); o.push({ unitId: d, subUnitId: f, ranges: _2 }); } }), o; } registerRangeFormula(e29, t, n, r, i) { let a = new un(), o = r.map((r2) => this._getFormulaDependcy(e29, t, r2, n)), s = (a2) => { let s2 = Fs3(this._injector, a2); if (!s2) return { undos: [], redos: [] }; let c = n[0].startRow, l = n[0].startColumn, u = [{ unitId: e29, subUnitId: t, ranges: n }, ...o.flat()], d = []; for (let { unitId: e30, subUnitId: t2, ranges: n2 } of u) if (e30 === s2.unitId && t2 === s2.subUnitId) { let e31 = [], t3 = n2[0].startRow, r2 = n2[0].startColumn, i2 = t3 - c, a3 = r2 - l; for (let t4 of s2.ranges) { let r3 = n2.map((e32) => Po(t4, e32)).filter(Boolean); r3.length > 0 && e31.push(...r3); } e31.length > 0 && d.push(e31.map((e32) => ({ startRow: e32.startRow - i2, endRow: e32.endRow - i2, startColumn: e32.startColumn - a3, endColumn: e32.endColumn - a3 }))); } if (d.length > 0) { let o2 = G.splitIntoGrid([...d.flat()]), s3 = G.subtractMulti(n, o2); s3.sort((e30, t2) => e30.startRow - t2.startRow || e30.startColumn - t2.startColumn); let u2 = /* @__PURE__ */ new Map(); for (let n2 = 0; n2 < o2.length; n2++) { let i2 = o2[n2], s4 = i2.startRow, d2 = i2.startColumn, f2 = s4 - c, p2 = d2 - l, m2 = As3(i2, a2).sort((e30, t2) => e30.startRow - t2.startRow || e30.startColumn - t2.startColumn); if (!m2.length) continue; let h = m2[0].startRow, g2 = m2[0].startColumn, _2 = h - c, v = g2 - l, y = []; for (let n3 = 0; n3 < r.length; n3++) { let i3 = r[n3], o3 = ka(i3), s5 = o3 ? this._lexerTreeBuilder.moveFormulaRefOffset(i3, p2, f2) : i3, c2 = o3 ? this.transformFormulaByEffectCommand(e29, t, s5, a2) : s5, l2 = Ci3(this._lexerTreeBuilder, c2, -v, -_2); y.push({ newFormula: c2, orginFormula: l2 }); } let b = { formulas: y, ranges: m2, key: y.map((e30) => e30.orginFormula).join(`_`) }; u2.has(b.key) ? u2.get(b.key).push(b) : u2.set(b.key, [b]); } let f = r.map((e30) => Ci3(this._lexerTreeBuilder, e30, 0, 0)).join(`_`); if (s3.length > 0) { let e30 = s3[0].startRow, t2 = s3[0].startColumn, n2 = []; for (let i3 = 0; i3 < r.length; i3++) { let a3 = r[i3]; n2.push({ newFormula: ka(a3) ? this._lexerTreeBuilder.moveFormulaRefOffset(a3, t2 - l, e30 - c) : a3, orginFormula: a3 }); } let i2 = { formulas: n2, ranges: s3, key: f }; u2.has(i2.key) ? u2.get(i2.key).push(i2) : u2.set(i2.key, [i2]); } let p = [], m = Array.from(u2.keys()); for (let e30 = m.length - 1; e30 >= 0; e30--) { let t2 = m[e30], n2 = u2.get(t2).sort((e31, t3) => e31.ranges[0].startRow - t3.ranges[0].startRow || e31.ranges[0].startColumn - t3.ranges[0].startColumn), r2 = []; for (let e31 = 0; e31 < n2[0].formulas.length; e31++) r2.push(n2[0].formulas[e31].newFormula); let i2 = G.mergeRanges(n2.map((e31) => e31.ranges).flat()); i2.sort((e31, t3) => e31.startRow - t3.startRow || e31.startColumn - t3.startColumn), p.push({ formulas: r2, ranges: i2 }); } return i(p); } return { undos: [], redos: [] }; }; return n.forEach((n2) => { let r2 = this._refRangeService.registerRefRange(n2, s, e29, t); a.add(r2); }), [...o.flat()].forEach(({ unitId: e30, subUnitId: t2, ranges: n2 }) => { n2.forEach((n3) => { let r2 = this._refRangeService.registerRefRange(n3, s, e30, t2); a.add(r2); }); }), a; } }; wi3 = Y5([J5(0, Inject(zs3)), J5(1, Inject(ni)), J5(2, Mu), J5(3, Inject(Injector))], wi3); var Ti3 = `sheets-formula.remote-register-function.service`; var Ei3 = createIdentifier(Ti3); var Di3 = class { constructor(e29) { this._functionService = e29; } async registerFunctions(e29) { let t = e29.map(([e30, t2]) => Oi3(e30, t2)); this._functionService.registerExecutors(...t); } async registerAsyncFunctions(e29) { let t = e29.map(([e30, t2]) => ki3(e30, t2)); this._functionService.registerExecutors(...t); } async unregisterFunctions(e29) { this._functionService.unregisterExecutors(...e29), this._functionService.unregisterDescriptions(...e29), this._functionService.deleteFormulaAstCacheKey(...e29); } }; Di3 = Y5([J5(0, uo2)], Di3); function Oi3(e29, t) { let n = new Yl2(t); return n.calculateCustom = Function(`return ${e29}`)(), n; } function ki3(e29, t) { let n = new Xl2(t); return n.calculateCustom = Function(`return ${e29}`)(), n; } var Ai3 = createIdentifier(`sheets-formula.register-function-service`); var ji3 = class extends E { constructor(e29, t, n, r) { super(), this._localeService = e29, this._descriptionService = t, this._functionService = n, this._remoteRegisterFunctionService = r; } registerFunction(e29) { return this._registerSingleFunction(e29); } registerAsyncFunction(e29) { return this._registerSingleFunction({ ...e29, async: true }); } registerFunctions(e29) { let { locales: t, description: n, calculate: r } = e29; t && this._localeService.load(t); let i = new un(); if (n) i.add(this._descriptionService.registerDescriptions(n)); else { let e30 = r.map(([e31, t2, n2]) => ({ functionName: t2, functionType: Dt2.User, description: ``, abstract: n2 || ``, functionParameter: [] })); i.add(this._functionService.registerDescriptions(...e30)); } return i.add(this._registerLocalExecutors(r)), this._remoteRegisterFunctionService && i.add(this._registerRemoteExecutors(r)), i; } _registerSingleFunction(e29) { let { name: t, func: n, description: r, locales: i, async: a = false } = e29, o = new un(); if (i && this._localeService.load(i), typeof r == `string`) { let e30 = { functionName: t, functionType: Dt2.User, description: r, abstract: r || ``, functionParameter: [] }; o.add(this._descriptionService.registerDescriptions([e30])); } else o.add(this._descriptionService.registerDescriptions([r])); let s = a ? new Xl2(t) : new Yl2(t); return s.calculateCustom = n, this._functionService.registerExecutors(s), o.add(T2(() => this._functionService.unregisterExecutors(t))), o.add(T2(() => this._functionService.unregisterDescriptions(t))), o.add(T2(() => this._functionService.deleteFormulaAstCacheKey(t))), this._remoteRegisterFunctionService && (this._remoteRegisterFunctionService.registerAsyncFunctions([[n.toString(), t]]), o.add(T2(() => this._remoteRegisterFunctionService.unregisterFunctions([t])))), o; } _registerLocalExecutors(e29) { let t = e29.map(([e30, t2]) => t2), n = e29.map(([e30, t2]) => { let n2 = new Yl2(t2); return n2.calculateCustom = e30, n2; }); return this._functionService.registerExecutors(...n), T2(() => this._functionService.unregisterExecutors(...t)); } _registerRemoteExecutors(e29) { let t = [], n = e29.map(([e30, n2]) => (t.push(n2), [e30.toString(), n2])); return this._remoteRegisterFunctionService.registerFunctions(n), T2(() => this._remoteRegisterFunctionService.unregisterFunctions(t)); } }; ji3 = Y5([J5(0, Inject(zu)), J5(1, Inject(vi3)), J5(2, uo2), J5(3, Optional(Ei3))], ji3); var Mi3 = class extends qu { constructor(e29 = Vn4, t, n) { super(), this._config = e29, this._injector = t, this._configService = n; let { ...r } = merge_default({}, Vn4, this._config); this._configService.setConfig(Bn4, r); } onStarting() { this._injector.add([Di3]), this._injector.get(W2).registerChannel(Ti3, L2(this._injector.get(Di3))); } }; X5(Mi3, `pluginName`, `SHEET_FORMULA_REMOTE_PLUGIN`), X5(Mi3, `packageName`, Zr4), X5(Mi3, `version`, Qr3), X5(Mi3, `type`, O.UNIVER_SHEET), Mi3 = Y5([Yu(Yy), J5(1, Inject(Injector)), J5(2, Yr)], Mi3); var Ni3 = class extends qu { constructor(e29 = zn4, t, n) { super(), this._config = e29, this._injector = t, this._configService = n; let { ...r } = merge_default({}, zn4, this._config); this._configService.setConfig(Ln4, r, { merge: true }); } onStarting() { let e29 = this._injector, t = [[Ai3, { useClass: ji3 }], [vi3, { useClass: yi4 }], [xi3], [wi3], [ei3], [Jn4], [Zn4], [Xr3], [$r4], [bi4], [Yr4], [Si3], [Hn4]]; if (this._config.notExecuteFormula) { let n = e29.get(W2); t.push([Ei3, { useFactory: () => R3(n.requestChannel(Ti3)) }]); } t.forEach((t2) => e29.add(t2)); } onReady() { St(this._injector, [[xi3], [$r4], [ei3], [Jn4], [Xr3], [Yr4], [Hn4]]), Tn() && St(this._injector, [[Zn4]]); } onRendered() { St(this._injector, [[bi4], [Si3]]), Tn() || St(this._injector, [[Zn4]]); } }; X5(Ni3, `pluginName`, `SHEETS_FORMULA_PLUGIN`), X5(Ni3, `packageName`, Zr4), X5(Ni3, `version`, Qr3), X5(Ni3, `type`, O.UNIVER_SHEET), Ni3 = Y5([Yu(Xf2), J5(1, Inject(Injector)), J5(2, Yr)], Ni3); // node_modules/@univerjs/preset-sheets-core/lib/es/worker.js function g(r = {}) { const { formula: e29 } = r; return { plugins: [ [Xf2, { onlyRegisterFormulaRelatedMutations: true }], [Yy, { function: e29 == null ? void 0 : e29.function }], $2, Mi3 ] }; } })(); /*! Bundled license information: @wendellhu/redi/dist/esm/index.js: (* istanbul ignore next -- @preserve *) lodash-es/lodash.js: (** * @license * Lodash (Custom Build) * Build: `lodash modularize exports="es" -o ./` * Copyright OpenJS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors *) decimal.js/decimal.mjs: (*! * decimal.js v10.6.0 * An arbitrary-precision Decimal type for JavaScript. * https://github.com/MikeMcl/decimal.js * Copyright (c) 2025 Michael Mclaughlin * MIT Licence *) */