{"mappings":"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","sources":["src/assets/js/PicarioXPO.RenderAPI.V2.JS/PicarioXPO.RenderAPI.V2.js"],"sourcesContent":["var Collections\r\n;(function (Collections) {\r\n function defaultCompare(a, b) {\r\n if (a < b) {\r\n return -1\r\n } else if (a === b) {\r\n return 0\r\n } else {\r\n return 1\r\n }\r\n }\r\n Collections.defaultCompare = defaultCompare\r\n function defaultEquals(a, b) {\r\n return a === b\r\n }\r\n Collections.defaultEquals = defaultEquals\r\n function defaultToString(item) {\r\n if (item === null) {\r\n return 'COLLECTION_NULL'\r\n } else if (Collections.isUndefined(item)) {\r\n return 'COLLECTION_UNDEFINED'\r\n } else if (Collections.isString(item)) {\r\n return item\r\n } else {\r\n return item.toString()\r\n }\r\n }\r\n Collections.defaultToString = defaultToString\r\n function makeString(item, join) {\r\n if (join === void 0) {\r\n join = ','\r\n }\r\n if (item === null) {\r\n return 'COLLECTION_NULL'\r\n } else if (Collections.isUndefined(item)) {\r\n return 'COLLECTION_UNDEFINED'\r\n } else if (Collections.isString(item)) {\r\n return item.toString()\r\n } else {\r\n var toret = '{'\r\n var first = true\r\n for (var prop in item) {\r\n if (item.hasOwnProperty(prop)) {\r\n if (first) first = false\r\n else toret = toret + join\r\n toret = toret + prop + ':' + item[prop]\r\n }\r\n }\r\n return toret + '}'\r\n }\r\n }\r\n Collections.makeString = makeString\r\n function isFunction(func) {\r\n return typeof func === 'function'\r\n }\r\n Collections.isFunction = isFunction\r\n function isUndefined(obj) {\r\n return typeof obj === 'undefined'\r\n }\r\n Collections.isUndefined = isUndefined\r\n function isString(obj) {\r\n return Object.prototype.toString.call(obj) === '[object String]'\r\n }\r\n Collections.isString = isString\r\n function reverseCompareFunction(compareFunction) {\r\n if (!Collections.isFunction(compareFunction)) {\r\n return function (a, b) {\r\n if (a < b) {\r\n return 1\r\n } else if (a === b) {\r\n return 0\r\n } else {\r\n return -1\r\n }\r\n }\r\n } else {\r\n return function (d, v) {\r\n return compareFunction(d, v) * -1\r\n }\r\n }\r\n }\r\n Collections.reverseCompareFunction = reverseCompareFunction\r\n function compareToEquals(compareFunction) {\r\n return function (a, b) {\r\n return compareFunction(a, b) === 0\r\n }\r\n }\r\n Collections.compareToEquals = compareToEquals\r\n var arrays\r\n ;(function (arrays) {\r\n function indexOf(array, item, equalsFunction) {\r\n var equals = equalsFunction || Collections.defaultEquals\r\n var length = array.length\r\n for (var i = 0; i < length; i++) {\r\n if (equals(array[i], item)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n arrays.indexOf = indexOf\r\n function lastIndexOf(array, item, equalsFunction) {\r\n var equals = equalsFunction || Collections.defaultEquals\r\n var length = array.length\r\n for (var i = length - 1; i >= 0; i--) {\r\n if (equals(array[i], item)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n arrays.lastIndexOf = lastIndexOf\r\n function contains(array, item, equalsFunction) {\r\n return arrays.indexOf(array, item, equalsFunction) >= 0\r\n }\r\n arrays.contains = contains\r\n function remove(array, item, equalsFunction) {\r\n var index = arrays.indexOf(array, item, equalsFunction)\r\n if (index < 0) {\r\n return false\r\n }\r\n array.splice(index, 1)\r\n return true\r\n }\r\n arrays.remove = remove\r\n function frequency(array, item, equalsFunction) {\r\n var equals = equalsFunction || Collections.defaultEquals\r\n var length = array.length\r\n var freq = 0\r\n for (var i = 0; i < length; i++) {\r\n if (equals(array[i], item)) {\r\n freq++\r\n }\r\n }\r\n return freq\r\n }\r\n arrays.frequency = frequency\r\n function equals(array1, array2, equalsFunction) {\r\n var equals = equalsFunction || Collections.defaultEquals\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n var length = array1.length\r\n for (var i = 0; i < length; i++) {\r\n if (!equals(array1[i], array2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n arrays.equals = equals\r\n function copy(array) {\r\n return array.concat()\r\n }\r\n arrays.copy = copy\r\n function swap(array, i, j) {\r\n if (i < 0 || i >= array.length || j < 0 || j >= array.length) {\r\n return false\r\n }\r\n var temp = array[i]\r\n array[i] = array[j]\r\n array[j] = temp\r\n return true\r\n }\r\n arrays.swap = swap\r\n function toString(array) {\r\n return '[' + array.toString() + ']'\r\n }\r\n arrays.toString = toString\r\n function forEach(array, callback) {\r\n var lenght = array.length\r\n for (var i = 0; i < lenght; i++) {\r\n if (callback(array[i]) === false) {\r\n return\r\n }\r\n }\r\n }\r\n arrays.forEach = forEach\r\n })((arrays = Collections.arrays || (Collections.arrays = {})))\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this.firstNode = null\r\n this.lastNode = null\r\n this.nElements = 0\r\n }\r\n LinkedList.prototype.add = function (item, index) {\r\n if (Collections.isUndefined(index)) {\r\n index = this.nElements\r\n }\r\n if (index < 0 || index > this.nElements || Collections.isUndefined(item)) {\r\n return false\r\n }\r\n var newNode = this.createNode(item)\r\n if (this.nElements === 0) {\r\n this.firstNode = newNode\r\n this.lastNode = newNode\r\n } else if (index === this.nElements) {\r\n this.lastNode.next = newNode\r\n this.lastNode = newNode\r\n } else if (index === 0) {\r\n newNode.next = this.firstNode\r\n this.firstNode = newNode\r\n } else {\r\n var prev = this.nodeAtIndex(index - 1)\r\n newNode.next = prev.next\r\n prev.next = newNode\r\n }\r\n this.nElements++\r\n return true\r\n }\r\n LinkedList.prototype.first = function () {\r\n if (this.firstNode !== null) {\r\n return this.firstNode.element\r\n }\r\n return undefined\r\n }\r\n LinkedList.prototype.last = function () {\r\n if (this.lastNode !== null) {\r\n return this.lastNode.element\r\n }\r\n return undefined\r\n }\r\n LinkedList.prototype.elementAtIndex = function (index) {\r\n var node = this.nodeAtIndex(index)\r\n if (node === null) {\r\n return undefined\r\n }\r\n return node.element\r\n }\r\n LinkedList.prototype.indexOf = function (item, equalsFunction) {\r\n var equalsF = equalsFunction || Collections.defaultEquals\r\n if (Collections.isUndefined(item)) {\r\n return -1\r\n }\r\n var currentNode = this.firstNode\r\n var index = 0\r\n while (currentNode !== null) {\r\n if (equalsF(currentNode.element, item)) {\r\n return index\r\n }\r\n index++\r\n currentNode = currentNode.next\r\n }\r\n return -1\r\n }\r\n LinkedList.prototype.contains = function (item, equalsFunction) {\r\n return this.indexOf(item, equalsFunction) >= 0\r\n }\r\n LinkedList.prototype.remove = function (item, equalsFunction) {\r\n var equalsF = equalsFunction || Collections.defaultEquals\r\n if (this.nElements < 1 || Collections.isUndefined(item)) {\r\n return false\r\n }\r\n var previous = null\r\n var currentNode = this.firstNode\r\n while (currentNode !== null) {\r\n if (equalsF(currentNode.element, item)) {\r\n if (currentNode === this.firstNode) {\r\n this.firstNode = this.firstNode.next\r\n if (currentNode === this.lastNode) {\r\n this.lastNode = null\r\n }\r\n } else if (currentNode === this.lastNode) {\r\n this.lastNode = previous\r\n previous.next = currentNode.next\r\n currentNode.next = null\r\n } else {\r\n previous.next = currentNode.next\r\n currentNode.next = null\r\n }\r\n this.nElements--\r\n return true\r\n }\r\n previous = currentNode\r\n currentNode = currentNode.next\r\n }\r\n return false\r\n }\r\n LinkedList.prototype.clear = function () {\r\n this.firstNode = null\r\n this.lastNode = null\r\n this.nElements = 0\r\n }\r\n LinkedList.prototype.equals = function (other, equalsFunction) {\r\n var eqF = equalsFunction || Collections.defaultEquals\r\n if (!(other instanceof Collections.LinkedList)) {\r\n return false\r\n }\r\n if (this.size() !== other.size()) {\r\n return false\r\n }\r\n return this.equalsAux(this.firstNode, other.firstNode, eqF)\r\n }\r\n LinkedList.prototype.equalsAux = function (n1, n2, eqF) {\r\n while (n1 !== null) {\r\n if (!eqF(n1.element, n2.element)) {\r\n return false\r\n }\r\n n1 = n1.next\r\n n2 = n2.next\r\n }\r\n return true\r\n }\r\n LinkedList.prototype.removeElementAtIndex = function (index) {\r\n if (index < 0 || index >= this.nElements) {\r\n return undefined\r\n }\r\n var element\r\n if (this.nElements === 1) {\r\n element = this.firstNode.element\r\n this.firstNode = null\r\n this.lastNode = null\r\n } else {\r\n var previous = this.nodeAtIndex(index - 1)\r\n if (previous === null) {\r\n element = this.firstNode.element\r\n this.firstNode = this.firstNode.next\r\n } else if (previous.next === this.lastNode) {\r\n element = this.lastNode.element\r\n this.lastNode = previous\r\n }\r\n if (previous !== null) {\r\n element = previous.next.element\r\n previous.next = previous.next.next\r\n }\r\n }\r\n this.nElements--\r\n return element\r\n }\r\n LinkedList.prototype.forEach = function (callback) {\r\n var currentNode = this.firstNode\r\n while (currentNode !== null) {\r\n if (callback(currentNode.element) === false) {\r\n break\r\n }\r\n currentNode = currentNode.next\r\n }\r\n }\r\n LinkedList.prototype.reverse = function () {\r\n var previous = null\r\n var current = this.firstNode\r\n var temp = null\r\n while (current !== null) {\r\n temp = current.next\r\n current.next = previous\r\n previous = current\r\n current = temp\r\n }\r\n temp = this.firstNode\r\n this.firstNode = this.lastNode\r\n this.lastNode = temp\r\n }\r\n LinkedList.prototype.toArray = function () {\r\n var array = []\r\n var currentNode = this.firstNode\r\n while (currentNode !== null) {\r\n array.push(currentNode.element)\r\n currentNode = currentNode.next\r\n }\r\n return array\r\n }\r\n LinkedList.prototype.size = function () {\r\n return this.nElements\r\n }\r\n LinkedList.prototype.isEmpty = function () {\r\n return this.nElements <= 0\r\n }\r\n LinkedList.prototype.toString = function () {\r\n return Collections.arrays.toString(this.toArray())\r\n }\r\n LinkedList.prototype.nodeAtIndex = function (index) {\r\n if (index < 0 || index >= this.nElements) {\r\n return null\r\n }\r\n if (index === this.nElements - 1) {\r\n return this.lastNode\r\n }\r\n var node = this.firstNode\r\n for (var i = 0; i < index; i++) {\r\n node = node.next\r\n }\r\n return node\r\n }\r\n LinkedList.prototype.createNode = function (item) {\r\n return {\r\n element: item,\r\n next: null,\r\n }\r\n }\r\n return LinkedList\r\n })()\r\n Collections.LinkedList = LinkedList\r\n var Dictionary = (function () {\r\n function Dictionary(toStrFunction) {\r\n this.table = {}\r\n this.nElements = 0\r\n this.toStr = toStrFunction || Collections.defaultToString\r\n }\r\n Dictionary.prototype.getValue = function (key) {\r\n var pair = this.table[this.toStr(key)]\r\n if (Collections.isUndefined(pair)) {\r\n return undefined\r\n }\r\n return pair.value\r\n }\r\n Dictionary.prototype.setValue = function (key, value) {\r\n if (Collections.isUndefined(key) || Collections.isUndefined(value)) {\r\n return undefined\r\n }\r\n var ret\r\n var k = this.toStr(key)\r\n var previousElement = this.table[k]\r\n if (Collections.isUndefined(previousElement)) {\r\n this.nElements++\r\n ret = undefined\r\n } else {\r\n ret = previousElement.value\r\n }\r\n this.table[k] = {\r\n key: key,\r\n value: value,\r\n }\r\n return ret\r\n }\r\n Dictionary.prototype.remove = function (key) {\r\n var k = this.toStr(key)\r\n var previousElement = this.table[k]\r\n if (!Collections.isUndefined(previousElement)) {\r\n delete this.table[k]\r\n this.nElements--\r\n return previousElement.value\r\n }\r\n return undefined\r\n }\r\n Dictionary.prototype.keys = function () {\r\n var array = []\r\n for (var name in this.table) {\r\n if (this.table.hasOwnProperty(name)) {\r\n var pair = this.table[name]\r\n array.push(pair.key)\r\n }\r\n }\r\n return array\r\n }\r\n Dictionary.prototype.values = function () {\r\n var array = []\r\n for (var name in this.table) {\r\n if (this.table.hasOwnProperty(name)) {\r\n var pair = this.table[name]\r\n array.push(pair.value)\r\n }\r\n }\r\n return array\r\n }\r\n Dictionary.prototype.forEach = function (callback) {\r\n for (var name in this.table) {\r\n if (this.table.hasOwnProperty(name)) {\r\n var pair = this.table[name]\r\n var ret = callback(pair.key, pair.value)\r\n if (ret === false) {\r\n return\r\n }\r\n }\r\n }\r\n }\r\n Dictionary.prototype.containsKey = function (key) {\r\n return !Collections.isUndefined(this.getValue(key))\r\n }\r\n Dictionary.prototype.clear = function () {\r\n this.table = {}\r\n this.nElements = 0\r\n }\r\n Dictionary.prototype.size = function () {\r\n return this.nElements\r\n }\r\n Dictionary.prototype.isEmpty = function () {\r\n return this.nElements <= 0\r\n }\r\n Dictionary.prototype.toString = function () {\r\n var toret = '{'\r\n this.forEach(function (k, v) {\r\n toret = toret + '\\n\\t' + k.toString() + ' : ' + v.toString()\r\n })\r\n return toret + '\\n}'\r\n }\r\n return Dictionary\r\n })()\r\n Collections.Dictionary = Dictionary\r\n var MultiDictionary = (function () {\r\n function MultiDictionary(toStrFunction, valuesEqualsFunction, allowDuplicateValues) {\r\n if (allowDuplicateValues === void 0) {\r\n allowDuplicateValues = false\r\n }\r\n this.dict = new Dictionary(toStrFunction)\r\n this.equalsF = valuesEqualsFunction || Collections.defaultEquals\r\n this.allowDuplicate = allowDuplicateValues\r\n }\r\n MultiDictionary.prototype.getValue = function (key) {\r\n var values = this.dict.getValue(key)\r\n if (Collections.isUndefined(values)) {\r\n return []\r\n }\r\n return Collections.arrays.copy(values)\r\n }\r\n MultiDictionary.prototype.setValue = function (key, value) {\r\n if (Collections.isUndefined(key) || Collections.isUndefined(value)) {\r\n return false\r\n }\r\n if (!this.containsKey(key)) {\r\n this.dict.setValue(key, [value])\r\n return true\r\n }\r\n var array = this.dict.getValue(key)\r\n if (!this.allowDuplicate) {\r\n if (Collections.arrays.contains(array, value, this.equalsF)) {\r\n return false\r\n }\r\n }\r\n array.push(value)\r\n return true\r\n }\r\n MultiDictionary.prototype.remove = function (key, value) {\r\n if (Collections.isUndefined(value)) {\r\n var v = this.dict.remove(key)\r\n return !Collections.isUndefined(v)\r\n }\r\n var array = this.dict.getValue(key)\r\n if (Collections.arrays.remove(array, value, this.equalsF)) {\r\n if (array.length === 0) {\r\n this.dict.remove(key)\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n MultiDictionary.prototype.keys = function () {\r\n return this.dict.keys()\r\n }\r\n MultiDictionary.prototype.values = function () {\r\n var values = this.dict.values()\r\n var array = []\r\n for (var i = 0; i < values.length; i++) {\r\n var v = values[i]\r\n for (var j = 0; j < v.length; j++) {\r\n array.push(v[j])\r\n }\r\n }\r\n return array\r\n }\r\n MultiDictionary.prototype.containsKey = function (key) {\r\n return this.dict.containsKey(key)\r\n }\r\n MultiDictionary.prototype.clear = function () {\r\n this.dict.clear()\r\n }\r\n MultiDictionary.prototype.size = function () {\r\n return this.dict.size()\r\n }\r\n MultiDictionary.prototype.isEmpty = function () {\r\n return this.dict.isEmpty()\r\n }\r\n return MultiDictionary\r\n })()\r\n Collections.MultiDictionary = MultiDictionary\r\n var Heap = (function () {\r\n function Heap(compareFunction) {\r\n this.data = []\r\n this.compare = compareFunction || Collections.defaultCompare\r\n }\r\n Heap.prototype.leftChildIndex = function (nodeIndex) {\r\n return 2 * nodeIndex + 1\r\n }\r\n Heap.prototype.rightChildIndex = function (nodeIndex) {\r\n return 2 * nodeIndex + 2\r\n }\r\n Heap.prototype.parentIndex = function (nodeIndex) {\r\n return Math.floor((nodeIndex - 1) / 2)\r\n }\r\n Heap.prototype.minIndex = function (leftChild, rightChild) {\r\n if (rightChild >= this.data.length) {\r\n if (leftChild >= this.data.length) {\r\n return -1\r\n } else {\r\n return leftChild\r\n }\r\n } else {\r\n if (this.compare(this.data[leftChild], this.data[rightChild]) <= 0) {\r\n return leftChild\r\n } else {\r\n return rightChild\r\n }\r\n }\r\n }\r\n Heap.prototype.siftUp = function (index) {\r\n var parent = this.parentIndex(index)\r\n while (index > 0 && this.compare(this.data[parent], this.data[index]) > 0) {\r\n Collections.arrays.swap(this.data, parent, index)\r\n index = parent\r\n parent = this.parentIndex(index)\r\n }\r\n }\r\n Heap.prototype.siftDown = function (nodeIndex) {\r\n var min = this.minIndex(this.leftChildIndex(nodeIndex), this.rightChildIndex(nodeIndex))\r\n while (min >= 0 && this.compare(this.data[nodeIndex], this.data[min]) > 0) {\r\n Collections.arrays.swap(this.data, min, nodeIndex)\r\n nodeIndex = min\r\n min = this.minIndex(this.leftChildIndex(nodeIndex), this.rightChildIndex(nodeIndex))\r\n }\r\n }\r\n Heap.prototype.peek = function () {\r\n if (this.data.length > 0) {\r\n return this.data[0]\r\n } else {\r\n return undefined\r\n }\r\n }\r\n Heap.prototype.add = function (element) {\r\n if (Collections.isUndefined(element)) {\r\n return undefined\r\n }\r\n this.data.push(element)\r\n this.siftUp(this.data.length - 1)\r\n return true\r\n }\r\n Heap.prototype.removeRoot = function () {\r\n if (this.data.length > 0) {\r\n var obj = this.data[0]\r\n this.data[0] = this.data[this.data.length - 1]\r\n this.data.splice(this.data.length - 1, 1)\r\n if (this.data.length > 0) {\r\n this.siftDown(0)\r\n }\r\n return obj\r\n }\r\n return undefined\r\n }\r\n Heap.prototype.contains = function (element) {\r\n var equF = Collections.compareToEquals(this.compare)\r\n return Collections.arrays.contains(this.data, element, equF)\r\n }\r\n Heap.prototype.size = function () {\r\n return this.data.length\r\n }\r\n Heap.prototype.isEmpty = function () {\r\n return this.data.length <= 0\r\n }\r\n Heap.prototype.clear = function () {\r\n this.data.length = 0\r\n }\r\n Heap.prototype.forEach = function (callback) {\r\n Collections.arrays.forEach(this.data, callback)\r\n }\r\n return Heap\r\n })()\r\n Collections.Heap = Heap\r\n var Stack = (function () {\r\n function Stack() {\r\n this.list = new LinkedList()\r\n }\r\n Stack.prototype.push = function (elem) {\r\n return this.list.add(elem, 0)\r\n }\r\n Stack.prototype.add = function (elem) {\r\n return this.list.add(elem, 0)\r\n }\r\n Stack.prototype.pop = function () {\r\n return this.list.removeElementAtIndex(0)\r\n }\r\n Stack.prototype.peek = function () {\r\n return this.list.first()\r\n }\r\n Stack.prototype.size = function () {\r\n return this.list.size()\r\n }\r\n Stack.prototype.contains = function (elem, equalsFunction) {\r\n return this.list.contains(elem, equalsFunction)\r\n }\r\n Stack.prototype.isEmpty = function () {\r\n return this.list.isEmpty()\r\n }\r\n Stack.prototype.clear = function () {\r\n this.list.clear()\r\n }\r\n Stack.prototype.forEach = function (callback) {\r\n this.list.forEach(callback)\r\n }\r\n return Stack\r\n })()\r\n Collections.Stack = Stack\r\n var Queue = (function () {\r\n function Queue() {\r\n this.list = new LinkedList()\r\n }\r\n Queue.prototype.enqueue = function (elem) {\r\n return this.list.add(elem)\r\n }\r\n Queue.prototype.add = function (elem) {\r\n return this.list.add(elem)\r\n }\r\n Queue.prototype.dequeue = function () {\r\n if (this.list.size() !== 0) {\r\n var el = this.list.first()\r\n this.list.removeElementAtIndex(0)\r\n return el\r\n }\r\n return undefined\r\n }\r\n Queue.prototype.peek = function () {\r\n if (this.list.size() !== 0) {\r\n return this.list.first()\r\n }\r\n return undefined\r\n }\r\n Queue.prototype.size = function () {\r\n return this.list.size()\r\n }\r\n Queue.prototype.contains = function (elem, equalsFunction) {\r\n return this.list.contains(elem, equalsFunction)\r\n }\r\n Queue.prototype.isEmpty = function () {\r\n return this.list.size() <= 0\r\n }\r\n Queue.prototype.clear = function () {\r\n this.list.clear()\r\n }\r\n Queue.prototype.forEach = function (callback) {\r\n this.list.forEach(callback)\r\n }\r\n return Queue\r\n })()\r\n Collections.Queue = Queue\r\n var PriorityQueue = (function () {\r\n function PriorityQueue(compareFunction) {\r\n this.heap = new Heap(Collections.reverseCompareFunction(compareFunction))\r\n }\r\n PriorityQueue.prototype.enqueue = function (element) {\r\n return this.heap.add(element)\r\n }\r\n PriorityQueue.prototype.add = function (element) {\r\n return this.heap.add(element)\r\n }\r\n PriorityQueue.prototype.dequeue = function () {\r\n if (this.heap.size() !== 0) {\r\n var el = this.heap.peek()\r\n this.heap.removeRoot()\r\n return el\r\n }\r\n return undefined\r\n }\r\n PriorityQueue.prototype.peek = function () {\r\n return this.heap.peek()\r\n }\r\n PriorityQueue.prototype.contains = function (element) {\r\n return this.heap.contains(element)\r\n }\r\n PriorityQueue.prototype.isEmpty = function () {\r\n return this.heap.isEmpty()\r\n }\r\n PriorityQueue.prototype.size = function () {\r\n return this.heap.size()\r\n }\r\n PriorityQueue.prototype.clear = function () {\r\n this.heap.clear()\r\n }\r\n PriorityQueue.prototype.forEach = function (callback) {\r\n this.heap.forEach(callback)\r\n }\r\n return PriorityQueue\r\n })()\r\n Collections.PriorityQueue = PriorityQueue\r\n var Set = (function () {\r\n function Set(toStringFunction) {\r\n this.dictionary = new Dictionary(toStringFunction)\r\n }\r\n Set.prototype.contains = function (element) {\r\n return this.dictionary.containsKey(element)\r\n }\r\n Set.prototype.add = function (element) {\r\n if (this.contains(element) || Collections.isUndefined(element)) {\r\n return false\r\n } else {\r\n this.dictionary.setValue(element, element)\r\n return true\r\n }\r\n }\r\n Set.prototype.intersection = function (otherSet) {\r\n var set = this\r\n this.forEach(function (element) {\r\n if (!otherSet.contains(element)) {\r\n set.remove(element)\r\n }\r\n return true\r\n })\r\n }\r\n Set.prototype.union = function (otherSet) {\r\n var set = this\r\n otherSet.forEach(function (element) {\r\n set.add(element)\r\n return true\r\n })\r\n }\r\n Set.prototype.difference = function (otherSet) {\r\n var set = this\r\n otherSet.forEach(function (element) {\r\n set.remove(element)\r\n return true\r\n })\r\n }\r\n Set.prototype.isSubsetOf = function (otherSet) {\r\n if (this.size() > otherSet.size()) {\r\n return false\r\n }\r\n var isSub = true\r\n this.forEach(function (element) {\r\n if (!otherSet.contains(element)) {\r\n isSub = false\r\n return false\r\n }\r\n return true\r\n })\r\n return isSub\r\n }\r\n Set.prototype.remove = function (element) {\r\n if (!this.contains(element)) {\r\n return false\r\n } else {\r\n this.dictionary.remove(element)\r\n return true\r\n }\r\n }\r\n Set.prototype.forEach = function (callback) {\r\n this.dictionary.forEach(function (k, v) {\r\n return callback(v)\r\n })\r\n }\r\n Set.prototype.toArray = function () {\r\n return this.dictionary.values()\r\n }\r\n Set.prototype.isEmpty = function () {\r\n return this.dictionary.isEmpty()\r\n }\r\n Set.prototype.size = function () {\r\n return this.dictionary.size()\r\n }\r\n Set.prototype.clear = function () {\r\n this.dictionary.clear()\r\n }\r\n Set.prototype.toString = function () {\r\n return Collections.arrays.toString(this.toArray())\r\n }\r\n return Set\r\n })()\r\n Collections.Set = Set\r\n var Bag = (function () {\r\n function Bag(toStrFunction) {\r\n this.toStrF = toStrFunction || Collections.defaultToString\r\n this.dictionary = new Dictionary(this.toStrF)\r\n this.nElements = 0\r\n }\r\n Bag.prototype.add = function (element, nCopies) {\r\n if (nCopies === void 0) {\r\n nCopies = 1\r\n }\r\n if (Collections.isUndefined(element) || nCopies <= 0) {\r\n return false\r\n }\r\n if (!this.contains(element)) {\r\n var node = {\r\n value: element,\r\n copies: nCopies,\r\n }\r\n this.dictionary.setValue(element, node)\r\n } else {\r\n this.dictionary.getValue(element).copies += nCopies\r\n }\r\n this.nElements += nCopies\r\n return true\r\n }\r\n Bag.prototype.count = function (element) {\r\n if (!this.contains(element)) {\r\n return 0\r\n } else {\r\n return this.dictionary.getValue(element).copies\r\n }\r\n }\r\n Bag.prototype.contains = function (element) {\r\n return this.dictionary.containsKey(element)\r\n }\r\n Bag.prototype.remove = function (element, nCopies) {\r\n if (nCopies === void 0) {\r\n nCopies = 1\r\n }\r\n if (Collections.isUndefined(element) || nCopies <= 0) {\r\n return false\r\n }\r\n if (!this.contains(element)) {\r\n return false\r\n } else {\r\n var node = this.dictionary.getValue(element)\r\n if (nCopies > node.copies) {\r\n this.nElements -= node.copies\r\n } else {\r\n this.nElements -= nCopies\r\n }\r\n node.copies -= nCopies\r\n if (node.copies <= 0) {\r\n this.dictionary.remove(element)\r\n }\r\n return true\r\n }\r\n }\r\n Bag.prototype.toArray = function () {\r\n var a = []\r\n var values = this.dictionary.values()\r\n var vl = values.length\r\n for (var i = 0; i < vl; i++) {\r\n var node = values[i]\r\n var element = node.value\r\n var copies = node.copies\r\n for (var j = 0; j < copies; j++) {\r\n a.push(element)\r\n }\r\n }\r\n return a\r\n }\r\n Bag.prototype.toSet = function () {\r\n var toret = new Set(this.toStrF)\r\n var elements = this.dictionary.values()\r\n var l = elements.length\r\n for (var i = 0; i < l; i++) {\r\n var value = elements[i].value\r\n toret.add(value)\r\n }\r\n return toret\r\n }\r\n Bag.prototype.forEach = function (callback) {\r\n this.dictionary.forEach(function (k, v) {\r\n var value = v.value\r\n var copies = v.copies\r\n for (var i = 0; i < copies; i++) {\r\n if (callback(value) === false) {\r\n return false\r\n }\r\n }\r\n return true\r\n })\r\n }\r\n Bag.prototype.size = function () {\r\n return this.nElements\r\n }\r\n Bag.prototype.isEmpty = function () {\r\n return this.nElements === 0\r\n }\r\n Bag.prototype.clear = function () {\r\n this.nElements = 0\r\n this.dictionary.clear()\r\n }\r\n return Bag\r\n })()\r\n Collections.Bag = Bag\r\n var BSTree = (function () {\r\n function BSTree(compareFunction) {\r\n this.root = null\r\n this.compare = compareFunction || Collections.defaultCompare\r\n this.nElements = 0\r\n }\r\n BSTree.prototype.add = function (element) {\r\n if (Collections.isUndefined(element)) {\r\n return false\r\n }\r\n if (this.insertNode(this.createNode(element)) !== null) {\r\n this.nElements++\r\n return true\r\n }\r\n return false\r\n }\r\n BSTree.prototype.clear = function () {\r\n this.root = null\r\n this.nElements = 0\r\n }\r\n BSTree.prototype.isEmpty = function () {\r\n return this.nElements === 0\r\n }\r\n BSTree.prototype.size = function () {\r\n return this.nElements\r\n }\r\n BSTree.prototype.contains = function (element) {\r\n if (Collections.isUndefined(element)) {\r\n return false\r\n }\r\n return this.searchNode(this.root, element) !== null\r\n }\r\n BSTree.prototype.remove = function (element) {\r\n var node = this.searchNode(this.root, element)\r\n if (node === null) {\r\n return false\r\n }\r\n this.removeNode(node)\r\n this.nElements--\r\n return true\r\n }\r\n BSTree.prototype.inorderTraversal = function (callback) {\r\n this.inorderTraversalAux(this.root, callback, {\r\n stop: false,\r\n })\r\n }\r\n BSTree.prototype.preorderTraversal = function (callback) {\r\n this.preorderTraversalAux(this.root, callback, {\r\n stop: false,\r\n })\r\n }\r\n BSTree.prototype.postorderTraversal = function (callback) {\r\n this.postorderTraversalAux(this.root, callback, {\r\n stop: false,\r\n })\r\n }\r\n BSTree.prototype.levelTraversal = function (callback) {\r\n this.levelTraversalAux(this.root, callback)\r\n }\r\n BSTree.prototype.minimum = function () {\r\n if (this.isEmpty()) {\r\n return undefined\r\n }\r\n return this.minimumAux(this.root).element\r\n }\r\n BSTree.prototype.maximum = function () {\r\n if (this.isEmpty()) {\r\n return undefined\r\n }\r\n return this.maximumAux(this.root).element\r\n }\r\n BSTree.prototype.forEach = function (callback) {\r\n this.inorderTraversal(callback)\r\n }\r\n BSTree.prototype.toArray = function () {\r\n var array = []\r\n this.inorderTraversal(function (element) {\r\n array.push(element)\r\n return true\r\n })\r\n return array\r\n }\r\n BSTree.prototype.height = function () {\r\n return this.heightAux(this.root)\r\n }\r\n BSTree.prototype.searchNode = function (node, element) {\r\n var cmp = null\r\n while (node !== null && cmp !== 0) {\r\n cmp = this.compare(element, node.element)\r\n if (cmp < 0) {\r\n node = node.leftCh\r\n } else if (cmp > 0) {\r\n node = node.rightCh\r\n }\r\n }\r\n return node\r\n }\r\n BSTree.prototype.transplant = function (n1, n2) {\r\n if (n1.parent === null) {\r\n this.root = n2\r\n } else if (n1 === n1.parent.leftCh) {\r\n n1.parent.leftCh = n2\r\n } else {\r\n n1.parent.rightCh = n2\r\n }\r\n if (n2 !== null) {\r\n n2.parent = n1.parent\r\n }\r\n }\r\n BSTree.prototype.removeNode = function (node) {\r\n if (node.leftCh === null) {\r\n this.transplant(node, node.rightCh)\r\n } else if (node.rightCh === null) {\r\n this.transplant(node, node.leftCh)\r\n } else {\r\n var y = this.minimumAux(node.rightCh)\r\n if (y.parent !== node) {\r\n this.transplant(y, y.rightCh)\r\n y.rightCh = node.rightCh\r\n y.rightCh.parent = y\r\n }\r\n this.transplant(node, y)\r\n y.leftCh = node.leftCh\r\n y.leftCh.parent = y\r\n }\r\n }\r\n BSTree.prototype.inorderTraversalAux = function (node, callback, signal) {\r\n if (node === null || signal.stop) {\r\n return\r\n }\r\n this.inorderTraversalAux(node.leftCh, callback, signal)\r\n if (signal.stop) {\r\n return\r\n }\r\n signal.stop = callback(node.element) === false\r\n if (signal.stop) {\r\n return\r\n }\r\n this.inorderTraversalAux(node.rightCh, callback, signal)\r\n }\r\n BSTree.prototype.levelTraversalAux = function (node, callback) {\r\n var queue = new Queue()\r\n if (node !== null) {\r\n queue.enqueue(node)\r\n }\r\n while (!queue.isEmpty()) {\r\n node = queue.dequeue()\r\n if (callback(node.element) === false) {\r\n return\r\n }\r\n if (node.leftCh !== null) {\r\n queue.enqueue(node.leftCh)\r\n }\r\n if (node.rightCh !== null) {\r\n queue.enqueue(node.rightCh)\r\n }\r\n }\r\n }\r\n BSTree.prototype.preorderTraversalAux = function (node, callback, signal) {\r\n if (node === null || signal.stop) {\r\n return\r\n }\r\n signal.stop = callback(node.element) === false\r\n if (signal.stop) {\r\n return\r\n }\r\n this.preorderTraversalAux(node.leftCh, callback, signal)\r\n if (signal.stop) {\r\n return\r\n }\r\n this.preorderTraversalAux(node.rightCh, callback, signal)\r\n }\r\n BSTree.prototype.postorderTraversalAux = function (node, callback, signal) {\r\n if (node === null || signal.stop) {\r\n return\r\n }\r\n this.postorderTraversalAux(node.leftCh, callback, signal)\r\n if (signal.stop) {\r\n return\r\n }\r\n this.postorderTraversalAux(node.rightCh, callback, signal)\r\n if (signal.stop) {\r\n return\r\n }\r\n signal.stop = callback(node.element) === false\r\n }\r\n BSTree.prototype.minimumAux = function (node) {\r\n while (node.leftCh !== null) {\r\n node = node.leftCh\r\n }\r\n return node\r\n }\r\n BSTree.prototype.maximumAux = function (node) {\r\n while (node.rightCh !== null) {\r\n node = node.rightCh\r\n }\r\n return node\r\n }\r\n BSTree.prototype.heightAux = function (node) {\r\n if (node === null) {\r\n return -1\r\n }\r\n return Math.max(this.heightAux(node.leftCh), this.heightAux(node.rightCh)) + 1\r\n }\r\n BSTree.prototype.insertNode = function (node) {\r\n var parent = null\r\n var position = this.root\r\n var cmp = null\r\n while (position !== null) {\r\n cmp = this.compare(node.element, position.element)\r\n if (cmp === 0) {\r\n return null\r\n } else if (cmp < 0) {\r\n parent = position\r\n position = position.leftCh\r\n } else {\r\n parent = position\r\n position = position.rightCh\r\n }\r\n }\r\n node.parent = parent\r\n if (parent === null) {\r\n this.root = node\r\n } else if (this.compare(node.element, parent.element) < 0) {\r\n parent.leftCh = node\r\n } else {\r\n parent.rightCh = node\r\n }\r\n return node\r\n }\r\n BSTree.prototype.createNode = function (element) {\r\n return {\r\n element: element,\r\n leftCh: null,\r\n rightCh: null,\r\n parent: null,\r\n }\r\n }\r\n return BSTree\r\n })()\r\n Collections.BSTree = BSTree\r\n})(Collections || (Collections = {}))\r\nvar Base64 = (function () {\r\n function Base64() {\r\n this._keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\r\n }\r\n Base64.prototype.encode = function (input) {\r\n var output = ''\r\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4\r\n var i = 0\r\n input = this.utf8Encode(input)\r\n while (i < input.length) {\r\n chr1 = input.charCodeAt(i++)\r\n chr2 = input.charCodeAt(i++)\r\n chr3 = input.charCodeAt(i++)\r\n enc1 = chr1 >> 2\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4)\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6)\r\n enc4 = chr3 & 63\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64\r\n }\r\n output =\r\n output +\r\n this._keyStr.charAt(enc1) +\r\n this._keyStr.charAt(enc2) +\r\n this._keyStr.charAt(enc3) +\r\n this._keyStr.charAt(enc4)\r\n }\r\n return output\r\n }\r\n Base64.prototype.decode = function (input) {\r\n var output = ''\r\n var chr1, chr2, chr3\r\n var enc1, enc2, enc3, enc4\r\n var i = 0\r\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '')\r\n while (i < input.length) {\r\n enc1 = this._keyStr.indexOf(input.charAt(i++))\r\n enc2 = this._keyStr.indexOf(input.charAt(i++))\r\n enc3 = this._keyStr.indexOf(input.charAt(i++))\r\n enc4 = this._keyStr.indexOf(input.charAt(i++))\r\n chr1 = (enc1 << 2) | (enc2 >> 4)\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)\r\n chr3 = ((enc3 & 3) << 6) | enc4\r\n output = output + String.fromCharCode(chr1)\r\n if (enc3 != 64) {\r\n output = output + String.fromCharCode(chr2)\r\n }\r\n if (enc4 != 64) {\r\n output = output + String.fromCharCode(chr3)\r\n }\r\n }\r\n output = this.utf8Decode(output)\r\n return output\r\n }\r\n Base64.prototype.utf8Encode = function (value) {\r\n value = value.replace(/\\r\\n/g, '\\n')\r\n var utftext = ''\r\n for (var n = 0; n < value.length; n++) {\r\n var c = value.charCodeAt(n)\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c)\r\n } else if (c > 127 && c < 2048) {\r\n utftext += String.fromCharCode((c >> 6) | 192)\r\n utftext += String.fromCharCode((c & 63) | 128)\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224)\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128)\r\n utftext += String.fromCharCode((c & 63) | 128)\r\n }\r\n }\r\n return utftext\r\n }\r\n Base64.prototype.utf8Decode = function (utftext) {\r\n var decodeString = ''\r\n var i = 0\r\n var c,\r\n c2,\r\n c3 = 0\r\n while (i < utftext.length) {\r\n c = utftext.charCodeAt(i)\r\n if (c < 128) {\r\n decodeString += String.fromCharCode(c)\r\n i++\r\n } else if (c > 191 && c < 224) {\r\n c2 = utftext.charCodeAt(i + 1)\r\n decodeString += String.fromCharCode(((c & 31) << 6) | (c2 & 63))\r\n i += 2\r\n } else {\r\n c2 = utftext.charCodeAt(i + 1)\r\n c3 = utftext.charCodeAt(i + 2)\r\n decodeString += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63))\r\n i += 3\r\n }\r\n }\r\n return decodeString\r\n }\r\n return Base64\r\n})()\r\nif (!String.prototype.format) {\r\n String.prototype.format = function () {\r\n var args = arguments\r\n return this.replace(/{(\\d+)}/g, function (match, number) {\r\n return typeof args[number] != 'undefined' ? args[number] : match\r\n })\r\n }\r\n}\r\nif (!String.prototype.appendDictionary) {\r\n String.prototype.appendDictionary = function () {\r\n var dictionary = arguments[0]\r\n var result = this.toString()\r\n dictionary.forEach(function (key, value) {\r\n if (key && value) {\r\n result = result.concat(key, value, false)\r\n }\r\n })\r\n return result\r\n }\r\n}\r\nif (!String.prototype.endsWith) {\r\n String.prototype.endsWith = function (value) {\r\n var lastIndex = this.lastIndexOf(value)\r\n return lastIndex != -1 && lastIndex + value.length == this.length\r\n }\r\n}\r\nvar ColorKeys = (function () {\r\n function ColorKeys() {\r\n this.colorString = '&p.c='\r\n }\r\n ColorKeys.prototype.appendColors = function (stringBuilder, xpoUrlColors) {\r\n if (xpoUrlColors == null || xpoUrlColors.length <= 0) return stringBuilder\r\n var max = UrlGeneratorModule.getMaxObjectNumber(xpoUrlColors)\r\n var colorBuilder = this.colorString\r\n for (var i = 0; i <= max; i++) {\r\n var index = xpoUrlColors\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var colorObject = xpoUrlColors[index]\r\n if (colorObject == null) colorBuilder = colorBuilder.concat(',')\r\n else {\r\n colorBuilder = colorBuilder.concat(colorObject.getColor().getColor()).concat(',')\r\n }\r\n }\r\n return stringBuilder.concat(colorBuilder.slice(0, colorBuilder.length - 1))\r\n }\r\n return ColorKeys\r\n})()\r\nvar DesignKey = (function () {\r\n function DesignKey() {\r\n this.keyList = new Array()\r\n this.americanCulture = 'en-US'\r\n }\r\n DesignKey.prototype.addToList = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n if (value === undefined || value === null) {\r\n this.addEmpty()\r\n return\r\n } else if ((!value || value.toString() == '') && omitIfDefault) {\r\n this.addEmpty()\r\n return\r\n }\r\n if (!isNaN(parseFloat(value)) && (value | 0) != value) this.addDouble(value, omitIfDefault)\r\n else this.keyList.push(value.toString())\r\n }\r\n DesignKey.prototype.addDouble = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n var convertValue = value.toLocaleString(this.americanCulture)\r\n if ((convertValue.length != null && convertValue != '') || !omitIfDefault)\r\n this.keyList.push(convertValue)\r\n }\r\n DesignKey.prototype.getUrlValue = function () {\r\n return this.keyList.join(',')\r\n }\r\n DesignKey.prototype.getValues = function (designs) {\r\n throw \"Can't call getValues on base class.\"\r\n }\r\n DesignKey.prototype.addEmpty = function () {\r\n this.keyList.push('')\r\n }\r\n DesignKey.prototype.isEmpty = function () {\r\n var isEmpty = true\r\n for (var i = 0; i < this.keyList.length; i++) {\r\n if (this.keyList[i]) {\r\n isEmpty = false\r\n break\r\n }\r\n }\r\n return isEmpty\r\n }\r\n return DesignKey\r\n})()\r\nvar __extends =\r\n this.__extends ||\r\n function (d, b) {\r\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]\r\n function __() {\r\n this.constructor = d\r\n }\r\n __.prototype = b.prototype\r\n d.prototype = new __()\r\n }\r\nvar AspectRatioDesignKey = (function (_super) {\r\n __extends(AspectRatioDesignKey, _super)\r\n function AspectRatioDesignKey() {\r\n _super.call(this)\r\n }\r\n AspectRatioDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getAspectRatio(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.ta=' + this.getUrlValue()\r\n }\r\n return AspectRatioDesignKey\r\n})(DesignKey)\r\nvar ContrastDesignKey = (function (_super) {\r\n __extends(ContrastDesignKey, _super)\r\n function ContrastDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n ContrastDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getContrast())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tc=' + this.getUrlValue()\r\n }\r\n return ContrastDesignKey\r\n})(DesignKey)\r\nvar DesignKeys = (function () {\r\n function DesignKeys() {\r\n this.designKeys = new Array()\r\n this.designKeys.push(\r\n new EntityNameDesignKey(),\r\n new ContrastDesignKey(),\r\n new DropXDesignKey(),\r\n new DropYDesignKey(),\r\n new GlossDesignKey(),\r\n new HeightDesignKey(),\r\n new PlacingPointXDesignKey(),\r\n new PlacingPointYDesignKey(),\r\n new RepeatDesignKey(),\r\n new RotationDesignKey(),\r\n new WidthDesignKey(),\r\n new FlipDesignKey(),\r\n new AspectRatioDesignKey(),\r\n )\r\n }\r\n DesignKeys.prototype.appendDesigns = function (stringBuilder, xpoUrlDesigns) {\r\n if (xpoUrlDesigns == null || xpoUrlDesigns.length <= 0) return stringBuilder\r\n for (var i = 0; i < this.designKeys.length; i++) {\r\n var keyValue = this.designKeys[i].getValues(xpoUrlDesigns)\r\n if (keyValue) {\r\n stringBuilder = stringBuilder.concat('&').concat(keyValue)\r\n }\r\n }\r\n return stringBuilder\r\n }\r\n return DesignKeys\r\n})()\r\nvar DropXDesignKey = (function (_super) {\r\n __extends(DropXDesignKey, _super)\r\n function DropXDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n DropXDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getDropX())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tdx=' + this.getUrlValue()\r\n }\r\n return DropXDesignKey\r\n})(DesignKey)\r\nvar DropYDesignKey = (function (_super) {\r\n __extends(DropYDesignKey, _super)\r\n function DropYDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n DropYDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getDropY())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tdy=' + this.getUrlValue()\r\n }\r\n return DropYDesignKey\r\n})(DesignKey)\r\nvar EntityNameDesignKey = (function (_super) {\r\n __extends(EntityNameDesignKey, _super)\r\n function EntityNameDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n EntityNameDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null)\r\n this.addToList(this.convertToBase64UrlString(urlObject.getDesign().getEntityName()))\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tn=' + this.getUrlValue()\r\n }\r\n EntityNameDesignKey.prototype.convertToBase64UrlString = function (value) {\r\n var base64 = new Base64()\r\n return encodeURIComponent(base64.encode(value))\r\n }\r\n return EntityNameDesignKey\r\n})(DesignKey)\r\nvar FlipDesignKey = (function (_super) {\r\n __extends(FlipDesignKey, _super)\r\n function FlipDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n FlipDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getFlip())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tf=' + this.getUrlValue()\r\n }\r\n return FlipDesignKey\r\n})(DesignKey)\r\nvar GeneralKeys = (function () {\r\n function GeneralKeys() {\r\n this.entityName = 'fn'\r\n this.width = 'width'\r\n this.height = 'height'\r\n this.backgroundColor = 'bgcolor'\r\n this.designCaching = 'p.dc'\r\n this.resizeMethod = 'mode'\r\n this.textureRepeat = 'p.r'\r\n this.outputQuality = 'quality'\r\n this.imageType = 'format'\r\n this.outputType = 'ot'\r\n this.sceneThumbnailObjectNumber = 'p.objectthumb'\r\n this.highlightObject = 'p.highlight'\r\n this.caching = 'Cache'\r\n this.coords = 'p.coords'\r\n this.watermark = 'watermark'\r\n this.frame = 'p.frame'\r\n this.renderMode = 'p.mode'\r\n this.fastRender = 'p.fastrender'\r\n this.queryStringFormat = '&{0}={1}'\r\n }\r\n GeneralKeys.prototype.appendRequest = function (stringBuilder, request) {\r\n stringBuilder = stringBuilder\r\n .concat('?1=1')\r\n .concat(this.getQueryStringValue(this.width, request.getWidth()))\r\n .concat(this.getQueryStringValue(this.backgroundColor, request.getBackgroundColor()))\r\n .concat(this.getQueryStringValue(this.caching, this.getCachingMethod(request)))\r\n .concat(this.getQueryStringValue(this.height, request.getHeight()))\r\n .concat(this.getQueryStringValue(this.designCaching, request.getDesignCaching()))\r\n .concat(this.getQueryStringValue(this.resizeMethod, this.getResizeMethod(request)))\r\n .concat(this.getQueryStringValue(this.textureRepeat, this.getRepeatMethod(request)))\r\n .concat(this.getQueryStringValue(this.outputQuality, request.getOutputQuality()))\r\n .concat(this.getQueryStringValue(this.imageType, this.getFormat(request.getImageType())))\r\n .concat(\r\n this.getQueryStringValue(\r\n this.sceneThumbnailObjectNumber,\r\n this.getStringValue(request.getSceneThumbnailObjectNumber()),\r\n ),\r\n )\r\n .concat(this.getQueryStringValue(this.highlightObject, request.getHighlightObject()))\r\n .concat(this.getQueryStringValue(this.watermark, request.getWatermarkImage()))\r\n .concat(this.getQueryStringValue(this.frame, request.getFrame()))\r\n .concat(this.getQueryStringValue(this.renderMode, request.getSceneRenderMode()))\r\n .appendDictionary(request.customParameters)\r\n if (request.getFastRenderSet())\r\n stringBuilder = stringBuilder.concat(\r\n this.getQueryStringValueForce(this.fastRender, request.getFastRender()),\r\n )\r\n if (request.urlType == 2 /* Coords */) {\r\n stringBuilder = stringBuilder.concat(this.getQueryStringValue(this.coords, true))\r\n }\r\n return stringBuilder\r\n }\r\n GeneralKeys.prototype.getQueryStringValue = function (key, value) {\r\n if (!value) return ''\r\n return this.queryStringFormat.format(key, value)\r\n }\r\n GeneralKeys.prototype.getQueryStringValueForce = function (key, value) {\r\n return this.queryStringFormat.format(key, value)\r\n }\r\n GeneralKeys.prototype.getCachingMethod = function (request) {\r\n return request.getCaching() ? 'Default' : 'No'\r\n }\r\n GeneralKeys.prototype.getRepeatMethod = function (request) {\r\n if (request.getResizeMethod() == 4 /* Repeat */ && request.getFileType() == 2 /* Design */) {\r\n return '1'\r\n }\r\n return ''\r\n }\r\n GeneralKeys.prototype.getFormat = function (imageType) {\r\n switch (imageType) {\r\n case 3 /* Bmp */:\r\n return 'bmp'\r\n case 1 /* Jpg */:\r\n return 'jpg'\r\n case 2 /* Png */:\r\n return 'png'\r\n default:\r\n return 'jpg'\r\n }\r\n }\r\n GeneralKeys.prototype.getResizeMethod = function (request) {\r\n switch (request.getResizeMethod()) {\r\n case 5 /* KeepAspectMax */:\r\n return 'max'\r\n case 3 /* Crop */:\r\n return 'crop'\r\n case 2 /* Stretch */:\r\n return 'stretch'\r\n case 6 /* Canvas */:\r\n return 'canvas'\r\n }\r\n return ''\r\n }\r\n GeneralKeys.prototype.getStringValue = function (value) {\r\n return value != null ? value.toString() : ''\r\n }\r\n return GeneralKeys\r\n})()\r\nvar GlossDesignKey = (function (_super) {\r\n __extends(GlossDesignKey, _super)\r\n function GlossDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n GlossDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getGloss())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tg=' + this.getUrlValue()\r\n }\r\n return GlossDesignKey\r\n})(DesignKey)\r\nvar HeightDesignKey = (function (_super) {\r\n __extends(HeightDesignKey, _super)\r\n function HeightDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n HeightDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getHeight())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.th=' + this.getUrlValue()\r\n }\r\n return HeightDesignKey\r\n})(DesignKey)\r\nvar OverlayKey = (function () {\r\n function OverlayKey() {\r\n this.keyList = new Array()\r\n this.americanCulture = 'en-US'\r\n }\r\n OverlayKey.prototype.addToList = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n if (value === undefined || value === null) {\r\n this.addEmpty()\r\n return\r\n } else if ((!value || value.toString() == '') && omitIfDefault) {\r\n this.addEmpty()\r\n return\r\n }\r\n if (!isNaN(parseFloat(value)) && (value | 0) != value) this.addDouble(value, omitIfDefault)\r\n else this.keyList.push(value.toString())\r\n }\r\n OverlayKey.prototype.addDouble = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n var convertValue = value.toLocaleString(this.americanCulture)\r\n if ((convertValue.length != null && convertValue != '') || !omitIfDefault)\r\n this.keyList.push(convertValue)\r\n }\r\n OverlayKey.prototype.getUrlValue = function () {\r\n return this.keyList.join(',')\r\n }\r\n OverlayKey.prototype.getValues = function (designs) {\r\n throw \"Can't call getValues on base class.\"\r\n }\r\n OverlayKey.prototype.addEmpty = function () {\r\n this.keyList.push('')\r\n }\r\n OverlayKey.prototype.isEmpty = function () {\r\n var isEmpty = true\r\n for (var i = 0; i < this.keyList.length; i++) {\r\n if (this.keyList[i]) {\r\n isEmpty = false\r\n break\r\n }\r\n }\r\n return isEmpty\r\n }\r\n return OverlayKey\r\n})()\r\nvar OverlayKeys = (function () {\r\n function OverlayKeys() {\r\n this.overlayKeys = new Array()\r\n this.overlayKeys.push(\r\n new NameOverlayKey(),\r\n new ModeOverlayKey(),\r\n new LocationOverlayKey(),\r\n new OperationOverlayKey(),\r\n new TimeOverlayKey(),\r\n )\r\n }\r\n OverlayKeys.prototype.appendOverlays = function (stringBuilder, xpoUrlOverlays) {\r\n if (xpoUrlOverlays == null || xpoUrlOverlays.length <= 0) return stringBuilder\r\n for (var i = 0; i < this.overlayKeys.length; i++) {\r\n var keyValue = this.overlayKeys[i].getValues(xpoUrlOverlays)\r\n if (keyValue) {\r\n stringBuilder = stringBuilder.concat('&').concat(keyValue)\r\n }\r\n }\r\n return stringBuilder\r\n }\r\n return OverlayKeys\r\n})()\r\nvar LocationOverlayKey = (function (_super) {\r\n __extends(LocationOverlayKey, _super)\r\n function LocationOverlayKey() {\r\n _super.apply(this, arguments)\r\n }\r\n LocationOverlayKey.prototype.getValues = function (overlays) {\r\n var max = UrlGeneratorModule.getMaxOverlayNumber(overlays)\r\n for (var i = 0; i <= max; i++) {\r\n var index = overlays\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlOverlay = overlays[index]\r\n if (urlOverlay != null) this.addToList(urlOverlay.getOverlayLocation())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.ol=' + this.getUrlValue()\r\n }\r\n return LocationOverlayKey\r\n})(OverlayKey)\r\nvar ModeOverlayKey = (function (_super) {\r\n __extends(ModeOverlayKey, _super)\r\n function ModeOverlayKey() {\r\n _super.apply(this, arguments)\r\n }\r\n ModeOverlayKey.prototype.getValues = function (overlays) {\r\n var max = UrlGeneratorModule.getMaxOverlayNumber(overlays)\r\n for (var i = 0; i <= max; i++) {\r\n var index = overlays\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlOverlay = overlays[index]\r\n if (urlOverlay != null) this.addToList(urlOverlay.getOverlayMode())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.om=' + this.getUrlValue()\r\n }\r\n return ModeOverlayKey\r\n})(OverlayKey)\r\nvar NameOverlayKey = (function (_super) {\r\n __extends(NameOverlayKey, _super)\r\n function NameOverlayKey() {\r\n _super.apply(this, arguments)\r\n }\r\n NameOverlayKey.prototype.getValues = function (overlays) {\r\n var max = UrlGeneratorModule.getMaxOverlayNumber(overlays)\r\n for (var i = 0; i <= max; i++) {\r\n var index = overlays\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlOverlay = overlays[index]\r\n if (urlOverlay != null)\r\n this.addToList(this.convertToBase64UrlString(urlOverlay.getOverlayName()))\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.on=' + this.getUrlValue()\r\n }\r\n NameOverlayKey.prototype.convertToBase64UrlString = function (value) {\r\n var base64 = new Base64()\r\n return encodeURIComponent(base64.encode(value))\r\n }\r\n return NameOverlayKey\r\n})(OverlayKey)\r\nvar OperationOverlayKey = (function (_super) {\r\n __extends(OperationOverlayKey, _super)\r\n function OperationOverlayKey() {\r\n _super.apply(this, arguments)\r\n }\r\n OperationOverlayKey.prototype.getValues = function (overlays) {\r\n var max = UrlGeneratorModule.getMaxOverlayNumber(overlays)\r\n for (var i = 0; i <= max; i++) {\r\n var index = overlays\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlOverlay = overlays[index]\r\n if (urlOverlay != null) this.addToList(urlOverlay.getOverlayOperation())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.oo=' + this.getUrlValue()\r\n }\r\n return OperationOverlayKey\r\n})(OverlayKey)\r\nvar XpoUrlGenerator = (function () {\r\n function XpoUrlGenerator() {}\r\n XpoUrlGenerator.prototype.getUrl = function (request) {\r\n if (request.urlType == 1 /* Image */) return this.getImageUrl(request)\r\n if (request.urlType == 2 /* Coords */) return this.getCoordsUrl(request)\r\n throw 'Input type is not recognized'\r\n }\r\n XpoUrlGenerator.prototype.getCanvas = function (request) {\r\n var _this = this\r\n this.ensureWorkspace(request.getCanvasContainerId())\r\n this.workspace.loadScene(request.getPrimaryKey(), 1).whenData(function () {\r\n var allRequestObjects = request.getObjects()\r\n for (var i = 0; i < allRequestObjects.length; i++) {\r\n var requestObject = allRequestObjects[i]\r\n var workspaceObject = _this.workspace.getObject(i)\r\n var requestDesign = requestObject.getDesign()\r\n if (requestDesign != null) {\r\n workspaceObject.Contrast = requestDesign.getContrast()\r\n workspaceObject.PlacingPointX = requestDesign.getPlacingPointX()\r\n workspaceObject.PlacingPointY = requestDesign.getPlacingPointY()\r\n workspaceObject.LoadTextureImage(\r\n _this.getDesignImageUrl(requestDesign, request),\r\n requestDesign.getWidth(),\r\n requestDesign.getHeight(),\r\n )\r\n }\r\n }\r\n setInterval(function () {\r\n _this.workspace.render(0)\r\n }, 1000)\r\n return _this.workspace.getCanvas()\r\n })\r\n return null\r\n }\r\n XpoUrlGenerator.prototype.getImageUrl = function (request) {\r\n var generalKeys = new GeneralKeys()\r\n var designKeys = new DesignKeys()\r\n var colorKeys = new ColorKeys()\r\n var textKeys = new TextKeys()\r\n var overlayKeys = new OverlayKeys()\r\n var baseUri = this.getXpoBaseUrl(request)\r\n var stringBuilder = baseUri\r\n stringBuilder = stringBuilder.concat(request.getPrimaryKey())\r\n stringBuilder = generalKeys.appendRequest(stringBuilder, request)\r\n stringBuilder = designKeys.appendDesigns(\r\n stringBuilder,\r\n request.getObjects().filter(function (value) {\r\n return value.getDesign() != null\r\n }),\r\n )\r\n stringBuilder = colorKeys.appendColors(\r\n stringBuilder,\r\n request.getObjects().filter(function (value) {\r\n return value.getColor() != null\r\n }),\r\n )\r\n stringBuilder = textKeys.appendTexts(\r\n stringBuilder,\r\n request.getObjects().filter(function (value) {\r\n return value.getText() != null\r\n }),\r\n )\r\n stringBuilder = overlayKeys.appendOverlays(stringBuilder, request.getOverlays())\r\n return stringBuilder\r\n }\r\n XpoUrlGenerator.prototype.getCoordsUrl = function (request) {\r\n var generalKeys = new GeneralKeys()\r\n var baseUri = this.getXpoBaseUrl(request)\r\n var stringBuilder = baseUri\r\n stringBuilder = stringBuilder.concat(request.getPrimaryKey())\r\n stringBuilder = generalKeys.appendRequest(stringBuilder, request)\r\n return stringBuilder\r\n }\r\n XpoUrlGenerator.prototype.getXpoBaseUrl = function (urlRequest) {\r\n if (urlRequest != null && urlRequest.getAbsoluteUrl())\r\n return urlRequest.getAbsoluteUrl().endsWith('/')\r\n ? urlRequest.getAbsoluteUrl()\r\n : urlRequest.getAbsoluteUrl() + '/'\r\n return '/'\r\n }\r\n XpoUrlGenerator.prototype.getDesignImageUrl = function (design, urlRequest) {\r\n var newUrlRequest = new XpoUrlRequest()\r\n newUrlRequest.setAbsoluteUrl(urlRequest.getAbsoluteUrl())\r\n newUrlRequest.setPrimaryKey(design.getEntityName())\r\n newUrlRequest.setHeight(design.getHeight())\r\n newUrlRequest.setWidth(design.getWidth())\r\n return this.getImageUrl(newUrlRequest)\r\n }\r\n XpoUrlGenerator.prototype.ensureWorkspace = function (canvasContainerId) {\r\n if (!this.workspace) this.workspace = new Pix2.GLWorkspace(canvasContainerId)\r\n }\r\n return XpoUrlGenerator\r\n})()\r\nvar PlacingPointXDesignKey = (function (_super) {\r\n __extends(PlacingPointXDesignKey, _super)\r\n function PlacingPointXDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n PlacingPointXDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getPlacingPointX(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tpx=' + this.getUrlValue()\r\n }\r\n return PlacingPointXDesignKey\r\n})(DesignKey)\r\nvar PlacingPointYDesignKey = (function (_super) {\r\n __extends(PlacingPointYDesignKey, _super)\r\n function PlacingPointYDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n PlacingPointYDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getPlacingPointY(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tpy=' + this.getUrlValue()\r\n }\r\n return PlacingPointYDesignKey\r\n})(DesignKey)\r\nvar RepeatDesignKey = (function (_super) {\r\n __extends(RepeatDesignKey, _super)\r\n function RepeatDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n RepeatDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getRepeat(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tr=' + this.getUrlValue()\r\n }\r\n return RepeatDesignKey\r\n})(DesignKey)\r\nvar RotationDesignKey = (function (_super) {\r\n __extends(RotationDesignKey, _super)\r\n function RotationDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n RotationDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getRotation())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.trt=' + this.getUrlValue()\r\n }\r\n return RotationDesignKey\r\n})(DesignKey)\r\nvar TimeOverlayKey = (function (_super) {\r\n __extends(TimeOverlayKey, _super)\r\n function TimeOverlayKey() {\r\n _super.apply(this, arguments)\r\n }\r\n TimeOverlayKey.prototype.getValues = function (overlays) {\r\n var max = UrlGeneratorModule.getMaxOverlayNumber(overlays)\r\n for (var i = 0; i <= max; i++) {\r\n var index = overlays\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlOverlay = overlays[index]\r\n if (urlOverlay != null) this.addToList(urlOverlay.getOverlayTime())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.ot=' + this.getUrlValue()\r\n }\r\n return TimeOverlayKey\r\n})(OverlayKey)\r\nvar WidthDesignKey = (function (_super) {\r\n __extends(WidthDesignKey, _super)\r\n function WidthDesignKey() {\r\n _super.apply(this, arguments)\r\n }\r\n WidthDesignKey.prototype.getValues = function (designs) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(designs)\r\n for (var i = 0; i <= max; i++) {\r\n var index = designs\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = designs[index]\r\n if (urlObject != null) this.addToList(urlObject.getDesign().getWidth())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.tw=' + this.getUrlValue()\r\n }\r\n return WidthDesignKey\r\n})(DesignKey)\r\nvar TextKey = (function () {\r\n function TextKey() {\r\n this.keyList = new Array()\r\n this.americanCulture = 'en-US'\r\n }\r\n TextKey.prototype.addToList = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n if (value === undefined || value === null) {\r\n this.addEmpty()\r\n return\r\n } else if ((!value || value.toString() == '') && omitIfDefault) {\r\n this.addEmpty()\r\n return\r\n }\r\n if (!isNaN(parseFloat(value)) && (value | 0) != value) this.addDouble(value, omitIfDefault)\r\n else this.keyList.push(value.toString())\r\n }\r\n TextKey.prototype.addDouble = function (value, omitIfDefault) {\r\n if (omitIfDefault === void 0) {\r\n omitIfDefault = true\r\n }\r\n var convertValue = value.toLocaleString(this.americanCulture)\r\n if ((convertValue.length != null && convertValue != '') || !omitIfDefault)\r\n this.keyList.push(convertValue)\r\n }\r\n TextKey.prototype.getUrlValue = function () {\r\n return this.keyList.join(',')\r\n }\r\n TextKey.prototype.getValues = function (texts) {\r\n throw \"Can't call getValues on base class.\"\r\n }\r\n TextKey.prototype.addEmpty = function () {\r\n this.keyList.push('')\r\n }\r\n TextKey.prototype.isEmpty = function () {\r\n var isEmpty = true\r\n for (var i = 0; i < this.keyList.length; i++) {\r\n if (this.keyList[i]) {\r\n isEmpty = false\r\n break\r\n }\r\n }\r\n return isEmpty\r\n }\r\n return TextKey\r\n})()\r\nvar TextKeys = (function () {\r\n function TextKeys() {\r\n this.textKeys = new Array()\r\n this.textKeys.push(\r\n new TextTextKey(),\r\n new TextColorTextKey(),\r\n new TextAlignmentTextKey(),\r\n new TextFontTextKey(),\r\n new TextMultiplierTextKey(),\r\n new TextPlacingPointXTextKey(),\r\n new TextPlacingPointYTextKey(),\r\n new TextSizeTextKey(),\r\n new TextStyleTextKey(),\r\n )\r\n }\r\n TextKeys.prototype.appendTexts = function (stringBuilder, xpoUrlTexts) {\r\n if (xpoUrlTexts == null || xpoUrlTexts.length <= 0) return stringBuilder\r\n for (var i = 0; i < this.textKeys.length; i++) {\r\n var keyValue = this.textKeys[i].getValues(xpoUrlTexts)\r\n if (keyValue) {\r\n stringBuilder = stringBuilder.concat('&').concat(keyValue)\r\n }\r\n }\r\n return stringBuilder\r\n }\r\n return TextKeys\r\n})()\r\nvar TextTextKey = (function (_super) {\r\n __extends(TextTextKey, _super)\r\n function TextTextKey() {\r\n _super.call(this)\r\n }\r\n TextTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getText(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text=' + this.getUrlValue()\r\n }\r\n return TextTextKey\r\n})(TextKey)\r\nvar TextAlignmentTextKey = (function (_super) {\r\n __extends(TextAlignmentTextKey, _super)\r\n function TextAlignmentTextKey() {\r\n _super.call(this)\r\n }\r\n TextAlignmentTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getAlignment())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.align=' + this.getUrlValue()\r\n }\r\n return TextAlignmentTextKey\r\n})(TextKey)\r\nvar TextColorTextKey = (function (_super) {\r\n __extends(TextColorTextKey, _super)\r\n function TextColorTextKey() {\r\n _super.call(this)\r\n }\r\n TextColorTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getColor(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.color=' + this.getUrlValue()\r\n }\r\n return TextColorTextKey\r\n})(TextKey)\r\nvar TextFontTextKey = (function (_super) {\r\n __extends(TextFontTextKey, _super)\r\n function TextFontTextKey() {\r\n _super.call(this)\r\n }\r\n TextFontTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getFontname(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.font=' + this.getUrlValue()\r\n }\r\n return TextFontTextKey\r\n})(TextKey)\r\nvar TextMultiplierTextKey = (function (_super) {\r\n __extends(TextMultiplierTextKey, _super)\r\n function TextMultiplierTextKey() {\r\n _super.call(this)\r\n }\r\n TextMultiplierTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getMultiplier())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.multiplier=' + this.getUrlValue()\r\n }\r\n return TextMultiplierTextKey\r\n})(TextKey)\r\nvar TextPlacingPointXTextKey = (function (_super) {\r\n __extends(TextPlacingPointXTextKey, _super)\r\n function TextPlacingPointXTextKey() {\r\n _super.call(this)\r\n }\r\n TextPlacingPointXTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getPlacingPointX())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.px=' + this.getUrlValue()\r\n }\r\n return TextPlacingPointXTextKey\r\n})(TextKey)\r\nvar TextPlacingPointYTextKey = (function (_super) {\r\n __extends(TextPlacingPointYTextKey, _super)\r\n function TextPlacingPointYTextKey() {\r\n _super.call(this)\r\n }\r\n TextPlacingPointYTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getPlacingPointY(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.py=' + this.getUrlValue()\r\n }\r\n return TextPlacingPointYTextKey\r\n})(TextKey)\r\nvar TextSizeTextKey = (function (_super) {\r\n __extends(TextSizeTextKey, _super)\r\n function TextSizeTextKey() {\r\n _super.call(this)\r\n }\r\n TextSizeTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getFontsize())\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.size=' + this.getUrlValue()\r\n }\r\n return TextSizeTextKey\r\n})(TextKey)\r\nvar TextStyleTextKey = (function (_super) {\r\n __extends(TextStyleTextKey, _super)\r\n function TextStyleTextKey() {\r\n _super.call(this)\r\n }\r\n TextStyleTextKey.prototype.getValues = function (texts) {\r\n var max = UrlGeneratorModule.getMaxObjectNumber(texts)\r\n for (var i = 0; i <= max; i++) {\r\n var index = texts\r\n .map(function (e) {\r\n return e.getIndex()\r\n })\r\n .lastIndexOf(i)\r\n var urlObject = texts[index]\r\n if (urlObject != null) this.addToList(urlObject.getText().getFontStyle(), false)\r\n else if (i != max) this.addEmpty()\r\n }\r\n if (this.isEmpty()) return ''\r\n return 'p.text.style=' + this.getUrlValue()\r\n }\r\n return TextStyleTextKey\r\n})(TextKey)\r\nvar FluentXpoUrlColor = (function () {\r\n function FluentXpoUrlColor(color) {\r\n this.xpoUrlColor = new XpoUrlColor(color)\r\n }\r\n FluentXpoUrlColor.prototype.getXpoUrlColor = function () {\r\n return this.xpoUrlColor\r\n }\r\n return FluentXpoUrlColor\r\n})()\r\nvar FluentXpoUrlDesign = (function () {\r\n function FluentXpoUrlDesign(fileName) {\r\n this.xpoUrlDesign = new XpoUrlDesign(fileName)\r\n }\r\n FluentXpoUrlDesign.prototype.getXpoUrlDesign = function () {\r\n return this.xpoUrlDesign\r\n }\r\n FluentXpoUrlDesign.prototype.setSameIndex = function (index) {\r\n this.xpoUrlDesign.setSameIndex(index)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setType = function (type) {\r\n this.xpoUrlDesign.setObjectType(type)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setWidth = function (width) {\r\n this.xpoUrlDesign.setWidth(width)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setHeight = function (height) {\r\n this.xpoUrlDesign.setHeight(height)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setGloss = function (gloss) {\r\n this.xpoUrlDesign.setGloss(gloss)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setContrast = function (contrast) {\r\n this.xpoUrlDesign.setContrast(contrast)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setDropX = function (dropX) {\r\n this.xpoUrlDesign.setDropX(dropX)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setDropY = function (dropY) {\r\n this.xpoUrlDesign.setDropY(dropY)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setPlacingPointX = function (placingPointX) {\r\n this.xpoUrlDesign.setPlacingPointX(placingPointX)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setPlacingPointY = function (placingPointY) {\r\n this.xpoUrlDesign.setPlacingPointY(placingPointY)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setRotation = function (rotation) {\r\n this.xpoUrlDesign.setRotation(rotation)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setFlip = function (flip) {\r\n this.xpoUrlDesign.setFlip(flip)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setRepeat = function (repeat) {\r\n this.xpoUrlDesign.setRepeat(repeat)\r\n return this\r\n }\r\n FluentXpoUrlDesign.prototype.setAspectRatio = function (aspectRatio) {\r\n this.xpoUrlDesign.setAspectRatio(aspectRatio)\r\n return this\r\n }\r\n return FluentXpoUrlDesign\r\n})()\r\nvar FluentXpoUrlFactory = (function () {\r\n function FluentXpoUrlFactory() {}\r\n FluentXpoUrlFactory.prototype.createFluentUrlGenerator = function (\r\n generator,\r\n urlType,\r\n canvasGenerator,\r\n ) {\r\n return new FluentXpoUrlGenerator(generator, this.getUrlRequest(urlType), canvasGenerator)\r\n }\r\n FluentXpoUrlFactory.prototype.getUrlRequest = function (urltype) {\r\n switch (urltype) {\r\n case 0 /* Image */:\r\n return new XpoImageUrlRequest()\r\n case 1 /* Coordinates */:\r\n return new XpoCoordinatesUrlRequest()\r\n default:\r\n throw 'Cannot determine correct URL type'\r\n }\r\n }\r\n return FluentXpoUrlFactory\r\n})()\r\nvar FluentXpoUrlGenerator = (function () {\r\n function FluentXpoUrlGenerator(generator, request, canvasGenerator) {\r\n if (request === void 0) {\r\n request = new XpoUrlRequest()\r\n }\r\n if (generator == null) throw 'Generator cannot be null.'\r\n if (request == null) throw 'Request cannot be null'\r\n this.generator = generator\r\n this.request = request\r\n this.canvasGenerator = canvasGenerator\r\n }\r\n FluentXpoUrlGenerator.prototype.ensureUrlType = function (urlRequest) {\r\n if (UrlGeneratorModule.UrlTypes[urlRequest.urlType] != null) return urlRequest\r\n throw 'Could not cast url with type ' + urlRequest.urlType + ' to ' + typeof XpoUrlRequest\r\n }\r\n FluentXpoUrlGenerator.prototype.setPrimaryKey = function (primaryKey) {\r\n this.request.setPrimaryKey(primaryKey)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setOutputQuality = function (outputQuality) {\r\n this.ensureUrlType(this.request).setOutputQuality(outputQuality)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setOutputType = function (outputType) {\r\n this.ensureUrlType(this.request).setOutputType(outputType)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.addObject = function (xpoObject, options) {\r\n var fluentXpoObject = new FluentXpoUrlObject()\r\n fluentXpoObject.setIndex(this.ensureUrlType(this.request).getObjects().length)\r\n xpoObject(fluentXpoObject, options)\r\n this.ensureUrlType(this.request).objects.push(fluentXpoObject.getXpoObject())\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.addTemplateParameter = function (index, parameterValue) {\r\n this.ensureUrlType(this.request).templateParameters.push(\r\n new XpoUrlTemplate(index, parameterValue),\r\n )\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.addOverlay = function (xpoOverlay, options) {\r\n var fluentXpoOverlay = new FluentXpoUrlOverlay()\r\n fluentXpoOverlay.setIndex(this.ensureUrlType(this.request).getOverlays().length)\r\n xpoOverlay(fluentXpoOverlay, options)\r\n this.ensureUrlType(this.request).overlays.push(fluentXpoOverlay.getXpoOverlay())\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setEntityType = function (fileType) {\r\n this.ensureUrlType(this.request).setFileType(fileType)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setWidth = function (width) {\r\n this.request.setWidth(width)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setHeight = function (height) {\r\n this.request.setHeight(height)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setResizeMethod = function (resizeMethod) {\r\n this.request.setResizeMethod(resizeMethod)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setImageType = function (type) {\r\n this.ensureUrlType(this.request).setImageType(type)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setDebug = function (debug) {\r\n this.request.setDebug(debug)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setBackgroundColor = function (colorString) {\r\n this.ensureUrlType(this.request).setBackgroundColor(colorString)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setCaching = function (cache) {\r\n this.ensureUrlType(this.request).setCaching(cache)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setDesignCaching = function (cache) {\r\n this.ensureUrlType(this.request).setDesignCaching(cache)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setHighlightObject = function (objectNumber) {\r\n this.ensureUrlType(this.request).setHighlightObject(objectNumber)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setTransparencyColor = function (colorString) {\r\n this.ensureUrlType(this.request).setTransparencyColor(colorString)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setSceneThumbnailObjectNumber = function (objectNumber) {\r\n this.ensureUrlType(this.request).setSceneThumbnailObjectNumber(objectNumber)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setAllColor = function (colorString) {\r\n this.ensureUrlType(this.request).setAllColor(colorString)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setPrefillCaching = function (cache) {\r\n this.ensureUrlType(this.request).setPreFillCaching(cache)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setTemplateName = function (name) {\r\n this.ensureUrlType(this.request).setTemplateName(name)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setAbsoluteUrl = function (absoluteUrl) {\r\n this.ensureUrlType(this.request).setAbsoluteUrl(absoluteUrl)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setWatermarkImage = function (watermarkImageName) {\r\n this.ensureUrlType(this.request).setWatermarkImage(watermarkImageName)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.addCustom = function (key, value) {\r\n this.request.customParameters.setValue(key, value)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setFrame = function (frame) {\r\n this.request.setFrame(frame)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setSceneRenderMode = function (mode) {\r\n this.request.setSceneRenderMode(mode)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setCanvasContainerId = function (canvasContainerId) {\r\n this.request.setCanvasContainerId(canvasContainerId)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.setFastRender = function (fastRender) {\r\n this.ensureUrlType(this.request).setFastRender(fastRender)\r\n return this\r\n }\r\n FluentXpoUrlGenerator.prototype.getUrl = function () {\r\n return this.generator.getUrl(this.request)\r\n }\r\n FluentXpoUrlGenerator.prototype.getCanvas = function () {\r\n return this.canvasGenerator.getCanvas(this.request)\r\n }\r\n return FluentXpoUrlGenerator\r\n})()\r\nvar FluentXpoUrlObject = (function () {\r\n function FluentXpoUrlObject() {\r\n this.xpoObject = new XpoUrlObject()\r\n }\r\n FluentXpoUrlObject.prototype.getXpoObject = function () {\r\n return this.xpoObject\r\n }\r\n FluentXpoUrlObject.prototype.setIndex = function (index) {\r\n this.xpoObject.setIndex(index)\r\n return this\r\n }\r\n FluentXpoUrlObject.prototype.design = function (fileName) {\r\n this.xpoObject.setObjectType(2 /* Design */)\r\n var fluentXpoUrlDesign = new FluentXpoUrlDesign(fileName)\r\n this.xpoObject.setDesign(fluentXpoUrlDesign.xpoUrlDesign)\r\n return fluentXpoUrlDesign\r\n }\r\n FluentXpoUrlObject.prototype.text = function (text) {\r\n var fluentXpoUrlText = new FluentXpoUrlText(text)\r\n this.xpoObject.setText(fluentXpoUrlText.getXpoUrlText())\r\n return fluentXpoUrlText\r\n }\r\n FluentXpoUrlObject.prototype.color = function (color) {\r\n var fluentXpoUrlColor = new FluentXpoUrlColor(color)\r\n this.xpoObject.setColor(fluentXpoUrlColor.getXpoUrlColor())\r\n return fluentXpoUrlColor\r\n }\r\n return FluentXpoUrlObject\r\n})()\r\nvar FluentXpoUrlOverlay = (function () {\r\n function FluentXpoUrlOverlay(overlayName) {\r\n if (overlayName === void 0) {\r\n overlayName = ''\r\n }\r\n this.xpoUrlOverlay = new XpoUrlOverlay(overlayName)\r\n }\r\n FluentXpoUrlOverlay.prototype.getXpoOverlay = function () {\r\n return this.xpoUrlOverlay\r\n }\r\n FluentXpoUrlOverlay.prototype.setIndex = function (index) {\r\n this.xpoUrlOverlay.setIndex(index)\r\n return this\r\n }\r\n FluentXpoUrlOverlay.prototype.setLocation = function (location) {\r\n this.xpoUrlOverlay.setOverlayLocation(location)\r\n return this.xpoUrlOverlay\r\n }\r\n FluentXpoUrlOverlay.prototype.setMode = function (mode) {\r\n this.xpoUrlOverlay.setOverlayMode(mode)\r\n return this.xpoUrlOverlay\r\n }\r\n FluentXpoUrlOverlay.prototype.setName = function (name) {\r\n this.xpoUrlOverlay.setOverlayName(name)\r\n return this.xpoUrlOverlay\r\n }\r\n FluentXpoUrlOverlay.prototype.setOperation = function (operation) {\r\n this.xpoUrlOverlay.setOverlayOperation(operation)\r\n return this.xpoUrlOverlay\r\n }\r\n FluentXpoUrlOverlay.prototype.setTime = function (time) {\r\n this.xpoUrlOverlay.setOverlayTime(time)\r\n return this.xpoUrlOverlay\r\n }\r\n return FluentXpoUrlOverlay\r\n})()\r\nvar FluentXpoUrlText = (function () {\r\n function FluentXpoUrlText(text) {\r\n this.xpoUrlText = new XpoUrlText(text)\r\n }\r\n FluentXpoUrlText.prototype.getXpoUrlText = function () {\r\n return this.xpoUrlText\r\n }\r\n FluentXpoUrlText.prototype.setFontName = function (fontName) {\r\n this.xpoUrlText.setFontname(fontName)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setFontSize = function (fontSize) {\r\n this.xpoUrlText.setFontsize(fontSize)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setColor = function (color) {\r\n this.xpoUrlText.setColor(color)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setAlignment = function (alignment) {\r\n this.xpoUrlText.setAlignment(alignment)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setFontStyle = function (fontStyle) {\r\n this.xpoUrlText.setFontStyle(fontStyle)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setDropX = function (dropX) {\r\n this.xpoUrlText.setDropX(dropX)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setDropY = function (dropY) {\r\n this.xpoUrlText.setDropY(dropY)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setPlacingPointX = function (placingPointX) {\r\n this.xpoUrlText.setPlacingPointX(placingPointX)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setPlacingPointY = function (placingPointY) {\r\n this.xpoUrlText.setPlacingPointY(placingPointY)\r\n return this\r\n }\r\n FluentXpoUrlText.prototype.setRotation = function (rotation) {\r\n throw 'Not implemented.'\r\n }\r\n FluentXpoUrlText.prototype.setMultiplier = function (multiplier) {\r\n this.xpoUrlText.setMultiplier(multiplier)\r\n return this\r\n }\r\n return FluentXpoUrlText\r\n})()\r\nvar XpoUrlColor = (function () {\r\n function XpoUrlColor(color) {\r\n this.color = color\r\n }\r\n XpoUrlColor.prototype.getColor = function () {\r\n return this.color\r\n }\r\n XpoUrlColor.prototype.setColor = function (val) {\r\n this.color = val\r\n }\r\n return XpoUrlColor\r\n})()\r\nvar XpoUrlDesign = (function () {\r\n function XpoUrlDesign(fileName) {\r\n if (fileName === void 0) {\r\n fileName = ''\r\n }\r\n this.entityName = fileName\r\n }\r\n XpoUrlDesign.prototype.getIndex = function () {\r\n return this.index\r\n }\r\n XpoUrlDesign.prototype.setIndex = function (val) {\r\n this.index = val\r\n }\r\n XpoUrlDesign.prototype.getSameIndex = function () {\r\n return this.sameIndex\r\n }\r\n XpoUrlDesign.prototype.setSameIndex = function (val) {\r\n this.sameIndex = val\r\n }\r\n XpoUrlDesign.prototype.getObjectType = function () {\r\n return this.objectType\r\n }\r\n XpoUrlDesign.prototype.setObjectType = function (val) {\r\n this.objectType = val\r\n }\r\n XpoUrlDesign.prototype.getEntityName = function () {\r\n return this.entityName\r\n }\r\n XpoUrlDesign.prototype.setEntityName = function (val) {\r\n this.entityName = val\r\n }\r\n XpoUrlDesign.prototype.getWidth = function () {\r\n return this.width\r\n }\r\n XpoUrlDesign.prototype.setWidth = function (val) {\r\n this.width = val\r\n }\r\n XpoUrlDesign.prototype.getHeight = function () {\r\n return this.height\r\n }\r\n XpoUrlDesign.prototype.setHeight = function (val) {\r\n this.height = val\r\n }\r\n XpoUrlDesign.prototype.getGloss = function () {\r\n return this.gloss\r\n }\r\n XpoUrlDesign.prototype.setGloss = function (val) {\r\n this.gloss = val\r\n }\r\n XpoUrlDesign.prototype.getContrast = function () {\r\n return this.contrast\r\n }\r\n XpoUrlDesign.prototype.setContrast = function (val) {\r\n this.contrast = val\r\n }\r\n XpoUrlDesign.prototype.getDropX = function () {\r\n return this.dropX\r\n }\r\n XpoUrlDesign.prototype.setDropX = function (val) {\r\n this.dropX = val\r\n }\r\n XpoUrlDesign.prototype.getDropY = function () {\r\n return this.dropY\r\n }\r\n XpoUrlDesign.prototype.setDropY = function (val) {\r\n this.dropY = val\r\n }\r\n XpoUrlDesign.prototype.getPlacingPointX = function () {\r\n return this.placingPointX\r\n }\r\n XpoUrlDesign.prototype.setPlacingPointX = function (val) {\r\n this.placingPointX = val\r\n }\r\n XpoUrlDesign.prototype.getPlacingPointY = function () {\r\n return this.placingPointY\r\n }\r\n XpoUrlDesign.prototype.setPlacingPointY = function (val) {\r\n this.placingPointY = val\r\n }\r\n XpoUrlDesign.prototype.getRotation = function () {\r\n return this.rotation\r\n }\r\n XpoUrlDesign.prototype.setRotation = function (val) {\r\n this.rotation = val\r\n }\r\n XpoUrlDesign.prototype.getFlip = function () {\r\n return this.flip\r\n }\r\n XpoUrlDesign.prototype.setFlip = function (val) {\r\n this.flip = val\r\n }\r\n XpoUrlDesign.prototype.getRepeat = function () {\r\n return this.repeat\r\n }\r\n XpoUrlDesign.prototype.setRepeat = function (val) {\r\n this.repeat = val\r\n }\r\n XpoUrlDesign.prototype.getAspectRatio = function () {\r\n return this.aspectRatio\r\n }\r\n XpoUrlDesign.prototype.setAspectRatio = function (val) {\r\n this.aspectRatio = val\r\n }\r\n return XpoUrlDesign\r\n})()\r\nvar XpoUrlObject = (function () {\r\n function XpoUrlObject() {}\r\n XpoUrlObject.prototype.getIndex = function () {\r\n return this.index\r\n }\r\n XpoUrlObject.prototype.setIndex = function (val) {\r\n this.index = val\r\n }\r\n XpoUrlObject.prototype.getObjectType = function () {\r\n return this.objectType\r\n }\r\n XpoUrlObject.prototype.setObjectType = function (val) {\r\n this.objectType = val\r\n }\r\n XpoUrlObject.prototype.getText = function () {\r\n return this.text\r\n }\r\n XpoUrlObject.prototype.setText = function (val) {\r\n this.text = val\r\n }\r\n XpoUrlObject.prototype.getColor = function () {\r\n return this.color\r\n }\r\n XpoUrlObject.prototype.setColor = function (val) {\r\n this.color = val\r\n }\r\n XpoUrlObject.prototype.getDesign = function () {\r\n return this.design\r\n }\r\n XpoUrlObject.prototype.setDesign = function (val) {\r\n this.design = val\r\n }\r\n return XpoUrlObject\r\n})()\r\nvar XpoUrlOverlay = (function () {\r\n function XpoUrlOverlay(overlayName) {\r\n if (overlayName === void 0) {\r\n overlayName = ''\r\n }\r\n this.overlayName = overlayName\r\n }\r\n XpoUrlOverlay.prototype.getIndex = function () {\r\n return this.index\r\n }\r\n XpoUrlOverlay.prototype.setIndex = function (val) {\r\n this.index = val\r\n }\r\n XpoUrlOverlay.prototype.getOverlayName = function () {\r\n return this.overlayName\r\n }\r\n XpoUrlOverlay.prototype.setOverlayName = function (val) {\r\n this.overlayName = val\r\n }\r\n XpoUrlOverlay.prototype.getOverlayMode = function () {\r\n return this.overlayMode\r\n }\r\n XpoUrlOverlay.prototype.setOverlayMode = function (val) {\r\n this.overlayMode = val\r\n }\r\n XpoUrlOverlay.prototype.getOverlayTime = function () {\r\n return this.overlayTime\r\n }\r\n XpoUrlOverlay.prototype.setOverlayTime = function (val) {\r\n this.overlayTime = val\r\n }\r\n XpoUrlOverlay.prototype.getOverlayOperation = function () {\r\n return this.overlayOperation\r\n }\r\n XpoUrlOverlay.prototype.setOverlayOperation = function (val) {\r\n this.overlayOperation = val\r\n }\r\n XpoUrlOverlay.prototype.getOverlayLocation = function () {\r\n return this.overlayLocation\r\n }\r\n XpoUrlOverlay.prototype.setOverlayLocation = function (val) {\r\n this.overlayLocation = val\r\n }\r\n return XpoUrlOverlay\r\n})()\r\nvar XpoUrlRequest = (function () {\r\n function XpoUrlRequest() {\r\n this.objects = new Array()\r\n this.templateParameters = new Array()\r\n this.overlays = new Array()\r\n this.customParameters = new Collections.Dictionary()\r\n this.caching = true\r\n this.designCaching = true\r\n this.urlType = 0 /* Url */\r\n }\r\n XpoUrlRequest.prototype.getPrimaryKey = function () {\r\n return this.primaryKey\r\n }\r\n XpoUrlRequest.prototype.setPrimaryKey = function (val) {\r\n this.primaryKey = val\r\n }\r\n XpoUrlRequest.prototype.getOutputType = function () {\r\n return this.outputType\r\n }\r\n XpoUrlRequest.prototype.setOutputType = function (val) {\r\n this.outputType = val\r\n }\r\n XpoUrlRequest.prototype.getOutputQuality = function () {\r\n return this.outputQuality\r\n }\r\n XpoUrlRequest.prototype.setOutputQuality = function (val) {\r\n this.outputQuality = val\r\n }\r\n XpoUrlRequest.prototype.getObjects = function () {\r\n return this.objects\r\n }\r\n XpoUrlRequest.prototype.getTemplateParameters = function () {\r\n return this.templateParameters\r\n }\r\n XpoUrlRequest.prototype.getOverlays = function () {\r\n return this.overlays\r\n }\r\n XpoUrlRequest.prototype.getFileType = function () {\r\n return this.fileType\r\n }\r\n XpoUrlRequest.prototype.setFileType = function (val) {\r\n this.fileType = val\r\n }\r\n XpoUrlRequest.prototype.getWidth = function () {\r\n return this.width\r\n }\r\n XpoUrlRequest.prototype.setWidth = function (val) {\r\n this.width = val\r\n }\r\n XpoUrlRequest.prototype.getHeight = function () {\r\n return this.height\r\n }\r\n XpoUrlRequest.prototype.setHeight = function (val) {\r\n this.height = val\r\n }\r\n XpoUrlRequest.prototype.getResizeMethod = function () {\r\n return this.resizeMethod\r\n }\r\n XpoUrlRequest.prototype.setResizeMethod = function (val) {\r\n this.resizeMethod = val\r\n }\r\n XpoUrlRequest.prototype.getImageType = function () {\r\n return this.imageType\r\n }\r\n XpoUrlRequest.prototype.setImageType = function (val) {\r\n this.imageType = val\r\n }\r\n XpoUrlRequest.prototype.getDebug = function () {\r\n return this.debug\r\n }\r\n XpoUrlRequest.prototype.setDebug = function (val) {\r\n this.debug = val\r\n }\r\n XpoUrlRequest.prototype.getBackgroundColor = function () {\r\n return this.backgroundColor\r\n }\r\n XpoUrlRequest.prototype.setBackgroundColor = function (val) {\r\n this.backgroundColor = val\r\n }\r\n XpoUrlRequest.prototype.getTransparencyColor = function () {\r\n return this.transparencyColor\r\n }\r\n XpoUrlRequest.prototype.setTransparencyColor = function (val) {\r\n this.transparencyColor = val\r\n }\r\n XpoUrlRequest.prototype.getAllColor = function () {\r\n return this.allColor\r\n }\r\n XpoUrlRequest.prototype.setAllColor = function (val) {\r\n this.allColor = val\r\n }\r\n XpoUrlRequest.prototype.getTemplateName = function () {\r\n return this.templateName\r\n }\r\n XpoUrlRequest.prototype.setTemplateName = function (val) {\r\n this.templateName = val\r\n }\r\n XpoUrlRequest.prototype.getCaching = function () {\r\n return this.caching\r\n }\r\n XpoUrlRequest.prototype.setCaching = function (val) {\r\n this.caching = val\r\n }\r\n XpoUrlRequest.prototype.getDesignCaching = function () {\r\n return this.designCaching\r\n }\r\n XpoUrlRequest.prototype.setDesignCaching = function (val) {\r\n this.designCaching = val\r\n }\r\n XpoUrlRequest.prototype.getPreFillCaching = function () {\r\n return this.preFillCaching\r\n }\r\n XpoUrlRequest.prototype.setPreFillCaching = function (val) {\r\n this.preFillCaching = val\r\n }\r\n XpoUrlRequest.prototype.getIsEntity = function () {\r\n return this.isEntity\r\n }\r\n XpoUrlRequest.prototype.setIsEntity = function (val) {\r\n this.isEntity = val\r\n }\r\n XpoUrlRequest.prototype.getHighlightObject = function () {\r\n return this.highlightObject\r\n }\r\n XpoUrlRequest.prototype.setHighlightObject = function (val) {\r\n this.highlightObject = val\r\n }\r\n XpoUrlRequest.prototype.getSceneThumbnailObjectNumber = function () {\r\n return this.sceneThumbnailObjectNumber\r\n }\r\n XpoUrlRequest.prototype.setSceneThumbnailObjectNumber = function (val) {\r\n this.sceneThumbnailObjectNumber = val\r\n }\r\n XpoUrlRequest.prototype.getAbsoluteUrl = function () {\r\n return this.absoluteUrl\r\n }\r\n XpoUrlRequest.prototype.setAbsoluteUrl = function (val) {\r\n this.absoluteUrl = val\r\n }\r\n XpoUrlRequest.prototype.getWatermarkImage = function () {\r\n return this.watermarkImage\r\n }\r\n XpoUrlRequest.prototype.setWatermarkImage = function (val) {\r\n this.watermarkImage = val\r\n }\r\n XpoUrlRequest.prototype.getFrame = function () {\r\n return this.frame\r\n }\r\n XpoUrlRequest.prototype.setFrame = function (val) {\r\n this.frame = val\r\n }\r\n XpoUrlRequest.prototype.getSceneRenderMode = function () {\r\n return this.renderMode\r\n }\r\n XpoUrlRequest.prototype.setSceneRenderMode = function (val) {\r\n this.renderMode = val\r\n }\r\n XpoUrlRequest.prototype.getCustomParameters = function () {\r\n return this.customParameters\r\n }\r\n XpoUrlRequest.prototype.getCanvasContainerId = function () {\r\n return this.canvasContainerId\r\n }\r\n XpoUrlRequest.prototype.setCanvasContainerId = function (val) {\r\n this.canvasContainerId = val\r\n }\r\n XpoUrlRequest.prototype.getFastRender = function () {\r\n return this.fastRender\r\n }\r\n XpoUrlRequest.prototype.setFastRender = function (val) {\r\n this.fastRender = val\r\n this.fastRenderSet = true\r\n }\r\n XpoUrlRequest.prototype.getFastRenderSet = function () {\r\n return this.fastRenderSet\r\n }\r\n return XpoUrlRequest\r\n})()\r\nvar XpoCoordinatesUrlRequest = (function (_super) {\r\n __extends(XpoCoordinatesUrlRequest, _super)\r\n function XpoCoordinatesUrlRequest() {\r\n _super.call(this)\r\n this.urlType = 2 /* Coords */\r\n }\r\n return XpoCoordinatesUrlRequest\r\n})(XpoUrlRequest)\r\nvar XpoImageUrlRequest = (function (_super) {\r\n __extends(XpoImageUrlRequest, _super)\r\n function XpoImageUrlRequest() {\r\n _super.call(this)\r\n this.urlType = 1 /* Image */\r\n }\r\n return XpoImageUrlRequest\r\n})(XpoUrlRequest)\r\nvar XpoUrlTemplate = (function () {\r\n function XpoUrlTemplate(index, value) {\r\n this.index = index\r\n this.value = value\r\n }\r\n XpoUrlTemplate.prototype.getIndex = function () {\r\n return this.index\r\n }\r\n XpoUrlTemplate.prototype.setIndex = function (val) {\r\n this.index = val\r\n }\r\n XpoUrlTemplate.prototype.getValue = function () {\r\n return this.value\r\n }\r\n XpoUrlTemplate.prototype.setValue = function (val) {\r\n this.value = val\r\n }\r\n return XpoUrlTemplate\r\n})()\r\nvar XpoUrlText = (function () {\r\n function XpoUrlText(text) {\r\n if (text === void 0) {\r\n text = ''\r\n }\r\n this.text = text\r\n }\r\n XpoUrlText.prototype.getText = function () {\r\n return this.text\r\n }\r\n XpoUrlText.prototype.setText = function (val) {\r\n this.text = val\r\n }\r\n XpoUrlText.prototype.getColor = function () {\r\n return this.color\r\n }\r\n XpoUrlText.prototype.setColor = function (val) {\r\n this.color = val\r\n }\r\n XpoUrlText.prototype.getFontname = function () {\r\n return this.fontname\r\n }\r\n XpoUrlText.prototype.setFontname = function (val) {\r\n this.fontname = val\r\n }\r\n XpoUrlText.prototype.getFontsize = function () {\r\n return this.fontsize\r\n }\r\n XpoUrlText.prototype.setFontsize = function (val) {\r\n this.fontsize = val\r\n }\r\n XpoUrlText.prototype.getAlignment = function () {\r\n return this.alignment\r\n }\r\n XpoUrlText.prototype.setAlignment = function (val) {\r\n this.alignment = val\r\n }\r\n XpoUrlText.prototype.getFontStyle = function () {\r\n return this.fontStyle\r\n }\r\n XpoUrlText.prototype.setFontStyle = function (val) {\r\n this.fontStyle = val\r\n }\r\n XpoUrlText.prototype.getDropX = function () {\r\n return this.dropX\r\n }\r\n XpoUrlText.prototype.setDropX = function (val) {\r\n this.dropX = val\r\n }\r\n XpoUrlText.prototype.getDropY = function () {\r\n return this.dropY\r\n }\r\n XpoUrlText.prototype.setDropY = function (val) {\r\n this.dropY = val\r\n }\r\n XpoUrlText.prototype.getPlacingPointX = function () {\r\n return this.placingPointX\r\n }\r\n XpoUrlText.prototype.setPlacingPointX = function (val) {\r\n this.placingPointX = val\r\n }\r\n XpoUrlText.prototype.getPlacingPointY = function () {\r\n return this.placingPointY\r\n }\r\n XpoUrlText.prototype.setPlacingPointY = function (val) {\r\n this.placingPointY = val\r\n }\r\n XpoUrlText.prototype.getRotation = function () {\r\n return this.rotation\r\n }\r\n XpoUrlText.prototype.setRotation = function (val) {\r\n this.rotation = val\r\n }\r\n XpoUrlText.prototype.getMultiplier = function () {\r\n return this.multiplier\r\n }\r\n XpoUrlText.prototype.setMultiplier = function (val) {\r\n this.multiplier = val\r\n }\r\n return XpoUrlText\r\n})()\r\nvar UrlGeneratorModule\r\n;(function (UrlGeneratorModule) {\r\n var XpoUrlTextDecoration = (function () {\r\n function XpoUrlTextDecoration() {}\r\n XpoUrlTextDecoration.bold = 'bold'\r\n XpoUrlTextDecoration.italic = 'italic'\r\n XpoUrlTextDecoration.underline = 'underline'\r\n return XpoUrlTextDecoration\r\n })()\r\n UrlGeneratorModule.XpoUrlTextDecoration = XpoUrlTextDecoration\r\n})(UrlGeneratorModule || (UrlGeneratorModule = {}))\r\nvar UrlGeneratorModule\r\n;(function (UrlGeneratorModule) {\r\n ;(function (UrlTypes) {\r\n UrlTypes[(UrlTypes['Url'] = 0)] = 'Url'\r\n UrlTypes[(UrlTypes['Image'] = 1)] = 'Image'\r\n UrlTypes[(UrlTypes['Coords'] = 2)] = 'Coords'\r\n })(UrlGeneratorModule.UrlTypes || (UrlGeneratorModule.UrlTypes = {}))\r\n var UrlTypes = UrlGeneratorModule.UrlTypes\r\n ;(function (XpoUrlOutputTypes) {\r\n XpoUrlOutputTypes[(XpoUrlOutputTypes['Xml'] = 1)] = 'Xml'\r\n XpoUrlOutputTypes[(XpoUrlOutputTypes['Json'] = 2)] = 'Json'\r\n XpoUrlOutputTypes[(XpoUrlOutputTypes['Javascript'] = 3)] = 'Javascript'\r\n })(UrlGeneratorModule.XpoUrlOutputTypes || (UrlGeneratorModule.XpoUrlOutputTypes = {}))\r\n var XpoUrlOutputTypes = UrlGeneratorModule.XpoUrlOutputTypes\r\n ;(function (XpoUrlObjectTypes) {\r\n XpoUrlObjectTypes[(XpoUrlObjectTypes['Color'] = 1)] = 'Color'\r\n XpoUrlObjectTypes[(XpoUrlObjectTypes['Design'] = 2)] = 'Design'\r\n })(UrlGeneratorModule.XpoUrlObjectTypes || (UrlGeneratorModule.XpoUrlObjectTypes = {}))\r\n var XpoUrlObjectTypes = UrlGeneratorModule.XpoUrlObjectTypes\r\n ;(function (XpoUrlTextAlignment) {\r\n XpoUrlTextAlignment[(XpoUrlTextAlignment['Left'] = 0)] = 'Left'\r\n XpoUrlTextAlignment[(XpoUrlTextAlignment['Middle'] = 1)] = 'Middle'\r\n XpoUrlTextAlignment[(XpoUrlTextAlignment['Right'] = 2)] = 'Right'\r\n })(UrlGeneratorModule.XpoUrlTextAlignment || (UrlGeneratorModule.XpoUrlTextAlignment = {}))\r\n var XpoUrlTextAlignment = UrlGeneratorModule.XpoUrlTextAlignment\r\n ;(function (XpoUrlFileTypes) {\r\n XpoUrlFileTypes[(XpoUrlFileTypes['Scene'] = 1)] = 'Scene'\r\n XpoUrlFileTypes[(XpoUrlFileTypes['Design'] = 2)] = 'Design'\r\n XpoUrlFileTypes[(XpoUrlFileTypes['Color'] = 3)] = 'Color'\r\n XpoUrlFileTypes[(XpoUrlFileTypes['SceneThumb'] = 4)] = 'SceneThumb'\r\n XpoUrlFileTypes[(XpoUrlFileTypes['Image'] = 5)] = 'Image'\r\n })(UrlGeneratorModule.XpoUrlFileTypes || (UrlGeneratorModule.XpoUrlFileTypes = {}))\r\n var XpoUrlFileTypes = UrlGeneratorModule.XpoUrlFileTypes\r\n ;(function (XpoUrlResizeMethods) {\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['KeepAspect'] = 1)] = 'KeepAspect'\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['Stretch'] = 2)] = 'Stretch'\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['Crop'] = 3)] = 'Crop'\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['Repeat'] = 4)] = 'Repeat'\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['KeepAspectMax'] = 5)] = 'KeepAspectMax'\r\n XpoUrlResizeMethods[(XpoUrlResizeMethods['Canvas'] = 6)] = 'Canvas'\r\n })(UrlGeneratorModule.XpoUrlResizeMethods || (UrlGeneratorModule.XpoUrlResizeMethods = {}))\r\n var XpoUrlResizeMethods = UrlGeneratorModule.XpoUrlResizeMethods\r\n ;(function (XpoUrlImageTypes) {\r\n XpoUrlImageTypes[(XpoUrlImageTypes['Jpg'] = 1)] = 'Jpg'\r\n XpoUrlImageTypes[(XpoUrlImageTypes['Png'] = 2)] = 'Png'\r\n XpoUrlImageTypes[(XpoUrlImageTypes['Bmp'] = 3)] = 'Bmp'\r\n })(UrlGeneratorModule.XpoUrlImageTypes || (UrlGeneratorModule.XpoUrlImageTypes = {}))\r\n var XpoUrlImageTypes = UrlGeneratorModule.XpoUrlImageTypes\r\n ;(function (FluentXpoUrlType) {\r\n FluentXpoUrlType[(FluentXpoUrlType['Image'] = 0)] = 'Image'\r\n FluentXpoUrlType[(FluentXpoUrlType['Coordinates'] = 1)] = 'Coordinates'\r\n })(UrlGeneratorModule.FluentXpoUrlType || (UrlGeneratorModule.FluentXpoUrlType = {}))\r\n var FluentXpoUrlType = UrlGeneratorModule.FluentXpoUrlType\r\n ;(function (XpoUrlObjectTransformations) {\r\n XpoUrlObjectTransformations[(XpoUrlObjectTransformations['None'] = 1)] = 'None'\r\n XpoUrlObjectTransformations[(XpoUrlObjectTransformations['Arc'] = 2)] = 'Arc'\r\n XpoUrlObjectTransformations[(XpoUrlObjectTransformations['Rotate'] = 3)] = 'Rotate'\r\n XpoUrlObjectTransformations[(XpoUrlObjectTransformations['FlipX'] = 4)] = 'FlipX'\r\n XpoUrlObjectTransformations[(XpoUrlObjectTransformations['FlipY'] = 5)] = 'FlipY'\r\n })(\r\n UrlGeneratorModule.XpoUrlObjectTransformations ||\r\n (UrlGeneratorModule.XpoUrlObjectTransformations = {}),\r\n )\r\n var XpoUrlObjectTransformations = UrlGeneratorModule.XpoUrlObjectTransformations\r\n ;(function (XpoUrlOverlayModes) {\r\n XpoUrlOverlayModes[(XpoUrlOverlayModes['MatchSizeOfOutput'] = 0)] = 'MatchSizeOfOutput'\r\n XpoUrlOverlayModes[(XpoUrlOverlayModes['KeepOriginalSize'] = 1)] = 'KeepOriginalSize'\r\n })(UrlGeneratorModule.XpoUrlOverlayModes || (UrlGeneratorModule.XpoUrlOverlayModes = {}))\r\n var XpoUrlOverlayModes = UrlGeneratorModule.XpoUrlOverlayModes\r\n ;(function (XpoUrlOverlayTimes) {\r\n XpoUrlOverlayTimes[(XpoUrlOverlayTimes['BeforeResize'] = 0)] = 'BeforeResize'\r\n XpoUrlOverlayTimes[(XpoUrlOverlayTimes['AfterResize'] = 1)] = 'AfterResize'\r\n })(UrlGeneratorModule.XpoUrlOverlayTimes || (UrlGeneratorModule.XpoUrlOverlayTimes = {}))\r\n var XpoUrlOverlayTimes = UrlGeneratorModule.XpoUrlOverlayTimes\r\n ;(function (XpoUrlOverlayOperations) {\r\n XpoUrlOverlayOperations[(XpoUrlOverlayOperations['Normal'] = 0)] = 'Normal'\r\n XpoUrlOverlayOperations[(XpoUrlOverlayOperations['ColoredMapping'] = 1)] = 'ColoredMapping'\r\n })(\r\n UrlGeneratorModule.XpoUrlOverlayOperations || (UrlGeneratorModule.XpoUrlOverlayOperations = {}),\r\n )\r\n var XpoUrlOverlayOperations = UrlGeneratorModule.XpoUrlOverlayOperations\r\n ;(function (TextFontStyle) {\r\n TextFontStyle[(TextFontStyle['Regular'] = 0)] = 'Regular'\r\n TextFontStyle[(TextFontStyle['Bold'] = 1)] = 'Bold'\r\n TextFontStyle[(TextFontStyle['Italic'] = 2)] = 'Italic'\r\n TextFontStyle[(TextFontStyle['Underline'] = 4)] = 'Underline'\r\n TextFontStyle[(TextFontStyle['Strikeout'] = 8)] = 'Strikeout'\r\n })(UrlGeneratorModule.TextFontStyle || (UrlGeneratorModule.TextFontStyle = {}))\r\n var TextFontStyle = UrlGeneratorModule.TextFontStyle\r\n ;(function (XpoUrlRenderModes) {\r\n XpoUrlRenderModes[(XpoUrlRenderModes['Normal'] = 0)] = 'Normal'\r\n XpoUrlRenderModes[(XpoUrlRenderModes['FreeObjects'] = 1)] = 'FreeObjects'\r\n })(UrlGeneratorModule.XpoUrlRenderModes || (UrlGeneratorModule.XpoUrlRenderModes = {}))\r\n var XpoUrlRenderModes = UrlGeneratorModule.XpoUrlRenderModes\r\n function getMaxObjectNumber(xpoUrlObjects) {\r\n var maxIndex = 0\r\n for (var i = 0; i < xpoUrlObjects.length; i++) {\r\n if (xpoUrlObjects[i].getIndex() > maxIndex) maxIndex = xpoUrlObjects[i].getIndex()\r\n }\r\n return maxIndex\r\n }\r\n UrlGeneratorModule.getMaxObjectNumber = getMaxObjectNumber\r\n function getMaxOverlayNumber(xpoUrlOverlays) {\r\n var maxIndex = 0\r\n for (var i = 0; i < xpoUrlOverlays.length; i++) {\r\n if (xpoUrlOverlays[i].getIndex() > maxIndex) maxIndex = xpoUrlOverlays[i].getIndex()\r\n }\r\n return maxIndex\r\n }\r\n UrlGeneratorModule.getMaxOverlayNumber = getMaxOverlayNumber\r\n})(UrlGeneratorModule || (UrlGeneratorModule = {}))\r\n"],"names":["Collections","Collections1","arrays","defaultCompare","a","b","defaultEquals","defaultToString","item","isUndefined","isString","toString","makeString","join","toret","first","prop","hasOwnProperty","isFunction","func","obj","Object","prototype","call","reverseCompareFunction","compareFunction","d","v","compareToEquals","indexOf","array","equalsFunction","equals","length","i","lastIndexOf","contains","remove","index","splice","frequency","freq","array1","array2","copy","concat","swap","j","temp","forEach","callback","lenght","LinkedList1","LinkedList","this","firstNode","lastNode","nElements","add","newNode","createNode","next","prev","nodeAtIndex","element","last","elementAtIndex","node","equalsF","currentNode","previous","clear","other","eqF","size","equalsAux","n1","n2","removeElementAtIndex","reverse","current","toArray","push","isEmpty","Dictionary1","Dictionary","toStrFunction","table","toStr","getValue","key","pair","value","setValue","ret","k","previousElement","undefined","keys","name","values","containsKey","MultiDictionary1","MultiDictionary","valuesEqualsFunction","allowDuplicateValues","dict","allowDuplicate","Heap1","Heap","data","compare","leftChildIndex","nodeIndex","rightChildIndex","parentIndex","Math","floor","minIndex","leftChild","rightChild","siftUp","parent","siftDown","min","peek","removeRoot","equF","Stack1","Stack","list","elem","pop","Queue1","Queue","enqueue","dequeue","el","PriorityQueue1","PriorityQueue","heap","Set1","Set","toStringFunction","dictionary","intersection","otherSet","set","union","difference","isSubsetOf","isSub","Bag1","Bag","toStrF","nCopies","copies","count","vl","toSet","elements","l","BSTree1","BSTree","root","insertNode","searchNode","removeNode","inorderTraversal","inorderTraversalAux","stop","preorderTraversal","preorderTraversalAux","postorderTraversal","postorderTraversalAux","levelTraversal","levelTraversalAux","minimum","minimumAux","maximum","maximumAux","height","heightAux","cmp","leftCh","rightCh","transplant","y","signal","queue","max","position","Base64","Base641","_keyStr","encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","utf8Encode","charCodeAt","isNaN","charAt","decode","replace","String","fromCharCode","utf8Decode","utftext","n","c","c2","decodeString","c3","format","args","arguments","match","number","appendDictionary","result","endsWith","lastIndex","UrlGeneratorModule","ColorKeys","ColorKeys1","colorString","appendColors","stringBuilder","xpoUrlColors","getMaxObjectNumber","colorBuilder","map","e","getIndex","colorObject","getColor","slice","DesignKey","DesignKey1","keyList","Array","americanCulture","addToList","omitIfDefault","parseFloat","addDouble","addEmpty","convertValue","toLocaleString","getUrlValue","getValues","designs","__extends","p","__","constructor","AspectRatioDesignKey","_super","AspectRatioDesignKey1","urlObject","getDesign","getAspectRatio","ContrastDesignKey","ContrastDesignKey1","apply","getContrast","DesignKeys","DesignKeys1","designKeys","EntityNameDesignKey","DropXDesignKey","DropYDesignKey","GlossDesignKey","HeightDesignKey","PlacingPointXDesignKey","PlacingPointYDesignKey","RepeatDesignKey","RotationDesignKey","WidthDesignKey","FlipDesignKey","appendDesigns","xpoUrlDesigns","keyValue","DropXDesignKey1","getDropX","DropYDesignKey1","getDropY","EntityNameDesignKey1","convertToBase64UrlString","getEntityName","base64","encodeURIComponent","FlipDesignKey1","getFlip","GeneralKeys","GeneralKeys1","entityName","width","backgroundColor","designCaching","resizeMethod","textureRepeat","outputQuality","imageType","outputType","sceneThumbnailObjectNumber","highlightObject","caching","coords","watermark","frame","renderMode","fastRender","queryStringFormat","appendRequest","request","getQueryStringValue","getWidth","getBackgroundColor","getCachingMethod","getHeight","getDesignCaching","getResizeMethod","getRepeatMethod","getOutputQuality","getFormat","getImageType","getStringValue","getSceneThumbnailObjectNumber","getHighlightObject","getWatermarkImage","getFrame","getSceneRenderMode","customParameters","getFastRenderSet","getQueryStringValueForce","getFastRender","urlType","getCaching","getFileType","GlossDesignKey1","getGloss","HeightDesignKey1","OverlayKey","OverlayKey1","OverlayKeys","OverlayKeys1","overlayKeys","NameOverlayKey","ModeOverlayKey","LocationOverlayKey","OperationOverlayKey","TimeOverlayKey","appendOverlays","xpoUrlOverlays","LocationOverlayKey1","overlays","getMaxOverlayNumber","urlOverlay","getOverlayLocation","ModeOverlayKey1","getOverlayMode","NameOverlayKey1","getOverlayName","OperationOverlayKey1","getOverlayOperation","XpoUrlGenerator","XpoUrlGenerator1","getUrl","getImageUrl","getCoordsUrl","getCanvas","_this","ensureWorkspace","getCanvasContainerId","workspace","loadScene","getPrimaryKey","whenData","allRequestObjects","getObjects","requestObject","workspaceObject","getObject","requestDesign","Contrast","PlacingPointX","getPlacingPointX","PlacingPointY","getPlacingPointY","LoadTextureImage","getDesignImageUrl","setInterval","render","generalKeys","colorKeys","textKeys","TextKeys","getXpoBaseUrl","filter","appendTexts","getText","getOverlays","urlRequest","getAbsoluteUrl","design","newUrlRequest","XpoUrlRequest","setAbsoluteUrl","setPrimaryKey","setHeight","setWidth","canvasContainerId","Pix2","GLWorkspace","PlacingPointXDesignKey1","PlacingPointYDesignKey1","RepeatDesignKey1","getRepeat","RotationDesignKey1","getRotation","TimeOverlayKey1","getOverlayTime","WidthDesignKey1","TextKey","TextKey1","texts","TextKeys1","TextTextKey","TextColorTextKey","TextAlignmentTextKey","TextFontTextKey","TextMultiplierTextKey","TextPlacingPointXTextKey","TextPlacingPointYTextKey","TextSizeTextKey","TextStyleTextKey","xpoUrlTexts","TextTextKey1","TextAlignmentTextKey1","getAlignment","TextColorTextKey1","TextFontTextKey1","getFontname","TextMultiplierTextKey1","getMultiplier","TextPlacingPointXTextKey1","TextPlacingPointYTextKey1","TextSizeTextKey1","getFontsize","TextStyleTextKey1","getFontStyle","FluentXpoUrlColor","FluentXpoUrlColor1","color","xpoUrlColor","XpoUrlColor","getXpoUrlColor","FluentXpoUrlDesign","FluentXpoUrlDesign1","fileName","xpoUrlDesign","XpoUrlDesign","getXpoUrlDesign","setSameIndex","setType","type","setObjectType","setGloss","gloss","setContrast","contrast","setDropX","dropX","setDropY","dropY","setPlacingPointX","placingPointX","setPlacingPointY","placingPointY","setRotation","rotation","setFlip","flip","setRepeat","repeat","setAspectRatio","aspectRatio","FluentXpoUrlFactory","FluentXpoUrlFactory1","createFluentUrlGenerator","generator","canvasGenerator","FluentXpoUrlGenerator","getUrlRequest","urltype","XpoImageUrlRequest","XpoCoordinatesUrlRequest","FluentXpoUrlGenerator1","ensureUrlType","UrlTypes","primaryKey","setOutputQuality","setOutputType","addObject","xpoObject","options","fluentXpoObject","FluentXpoUrlObject","setIndex","objects","getXpoObject","addTemplateParameter","parameterValue","templateParameters","XpoUrlTemplate","addOverlay","xpoOverlay","fluentXpoOverlay","FluentXpoUrlOverlay","getXpoOverlay","setEntityType","fileType","setFileType","setResizeMethod","setImageType","setDebug","debug","setBackgroundColor","setCaching","cache","setDesignCaching","setHighlightObject","objectNumber","setTransparencyColor","setSceneThumbnailObjectNumber","setAllColor","setPrefillCaching","setPreFillCaching","setTemplateName","absoluteUrl","setWatermarkImage","watermarkImageName","addCustom","setFrame","setSceneRenderMode","mode","setCanvasContainerId","setFastRender","FluentXpoUrlObject1","XpoUrlObject","fluentXpoUrlDesign","setDesign","text","fluentXpoUrlText","FluentXpoUrlText","setText","getXpoUrlText","fluentXpoUrlColor","setColor","FluentXpoUrlOverlay1","overlayName","xpoUrlOverlay","XpoUrlOverlay","setLocation","location","setOverlayLocation","setMode","setOverlayMode","setName","setOverlayName","setOperation","operation","setOverlayOperation","setTime","time","setOverlayTime","FluentXpoUrlText1","xpoUrlText","XpoUrlText","setFontName","fontName","setFontname","setFontSize","fontSize","setFontsize","setAlignment","alignment","setFontStyle","fontStyle","setMultiplier","multiplier","XpoUrlColor1","val","XpoUrlDesign1","getSameIndex","sameIndex","getObjectType","objectType","setEntityName","XpoUrlObject1","XpoUrlOverlay1","overlayMode","overlayTime","overlayOperation","overlayLocation","XpoUrlRequest1","getOutputType","getTemplateParameters","getDebug","getTransparencyColor","transparencyColor","getAllColor","allColor","getTemplateName","templateName","getPreFillCaching","preFillCaching","getIsEntity","isEntity","setIsEntity","watermarkImage","getCustomParameters","fastRenderSet","XpoCoordinatesUrlRequest1","XpoImageUrlRequest1","XpoUrlTemplate1","XpoUrlText1","fontname","fontsize","UrlGeneratorModule1","XpoUrlTextDecoration1","XpoUrlTextDecoration","bold","italic","underline","UrlGeneratorModule2","XpoUrlOutputTypes","XpoUrlObjectTypes","XpoUrlTextAlignment","XpoUrlFileTypes","XpoUrlResizeMethods","XpoUrlImageTypes","FluentXpoUrlType","XpoUrlObjectTransformations","XpoUrlOverlayModes","XpoUrlOverlayTimes","XpoUrlOverlayOperations","TextFontStyle","XpoUrlRenderModes","xpoUrlObjects","maxIndex"],"version":3,"file":"index.1de426ce.js.map"}