@vitrosoftware/common-ui-ts 1.1.226 → 1.1.228
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/css/std/controls/lookup-picker/lookup-picker-selected-item.css +0 -1
- package/css/std/controls/lookup-picker/lookup-picker-value-list.css +0 -1
- package/css/std/controls/lookup-picker/lookup-picker.css +1 -6
- package/css/std/controls/pdf-viewer/img/compare-dlg-separator.svg +3 -1
- package/css/std/controls/pdf-viewer/img/compare-dlg-title.svg +12 -0
- package/css/std/controls/pdf-viewer/pdf-viewer-index.css +148 -0
- package/css/std/controls/pdf-viewer/pdf-viewer.css +148 -0
- package/css/std/controls/select/select.css +2 -2
- package/css/std/controls/table-view/table-view-custom-lookup-edit.css +1 -1
- package/css/std/controls/table-view/treegrid-cell.css +4 -0
- package/css/std/controls/table-view/treegrid-context-menu.css +3 -3
- package/dist/index.css +3 -10
- package/dist/index.js +894 -1126
- package/dist/index.js.map +1 -1
- package/dist/src/controls/LookupPicker/LookupPicker.d.ts +2 -0
- package/dist/src/controls/LookupPicker/ValueList.d.ts +2 -0
- package/dist/src/controls/PdfViewer/services/PdfViewerService.d.ts +6 -0
- package/dist/src/controls/ScrollBar/ScrollBar.d.ts +1 -1
- package/dist/src/controls/TableView/TableViewConstants.d.ts +2 -1
- package/dist/src/controls/TableView/services/TableViewService.d.ts +1 -0
- package/dist/src/controls/TableView/services/impl/TableViewServiceImpl.d.ts +1 -0
- package/dist/src/controls/ViewPart/ViewPart.d.ts +2 -1
- package/dist/src/models/ItemCopyRequest.d.ts +5 -1
- package/dist/src/services/FileService.d.ts +8 -0
- package/lib/dxf-viewer/parser/DxfArrayScanner.js +27 -1
- package/lib/dxf-viewer/parser/DxfParser.js +7 -4
- package/lib/fflate/fflate.module.js +2672 -0
- package/package.json +1 -1
- package/src/controls/BimViewer/js/bim-viewer.js +2 -2
- package/src/controls/DxfViewer/js/dxf-viewer.js +100 -29
- package/src/controls/PdfViewer/js/pdf-viewer.js +240 -36
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.
|
|
1
|
+
import { BIMModel, BIMCommon, BIMAnnotation } from '/resource/bimViewer/js/bim-viewer-models.js?version=1.1.228';
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
Viewer, XKTLoaderPlugin, NavCubePlugin, SectionPlanesPlugin, math, BCFViewpointsPlugin, AnnotationsPlugin,
|
|
5
5
|
ContextMenu, TreeViewPlugin, StoreyViewsPlugin, AngleMeasurementsPlugin, CameraMemento, DistanceMeasurementsPlugin,
|
|
6
6
|
GLTFLoaderPlugin, utils, FastNavPlugin, MetaObject, parsers
|
|
7
7
|
}
|
|
8
|
-
from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.
|
|
8
|
+
from '/resource/bimViewer/js/xeokit/xeokit-sdk.es.js?version=1.1.228';
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.
|
|
2
|
-
import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.
|
|
3
|
-
import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.
|
|
4
|
-
import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.
|
|
5
|
-
import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.
|
|
6
|
-
import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.
|
|
7
|
-
import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.
|
|
8
|
-
import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.
|
|
9
|
-
import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.
|
|
10
|
-
import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.
|
|
11
|
-
import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.
|
|
12
|
-
import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.
|
|
13
|
-
import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.
|
|
14
|
-
import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.
|
|
1
|
+
import * as three from '/resource/dxfViewer/js/three/three.module.js?version=1.1.228';
|
|
2
|
+
import { Matrix3, Vector2 } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.228';
|
|
3
|
+
import { Batch, DxfViewer, Layer } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.228';
|
|
4
|
+
import { Block as SceneBlock } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.228';
|
|
5
|
+
import { Block } from '/resource/dxfViewer/js/viewer/DxfViewer.js?version=1.1.228';
|
|
6
|
+
import { DxfScene, Entity, ColorCode } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.228';
|
|
7
|
+
import { TextRenderer, ParseSpecialChars, HAlign, VAlign } from '/resource/dxfViewer/js/viewer/TextRenderer.js?version=1.1.228';
|
|
8
|
+
import { DxfWorker } from '/resource/dxfViewer/js/viewer/DxfWorker.js?version=1.1.228';
|
|
9
|
+
import { DxfFetcher } from '/resource/dxfViewer/js/viewer/DxfFetcher.js?version=1.1.228';
|
|
10
|
+
import DxfParser from '/resource/dxfViewer/js/viewer/parser/DxfParser.js?version=1.1.228';
|
|
11
|
+
import { RenderBatch } from '/resource/dxfViewer/js/viewer/DxfScene.js?version=1.1.228';
|
|
12
|
+
import { DynamicBuffer, NativeType } from '/resource/dxfViewer/js/viewer/DynamicBuffer.js?version=1.1.228';
|
|
13
|
+
import { OrbitControls } from '/resource/dxfViewer/js/viewer/OrbitControls.js?version=1.1.228';
|
|
14
|
+
import { CSS2DRenderer, CSS2DObject } from '/resource/dxfViewer/js/three/three.module.js?version=1.1.228';
|
|
15
|
+
import { Unzip, UnzipInflate } from '/resource/dxfViewer/js/fflate/fflate.module.js?version=1.1.228'
|
|
15
16
|
|
|
16
17
|
let treeViewData = [];
|
|
17
18
|
let notes = [];
|
|
@@ -2282,6 +2283,11 @@ export class Annotation extends Drawable {
|
|
|
2282
2283
|
|
|
2283
2284
|
/** Fetches and parses DXF file. */
|
|
2284
2285
|
export class VitroDxfFetcher extends DxfFetcher {
|
|
2286
|
+
constructor(url, encoding = "utf-8") {
|
|
2287
|
+
super(url, encoding)
|
|
2288
|
+
this.tail = ""
|
|
2289
|
+
this.dxfChunkArray = []
|
|
2290
|
+
}
|
|
2285
2291
|
|
|
2286
2292
|
async SyncFetch() {
|
|
2287
2293
|
//const response = fetch(this.url)
|
|
@@ -2327,6 +2333,11 @@ export class VitroDxfFetcher extends DxfFetcher {
|
|
|
2327
2333
|
async Fetch(progressCbk = null) {
|
|
2328
2334
|
const response = await fetch(this.url)
|
|
2329
2335
|
const fileName = this._getFileName(response)
|
|
2336
|
+
|
|
2337
|
+
if (fileName.endsWith(".zdxf")) {
|
|
2338
|
+
return await this._processZip(response, progressCbk);
|
|
2339
|
+
}
|
|
2340
|
+
|
|
2330
2341
|
const totalSize = +response.headers.get('Content-Length')
|
|
2331
2342
|
|
|
2332
2343
|
const reader = response.body.getReader()
|
|
@@ -2349,14 +2360,10 @@ export class VitroDxfFetcher extends DxfFetcher {
|
|
|
2349
2360
|
}
|
|
2350
2361
|
}
|
|
2351
2362
|
|
|
2352
|
-
if (fileName.endsWith(".zdxf")) {
|
|
2353
|
-
return await this._processZip(buffer, progressCbk);
|
|
2354
|
-
}
|
|
2355
|
-
|
|
2356
2363
|
return this._decodeAndParse(buffer, progressCbk);
|
|
2357
2364
|
}
|
|
2358
2365
|
|
|
2359
|
-
_decodeAndParse(buffer, progressCbk) {
|
|
2366
|
+
_decodeAndParse(buffer, progressCbk, fetcher = null) {
|
|
2360
2367
|
const decoder = new TextDecoder('utf-8');
|
|
2361
2368
|
const parser = new DxfParser();
|
|
2362
2369
|
|
|
@@ -2364,23 +2371,87 @@ export class VitroDxfFetcher extends DxfFetcher {
|
|
|
2364
2371
|
progressCbk("parse", 0, null)
|
|
2365
2372
|
}
|
|
2366
2373
|
|
|
2367
|
-
return parser.parseSync(decoder.decode(buffer));
|
|
2374
|
+
return parser.parseSync(decoder.decode(buffer), fetcher);
|
|
2368
2375
|
}
|
|
2369
2376
|
|
|
2370
|
-
async _processZip(
|
|
2371
|
-
const
|
|
2372
|
-
const
|
|
2377
|
+
async _processZip(response, progressCbk) {
|
|
2378
|
+
const reader = response.body.getReader()
|
|
2379
|
+
const decoder = new TextDecoder('utf-8');
|
|
2380
|
+
|
|
2381
|
+
const unzipper = new Unzip();
|
|
2382
|
+
unzipper.register(UnzipInflate)
|
|
2383
|
+
unzipper.onfile = file => {
|
|
2384
|
+
if (!file.name.toLowerCase().endsWith('.dxf')) {
|
|
2385
|
+
// ���������� ������ �����
|
|
2386
|
+
file.ondata = () => { };
|
|
2387
|
+
file.start();
|
|
2388
|
+
return;
|
|
2389
|
+
}
|
|
2390
|
+
|
|
2391
|
+
const totalSize = file.size;
|
|
2392
|
+
let processed = 0;
|
|
2393
|
+
|
|
2394
|
+
if (progressCbk)
|
|
2395
|
+
progressCbk('extract', 0, null);
|
|
2373
2396
|
|
|
2374
|
-
|
|
2375
|
-
|
|
2397
|
+
file.ondata = (err, chunk, final) => {
|
|
2398
|
+
if (err) {
|
|
2399
|
+
console.log(err);
|
|
2400
|
+
return;
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2403
|
+
processed += chunk.byteLength;
|
|
2404
|
+
const buffer = decoder.decode(chunk, { stream: !final });
|
|
2405
|
+
this.DxfChunkParser(buffer);
|
|
2406
|
+
|
|
2407
|
+
if (progressCbk && totalSize > 0) {
|
|
2408
|
+
progressCbk('extract', processed / totalSize, { processed, totalSize });
|
|
2409
|
+
}
|
|
2410
|
+
};
|
|
2411
|
+
|
|
2412
|
+
file.start(); // ��������� ���������� �����
|
|
2413
|
+
};
|
|
2414
|
+
|
|
2415
|
+
// ������ Unzip ������� ZIP-�����
|
|
2416
|
+
while (true) {
|
|
2417
|
+
const { value, done } = await reader.read();
|
|
2418
|
+
if (done) {
|
|
2419
|
+
unzipper.push(new Uint8Array(0), true); // ������ EOF
|
|
2420
|
+
break;
|
|
2421
|
+
}
|
|
2422
|
+
unzipper.push(value, false);
|
|
2376
2423
|
}
|
|
2377
2424
|
|
|
2378
|
-
|
|
2379
|
-
|
|
2425
|
+
const firstString = this.dxfChunkArray[0]
|
|
2426
|
+
this.dxfChunkArray = this.dxfChunkArray.slice(1)
|
|
2427
|
+
const parser = new DxfParser(this)
|
|
2428
|
+
return parser.parseSync(firstString)
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
DxfChunkParser(buffer) {
|
|
2432
|
+
if (buffer[0] == '\n')
|
|
2433
|
+
buffer = buffer.substring(1)
|
|
2434
|
+
buffer = this.tail + buffer
|
|
2435
|
+
const nFn = buffer.lastIndexOf('\n')
|
|
2436
|
+
const nFr = buffer.lastIndexOf('\r')
|
|
2437
|
+
let nF = Math.max(nFn, nFr)
|
|
2438
|
+
this.tail = buffer.substring(nF + 1)
|
|
2439
|
+
if (nFn - nFr == 1)
|
|
2440
|
+
nF--
|
|
2441
|
+
buffer = buffer.substring(0, nF)
|
|
2442
|
+
this.dxfChunkArray.push(buffer);
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
|
|
2446
|
+
GetNextChunk() {
|
|
2447
|
+
if (this.dxfChunkArray.length == 0) {
|
|
2448
|
+
return null
|
|
2380
2449
|
}
|
|
2381
|
-
const fileData = await zip.file(dxfFile).async("uint8array");
|
|
2382
2450
|
|
|
2383
|
-
|
|
2451
|
+
const firstString = this.dxfChunkArray[0]
|
|
2452
|
+
this.dxfChunkArray = this.dxfChunkArray.slice(1)
|
|
2453
|
+
firstString.split(/\r\n|\r|\n/g)
|
|
2454
|
+
return firstString.split(/\r\n|\r|\n/g)
|
|
2384
2455
|
}
|
|
2385
2456
|
|
|
2386
2457
|
}
|
|
@@ -21208,7 +21208,7 @@ const defaultOptions = {
|
|
|
21208
21208
|
kind: OptionKind.WORKER
|
|
21209
21209
|
},
|
|
21210
21210
|
workerSrc: {
|
|
21211
|
-
value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.
|
|
21211
|
+
value: "resource/pdfViewer/js/pdf.worker.js?version=1.1.228",
|
|
21212
21212
|
kind: OptionKind.WORKER
|
|
21213
21213
|
}
|
|
21214
21214
|
};
|
|
@@ -37419,6 +37419,13 @@ const EVENT_SEARCH_ISSUE_LIST = 'vitro.search.issue.list';
|
|
|
37419
37419
|
const EVENT_ISSUE_LIST_REFRESH = 'vitro.issue.list.refresh';
|
|
37420
37420
|
const EVENT_ISSUE_LIST_SELECT_ITEM = 'vitro.issue.list.select.item';
|
|
37421
37421
|
const EVENT_ITEM_CHANGED = 'vitro.item.changed';
|
|
37422
|
+
const ITEM_SELECT_DIALOG = 'ItemSelectDialog';
|
|
37423
|
+
const FILE_EXTENSION_PDF = '.pdf';
|
|
37424
|
+
const DOC_A = 'docA';
|
|
37425
|
+
const DOC_B = 'docB';
|
|
37426
|
+
let currentDocFileVersionList;
|
|
37427
|
+
let docAFileVersionList;
|
|
37428
|
+
let docBFileVersionList;
|
|
37422
37429
|
|
|
37423
37430
|
function initContextMenuCanvas() {
|
|
37424
37431
|
var pages = '#viewer .page:not(.has-new-svg)';
|
|
@@ -37526,6 +37533,8 @@ function initCompare() {
|
|
|
37526
37533
|
bindCompareDlgPageChange();
|
|
37527
37534
|
bindBtnsCompareDocsSelect();
|
|
37528
37535
|
bindCompareDlgVersionChange();
|
|
37536
|
+
initButtonSelectFileDocA();
|
|
37537
|
+
initButtonSelectFileDocB();
|
|
37529
37538
|
|
|
37530
37539
|
let fileName = context.file.fieldValueMap.name;
|
|
37531
37540
|
$('div.compare-dlg_doc-a_name').text(fileName);
|
|
@@ -37543,26 +37552,8 @@ function initCompare() {
|
|
|
37543
37552
|
}));
|
|
37544
37553
|
});
|
|
37545
37554
|
|
|
37546
|
-
|
|
37547
|
-
|
|
37548
|
-
let loadedVersion = `v${version.name}`;
|
|
37549
|
-
$('#docAVersion').val(loadedVersion);
|
|
37550
|
-
let loadedVersionArray = version.name.split('.');
|
|
37551
|
-
let loadedVersionMinor = loadedVersionArray[1];
|
|
37552
|
-
let loadedVersionMajor = loadedVersionArray[0];
|
|
37553
|
-
if (loadedVersionId != context.currentVersionId) {
|
|
37554
|
-
let lastVersion = context.fileVersionList.find(item => item.id == context.currentVersionId);
|
|
37555
|
-
let lastVersionLabel = `v${lastVersion.name}`;
|
|
37556
|
-
$('#docBVersion').val(lastVersionLabel);
|
|
37557
|
-
} else {
|
|
37558
|
-
if (context.fileVersionList.length > 1) {
|
|
37559
|
-
let previousVersion = context.fileVersionList[1];
|
|
37560
|
-
let previousVersionLabel = `v${previousVersion.name}`;
|
|
37561
|
-
$('#docBVersion').val(previousVersionLabel);
|
|
37562
|
-
} else {
|
|
37563
|
-
$('#docBVersion').val(loadedVersion);
|
|
37564
|
-
}
|
|
37565
|
-
}
|
|
37555
|
+
currentDocFileVersionList = context.fileVersionList;
|
|
37556
|
+
initDocVersion();
|
|
37566
37557
|
$('#docAPage').val(1);
|
|
37567
37558
|
$('#docBPage').val(1);
|
|
37568
37559
|
}
|
|
@@ -37578,14 +37569,12 @@ function getLoadedVersionId() {
|
|
|
37578
37569
|
function showDlgCompare() {
|
|
37579
37570
|
$('.compare-dlg-wrap').show();
|
|
37580
37571
|
|
|
37581
|
-
|
|
37582
|
-
|
|
37583
|
-
|
|
37572
|
+
resetDocFileVersionList();
|
|
37573
|
+
resetDocPage();
|
|
37574
|
+
initDocVersion();
|
|
37584
37575
|
|
|
37585
37576
|
compareObjList = getCompareObjList();
|
|
37586
|
-
|
|
37587
37577
|
loadDocAObj(compareObjList.docA.url);
|
|
37588
|
-
|
|
37589
37578
|
loadDocBObj(compareObjList.docB.url);
|
|
37590
37579
|
}
|
|
37591
37580
|
|
|
@@ -37603,6 +37592,7 @@ function getDocA() {
|
|
|
37603
37592
|
let docAVersion = docAVersionValue.substring(1);
|
|
37604
37593
|
let docAPage = Number($("#docAPage").val());
|
|
37605
37594
|
let docAVersionFile = context.fileVersionList.find(item => item.name == docAVersion);
|
|
37595
|
+
docAFileVersionList = context.fileVersionList;
|
|
37606
37596
|
let docA = {
|
|
37607
37597
|
name: fileName,
|
|
37608
37598
|
version: docAVersionValue,
|
|
@@ -37622,6 +37612,7 @@ function getDocB() {
|
|
|
37622
37612
|
let docBVersion = docBVersionValue.substring(1);
|
|
37623
37613
|
let docBPage = Number($("#docBPage").val());
|
|
37624
37614
|
let docBVersionFile = context.fileVersionList.find(item => item.name == docBVersion);
|
|
37615
|
+
docBFileVersionList = context.fileVersionList;
|
|
37625
37616
|
let docB = {
|
|
37626
37617
|
name: fileName,
|
|
37627
37618
|
version: docBVersionValue,
|
|
@@ -37759,14 +37750,14 @@ function isComparedDocumentCurrentOpened(url) {
|
|
|
37759
37750
|
|
|
37760
37751
|
function bindCompareDlgDcoAVersionChange() {
|
|
37761
37752
|
$('#docAVersion').on('change', function () {
|
|
37762
|
-
|
|
37753
|
+
refreshCompareObjListDocA();
|
|
37763
37754
|
loadDocAObj(compareObjList.docA.url);
|
|
37764
37755
|
});
|
|
37765
37756
|
}
|
|
37766
37757
|
|
|
37767
37758
|
function bindCompareDlgDcoBVersionChange() {
|
|
37768
37759
|
$('#docBVersion').on('change', function () {
|
|
37769
|
-
|
|
37760
|
+
refreshCompareObjListDocB();
|
|
37770
37761
|
loadDocBObj(compareObjList.docB.url);
|
|
37771
37762
|
});
|
|
37772
37763
|
}
|
|
@@ -37788,7 +37779,7 @@ function bindCompareDlgDcoAPageChange() {
|
|
|
37788
37779
|
} else {
|
|
37789
37780
|
enableAllpagesInOtherDropDown($('#docBPage'));
|
|
37790
37781
|
}
|
|
37791
|
-
compareObjList.docA =
|
|
37782
|
+
compareObjList.docA.page = Number($('#docAPage').val());
|
|
37792
37783
|
reloadCompareThumb(pdfDocObjA, thumbContainer, Number($(this).val()));
|
|
37793
37784
|
});
|
|
37794
37785
|
}
|
|
@@ -37801,7 +37792,7 @@ function bindCompareDlgDcoBPageChange() {
|
|
|
37801
37792
|
} else {
|
|
37802
37793
|
enableAllpagesInOtherDropDown($('#docAPage'));
|
|
37803
37794
|
}
|
|
37804
|
-
compareObjList.docB =
|
|
37795
|
+
compareObjList.docB.page = Number($('#docBPage').val());
|
|
37805
37796
|
reloadCompareThumb(pdfDocObjB, thumbContainer, Number($(this).val()));
|
|
37806
37797
|
});
|
|
37807
37798
|
}
|
|
@@ -38669,12 +38660,14 @@ function initItemChangedEventListener() {
|
|
|
38669
38660
|
}
|
|
38670
38661
|
|
|
38671
38662
|
function onItemChanged(e) {
|
|
38672
|
-
|
|
38673
|
-
|
|
38674
|
-
|
|
38675
|
-
|
|
38676
|
-
|
|
38677
|
-
|
|
38663
|
+
if (!isEventItemSelectDialog(e)) {
|
|
38664
|
+
const width = $('.vitro-issue-detail').width();
|
|
38665
|
+
if (width && $('.vitro-issue-detail').is(':visible')) {
|
|
38666
|
+
setContainerInset(width);
|
|
38667
|
+
}
|
|
38668
|
+
if (!$('.vitro-issue-detail').resizable('instance')) {
|
|
38669
|
+
initResizable($('.vitro-issue-detail'));
|
|
38670
|
+
}
|
|
38678
38671
|
}
|
|
38679
38672
|
}
|
|
38680
38673
|
|
|
@@ -38775,6 +38768,217 @@ function bindOnSidebarToggle() {
|
|
|
38775
38768
|
function isScaleModeRelative() {
|
|
38776
38769
|
const currentScaleMode = PDFViewerApplication.pdfViewer._currentScaleValue;
|
|
38777
38770
|
return currentScaleMode == 'page-width' || currentScaleMode == 'page-fit' || currentScaleMode == 'auto';
|
|
38771
|
+
}
|
|
38772
|
+
|
|
38773
|
+
function initButtonSelectFileDocA() {
|
|
38774
|
+
const btn = $('<a id="btnSelectFileDocA">' + context.selectFileBtnText + '</a>');
|
|
38775
|
+
btn.on('click', onClickButtonSelectFileDocA);
|
|
38776
|
+
$('.compare-dlg_doc-a_file-select').append(btn);
|
|
38777
|
+
}
|
|
38778
|
+
|
|
38779
|
+
async function onClickButtonSelectFileDocA(e) {
|
|
38780
|
+
e.preventDefault();
|
|
38781
|
+
e.stopPropagation();
|
|
38782
|
+
const idList = await context.getItemIdList();
|
|
38783
|
+
const id = idList?.length ? idList[0] : false;
|
|
38784
|
+
onSelectFileDocA(id);
|
|
38785
|
+
}
|
|
38786
|
+
|
|
38787
|
+
async function onSelectFileDocA(id) {
|
|
38788
|
+
if (isSelectedFileChanged(id, getDocFileIdFromUrl(compareObjList.docA.url))) {
|
|
38789
|
+
const docObj = await getDocObj(id, $('#docAVersionList'), $("#docAVersion"), $("#docAPage"), $('div.compare-dlg_doc-a_name'), DOC_A);
|
|
38790
|
+
if (docObj) {
|
|
38791
|
+
compareObjList.docA = docObj;
|
|
38792
|
+
loadDocAObj(compareObjList.docA.url);
|
|
38793
|
+
}
|
|
38794
|
+
}
|
|
38795
|
+
}
|
|
38796
|
+
|
|
38797
|
+
function isSelectedFileChanged(id, compareObjListDocId) {
|
|
38798
|
+
return id && (context.file.id !== id || (context.file.id === id && id !== compareObjListDocId));
|
|
38799
|
+
}
|
|
38800
|
+
|
|
38801
|
+
async function getDocObj(id, fileVersionListElm, docVersionElm, docPageElm, fileNameElm, docType) {
|
|
38802
|
+
const file = await context.itemService.get(id);
|
|
38803
|
+
const fileName = file.fieldValueMap.name;
|
|
38804
|
+
|
|
38805
|
+
if (isValidDocumentFormat(fileName)) {
|
|
38806
|
+
const fileId = file.id;
|
|
38807
|
+
const versionList = await context.fileService.get(id);
|
|
38808
|
+
const fileVersionList = getFileVersionList(versionList);
|
|
38809
|
+
setDocFileVersionList(docType, fileVersionList);
|
|
38810
|
+
const fileVersion = file.fieldValueMap.version.fieldValueMap.name;
|
|
38811
|
+
setDlgDocFileName(fileNameElm, fileName);
|
|
38812
|
+
refreshVersionList(fileVersionListElm, fileVersionList);
|
|
38813
|
+
const docVersionValue = 'v' + fileVersion;
|
|
38814
|
+
docVersionElm.val(docVersionValue);
|
|
38815
|
+
docPageElm.val(1);
|
|
38816
|
+
const docVersionFile = fileVersionList.find(item => item.name == fileVersion);
|
|
38817
|
+
|
|
38818
|
+
const doc = {
|
|
38819
|
+
name: fileName,
|
|
38820
|
+
version: docVersionValue,
|
|
38821
|
+
page: 1,
|
|
38822
|
+
uploadBy: docVersionFile.userName,
|
|
38823
|
+
uploadDate: docVersionFile.date,
|
|
38824
|
+
url: `/api/file/getByItemId/${fileId}/${fileVersion}`
|
|
38825
|
+
};
|
|
38826
|
+
|
|
38827
|
+
return doc;
|
|
38828
|
+
}
|
|
38829
|
+
|
|
38830
|
+
return false;
|
|
38831
|
+
}
|
|
38832
|
+
|
|
38833
|
+
function setDocFileVersionList(docType, fileVersionList) {
|
|
38834
|
+
if (docType === DOC_A) {
|
|
38835
|
+
docAFileVersionList = fileVersionList;
|
|
38836
|
+
} else {
|
|
38837
|
+
docBFileVersionList = fileVersionList;
|
|
38838
|
+
}
|
|
38839
|
+
}
|
|
38840
|
+
|
|
38841
|
+
function refreshVersionList(fileVersionListElm, fileVersionList) {
|
|
38842
|
+
fileVersionListElm.html(null);
|
|
38843
|
+
$.each(fileVersionList, function (i, item) {
|
|
38844
|
+
const value = 'v' + item.name;
|
|
38845
|
+
fileVersionListElm.append($('<li>', {
|
|
38846
|
+
value: value,
|
|
38847
|
+
text: value,
|
|
38848
|
+
}));
|
|
38849
|
+
});
|
|
38850
|
+
}
|
|
38851
|
+
|
|
38852
|
+
function getFileVersionList(versionList) {
|
|
38853
|
+
const list = versionList?.map(version => {
|
|
38854
|
+
return {
|
|
38855
|
+
id: version.id,
|
|
38856
|
+
name: version.fieldValueMap.name,
|
|
38857
|
+
userName: version.insertUserName,
|
|
38858
|
+
date: context.getDateText(version.insertDate)
|
|
38859
|
+
};
|
|
38860
|
+
});
|
|
38861
|
+
|
|
38862
|
+
return list;
|
|
38863
|
+
};
|
|
38864
|
+
|
|
38865
|
+
function setDlgDocFileName(fileNameElm, fileName) {
|
|
38866
|
+
fileNameElm.text(fileName);
|
|
38867
|
+
}
|
|
38868
|
+
|
|
38869
|
+
function initButtonSelectFileDocB() {
|
|
38870
|
+
const btn = $('<a id="btnSelectFileDocB">' + context.selectFileBtnText + '</a>');
|
|
38871
|
+
btn.on('click', onClickButtonSelectFileDocB);
|
|
38872
|
+
$('.compare-dlg_doc-b_file-select').append(btn);
|
|
38873
|
+
}
|
|
38874
|
+
|
|
38875
|
+
async function onClickButtonSelectFileDocB(e) {
|
|
38876
|
+
e.preventDefault();
|
|
38877
|
+
e.stopPropagation();
|
|
38878
|
+
const idList = await context.getItemIdList();
|
|
38879
|
+
const id = idList?.length ? idList[0] : false;
|
|
38880
|
+
onSelectFileDocB(id);
|
|
38881
|
+
}
|
|
38882
|
+
|
|
38883
|
+
async function onSelectFileDocB(id) {
|
|
38884
|
+
if (isSelectedFileChanged(id, getDocFileIdFromUrl(compareObjList.docB.url))) {
|
|
38885
|
+
const docObj = await getDocObj(id, $('#docBVersionList'), $("#docBVersion"), $("#docBPage"), $('div.compare-dlg_doc-b_name'), DOC_B);
|
|
38886
|
+
if (docObj) {
|
|
38887
|
+
compareObjList.docB = docObj;
|
|
38888
|
+
loadDocBObj(compareObjList.docB.url);
|
|
38889
|
+
}
|
|
38890
|
+
|
|
38891
|
+
}
|
|
38892
|
+
}
|
|
38893
|
+
|
|
38894
|
+
function getDocFileIdFromUrl(url) {
|
|
38895
|
+
const urlArr = url.split('/');
|
|
38896
|
+
return itemId = urlArr[urlArr.length - 2];
|
|
38897
|
+
}
|
|
38898
|
+
|
|
38899
|
+
function refreshCompareObjListDocA() {
|
|
38900
|
+
refreshCompareObjListDoc(DOC_A);
|
|
38901
|
+
};
|
|
38902
|
+
|
|
38903
|
+
function refreshCompareObjListDocB() {
|
|
38904
|
+
refreshCompareObjListDoc(DOC_B);
|
|
38905
|
+
};
|
|
38906
|
+
|
|
38907
|
+
function refreshCompareObjListDoc(docType) {
|
|
38908
|
+
const docVersionValue = $("#" + docType + "Version").val();
|
|
38909
|
+
const docVersion = docVersionValue.substring(1);
|
|
38910
|
+
const docPage = Number($("#" + docType + "Page").val());
|
|
38911
|
+
let docVersionFile;
|
|
38912
|
+
if (docType === DOC_A) {
|
|
38913
|
+
docVersionFile = docAFileVersionList.find(item => item.name == docVersion);
|
|
38914
|
+
} else {
|
|
38915
|
+
docVersionFile = docBFileVersionList.find(item => item.name == docVersion);
|
|
38916
|
+
}
|
|
38917
|
+
compareObjList[docType].page = docPage;
|
|
38918
|
+
compareObjList[docType].version = docVersionValue;
|
|
38919
|
+
compareObjList[docType].uploadBy = docVersionFile.userName;
|
|
38920
|
+
compareObjList[docType].uploadDate = docVersionFile.date;
|
|
38921
|
+
compareObjList[docType].url = getDocVersionUrl(compareObjList[docType].url, docVersion);
|
|
38922
|
+
}
|
|
38923
|
+
|
|
38924
|
+
function getDocVersionUrl(url, version) {
|
|
38925
|
+
const lastSlashIndex = url.lastIndexOf('/');
|
|
38926
|
+
if (lastSlashIndex === -1) {
|
|
38927
|
+
return url;
|
|
38928
|
+
}
|
|
38929
|
+
const partBeforeLastSlash = url.slice(0, lastSlashIndex + 1);
|
|
38930
|
+
return partBeforeLastSlash + version;
|
|
38931
|
+
}
|
|
38932
|
+
|
|
38933
|
+
function resetDocFileVersionList() {
|
|
38934
|
+
docAFileVersionList = currentDocFileVersionList;
|
|
38935
|
+
docBFileVersionList = currentDocFileVersionList;
|
|
38936
|
+
}
|
|
38937
|
+
|
|
38938
|
+
function resetDocPage() {
|
|
38939
|
+
const currentPage = getCurrentPage();
|
|
38940
|
+
$("#docAPage").val(currentPage);
|
|
38941
|
+
$("#docBPage").val(currentPage);
|
|
38942
|
+
}
|
|
38943
|
+
|
|
38944
|
+
function initDocVersion() {
|
|
38945
|
+
const loadedVersion = getInitVersionDocA();
|
|
38946
|
+
const versionDocB = getInitVersionDocB(loadedVersion);
|
|
38947
|
+
$('#docAVersion').val(loadedVersion);
|
|
38948
|
+
$('#docBVersion').val(versionDocB);
|
|
38949
|
+
}
|
|
38950
|
+
|
|
38951
|
+
function getInitVersionDocA() {
|
|
38952
|
+
const loadedVersionId = getLoadedVersionId();
|
|
38953
|
+
const version = context.fileVersionList.find(item => item.id == loadedVersionId);
|
|
38954
|
+
const loadedVersion = `v${version.name}`;
|
|
38955
|
+
return loadedVersion;
|
|
38956
|
+
}
|
|
38957
|
+
|
|
38958
|
+
function getInitVersionDocB(loadedVersion) {
|
|
38959
|
+
const loadedVersionId = getLoadedVersionId();
|
|
38960
|
+
if (loadedVersionId != context.currentVersionId) {
|
|
38961
|
+
const lastVersion = context.fileVersionList.find(item => item.id == context.currentVersionId);
|
|
38962
|
+
const lastVersionLabel = `v${lastVersion.name}`;
|
|
38963
|
+
return lastVersionLabel;
|
|
38964
|
+
} else {
|
|
38965
|
+
if (context.fileVersionList.length > 1) {
|
|
38966
|
+
const previousVersion = context.fileVersionList[1];
|
|
38967
|
+
const previousVersionLabel = `v${previousVersion.name}`;
|
|
38968
|
+
return previousVersionLabel;
|
|
38969
|
+
} else {
|
|
38970
|
+
return loadedVersion;
|
|
38971
|
+
}
|
|
38972
|
+
}
|
|
38973
|
+
}
|
|
38974
|
+
|
|
38975
|
+
function isValidDocumentFormat(filename) {
|
|
38976
|
+
const lowercasedFilename = filename.toLowerCase();
|
|
38977
|
+
return lowercasedFilename.endsWith(FILE_EXTENSION_PDF);
|
|
38978
|
+
}
|
|
38979
|
+
|
|
38980
|
+
function isEventItemSelectDialog(e) {
|
|
38981
|
+
return e?.detail?.eventScopeId?.startsWith(ITEM_SELECT_DIALOG);
|
|
38778
38982
|
}
|
|
38779
38983
|
const MARKUP_RESIZER_ID_PREFIX = 'markupResizer';
|
|
38780
38984
|
const CSS_CLASS_MARKUP_RESIZER = 'vitro-markup-resizer';
|