uicore-ts 1.1.5 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiledScripts/UIDateTimeInput.js.map +2 -2
- package/compiledScripts/UIKeyValueSorter.js +4 -0
- package/compiledScripts/UIKeyValueSorter.js.map +2 -2
- package/compiledScripts/UIKeyValueStringFilter.js +4 -0
- package/compiledScripts/UIKeyValueStringFilter.js.map +2 -2
- package/compiledScripts/UIKeyValueStringFilterWebWorker.worker.js.map +2 -2
- package/compiledScripts/UILinkButton.js +1 -3
- package/compiledScripts/UILinkButton.js.map +2 -2
- package/compiledScripts/UITextField.d.ts +1 -1
- package/compiledScripts/UITextField.js.map +2 -2
- package/compiledScripts/UIView.d.ts +2 -2
- package/compiledScripts/UIView.js +26 -35
- package/compiledScripts/UIView.js.map +2 -2
- package/package.json +1 -1
- package/scripts/UIDateTimeInput.ts +0 -1
- package/scripts/UIKeyValueSorter.ts +6 -2
- package/scripts/UIKeyValueStringFilter.ts +5 -0
- package/scripts/UIKeyValueStringFilterWebWorker.worker.ts +2 -2
- package/scripts/UILinkButton.ts +1 -3
- package/scripts/UITextField.ts +3 -4
- package/scripts/UIView.ts +34 -67
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UIDateTimeInput.ts"],
|
|
4
|
-
"sourcesContent": ["import { UIView, UIViewAddControlEventTargetObject } from \"./UIView\"\n\n\nexport class UIDateTimeInput extends UIView {\n \n \n constructor(elementID: string, type: string = UIDateTimeInput.type.DateTime) {\n \n super(elementID, undefined, \"input\")\n \n this.viewHTMLElement.setAttribute(\"type\", type)\n \n this.viewHTMLElement.onchange = (event) => {\n this.sendControlEventForKey(UIDateTimeInput.controlEvent.ValueChange, event)\n }\n \n }\n \n \n static override controlEvent = Object.assign({}, UIView.controlEvent, {\n \n \"ValueChange\": \"ValueChange\"\n \n })\n \n \n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0D;AAGnD,MAAM,mBAAN,cAA8B,qBAAO;AAAA,EAGxC,YAAY,WAAmB,OAAe,iBAAgB,KAAK,UAAU;AAEzE,UAAM,WAAW,QAAW,OAAO;AAEnC,SAAK,gBAAgB,aAAa,QAAQ,IAAI;AAE9C,SAAK,gBAAgB,WAAW,CAAC,UAAU;AACvC,WAAK,uBAAuB,iBAAgB,aAAa,aAAa,KAAK;AAAA,IAC/E;AAAA,EAEJ;AAAA,
|
|
4
|
+
"sourcesContent": ["import { UIView, UIViewAddControlEventTargetObject } from \"./UIView\"\n\n\nexport class UIDateTimeInput extends UIView {\n \n \n constructor(elementID: string, type: string = UIDateTimeInput.type.DateTime) {\n \n super(elementID, undefined, \"input\")\n \n this.viewHTMLElement.setAttribute(\"type\", type)\n \n this.viewHTMLElement.onchange = (event) => {\n this.sendControlEventForKey(UIDateTimeInput.controlEvent.ValueChange, event)\n }\n \n }\n \n \n static override controlEvent = Object.assign({}, UIView.controlEvent, {\n \n \"ValueChange\": \"ValueChange\"\n \n })\n \n \n override get controlEventTargetAccumulator(): UIViewAddControlEventTargetObject<UIDateTimeInput> {\n return super.controlEventTargetAccumulator as any\n }\n \n \n static type = {\n \n \"Date\": \"date\",\n \"Time\": \"time\",\n \"DateTime\": \"datetime\"\n \n \n }\n \n \n static format = {\n \n \"European\": \"DD-MM-YYYY\",\n \"ISOComputer\": \"YYYY-MM-DD\",\n \"American\": \"MM/DD/YYYY\"\n \n }\n \n \n get date() {\n \n const result = new Date((this.viewHTMLElement as HTMLInputElement).value)\n \n return result\n \n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0D;AAGnD,MAAM,mBAAN,cAA8B,qBAAO;AAAA,EAGxC,YAAY,WAAmB,OAAe,iBAAgB,KAAK,UAAU;AAEzE,UAAM,WAAW,QAAW,OAAO;AAEnC,SAAK,gBAAgB,aAAa,QAAQ,IAAI;AAE9C,SAAK,gBAAgB,WAAW,CAAC,UAAU;AACvC,WAAK,uBAAuB,iBAAgB,aAAa,aAAa,KAAK;AAAA,IAC/E;AAAA,EAEJ;AAAA,EAUA,IAAa,gCAAoF;AAC7F,WAAO,MAAM;AAAA,EACjB;AAAA,EAsBA,IAAI,OAAO;AAEP,UAAM,SAAS,IAAI,KAAM,KAAK,gBAAqC,KAAK;AAExE,WAAO;AAAA,EAEX;AAGJ;AAxDO,IAAM,kBAAN;AAAM,gBAgBO,eAAe,OAAO,OAAO,CAAC,GAAG,qBAAO,cAAc;AAAA,EAElE,eAAe;AAEnB,CAAC;AApBQ,gBA4BF,OAAO;AAAA,EAEV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAGhB;AAnCS,gBAsCF,SAAS;AAAA,EAEZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,YAAY;AAEhB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -96,6 +96,10 @@ const _UIKeyValueSorter = class extends import_UIObject.UIObject {
|
|
|
96
96
|
if (this._isThreadClosed) {
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
+
if (!(data == null ? void 0 : data.length)) {
|
|
100
|
+
completion([], [], identifier);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
99
103
|
const instanceIdentifier = this.instanceIdentifier;
|
|
100
104
|
const key = "" + identifier + instanceIdentifier;
|
|
101
105
|
this.completionFunctions[key] = completion;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UIKeyValueSorter.ts"],
|
|
4
|
-
"sourcesContent": ["// @ts-ignore\nimport UIKeyValueSorterWebWorker from \"./UIKeyValueSorterWebWorker.worker\"\nimport { IS, IS_NOT, MAKE_ID, NO, UIObject, YES } from \"./UIObject\"\n\n\nexport interface UIKeyValueSorterSortingInstruction {\n \n keyPath: string;\n \n dataType: string;\n \n direction: string;\n \n \n}\n\n\nexport class UIKeyValueSorter extends UIObject {\n \n static _sharedWebWorkerHolder = {\n UICore_completionFunctions: {},\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n webWorker: new UIKeyValueSorterWebWorker()\n }\n \n static _instanceNumber = -1\n \n _instanceNumber: number\n _isThreadClosed = NO\n \n private readonly _webWorkerHolder: {\n webWorker: any;\n UICore_isWorking: boolean\n UICore_messagesToPost: any\n UICore_completionFunctions: Record<string, (\n filteredData: string[],\n filteredIndexes: number[],\n identifier: any\n ) => void>\n } = UIKeyValueSorter._sharedWebWorkerHolder\n \n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n super()\n \n if (useSeparateWebWorkerHolder) {\n \n this._webWorkerHolder = {\n webWorker: new UIKeyValueSorterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n \n }\n \n UIKeyValueSorter._instanceNumber = UIKeyValueSorter._instanceNumber + 1\n this._instanceNumber = UIKeyValueSorter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = (message: { data: { identifier: string; instanceIdentifier: string; sortedData: any[]; sortedIndexes: number[]; }; }) => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.sortedData, message.data.sortedIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n }\n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n var result: {\n \n [x: string]: (sortedData: any[], sortedIndexes: number[], identifier: any) => void\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n static dataType = {\n \n \"string\": \"string\",\n \"number\": \"number\"\n \n }\n \n \n static direction = {\n \n \"descending\": \"descending\",\n \"ascending\": \"ascending\"\n \n }\n \n \n sortData<T>(\n data: T[],\n sortingInstructions: UIKeyValueSorterSortingInstruction[],\n identifier: any,\n completion: (sortedData: T[], sortedIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uCAAsC;AACtC,sBAAuD;AAehD,MAAM,oBAAN,cAA+B,yBAAS;AAAA,EA0B3C,YAAY,6BAA6B,oBAAI;AAEzC,UAAM;AAhBV,2BAAkB;AAElB,SAAiB,mBASb,kBAAiB;AAOjB,QAAI,4BAA4B;AAE5B,WAAK,mBAAmB;AAAA,QACpB,WAAW,IAAI,iCAAAA,QAA0B;AAAA,QACzC,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,QACvB,4BAA4B,CAAC;AAAA,MACjC;AAAA,IAEJ;AAEA,sBAAiB,kBAAkB,kBAAiB,kBAAkB;AACtE,SAAK,kBAAkB,kBAAiB;AAExC,YAAI,wBAAO,KAAK,iBAAiB,UAAU,SAAS,GAAG;AAEnD,WAAK,iBAAiB,UAAU,YAAY,CAAC,YAAwH;AAEjK,aAAK,eAAe;AACpB,aAAK,wBAAwB;AAE7B,cAAM,MAAM,KAAK,QAAQ,KAAK,aAAa,QAAQ,KAAK;AAExD,cAAM,qBAAqB,KAAK,oBAAoB;AAEpD,gBAAI,oBAAG,kBAAkB,GAAG;AAIxB,6BAAmB,QAAQ,KAAK,YAAY,QAAQ,KAAK,eAAe,QAAQ,KAAK,UAAU;AAAA,QAEnG;AAEA,eAAO,KAAK,oBAAoB;AAEhC,YAAI,MAAM;AAAA,MAEd;AAAA,IAEJ;AAAA,EAGJ;AAAA,EAGA,IAAI,qBAAqB;AAErB,WAAO,KAAK;AAAA,EAEhB;AAAA,EAGA,IAAI,sBAAsB;AAEtB,UAAM,MAAM;AACZ,QAAI,SAIA,KAAK,iBAAiB;AAE1B,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAEA,IAAI,iBAAiB;AAEjB,UAAM,MAAM;AACZ,QAAI,SAAgB,KAAK,iBAAiB;AAE1C,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAGA,IAAI,aAAa,cAAuB;AAEpC,SAAK,iBAAiB,sBAAsB;AAAA,EAEhD;AAAA,EAEA,IAAI,eAAe;AAEf,eAAO,oBAAG,KAAK,iBAAiB,mBAAmB;AAAA,EAEvD;AAAA,EAGA,0BAA0B;AAEtB,QAAI,KAAK,eAAe,cAAU,wBAAO,KAAK,YAAY,GAAG;AAEzD,WAAK,iBAAiB,UAAU,YAAY,KAAK,eAAe,YAAY;AAC5E,WAAK,eAAe,qBAAqB,CAAC;AAE1C,WAAK,eAAe;AAAA,IAExB;AAAA,EAEJ;AAAA,EAmBA,SACI,MACA,qBACA,YACA,YACF;AAGE,QAAI,KAAK,iBAAiB;AAEtB;AAAA,IAEJ;
|
|
4
|
+
"sourcesContent": ["// @ts-ignore\nimport UIKeyValueSorterWebWorker from \"./UIKeyValueSorterWebWorker.worker\"\nimport { IS, IS_NOT, MAKE_ID, NO, UIObject, YES } from \"./UIObject\"\n\n\nexport interface UIKeyValueSorterSortingInstruction {\n \n keyPath: string;\n \n dataType: string;\n \n direction: string;\n \n \n}\n\n\nexport class UIKeyValueSorter extends UIObject {\n \n static _sharedWebWorkerHolder = {\n UICore_completionFunctions: {},\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n webWorker: new UIKeyValueSorterWebWorker()\n }\n \n static _instanceNumber = -1\n \n _instanceNumber: number\n _isThreadClosed = NO\n \n private readonly _webWorkerHolder: {\n webWorker: any;\n UICore_isWorking: boolean\n UICore_messagesToPost: any\n UICore_completionFunctions: Record<string, (\n filteredData: string[],\n filteredIndexes: number[],\n identifier: any\n ) => void>\n } = UIKeyValueSorter._sharedWebWorkerHolder\n \n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n super()\n \n if (useSeparateWebWorkerHolder) {\n \n this._webWorkerHolder = {\n webWorker: new UIKeyValueSorterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n \n }\n \n UIKeyValueSorter._instanceNumber = UIKeyValueSorter._instanceNumber + 1\n this._instanceNumber = UIKeyValueSorter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = (message: { data: { identifier: string; instanceIdentifier: string; sortedData: any[]; sortedIndexes: number[]; }; }) => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.sortedData, message.data.sortedIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n }\n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n var result: {\n \n [x: string]: (sortedData: any[], sortedIndexes: number[], identifier: any) => void\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n static dataType = {\n \n \"string\": \"string\",\n \"number\": \"number\"\n \n }\n \n \n static direction = {\n \n \"descending\": \"descending\",\n \"ascending\": \"ascending\"\n \n }\n \n \n sortData<T>(\n data: T[],\n sortingInstructions: UIKeyValueSorterSortingInstruction[],\n identifier: any,\n completion: (sortedData: T[], sortedIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n \n if (!data?.length) {\n completion([], [], identifier)\n return\n }\n \n const instanceIdentifier = this.instanceIdentifier\n \n const key = \"\" + identifier + instanceIdentifier\n \n this.completionFunctions[key] = completion\n \n \n try {\n \n this.messagesToPost.push({\n \n \"data\": data,\n \"sortingInstructions\": sortingInstructions,\n \"identifier\": identifier,\n \"instanceIdentifier\": instanceIdentifier\n \n })\n \n this.postNextMessageIfNeeded()\n \n } catch (exception) {\n \n completion([], [], identifier)\n \n }\n \n \n }\n \n \n sortedData<T>(\n data: T[],\n sortingInstructions: UIKeyValueSorterSortingInstruction[],\n identifier: any = MAKE_ID()\n ) {\n \n const result: Promise<{\n \n sortedData: T[],\n sortedIndexes: number[],\n identifier: any\n \n }> = new Promise((resolve, reject) => {\n \n this.sortData(data, sortingInstructions, identifier, (sortedData, sortedIndexes, sortedIdentifier) => {\n \n if (sortedIdentifier == identifier) {\n \n resolve({\n \n sortedData: sortedData,\n sortedIndexes: sortedIndexes,\n identifier: sortedIdentifier\n \n })\n \n }\n \n \n })\n \n \n })\n \n return result\n \n }\n \n \n closeThread() {\n \n this._isThreadClosed = YES\n \n if (this._webWorkerHolder != UIKeyValueSorter._sharedWebWorkerHolder) {\n \n this._webWorkerHolder.webWorker.terminate()\n \n }\n \n \n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["UIKeyValueSorterWebWorker"]
|
|
7
7
|
}
|
|
@@ -96,6 +96,10 @@ const _UIKeyValueStringFilter = class extends import_UIObject.UIObject {
|
|
|
96
96
|
if (this._isThreadClosed) {
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
+
if (!(data == null ? void 0 : data.length)) {
|
|
100
|
+
completion([], [], identifier);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
99
103
|
const instanceIdentifier = this.instanceIdentifier;
|
|
100
104
|
const key = "" + identifier + instanceIdentifier;
|
|
101
105
|
this.completionFunctions[key] = completion;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UIKeyValueStringFilter.ts"],
|
|
4
|
-
"sourcesContent": ["// @ts-ignore\nimport UIKeyValueStringFilterWebWorker from \"./UIKeyValueStringFilterWebWorker.worker.js\"\nimport { IS, IS_NOT, NO, UIObject, YES } from \"./UIObject\"\n\n\nexport class UIKeyValueStringFilter extends UIObject {\n \n static _sharedWebWorkerHolder: {\n webWorker: any\n UICore_completionFunctions: Record<string, (\n filteredData: string[],\n filteredIndexes: number[],\n identifier: any\n ) => void>\n UICore_messagesToPost: any\n UICore_isWorking: boolean\n } = {\n webWorker: new UIKeyValueStringFilterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n static _instanceNumber = -1\n \n _instanceNumber: number\n _isThreadClosed = NO\n \n private readonly _webWorkerHolder = UIKeyValueStringFilter._sharedWebWorkerHolder\n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n super()\n \n if (useSeparateWebWorkerHolder) {\n this._webWorkerHolder = {\n webWorker: new UIKeyValueStringFilterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n }\n \n UIKeyValueStringFilter._instanceNumber = UIKeyValueStringFilter._instanceNumber + 1\n this._instanceNumber = UIKeyValueStringFilter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = (message: { data: { identifier: string; instanceIdentifier: string; filteredData: any[]; filteredIndexes: number[] } }) => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.filteredData, message.data.filteredIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n }\n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n let result: {\n \n [x: string]: (filteredData: any[], filteredIndexes: number[], identifier: any) => void;\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n filterData<T extends object>(\n filteringString: string,\n data: T[],\n excludedData: string[],\n dataKeyPath: string,\n identifier: any,\n completion: (filteredData: T[], filteredIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n \n \n const instanceIdentifier = this.instanceIdentifier\n \n const key = \"\" + identifier + instanceIdentifier\n \n this.completionFunctions[key] = completion\n \n \n try {\n \n this.messagesToPost.push({\n \n \"filteringString\": filteringString,\n \"data\": data,\n \"excludedData\": excludedData,\n \"dataKeyPath\": dataKeyPath,\n \"identifier\": identifier,\n \"instanceIdentifier\": instanceIdentifier\n \n })\n \n this.postNextMessageIfNeeded()\n \n } catch (exception) {\n \n completion([], [], identifier)\n \n }\n \n \n }\n \n \n closeThread() {\n \n this._isThreadClosed = YES\n \n if (this._webWorkerHolder != UIKeyValueStringFilter._sharedWebWorkerHolder) {\n \n this._webWorkerHolder.webWorker.terminate()\n \n }\n \n \n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oDAA4C;AAC5C,sBAA8C;AAGvC,MAAM,0BAAN,cAAqC,yBAAS;AAAA,EAwBjD,YAAY,6BAA6B,oBAAI;AAEzC,UAAM;AANV,2BAAkB;AAElB,SAAiB,mBAAmB,wBAAuB;AAMvD,QAAI,4BAA4B;AAC5B,WAAK,mBAAmB;AAAA,QACpB,WAAW,IAAI,8CAAAA,QAAgC;AAAA,QAC/C,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,QACvB,4BAA4B,CAAC;AAAA,MACjC;AAAA,IACJ;AAEA,4BAAuB,kBAAkB,wBAAuB,kBAAkB;AAClF,SAAK,kBAAkB,wBAAuB;AAE9C,YAAI,wBAAO,KAAK,iBAAiB,UAAU,SAAS,GAAG;AAEnD,WAAK,iBAAiB,UAAU,YAAY,CAAC,YAA0H;AAEnK,aAAK,eAAe;AACpB,aAAK,wBAAwB;AAE7B,cAAM,MAAM,KAAK,QAAQ,KAAK,aAAa,QAAQ,KAAK;AAExD,cAAM,qBAAqB,KAAK,oBAAoB;AAEpD,gBAAI,oBAAG,kBAAkB,GAAG;AAIxB,6BAAmB,QAAQ,KAAK,cAAc,QAAQ,KAAK,iBAAiB,QAAQ,KAAK,UAAU;AAAA,QAEvG;AAEA,eAAO,KAAK,oBAAoB;AAEhC,YAAI,MAAM;AAAA,MAEd;AAAA,IAEJ;AAAA,EAGJ;AAAA,EAGA,IAAI,qBAAqB;AAErB,WAAO,KAAK;AAAA,EAEhB;AAAA,EAGA,IAAI,sBAAsB;AAEtB,UAAM,MAAM;AACZ,QAAI,SAIA,KAAK,iBAAiB;AAE1B,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAEA,IAAI,iBAAiB;AAEjB,UAAM,MAAM;AACZ,QAAI,SAAgB,KAAK,iBAAiB;AAE1C,YAAI,wBAAO,MAAM,GAAG;AAEhB,eAAS,CAAC;AACV,WAAK,iBAAiB,OAAO;AAAA,IAEjC;AAEA,WAAO;AAAA,EAEX;AAAA,EAGA,IAAI,aAAa,cAAuB;AAEpC,SAAK,iBAAiB,sBAAsB;AAAA,EAEhD;AAAA,EAEA,IAAI,eAAe;AAEf,eAAO,oBAAG,KAAK,iBAAiB,mBAAmB;AAAA,EAEvD;AAAA,EAGA,0BAA0B;AAEtB,QAAI,KAAK,eAAe,cAAU,wBAAO,KAAK,YAAY,GAAG;AAEzD,WAAK,iBAAiB,UAAU,YAAY,KAAK,eAAe,YAAY;AAC5E,WAAK,eAAe,qBAAqB,CAAC;AAE1C,WAAK,eAAe;AAAA,IAExB;AAAA,EAEJ;AAAA,EAGA,WACI,iBACA,MACA,cACA,aACA,YACA,YACF;AAGE,QAAI,KAAK,iBAAiB;AAEtB;AAAA,IAEJ;AAGA,UAAM,qBAAqB,KAAK;AAEhC,UAAM,MAAM,KAAK,aAAa;AAE9B,SAAK,oBAAoB,OAAO;AAGhC,QAAI;AAEA,WAAK,eAAe,KAAK;AAAA,QAErB,mBAAmB;AAAA,QACnB,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,cAAc;AAAA,QACd,sBAAsB;AAAA,MAE1B,CAAC;AAED,WAAK,wBAAwB;AAAA,IAEjC,SAAS,WAAP;AAEE,iBAAW,CAAC,GAAG,CAAC,GAAG,UAAU;AAAA,IAEjC;AAAA,EAGJ;AAAA,EAGA,cAAc;AAEV,SAAK,kBAAkB;AAEvB,QAAI,KAAK,oBAAoB,wBAAuB,wBAAwB;AAExE,WAAK,iBAAiB,UAAU,UAAU;AAAA,IAE9C;AAAA,EAGJ;AAGJ;
|
|
4
|
+
"sourcesContent": ["// @ts-ignore\nimport UIKeyValueStringFilterWebWorker from \"./UIKeyValueStringFilterWebWorker.worker.js\"\nimport { IS, IS_NOT, NO, UIObject, YES } from \"./UIObject\"\n\n\nexport class UIKeyValueStringFilter extends UIObject {\n \n static _sharedWebWorkerHolder: {\n webWorker: any\n UICore_completionFunctions: Record<string, (\n filteredData: string[],\n filteredIndexes: number[],\n identifier: any\n ) => void>\n UICore_messagesToPost: any\n UICore_isWorking: boolean\n } = {\n webWorker: new UIKeyValueStringFilterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n static _instanceNumber = -1\n \n _instanceNumber: number\n _isThreadClosed = NO\n \n private readonly _webWorkerHolder = UIKeyValueStringFilter._sharedWebWorkerHolder\n \n constructor(useSeparateWebWorkerHolder = NO) {\n \n super()\n \n if (useSeparateWebWorkerHolder) {\n this._webWorkerHolder = {\n webWorker: new UIKeyValueStringFilterWebWorker(),\n UICore_isWorking: false,\n UICore_messagesToPost: undefined,\n UICore_completionFunctions: {}\n }\n }\n \n UIKeyValueStringFilter._instanceNumber = UIKeyValueStringFilter._instanceNumber + 1\n this._instanceNumber = UIKeyValueStringFilter._instanceNumber\n \n if (IS_NOT(this._webWorkerHolder.webWorker.onmessage)) {\n \n this._webWorkerHolder.webWorker.onmessage = (message: { data: { identifier: string; instanceIdentifier: string; filteredData: any[]; filteredIndexes: number[] } }) => {\n \n this.isWorkerBusy = NO\n this.postNextMessageIfNeeded()\n \n const key = \"\" + message.data.identifier + message.data.instanceIdentifier\n \n const completionFunction = this.completionFunctions[key]\n \n if (IS(completionFunction)) {\n \n //console.log(\"Filtering took \" + (Date.now() - startTime) + \" ms\");\n \n completionFunction(message.data.filteredData, message.data.filteredIndexes, message.data.identifier)\n \n }\n \n delete this.completionFunctions[key]\n \n var asd = 1\n \n }\n \n }\n \n \n }\n \n \n get instanceIdentifier() {\n \n return this._instanceNumber\n \n }\n \n \n get completionFunctions() {\n \n const key = \"UICore_completionFunctions\"\n let result: {\n \n [x: string]: (filteredData: any[], filteredIndexes: number[], identifier: any) => void;\n \n } = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = {}\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n get messagesToPost() {\n \n const key = \"UICore_messagesToPost\"\n var result: any[] = this._webWorkerHolder[key]\n \n if (IS_NOT(result)) {\n \n result = []\n this._webWorkerHolder[key] = result\n \n }\n \n return result\n \n }\n \n \n set isWorkerBusy(isWorkerBusy: boolean) {\n \n this._webWorkerHolder[\"UICore_isWorking\"] = isWorkerBusy\n \n }\n \n get isWorkerBusy() {\n \n return IS(this._webWorkerHolder[\"UICore_isWorking\"])\n \n }\n \n \n postNextMessageIfNeeded() {\n \n if (this.messagesToPost.length && IS_NOT(this.isWorkerBusy)) {\n \n this._webWorkerHolder.webWorker.postMessage(this.messagesToPost.firstElement)\n this.messagesToPost.removeElementAtIndex(0)\n \n this.isWorkerBusy = YES\n \n }\n \n }\n \n \n filterData<T extends object>(\n filteringString: string,\n data: T[],\n excludedData: string[],\n dataKeyPath: string,\n identifier: any,\n completion: (filteredData: T[], filteredIndexes: number[], identifier: any) => void\n ) {\n \n \n if (this._isThreadClosed) {\n \n return\n \n }\n \n if (!data?.length) {\n completion([], [], identifier)\n return\n }\n \n \n const instanceIdentifier = this.instanceIdentifier\n \n const key = \"\" + identifier + instanceIdentifier\n \n this.completionFunctions[key] = completion\n \n \n try {\n \n this.messagesToPost.push({\n \n \"filteringString\": filteringString,\n \"data\": data,\n \"excludedData\": excludedData,\n \"dataKeyPath\": dataKeyPath,\n \"identifier\": identifier,\n \"instanceIdentifier\": instanceIdentifier\n \n })\n \n this.postNextMessageIfNeeded()\n \n } catch (exception) {\n \n completion([], [], identifier)\n \n }\n \n \n }\n \n \n closeThread() {\n \n this._isThreadClosed = YES\n \n if (this._webWorkerHolder != UIKeyValueStringFilter._sharedWebWorkerHolder) {\n \n this._webWorkerHolder.webWorker.terminate()\n \n }\n \n \n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["UIKeyValueStringFilterWebWorker"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UIKeyValueStringFilterWebWorker.worker.ts"],
|
|
4
|
-
"sourcesContent": ["// @ts-check\n\nif (\"contains\" in Array.prototype == false) {\n \n // @ts-ignore\n Array.prototype.contains = function (
|
|
5
|
-
"mappings": ";AAEA,IAAI,cAAc,MAAM,aAAa,OAAO;AAGxC,QAAM,UAAU,WAAW,
|
|
4
|
+
"sourcesContent": ["// @ts-check\n\nif (\"contains\" in Array.prototype == false) {\n \n // @ts-ignore\n Array.prototype.contains = function (element) {\n \n var result = (this.indexOf(element) != -1)\n return result\n \n }\n \n}\n\nif (\"contains\" in String.prototype == false) {\n \n // @ts-ignore\n String.prototype.contains = function (string) {\n \n var result = (this.indexOf(string) != -1)\n return result\n \n }\n \n}\n\n\nonmessage = function (event) {\n \n //console.log('Message received from main script');\n var workerResult = filterKeyValuePathData(\n event.data.filteringString,\n event.data.data,\n event.data.excludedData,\n event.data.dataKeyPath\n )\n \n // @ts-ignore\n workerResult.identifier = event.data.identifier\n // @ts-ignore\n workerResult.instanceIdentifier = event.data.instanceIdentifier\n \n \n // @ts-ignore\n postMessage(workerResult)\n \n}\n\n\nfunction filterKeyValuePathData(filteringString: string, data: any[], excludedData: string | any[], dataKeyPath: any) {\n \n function valueForKeyPath(keyPath: string, object: any) {\n \n var keys = keyPath.split(\".\")\n var currentObject = object\n \n keys.forEach(function (key: string | number, index: any, array: any) {\n currentObject = currentObject[key]\n })\n \n return currentObject\n \n }\n \n var filteredData = []\n var filteredIndexes: any[] = []\n \n if (filteringString) {\n \n var filteringStringWords: any[] = []\n filteringString.split(\" \").forEach(function (word: string, index: any, array: any) {\n if (word) {\n filteringStringWords.push(word.toLowerCase())\n }\n })\n \n data.forEach(function (dataObject: any, index: any, array: any) {\n \n var dataString = valueForKeyPath(dataKeyPath, dataObject)\n \n var lowercaseDataString = dataString.toLowerCase()\n \n // Look through all the words in the input\n var wordsFound: boolean[] = []\n filteringStringWords.forEach(function (word) {\n wordsFound.push(lowercaseDataString.contains(word) && !excludedData.contains(dataString))\n })\n \n // Only show the dataString if it matches all of them\n // @ts-ignore\n if (wordsFound.contains(true) && !wordsFound.contains(false)) {\n \n filteredData.push(dataObject)\n filteredIndexes.push(index)\n \n }\n \n })\n \n \n \n }\n else if (excludedData.length) {\n \n \n data.forEach(function (dataObject: any, index: any, array: any) {\n \n if (excludedData.indexOf(dataObject) == -1) {\n \n filteredData.push(dataObject)\n filteredIndexes.push(index)\n \n }\n \n })\n \n }\n else {\n \n filteredData = data\n \n data.forEach(function (object: any, index: any, array: any) {\n \n filteredIndexes.push(index)\n \n })\n \n }\n \n \n \n return { \"filteredData\": filteredData, \"filteredIndexes\": filteredIndexes }\n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": ";AAEA,IAAI,cAAc,MAAM,aAAa,OAAO;AAGxC,QAAM,UAAU,WAAW,SAAU,SAAS;AAE1C,QAAI,SAAU,KAAK,QAAQ,OAAO,KAAK;AACvC,WAAO;AAAA,EAEX;AAEJ;AAEA,IAAI,cAAc,OAAO,aAAa,OAAO;AAGzC,SAAO,UAAU,WAAW,SAAU,QAAQ;AAE1C,QAAI,SAAU,KAAK,QAAQ,MAAM,KAAK;AACtC,WAAO;AAAA,EAEX;AAEJ;AAGA,YAAY,SAAU,OAAO;AAGzB,MAAI,eAAe;AAAA,IACf,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,EACf;AAGA,eAAa,aAAa,MAAM,KAAK;AAErC,eAAa,qBAAqB,MAAM,KAAK;AAI7C,cAAY,YAAY;AAE5B;AAGA,SAAS,uBAAuB,iBAAyB,MAAa,cAA8B,aAAkB;AAElH,WAAS,gBAAgB,SAAiB,QAAa;AAEnD,QAAI,OAAO,QAAQ,MAAM,GAAG;AAC5B,QAAI,gBAAgB;AAEpB,SAAK,QAAQ,SAAU,KAAsB,OAAY,OAAY;AACjE,sBAAgB,cAAc;AAAA,IAClC,CAAC;AAED,WAAO;AAAA,EAEX;AAEA,MAAI,eAAe,CAAC;AACpB,MAAI,kBAAyB,CAAC;AAE9B,MAAI,iBAAiB;AAEjB,QAAI,uBAA8B,CAAC;AACnC,oBAAgB,MAAM,GAAG,EAAE,QAAQ,SAAU,MAAc,OAAY,OAAY;AAC/E,UAAI,MAAM;AACN,6BAAqB,KAAK,KAAK,YAAY,CAAC;AAAA,MAChD;AAAA,IACJ,CAAC;AAED,SAAK,QAAQ,SAAU,YAAiB,OAAY,OAAY;AAE5D,UAAI,aAAa,gBAAgB,aAAa,UAAU;AAExD,UAAI,sBAAsB,WAAW,YAAY;AAGjD,UAAI,aAAwB,CAAC;AAC7B,2BAAqB,QAAQ,SAAU,MAAM;AACzC,mBAAW,KAAK,oBAAoB,SAAS,IAAI,KAAK,CAAC,aAAa,SAAS,UAAU,CAAC;AAAA,MAC5F,CAAC;AAID,UAAI,WAAW,SAAS,IAAI,KAAK,CAAC,WAAW,SAAS,KAAK,GAAG;AAE1D,qBAAa,KAAK,UAAU;AAC5B,wBAAgB,KAAK,KAAK;AAAA,MAE9B;AAAA,IAEJ,CAAC;AAAA,EAIL,WACS,aAAa,QAAQ;AAG1B,SAAK,QAAQ,SAAU,YAAiB,OAAY,OAAY;AAE5D,UAAI,aAAa,QAAQ,UAAU,KAAK,IAAI;AAExC,qBAAa,KAAK,UAAU;AAC5B,wBAAgB,KAAK,KAAK;AAAA,MAE9B;AAAA,IAEJ,CAAC;AAAA,EAEL,OACK;AAED,mBAAe;AAEf,SAAK,QAAQ,SAAU,QAAa,OAAY,OAAY;AAExD,sBAAgB,KAAK,KAAK;AAAA,IAE9B,CAAC;AAAA,EAEL;AAIA,SAAO,EAAE,gBAAgB,cAAc,mBAAmB,gBAAgB;AAI9E;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -29,9 +29,7 @@ class UILinkButton extends import_UILink.UILink {
|
|
|
29
29
|
this.button = new import_UIButton.UIButton(this.elementID + "Button", elementType, titleType);
|
|
30
30
|
this.addSubview(this.button);
|
|
31
31
|
this.style.position = "absolute";
|
|
32
|
-
this.button.controlEventTargetAccumulator.EnterDown.PointerUpInside(
|
|
33
|
-
() => window.location = this.target
|
|
34
|
-
);
|
|
32
|
+
this.button.controlEventTargetAccumulator.EnterDown.PointerUpInside = () => window.location = this.target;
|
|
35
33
|
}
|
|
36
34
|
get titleLabel() {
|
|
37
35
|
return this.button.titleLabel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UILinkButton.ts"],
|
|
4
|
-
"sourcesContent": ["import { UIButton, UIButtonColorSpecifier } from \"./UIButton\"\nimport { UILink } from \"./UILink\"\n\n\nexport class UILinkButton extends UILink {\n \n button: UIButton\n \n constructor(elementID?: string, elementType?: string, titleType?: string) {\n \n super(elementID)\n \n // Instance variables\n this.button = new UIButton(this.elementID + \"Button\", elementType, titleType)\n this.addSubview(this.button)\n \n this.style.position = \"absolute\"\n this.button.controlEventTargetAccumulator.EnterDown.PointerUpInside(
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAiD;AACjD,oBAAuB;AAGhB,MAAM,qBAAqB,qBAAO;AAAA,EAIrC,YAAY,WAAoB,aAAsB,WAAoB;AAEtE,UAAM,SAAS;AAGf,SAAK,SAAS,IAAI,yBAAS,KAAK,YAAY,UAAU,aAAa,SAAS;AAC5E,SAAK,WAAW,KAAK,MAAM;AAE3B,SAAK,MAAM,WAAW;AACtB,SAAK,OAAO,8BAA8B,UAAU
|
|
4
|
+
"sourcesContent": ["import { UIButton, UIButtonColorSpecifier } from \"./UIButton\"\nimport { UILink } from \"./UILink\"\n\n\nexport class UILinkButton extends UILink {\n \n button: UIButton\n \n constructor(elementID?: string, elementType?: string, titleType?: string) {\n \n super(elementID)\n \n // Instance variables\n this.button = new UIButton(this.elementID + \"Button\", elementType, titleType)\n this.addSubview(this.button)\n \n this.style.position = \"absolute\"\n this.button.controlEventTargetAccumulator.EnterDown.PointerUpInside = () => window.location = this.target as any\n \n }\n \n \n get titleLabel() {\n return this.button.titleLabel\n }\n \n get imageView() {\n return this.button.imageView\n }\n \n \n override set colors(colors: UIButtonColorSpecifier) {\n this.button.colors = colors\n }\n \n override get colors(): UIButtonColorSpecifier {\n return this.button.colors\n }\n \n \n override get viewHTMLElement() {\n return super.viewHTMLElement as HTMLLinkElement\n }\n \n \n override set target(target: string) {\n this.viewHTMLElement.setAttribute(\"href\", target)\n }\n \n override get target() {\n return this.viewHTMLElement.getAttribute(\"href\") ?? \"\"\n }\n \n \n override layoutSubviews() {\n \n super.layoutSubviews()\n \n const bounds = this.bounds\n \n this.button.frame = bounds\n this.button.layoutSubviews()\n \n }\n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAiD;AACjD,oBAAuB;AAGhB,MAAM,qBAAqB,qBAAO;AAAA,EAIrC,YAAY,WAAoB,aAAsB,WAAoB;AAEtE,UAAM,SAAS;AAGf,SAAK,SAAS,IAAI,yBAAS,KAAK,YAAY,UAAU,aAAa,SAAS;AAC5E,SAAK,WAAW,KAAK,MAAM;AAE3B,SAAK,MAAM,WAAW;AACtB,SAAK,OAAO,8BAA8B,UAAU,kBAAkB,MAAM,OAAO,WAAW,KAAK;AAAA,EAEvG;AAAA,EAGA,IAAI,aAAa;AACb,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAGA,IAAa,OAAO,QAAgC;AAChD,SAAK,OAAO,SAAS;AAAA,EACzB;AAAA,EAEA,IAAa,SAAiC;AAC1C,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAGA,IAAa,kBAAkB;AAC3B,WAAO,MAAM;AAAA,EACjB;AAAA,EAGA,IAAa,OAAO,QAAgB;AAChC,SAAK,gBAAgB,aAAa,QAAQ,MAAM;AAAA,EACpD;AAAA,EAEA,IAAa,SAAS;AAjD1B;AAkDQ,YAAO,UAAK,gBAAgB,aAAa,MAAM,MAAxC,YAA6C;AAAA,EACxD;AAAA,EAGS,iBAAiB;AAEtB,UAAM,eAAe;AAErB,UAAM,SAAS,KAAK;AAEpB,SAAK,OAAO,QAAQ;AACpB,SAAK,OAAO,eAAe;AAAA,EAE/B;AAGJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -31,7 +31,7 @@ export declare class UITextField extends UITextView {
|
|
|
31
31
|
} & {
|
|
32
32
|
TextChange: string;
|
|
33
33
|
};
|
|
34
|
-
get controlEventTargetAccumulator(): UIViewAddControlEventTargetObject<UITextField>;
|
|
34
|
+
get controlEventTargetAccumulator(): UIViewAddControlEventTargetObject<typeof UITextField>;
|
|
35
35
|
get viewHTMLElement(): HTMLInputElement;
|
|
36
36
|
set text(text: string);
|
|
37
37
|
get text(): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../scripts/UITextField.ts"],
|
|
4
|
-
"sourcesContent": ["import { UIColor } from \"./UIColor\"\nimport { UICore } from \"./UICore\"\nimport { nil, NO, ValueOf, YES } from \"./UIObject\"\nimport { UITextView } from \"./UITextView\"\nimport { UIView, UIViewAddControlEventTargetObject, UIViewBroadcastEvent } from \"./UIView\"\n\n\nexport class UITextField extends UITextView {\n \n _placeholderTextKey?: string\n _defaultPlaceholderText?: string\n \n override _viewHTMLElement!: HTMLInputElement\n \n constructor(elementID?: string, viewHTMLElement = null, type: string | ValueOf<typeof UITextView.type> = UITextView.type.textField) {\n \n super(elementID, type, viewHTMLElement)\n \n this.viewHTMLElement.setAttribute(\"type\", \"text\")\n \n this.backgroundColor = UIColor.whiteColor\n \n this.addTargetForControlEvent(\n UIView.controlEvent.PointerUpInside,\n (sender, event) => sender.focus()\n )\n \n this.viewHTMLElement.oninput = (event) => {\n this.sendControlEventForKey(UITextField.controlEvent.TextChange, event)\n }\n \n \n this.style.webkitUserSelect = \"text\"\n \n this.nativeSelectionEnabled = YES\n \n this.pausesPointerEvents = NO\n \n \n }\n \n \n static override controlEvent = Object.assign({}, UITextView.controlEvent, {\n \n \"TextChange\": \"TextChange\"\n \n })\n \n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AACxB,oBAAuB;AACvB,sBAAsC;AACtC,wBAA2B;AAC3B,oBAAgF;AAGzE,MAAM,eAAN,cAA0B,6BAAW;AAAA,EAOxC,YAAY,WAAoB,kBAAkB,MAAM,OAAiD,6BAAW,KAAK,WAAW;AAEhI,UAAM,WAAW,MAAM,eAAe;AAEtC,SAAK,gBAAgB,aAAa,QAAQ,MAAM;AAEhD,SAAK,kBAAkB,uBAAQ;AAE/B,SAAK;AAAA,MACD,qBAAO,aAAa;AAAA,MACpB,CAAC,QAAQ,UAAU,OAAO,MAAM;AAAA,IACpC;AAEA,SAAK,gBAAgB,UAAU,CAAC,UAAU;AACtC,WAAK,uBAAuB,aAAY,aAAa,YAAY,KAAK;AAAA,IAC1E;AAGA,SAAK,MAAM,mBAAmB;AAE9B,SAAK,yBAAyB;AAE9B,SAAK,sBAAsB;AAAA,EAG/B;AAAA,EAUA,
|
|
4
|
+
"sourcesContent": ["import { UIColor } from \"./UIColor\"\nimport { UICore } from \"./UICore\"\nimport { nil, NO, ValueOf, YES } from \"./UIObject\"\nimport { UITextView } from \"./UITextView\"\nimport { UIView, UIViewAddControlEventTargetObject, UIViewBroadcastEvent } from \"./UIView\"\n\n\nexport class UITextField extends UITextView {\n \n _placeholderTextKey?: string\n _defaultPlaceholderText?: string\n \n override _viewHTMLElement!: HTMLInputElement\n \n constructor(elementID?: string, viewHTMLElement = null, type: string | ValueOf<typeof UITextView.type> = UITextView.type.textField) {\n \n super(elementID, type, viewHTMLElement)\n \n this.viewHTMLElement.setAttribute(\"type\", \"text\")\n \n this.backgroundColor = UIColor.whiteColor\n \n this.addTargetForControlEvent(\n UIView.controlEvent.PointerUpInside,\n (sender, event) => sender.focus()\n )\n \n this.viewHTMLElement.oninput = (event) => {\n this.sendControlEventForKey(UITextField.controlEvent.TextChange, event)\n }\n \n \n this.style.webkitUserSelect = \"text\"\n \n this.nativeSelectionEnabled = YES\n \n this.pausesPointerEvents = NO\n \n \n }\n \n \n static override controlEvent = Object.assign({}, UITextView.controlEvent, {\n \n \"TextChange\": \"TextChange\"\n \n })\n \n \n override get controlEventTargetAccumulator(): UIViewAddControlEventTargetObject<typeof UITextField> {\n return (super.controlEventTargetAccumulator as any)\n }\n \n public override get viewHTMLElement() {\n return this._viewHTMLElement\n }\n \n \n public override set text(text: string) {\n \n this.viewHTMLElement.value = text\n \n }\n \n \n public override get text(): string {\n \n return this.viewHTMLElement.value\n \n }\n \n \n public set placeholderText(text: string) {\n \n this.viewHTMLElement.placeholder = text\n \n }\n \n \n public get placeholderText(): string {\n \n return this.viewHTMLElement.placeholder\n \n }\n \n \n setPlaceholderText(key: string, defaultString: string) {\n \n this._placeholderTextKey = key\n this._defaultPlaceholderText = defaultString\n \n const languageName = UICore.languageService.currentLanguageKey\n this.placeholderText = UICore.languageService.stringForKey(key, languageName, defaultString, nil)\n \n }\n \n \n override didReceiveBroadcastEvent(event: UIViewBroadcastEvent) {\n \n super.didReceiveBroadcastEvent(event)\n \n if (event.name == UIView.broadcastEventName.LanguageChanged || event.name ==\n UIView.broadcastEventName.AddedToViewTree) {\n \n this._setPlaceholderFromKeyIfPossible()\n \n }\n \n }\n \n \n override willMoveToSuperview(superview: UIView) {\n \n super.willMoveToSuperview(superview)\n \n this._setPlaceholderFromKeyIfPossible()\n \n }\n \n _setPlaceholderFromKeyIfPossible() {\n \n if (this._placeholderTextKey && this._defaultPlaceholderText) {\n \n this.setPlaceholderText(this._placeholderTextKey, this._defaultPlaceholderText)\n \n }\n \n }\n \n \n public get isSecure(): boolean {\n \n const result = (this.viewHTMLElement.type == \"password\")\n \n return result\n \n }\n \n \n \n public set isSecure(secure: boolean) {\n \n var type = \"text\"\n \n if (secure) {\n \n type = \"password\"\n \n }\n \n this.viewHTMLElement.type = type\n \n }\n \n \n \n \n \n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AACxB,oBAAuB;AACvB,sBAAsC;AACtC,wBAA2B;AAC3B,oBAAgF;AAGzE,MAAM,eAAN,cAA0B,6BAAW;AAAA,EAOxC,YAAY,WAAoB,kBAAkB,MAAM,OAAiD,6BAAW,KAAK,WAAW;AAEhI,UAAM,WAAW,MAAM,eAAe;AAEtC,SAAK,gBAAgB,aAAa,QAAQ,MAAM;AAEhD,SAAK,kBAAkB,uBAAQ;AAE/B,SAAK;AAAA,MACD,qBAAO,aAAa;AAAA,MACpB,CAAC,QAAQ,UAAU,OAAO,MAAM;AAAA,IACpC;AAEA,SAAK,gBAAgB,UAAU,CAAC,UAAU;AACtC,WAAK,uBAAuB,aAAY,aAAa,YAAY,KAAK;AAAA,IAC1E;AAGA,SAAK,MAAM,mBAAmB;AAE9B,SAAK,yBAAyB;AAE9B,SAAK,sBAAsB;AAAA,EAG/B;AAAA,EAUA,IAAa,gCAAuF;AAChG,WAAQ,MAAM;AAAA,EAClB;AAAA,EAEA,IAAoB,kBAAkB;AAClC,WAAO,KAAK;AAAA,EAChB;AAAA,EAGA,IAAoB,KAAK,MAAc;AAEnC,SAAK,gBAAgB,QAAQ;AAAA,EAEjC;AAAA,EAGA,IAAoB,OAAe;AAE/B,WAAO,KAAK,gBAAgB;AAAA,EAEhC;AAAA,EAGA,IAAW,gBAAgB,MAAc;AAErC,SAAK,gBAAgB,cAAc;AAAA,EAEvC;AAAA,EAGA,IAAW,kBAA0B;AAEjC,WAAO,KAAK,gBAAgB;AAAA,EAEhC;AAAA,EAGA,mBAAmB,KAAa,eAAuB;AAEnD,SAAK,sBAAsB;AAC3B,SAAK,0BAA0B;AAE/B,UAAM,eAAe,qBAAO,gBAAgB;AAC5C,SAAK,kBAAkB,qBAAO,gBAAgB,aAAa,KAAK,cAAc,eAAe,mBAAG;AAAA,EAEpG;AAAA,EAGS,yBAAyB,OAA6B;AAE3D,UAAM,yBAAyB,KAAK;AAEpC,QAAI,MAAM,QAAQ,qBAAO,mBAAmB,mBAAmB,MAAM,QACjE,qBAAO,mBAAmB,iBAAiB;AAE3C,WAAK,iCAAiC;AAAA,IAE1C;AAAA,EAEJ;AAAA,EAGS,oBAAoB,WAAmB;AAE5C,UAAM,oBAAoB,SAAS;AAEnC,SAAK,iCAAiC;AAAA,EAE1C;AAAA,EAEA,mCAAmC;AAE/B,QAAI,KAAK,uBAAuB,KAAK,yBAAyB;AAE1D,WAAK,mBAAmB,KAAK,qBAAqB,KAAK,uBAAuB;AAAA,IAElF;AAAA,EAEJ;AAAA,EAGA,IAAW,WAAoB;AAE3B,UAAM,SAAU,KAAK,gBAAgB,QAAQ;AAE7C,WAAO;AAAA,EAEX;AAAA,EAIA,IAAW,SAAS,QAAiB;AAEjC,QAAI,OAAO;AAEX,QAAI,QAAQ;AAER,aAAO;AAAA,IAEX;AAEA,SAAK,gBAAgB,OAAO;AAAA,EAEhC;AAMJ;AAvJO,IAAM,cAAN;AAAM,YAmCO,eAAe,OAAO,OAAO,CAAC,GAAG,6BAAW,cAAc;AAAA,EAEtE,cAAc;AAElB,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ import { UICore } from "./UICore";
|
|
|
3
3
|
import "./UICoreExtensions";
|
|
4
4
|
import type { UIDialogView } from "./UIDialogView";
|
|
5
5
|
import { UILocalizedTextObject } from "./UIInterfaces";
|
|
6
|
-
import {
|
|
6
|
+
import { UIObject } from "./UIObject";
|
|
7
7
|
import { UIPoint } from "./UIPoint";
|
|
8
8
|
import { UIRectangle } from "./UIRectangle";
|
|
9
9
|
import { UIViewController } from "./UIViewController";
|
|
@@ -60,7 +60,7 @@ type Mutable<T> = {
|
|
|
60
60
|
export type UIViewAddControlEventTargetObject<T extends {
|
|
61
61
|
controlEvent: Record<string, any>;
|
|
62
62
|
}> = Mutable<{
|
|
63
|
-
[K in keyof T["controlEvent"]]:
|
|
63
|
+
[K in keyof T["controlEvent"]]: ((sender: UIView, event: Event) => void) & Partial<UIViewAddControlEventTargetObject<T>>;
|
|
64
64
|
}>;
|
|
65
65
|
interface Constraint {
|
|
66
66
|
constant: number;
|
|
@@ -1202,8 +1202,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1202
1202
|
this._isMovable = import_UIObject.NO;
|
|
1203
1203
|
this.makeNotMovable = void 0;
|
|
1204
1204
|
};
|
|
1205
|
-
this.controlEventTargetAccumulator.PointerDrag
|
|
1206
|
-
this.controlEventTargetAccumulator.PointerUp.PointerCancel
|
|
1205
|
+
this.controlEventTargetAccumulator.PointerDrag = movementFunction;
|
|
1206
|
+
this.controlEventTargetAccumulator.PointerUp.PointerCancel = movementStopFunction;
|
|
1207
1207
|
this._isMovable = import_UIObject.YES;
|
|
1208
1208
|
this.makeNotMovable = cleanupFunction;
|
|
1209
1209
|
}
|
|
@@ -1363,8 +1363,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1363
1363
|
}),
|
|
1364
1364
|
pausesPointerEvents: import_UIObject.YES
|
|
1365
1365
|
});
|
|
1366
|
-
leftEdge.controlEventTargetAccumulator.PointerDrag
|
|
1367
|
-
leftEdge.controlEventTargetAccumulator.PointerUp
|
|
1366
|
+
leftEdge.controlEventTargetAccumulator.PointerDrag = PointerXDragFunction.bind(this, 1);
|
|
1367
|
+
leftEdge.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1368
1368
|
const rightEdge = new _UIView().configuredWithObject({
|
|
1369
1369
|
_viewHTMLElement: {
|
|
1370
1370
|
className: "rightEdge",
|
|
@@ -1387,8 +1387,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1387
1387
|
}),
|
|
1388
1388
|
pausesPointerEvents: import_UIObject.YES
|
|
1389
1389
|
});
|
|
1390
|
-
rightEdge.controlEventTargetAccumulator.PointerDrag
|
|
1391
|
-
rightEdge.controlEventTargetAccumulator.PointerUp
|
|
1390
|
+
rightEdge.controlEventTargetAccumulator.PointerDrag = PointerXDragFunction.bind(this, 0);
|
|
1391
|
+
rightEdge.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1392
1392
|
const bottomEdge = new _UIView().configuredWithObject({
|
|
1393
1393
|
_viewHTMLElement: {
|
|
1394
1394
|
className: "bottomEdge",
|
|
@@ -1411,8 +1411,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1411
1411
|
}),
|
|
1412
1412
|
pausesPointerEvents: import_UIObject.YES
|
|
1413
1413
|
});
|
|
1414
|
-
bottomEdge.controlEventTargetAccumulator.PointerDrag
|
|
1415
|
-
bottomEdge.controlEventTargetAccumulator.PointerUp
|
|
1414
|
+
bottomEdge.controlEventTargetAccumulator.PointerDrag = PointerYDragFunction.bind(this, 0);
|
|
1415
|
+
bottomEdge.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1416
1416
|
const topEdge = new _UIView().configuredWithObject({
|
|
1417
1417
|
_viewHTMLElement: {
|
|
1418
1418
|
className: "topEdge",
|
|
@@ -1435,8 +1435,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1435
1435
|
}),
|
|
1436
1436
|
pausesPointerEvents: import_UIObject.YES
|
|
1437
1437
|
});
|
|
1438
|
-
topEdge.controlEventTargetAccumulator.PointerDrag
|
|
1439
|
-
topEdge.controlEventTargetAccumulator.PointerUp
|
|
1438
|
+
topEdge.controlEventTargetAccumulator.PointerDrag = PointerYDragFunction.bind(this, 1);
|
|
1439
|
+
topEdge.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1440
1440
|
const pointerDragTLFunction = (sender, event) => {
|
|
1441
1441
|
PointerXDragFunction(1, sender, event);
|
|
1442
1442
|
PointerYDragFunction(1, sender, event);
|
|
@@ -1464,8 +1464,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1464
1464
|
}),
|
|
1465
1465
|
pausesPointerEvents: import_UIObject.YES
|
|
1466
1466
|
});
|
|
1467
|
-
topLeftCornerTop.controlEventTargetAccumulator.PointerDrag
|
|
1468
|
-
topLeftCornerTop.controlEventTargetAccumulator.PointerUp
|
|
1467
|
+
topLeftCornerTop.controlEventTargetAccumulator.PointerDrag = pointerDragTLFunction;
|
|
1468
|
+
topLeftCornerTop.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1469
1469
|
const topLeftCornerLeft = new _UIView().configuredWithObject({
|
|
1470
1470
|
_viewHTMLElement: {
|
|
1471
1471
|
className: "topLeftCornerLeft",
|
|
@@ -1489,8 +1489,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1489
1489
|
}),
|
|
1490
1490
|
pausesPointerEvents: import_UIObject.YES
|
|
1491
1491
|
});
|
|
1492
|
-
topLeftCornerLeft.controlEventTargetAccumulator.PointerDrag
|
|
1493
|
-
topLeftCornerLeft.controlEventTargetAccumulator.PointerUp
|
|
1492
|
+
topLeftCornerLeft.controlEventTargetAccumulator.PointerDrag = pointerDragTLFunction;
|
|
1493
|
+
topLeftCornerLeft.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1494
1494
|
const pointerDragBLFunction = (sender, event) => {
|
|
1495
1495
|
PointerXDragFunction(1, sender, event);
|
|
1496
1496
|
PointerYDragFunction(0, sender, event);
|
|
@@ -1518,8 +1518,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1518
1518
|
}),
|
|
1519
1519
|
pausesPointerEvents: import_UIObject.YES
|
|
1520
1520
|
});
|
|
1521
|
-
bottomLeftCornerLeft.controlEventTargetAccumulator.PointerDrag
|
|
1522
|
-
bottomLeftCornerLeft.controlEventTargetAccumulator.PointerUp
|
|
1521
|
+
bottomLeftCornerLeft.controlEventTargetAccumulator.PointerDrag = pointerDragBLFunction;
|
|
1522
|
+
bottomLeftCornerLeft.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1523
1523
|
const bottomLeftCornerBottom = new _UIView().configuredWithObject({
|
|
1524
1524
|
_viewHTMLElement: {
|
|
1525
1525
|
className: "bottomLeftCornerBottom",
|
|
@@ -1543,8 +1543,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1543
1543
|
}),
|
|
1544
1544
|
pausesPointerEvents: import_UIObject.YES
|
|
1545
1545
|
});
|
|
1546
|
-
bottomLeftCornerBottom.controlEventTargetAccumulator.PointerDrag
|
|
1547
|
-
bottomLeftCornerBottom.controlEventTargetAccumulator.PointerUp
|
|
1546
|
+
bottomLeftCornerBottom.controlEventTargetAccumulator.PointerDrag = pointerDragBLFunction;
|
|
1547
|
+
bottomLeftCornerBottom.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1548
1548
|
const pointerDragBRFunction = (sender, event) => {
|
|
1549
1549
|
PointerXDragFunction(0, sender, event);
|
|
1550
1550
|
PointerYDragFunction(0, sender, event);
|
|
@@ -1572,8 +1572,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1572
1572
|
}),
|
|
1573
1573
|
pausesPointerEvents: import_UIObject.YES
|
|
1574
1574
|
});
|
|
1575
|
-
bottomRightCornerBottom.controlEventTargetAccumulator.PointerDrag
|
|
1576
|
-
bottomRightCornerBottom.controlEventTargetAccumulator.PointerUp
|
|
1575
|
+
bottomRightCornerBottom.controlEventTargetAccumulator.PointerDrag = pointerDragBRFunction;
|
|
1576
|
+
bottomRightCornerBottom.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1577
1577
|
const bottomRightCornerRight = new _UIView().configuredWithObject({
|
|
1578
1578
|
_viewHTMLElement: {
|
|
1579
1579
|
className: "bottomRightCornerRight",
|
|
@@ -1597,8 +1597,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1597
1597
|
}),
|
|
1598
1598
|
pausesPointerEvents: import_UIObject.YES
|
|
1599
1599
|
});
|
|
1600
|
-
bottomRightCornerRight.controlEventTargetAccumulator.PointerDrag
|
|
1601
|
-
bottomRightCornerRight.controlEventTargetAccumulator.PointerUp
|
|
1600
|
+
bottomRightCornerRight.controlEventTargetAccumulator.PointerDrag = pointerDragBRFunction;
|
|
1601
|
+
bottomRightCornerRight.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1602
1602
|
const pointerDragTRFunction = (sender, event) => {
|
|
1603
1603
|
PointerXDragFunction(0, sender, event);
|
|
1604
1604
|
PointerYDragFunction(1, sender, event);
|
|
@@ -1626,8 +1626,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1626
1626
|
}),
|
|
1627
1627
|
pausesPointerEvents: import_UIObject.YES
|
|
1628
1628
|
});
|
|
1629
|
-
topRightCornerRight.controlEventTargetAccumulator.PointerDrag
|
|
1630
|
-
topRightCornerRight.controlEventTargetAccumulator.PointerUp
|
|
1629
|
+
topRightCornerRight.controlEventTargetAccumulator.PointerDrag = pointerDragTRFunction;
|
|
1630
|
+
topRightCornerRight.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1631
1631
|
const topRightCornerTop = new _UIView().configuredWithObject({
|
|
1632
1632
|
_viewHTMLElement: {
|
|
1633
1633
|
className: "topRightCornerTop",
|
|
@@ -1651,8 +1651,8 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1651
1651
|
}),
|
|
1652
1652
|
pausesPointerEvents: import_UIObject.YES
|
|
1653
1653
|
});
|
|
1654
|
-
topRightCornerTop.controlEventTargetAccumulator.PointerDrag
|
|
1655
|
-
topRightCornerTop.controlEventTargetAccumulator.PointerUp
|
|
1654
|
+
topRightCornerTop.controlEventTargetAccumulator.PointerDrag = pointerDragTRFunction;
|
|
1655
|
+
topRightCornerTop.controlEventTargetAccumulator.PointerUp = pointerUpFunction;
|
|
1656
1656
|
const views = [
|
|
1657
1657
|
leftEdge,
|
|
1658
1658
|
rightEdge,
|
|
@@ -1986,15 +1986,6 @@ const _UIView = class extends import_UIObject.UIObject {
|
|
|
1986
1986
|
eventKeys.push(key);
|
|
1987
1987
|
return result;
|
|
1988
1988
|
},
|
|
1989
|
-
apply: (_target, _thisArg, args) => {
|
|
1990
|
-
const handler = args[0];
|
|
1991
|
-
if (typeof handler === "function") {
|
|
1992
|
-
this.addTargetForControlEvents(eventKeys, handler);
|
|
1993
|
-
} else {
|
|
1994
|
-
throw "Handler must be a function, not " + handler;
|
|
1995
|
-
}
|
|
1996
|
-
return true;
|
|
1997
|
-
},
|
|
1998
1989
|
set: (target, key, value, _receiver) => {
|
|
1999
1990
|
eventKeys.push(key);
|
|
2000
1991
|
this.addTargetForControlEvents(eventKeys, value);
|